@fluidframework/tree 2.33.2 → 2.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (621) hide show
  1. package/.vscode/settings.json +2 -0
  2. package/CHANGELOG.md +64 -0
  3. package/api-report/tree.alpha.api.md +124 -51
  4. package/api-report/tree.beta.api.md +31 -27
  5. package/api-report/tree.legacy.alpha.api.md +24 -23
  6. package/api-report/tree.legacy.public.api.md +24 -23
  7. package/api-report/tree.public.api.md +24 -23
  8. package/dist/alpha.d.ts +17 -1
  9. package/dist/beta.d.ts +2 -0
  10. package/dist/codec/codec.d.ts +5 -1
  11. package/dist/codec/codec.d.ts.map +1 -1
  12. package/dist/codec/codec.js +6 -2
  13. package/dist/codec/codec.js.map +1 -1
  14. package/dist/codec/index.d.ts +1 -1
  15. package/dist/codec/index.d.ts.map +1 -1
  16. package/dist/codec/index.js +2 -1
  17. package/dist/codec/index.js.map +1 -1
  18. package/dist/core/index.d.ts +2 -2
  19. package/dist/core/index.d.ts.map +1 -1
  20. package/dist/core/index.js +2 -3
  21. package/dist/core/index.js.map +1 -1
  22. package/dist/core/schema-stored/{format.d.ts → formatV1.d.ts} +1 -1
  23. package/dist/core/schema-stored/formatV1.d.ts.map +1 -0
  24. package/dist/core/schema-stored/{format.js → formatV1.js} +1 -1
  25. package/dist/core/schema-stored/formatV1.js.map +1 -0
  26. package/dist/core/schema-stored/index.d.ts +3 -3
  27. package/dist/core/schema-stored/index.d.ts.map +1 -1
  28. package/dist/core/schema-stored/index.js +3 -3
  29. package/dist/core/schema-stored/index.js.map +1 -1
  30. package/dist/core/schema-stored/schema.d.ts +3 -1
  31. package/dist/core/schema-stored/schema.d.ts.map +1 -1
  32. package/dist/core/schema-stored/schema.js +8 -6
  33. package/dist/core/schema-stored/schema.js.map +1 -1
  34. package/dist/core/schema-stored/storedSchemaRepository.d.ts +1 -1
  35. package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  36. package/dist/core/schema-stored/storedSchemaRepository.js.map +1 -1
  37. package/dist/core/schema-view/index.d.ts +1 -1
  38. package/dist/core/schema-view/index.d.ts.map +1 -1
  39. package/dist/core/schema-view/index.js +1 -2
  40. package/dist/core/schema-view/index.js.map +1 -1
  41. package/dist/core/schema-view/view.d.ts +0 -27
  42. package/dist/core/schema-view/view.d.ts.map +1 -1
  43. package/dist/core/schema-view/view.js +1 -35
  44. package/dist/core/schema-view/view.js.map +1 -1
  45. package/dist/core/tree/persistedTreeTextFormat.d.ts +4 -4
  46. package/dist/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
  47. package/dist/core/tree/persistedTreeTextFormat.js +1 -1
  48. package/dist/core/tree/persistedTreeTextFormat.js.map +1 -1
  49. package/dist/feature-libraries/forest-summary/format.d.ts +2 -2
  50. package/dist/feature-libraries/forest-summary/format.d.ts.map +1 -1
  51. package/dist/feature-libraries/forest-summary/format.js +1 -1
  52. package/dist/feature-libraries/forest-summary/format.js.map +1 -1
  53. package/dist/feature-libraries/index.d.ts +1 -1
  54. package/dist/feature-libraries/index.d.ts.map +1 -1
  55. package/dist/feature-libraries/index.js +4 -2
  56. package/dist/feature-libraries/index.js.map +1 -1
  57. package/dist/feature-libraries/mapTreeCursor.d.ts +3 -3
  58. package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -1
  59. package/dist/feature-libraries/mapTreeCursor.js +2 -2
  60. package/dist/feature-libraries/mapTreeCursor.js.map +1 -1
  61. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +9 -9
  62. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  63. package/dist/feature-libraries/modular-schema/modularChangeFormat.js +2 -2
  64. package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  65. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +14 -1
  66. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  67. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +26 -5
  68. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  69. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
  70. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
  71. package/dist/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  72. package/dist/feature-libraries/schema-index/codec.d.ts +34 -5
  73. package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
  74. package/dist/feature-libraries/schema-index/codec.js +63 -9
  75. package/dist/feature-libraries/schema-index/codec.js.map +1 -1
  76. package/{lib/feature-libraries/schema-index/format.d.ts → dist/feature-libraries/schema-index/formatV1.d.ts} +9 -9
  77. package/dist/feature-libraries/schema-index/formatV1.d.ts.map +1 -0
  78. package/dist/feature-libraries/schema-index/{format.js → formatV1.js} +4 -4
  79. package/dist/feature-libraries/schema-index/formatV1.js.map +1 -0
  80. package/dist/feature-libraries/schema-index/index.d.ts +2 -2
  81. package/dist/feature-libraries/schema-index/index.d.ts.map +1 -1
  82. package/dist/feature-libraries/schema-index/index.js +6 -3
  83. package/dist/feature-libraries/schema-index/index.js.map +1 -1
  84. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +5 -5
  85. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  86. package/dist/feature-libraries/schema-index/schemaSummarizer.js +4 -4
  87. package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  88. package/dist/index.d.ts +3 -2
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +10 -8
  91. package/dist/index.js.map +1 -1
  92. package/dist/internalTypes.d.ts +0 -1
  93. package/dist/internalTypes.d.ts.map +1 -1
  94. package/dist/internalTypes.js.map +1 -1
  95. package/dist/jsonDomainSchema.d.ts +2 -2
  96. package/dist/jsonDomainSchema.js +2 -2
  97. package/dist/jsonDomainSchema.js.map +1 -1
  98. package/dist/legacy.d.ts +2 -0
  99. package/dist/packageVersion.d.ts +1 -1
  100. package/dist/packageVersion.js +1 -1
  101. package/dist/packageVersion.js.map +1 -1
  102. package/dist/public.d.ts +2 -0
  103. package/dist/serializableDomainSchema.d.ts +3 -3
  104. package/dist/serializableDomainSchema.js +2 -2
  105. package/dist/serializableDomainSchema.js.map +1 -1
  106. package/dist/shared-tree/independentView.d.ts +1 -1
  107. package/dist/shared-tree/independentView.d.ts.map +1 -1
  108. package/dist/shared-tree/independentView.js +1 -1
  109. package/dist/shared-tree/independentView.js.map +1 -1
  110. package/dist/shared-tree/index.d.ts +4 -3
  111. package/dist/shared-tree/index.d.ts.map +1 -1
  112. package/dist/shared-tree/index.js +6 -5
  113. package/dist/shared-tree/index.js.map +1 -1
  114. package/dist/shared-tree/schematizeTree.d.ts +10 -11
  115. package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
  116. package/dist/shared-tree/schematizeTree.js +11 -36
  117. package/dist/shared-tree/schematizeTree.js.map +1 -1
  118. package/dist/shared-tree/schematizingTreeView.d.ts +3 -3
  119. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  120. package/dist/shared-tree/schematizingTreeView.js +4 -7
  121. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  122. package/dist/shared-tree/sharedTree.d.ts +28 -3
  123. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  124. package/dist/shared-tree/sharedTree.js +29 -3
  125. package/dist/shared-tree/sharedTree.js.map +1 -1
  126. package/dist/shared-tree/{treeApi.d.ts → tree.d.ts} +58 -34
  127. package/dist/shared-tree/tree.d.ts.map +1 -0
  128. package/dist/shared-tree/{treeApi.js → tree.js} +6 -6
  129. package/dist/shared-tree/tree.js.map +1 -0
  130. package/{lib/shared-tree/treeApiAlpha.d.ts → dist/shared-tree/treeAlpha.d.ts} +24 -14
  131. package/dist/shared-tree/treeAlpha.d.ts.map +1 -0
  132. package/dist/shared-tree/{treeApiAlpha.js → treeAlpha.js} +7 -5
  133. package/dist/shared-tree/treeAlpha.js.map +1 -0
  134. package/dist/shared-tree-core/branchCommitEnricher.d.ts +0 -1
  135. package/dist/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
  136. package/dist/shared-tree-core/branchCommitEnricher.js +0 -1
  137. package/dist/shared-tree-core/branchCommitEnricher.js.map +1 -1
  138. package/dist/shared-tree-core/transactionEnricher.d.ts +1 -1
  139. package/dist/shared-tree-core/transactionEnricher.d.ts.map +1 -1
  140. package/dist/shared-tree-core/transactionEnricher.js +4 -1
  141. package/dist/shared-tree-core/transactionEnricher.js.map +1 -1
  142. package/dist/simple-tree/api/conciseTree.d.ts +1 -1
  143. package/dist/simple-tree/api/conciseTree.js.map +1 -1
  144. package/dist/simple-tree/api/configuration.d.ts +177 -0
  145. package/dist/simple-tree/api/configuration.d.ts.map +1 -0
  146. package/dist/simple-tree/api/configuration.js +163 -0
  147. package/dist/simple-tree/api/configuration.js.map +1 -0
  148. package/dist/simple-tree/api/getJsonSchema.js +2 -2
  149. package/dist/simple-tree/api/getJsonSchema.js.map +1 -1
  150. package/dist/simple-tree/api/index.d.ts +9 -5
  151. package/dist/simple-tree/api/index.d.ts.map +1 -1
  152. package/dist/simple-tree/api/index.js +9 -7
  153. package/dist/simple-tree/api/index.js.map +1 -1
  154. package/dist/simple-tree/api/{view.d.ts → schemaCompatibilityTester.d.ts} +8 -10
  155. package/dist/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -0
  156. package/dist/simple-tree/api/{view.js → schemaCompatibilityTester.js} +9 -9
  157. package/dist/simple-tree/api/schemaCompatibilityTester.js.map +1 -0
  158. package/dist/simple-tree/api/schemaFactory.d.ts +25 -10
  159. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  160. package/dist/simple-tree/api/schemaFactory.js +27 -12
  161. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  162. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +12 -6
  163. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  164. package/dist/simple-tree/api/schemaFactoryAlpha.js +2 -2
  165. package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  166. package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +67 -4
  167. package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
  168. package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
  169. package/dist/simple-tree/api/schemaFromSimple.d.ts +1 -1
  170. package/dist/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
  171. package/dist/simple-tree/api/schemaFromSimple.js +1 -1
  172. package/dist/simple-tree/api/schemaFromSimple.js.map +1 -1
  173. package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts +1 -1
  174. package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
  175. package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
  176. package/dist/simple-tree/api/storedSchema.d.ts +11 -10
  177. package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
  178. package/dist/simple-tree/api/storedSchema.js +16 -11
  179. package/dist/simple-tree/api/storedSchema.js.map +1 -1
  180. package/dist/simple-tree/api/tree.d.ts +30 -174
  181. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  182. package/dist/simple-tree/api/tree.js +1 -156
  183. package/dist/simple-tree/api/tree.js.map +1 -1
  184. package/{lib/simple-tree/api/treeApiBeta.d.ts → dist/simple-tree/api/treeBeta.d.ts} +17 -6
  185. package/dist/simple-tree/api/treeBeta.d.ts.map +1 -0
  186. package/dist/simple-tree/api/{treeApiBeta.js → treeBeta.js} +5 -4
  187. package/dist/simple-tree/api/treeBeta.js.map +1 -0
  188. package/dist/simple-tree/api/treeChangeEvents.d.ts +83 -0
  189. package/dist/simple-tree/api/treeChangeEvents.d.ts.map +1 -0
  190. package/dist/simple-tree/api/treeChangeEvents.js +7 -0
  191. package/dist/simple-tree/api/treeChangeEvents.js.map +1 -0
  192. package/dist/simple-tree/api/treeNodeApi.d.ts +2 -1
  193. package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  194. package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
  195. package/dist/simple-tree/api/typesUnsafe.d.ts +4 -9
  196. package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  197. package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
  198. package/dist/simple-tree/arrayNode.d.ts +30 -2
  199. package/dist/simple-tree/arrayNode.d.ts.map +1 -1
  200. package/dist/simple-tree/arrayNode.js +3 -2
  201. package/dist/simple-tree/arrayNode.js.map +1 -1
  202. package/dist/simple-tree/arrayNodeTypes.d.ts +3 -3
  203. package/dist/simple-tree/arrayNodeTypes.d.ts.map +1 -1
  204. package/dist/simple-tree/arrayNodeTypes.js.map +1 -1
  205. package/dist/simple-tree/core/getOrCreateNode.d.ts +1 -1
  206. package/dist/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
  207. package/dist/simple-tree/core/getOrCreateNode.js.map +1 -1
  208. package/dist/simple-tree/core/index.d.ts +2 -1
  209. package/dist/simple-tree/core/index.d.ts.map +1 -1
  210. package/dist/simple-tree/core/index.js +5 -5
  211. package/dist/simple-tree/core/index.js.map +1 -1
  212. package/dist/simple-tree/core/treeNode.d.ts +94 -0
  213. package/dist/simple-tree/core/treeNode.d.ts.map +1 -0
  214. package/dist/simple-tree/core/treeNode.js +123 -0
  215. package/dist/simple-tree/core/treeNode.js.map +1 -0
  216. package/dist/simple-tree/core/treeNodeKernel.d.ts +2 -1
  217. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  218. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  219. package/dist/simple-tree/core/treeNodeSchema.d.ts +3 -1
  220. package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  221. package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
  222. package/dist/simple-tree/core/types.d.ts +0 -165
  223. package/dist/simple-tree/core/types.d.ts.map +1 -1
  224. package/dist/simple-tree/core/types.js +1 -113
  225. package/dist/simple-tree/core/types.js.map +1 -1
  226. package/dist/simple-tree/core/withType.d.ts +1 -1
  227. package/dist/simple-tree/core/withType.d.ts.map +1 -1
  228. package/dist/simple-tree/core/withType.js.map +1 -1
  229. package/dist/simple-tree/index.d.ts +4 -4
  230. package/dist/simple-tree/index.d.ts.map +1 -1
  231. package/dist/simple-tree/index.js +4 -3
  232. package/dist/simple-tree/index.js.map +1 -1
  233. package/dist/simple-tree/mapNode.d.ts +2 -2
  234. package/dist/simple-tree/mapNode.d.ts.map +1 -1
  235. package/dist/simple-tree/mapNode.js +1 -1
  236. package/dist/simple-tree/mapNode.js.map +1 -1
  237. package/dist/simple-tree/mapNodeTypes.d.ts +3 -3
  238. package/dist/simple-tree/mapNodeTypes.d.ts.map +1 -1
  239. package/dist/simple-tree/mapNodeTypes.js.map +1 -1
  240. package/dist/simple-tree/objectNode.d.ts +18 -5
  241. package/dist/simple-tree/objectNode.d.ts.map +1 -1
  242. package/dist/simple-tree/objectNode.js +4 -3
  243. package/dist/simple-tree/objectNode.js.map +1 -1
  244. package/dist/simple-tree/objectNodeTypes.d.ts +4 -4
  245. package/dist/simple-tree/objectNodeTypes.d.ts.map +1 -1
  246. package/dist/simple-tree/objectNodeTypes.js.map +1 -1
  247. package/dist/simple-tree/schemaTypes.d.ts +164 -13
  248. package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
  249. package/dist/simple-tree/schemaTypes.js +107 -8
  250. package/dist/simple-tree/schemaTypes.js.map +1 -1
  251. package/dist/simple-tree/toStoredSchema.d.ts +8 -8
  252. package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
  253. package/dist/simple-tree/toStoredSchema.js +27 -32
  254. package/dist/simple-tree/toStoredSchema.js.map +1 -1
  255. package/dist/simple-tree/treeNodeValid.js +2 -2
  256. package/dist/simple-tree/treeNodeValid.js.map +1 -1
  257. package/dist/tableSchema.d.ts +455 -125
  258. package/dist/tableSchema.d.ts.map +1 -1
  259. package/dist/tableSchema.js +398 -101
  260. package/dist/tableSchema.js.map +1 -1
  261. package/dist/treeFactory.d.ts +1 -1
  262. package/dist/treeFactory.d.ts.map +1 -1
  263. package/dist/treeFactory.js +30 -75
  264. package/dist/treeFactory.js.map +1 -1
  265. package/dist/util/typeUtils.d.ts +1 -1
  266. package/dist/util/typeUtils.js.map +1 -1
  267. package/lib/alpha.d.ts +17 -1
  268. package/lib/beta.d.ts +2 -0
  269. package/lib/codec/codec.d.ts +5 -1
  270. package/lib/codec/codec.d.ts.map +1 -1
  271. package/lib/codec/codec.js +5 -1
  272. package/lib/codec/codec.js.map +1 -1
  273. package/lib/codec/index.d.ts +1 -1
  274. package/lib/codec/index.d.ts.map +1 -1
  275. package/lib/codec/index.js +1 -1
  276. package/lib/codec/index.js.map +1 -1
  277. package/lib/core/index.d.ts +2 -2
  278. package/lib/core/index.d.ts.map +1 -1
  279. package/lib/core/index.js +2 -2
  280. package/lib/core/index.js.map +1 -1
  281. package/lib/core/schema-stored/{format.d.ts → formatV1.d.ts} +1 -1
  282. package/lib/core/schema-stored/formatV1.d.ts.map +1 -0
  283. package/lib/core/schema-stored/{format.js → formatV1.js} +1 -1
  284. package/lib/core/schema-stored/formatV1.js.map +1 -0
  285. package/lib/core/schema-stored/index.d.ts +3 -3
  286. package/lib/core/schema-stored/index.d.ts.map +1 -1
  287. package/lib/core/schema-stored/index.js +2 -2
  288. package/lib/core/schema-stored/index.js.map +1 -1
  289. package/lib/core/schema-stored/schema.d.ts +3 -1
  290. package/lib/core/schema-stored/schema.d.ts.map +1 -1
  291. package/lib/core/schema-stored/schema.js +3 -1
  292. package/lib/core/schema-stored/schema.js.map +1 -1
  293. package/lib/core/schema-stored/storedSchemaRepository.d.ts +1 -1
  294. package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  295. package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -1
  296. package/lib/core/schema-view/index.d.ts +1 -1
  297. package/lib/core/schema-view/index.d.ts.map +1 -1
  298. package/lib/core/schema-view/index.js +1 -1
  299. package/lib/core/schema-view/index.js.map +1 -1
  300. package/lib/core/schema-view/view.d.ts +0 -27
  301. package/lib/core/schema-view/view.d.ts.map +1 -1
  302. package/lib/core/schema-view/view.js +0 -34
  303. package/lib/core/schema-view/view.js.map +1 -1
  304. package/lib/core/tree/persistedTreeTextFormat.d.ts +4 -4
  305. package/lib/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
  306. package/lib/core/tree/persistedTreeTextFormat.js +2 -2
  307. package/lib/core/tree/persistedTreeTextFormat.js.map +1 -1
  308. package/lib/feature-libraries/forest-summary/format.d.ts +2 -2
  309. package/lib/feature-libraries/forest-summary/format.d.ts.map +1 -1
  310. package/lib/feature-libraries/forest-summary/format.js +2 -2
  311. package/lib/feature-libraries/forest-summary/format.js.map +1 -1
  312. package/lib/feature-libraries/index.d.ts +1 -1
  313. package/lib/feature-libraries/index.d.ts.map +1 -1
  314. package/lib/feature-libraries/index.js +1 -1
  315. package/lib/feature-libraries/index.js.map +1 -1
  316. package/lib/feature-libraries/mapTreeCursor.d.ts +3 -3
  317. package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -1
  318. package/lib/feature-libraries/mapTreeCursor.js +2 -2
  319. package/lib/feature-libraries/mapTreeCursor.js.map +1 -1
  320. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +9 -9
  321. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  322. package/lib/feature-libraries/modular-schema/modularChangeFormat.js +3 -3
  323. package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  324. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +14 -1
  325. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  326. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +26 -6
  327. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  328. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
  329. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
  330. package/lib/feature-libraries/schema-edits/schemaChangeFormat.js +3 -3
  331. package/lib/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  332. package/lib/feature-libraries/schema-index/codec.d.ts +34 -5
  333. package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
  334. package/lib/feature-libraries/schema-index/codec.js +61 -9
  335. package/lib/feature-libraries/schema-index/codec.js.map +1 -1
  336. package/{dist/feature-libraries/schema-index/format.d.ts → lib/feature-libraries/schema-index/formatV1.d.ts} +9 -9
  337. package/lib/feature-libraries/schema-index/formatV1.d.ts.map +1 -0
  338. package/lib/feature-libraries/schema-index/{format.js → formatV1.js} +5 -5
  339. package/lib/feature-libraries/schema-index/formatV1.js.map +1 -0
  340. package/lib/feature-libraries/schema-index/index.d.ts +2 -2
  341. package/lib/feature-libraries/schema-index/index.d.ts.map +1 -1
  342. package/lib/feature-libraries/schema-index/index.js +2 -2
  343. package/lib/feature-libraries/schema-index/index.js.map +1 -1
  344. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +5 -5
  345. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  346. package/lib/feature-libraries/schema-index/schemaSummarizer.js +5 -5
  347. package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  348. package/lib/index.d.ts +3 -2
  349. package/lib/index.d.ts.map +1 -1
  350. package/lib/index.js +1 -0
  351. package/lib/index.js.map +1 -1
  352. package/lib/internalTypes.d.ts +0 -1
  353. package/lib/internalTypes.d.ts.map +1 -1
  354. package/lib/internalTypes.js.map +1 -1
  355. package/lib/jsonDomainSchema.d.ts +2 -2
  356. package/lib/jsonDomainSchema.js +2 -2
  357. package/lib/jsonDomainSchema.js.map +1 -1
  358. package/lib/legacy.d.ts +2 -0
  359. package/lib/packageVersion.d.ts +1 -1
  360. package/lib/packageVersion.js +1 -1
  361. package/lib/packageVersion.js.map +1 -1
  362. package/lib/public.d.ts +2 -0
  363. package/lib/serializableDomainSchema.d.ts +3 -3
  364. package/lib/serializableDomainSchema.js +2 -2
  365. package/lib/serializableDomainSchema.js.map +1 -1
  366. package/lib/shared-tree/independentView.d.ts +1 -1
  367. package/lib/shared-tree/independentView.d.ts.map +1 -1
  368. package/lib/shared-tree/independentView.js +2 -2
  369. package/lib/shared-tree/independentView.js.map +1 -1
  370. package/lib/shared-tree/index.d.ts +4 -3
  371. package/lib/shared-tree/index.d.ts.map +1 -1
  372. package/lib/shared-tree/index.js +3 -3
  373. package/lib/shared-tree/index.js.map +1 -1
  374. package/lib/shared-tree/schematizeTree.d.ts +10 -11
  375. package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
  376. package/lib/shared-tree/schematizeTree.js +12 -37
  377. package/lib/shared-tree/schematizeTree.js.map +1 -1
  378. package/lib/shared-tree/schematizingTreeView.d.ts +3 -3
  379. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  380. package/lib/shared-tree/schematizingTreeView.js +6 -9
  381. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  382. package/lib/shared-tree/sharedTree.d.ts +28 -3
  383. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  384. package/lib/shared-tree/sharedTree.js +29 -4
  385. package/lib/shared-tree/sharedTree.js.map +1 -1
  386. package/lib/shared-tree/{treeApi.d.ts → tree.d.ts} +58 -34
  387. package/lib/shared-tree/tree.d.ts.map +1 -0
  388. package/lib/shared-tree/{treeApi.js → tree.js} +5 -5
  389. package/lib/shared-tree/tree.js.map +1 -0
  390. package/{dist/shared-tree/treeApiAlpha.d.ts → lib/shared-tree/treeAlpha.d.ts} +24 -14
  391. package/lib/shared-tree/treeAlpha.d.ts.map +1 -0
  392. package/lib/shared-tree/{treeApiAlpha.js → treeAlpha.js} +8 -6
  393. package/lib/shared-tree/treeAlpha.js.map +1 -0
  394. package/lib/shared-tree-core/branchCommitEnricher.d.ts +0 -1
  395. package/lib/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
  396. package/lib/shared-tree-core/branchCommitEnricher.js +0 -1
  397. package/lib/shared-tree-core/branchCommitEnricher.js.map +1 -1
  398. package/lib/shared-tree-core/transactionEnricher.d.ts +1 -1
  399. package/lib/shared-tree-core/transactionEnricher.d.ts.map +1 -1
  400. package/lib/shared-tree-core/transactionEnricher.js +4 -1
  401. package/lib/shared-tree-core/transactionEnricher.js.map +1 -1
  402. package/lib/simple-tree/api/conciseTree.d.ts +1 -1
  403. package/lib/simple-tree/api/conciseTree.js.map +1 -1
  404. package/lib/simple-tree/api/configuration.d.ts +177 -0
  405. package/lib/simple-tree/api/configuration.d.ts.map +1 -0
  406. package/lib/simple-tree/api/configuration.js +157 -0
  407. package/lib/simple-tree/api/configuration.js.map +1 -0
  408. package/lib/simple-tree/api/getJsonSchema.js +1 -1
  409. package/lib/simple-tree/api/getJsonSchema.js.map +1 -1
  410. package/lib/simple-tree/api/index.d.ts +9 -5
  411. package/lib/simple-tree/api/index.d.ts.map +1 -1
  412. package/lib/simple-tree/api/index.js +5 -4
  413. package/lib/simple-tree/api/index.js.map +1 -1
  414. package/lib/simple-tree/api/{view.d.ts → schemaCompatibilityTester.d.ts} +8 -10
  415. package/lib/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -0
  416. package/lib/simple-tree/api/{view.js → schemaCompatibilityTester.js} +7 -7
  417. package/lib/simple-tree/api/schemaCompatibilityTester.js.map +1 -0
  418. package/lib/simple-tree/api/schemaFactory.d.ts +25 -10
  419. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  420. package/lib/simple-tree/api/schemaFactory.js +27 -12
  421. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  422. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +12 -6
  423. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  424. package/lib/simple-tree/api/schemaFactoryAlpha.js +2 -2
  425. package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  426. package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +67 -4
  427. package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
  428. package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
  429. package/lib/simple-tree/api/schemaFromSimple.d.ts +1 -1
  430. package/lib/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
  431. package/lib/simple-tree/api/schemaFromSimple.js +1 -1
  432. package/lib/simple-tree/api/schemaFromSimple.js.map +1 -1
  433. package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts +1 -1
  434. package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
  435. package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
  436. package/lib/simple-tree/api/storedSchema.d.ts +11 -10
  437. package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
  438. package/lib/simple-tree/api/storedSchema.js +20 -13
  439. package/lib/simple-tree/api/storedSchema.js.map +1 -1
  440. package/lib/simple-tree/api/tree.d.ts +30 -174
  441. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  442. package/lib/simple-tree/api/tree.js +0 -152
  443. package/lib/simple-tree/api/tree.js.map +1 -1
  444. package/{dist/simple-tree/api/treeApiBeta.d.ts → lib/simple-tree/api/treeBeta.d.ts} +17 -6
  445. package/lib/simple-tree/api/treeBeta.d.ts.map +1 -0
  446. package/lib/simple-tree/api/{treeApiBeta.js → treeBeta.js} +5 -4
  447. package/lib/simple-tree/api/treeBeta.js.map +1 -0
  448. package/lib/simple-tree/api/treeChangeEvents.d.ts +83 -0
  449. package/lib/simple-tree/api/treeChangeEvents.d.ts.map +1 -0
  450. package/lib/simple-tree/api/treeChangeEvents.js +6 -0
  451. package/lib/simple-tree/api/treeChangeEvents.js.map +1 -0
  452. package/lib/simple-tree/api/treeNodeApi.d.ts +2 -1
  453. package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  454. package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
  455. package/lib/simple-tree/api/typesUnsafe.d.ts +4 -9
  456. package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  457. package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
  458. package/lib/simple-tree/arrayNode.d.ts +30 -2
  459. package/lib/simple-tree/arrayNode.d.ts.map +1 -1
  460. package/lib/simple-tree/arrayNode.js +4 -3
  461. package/lib/simple-tree/arrayNode.js.map +1 -1
  462. package/lib/simple-tree/arrayNodeTypes.d.ts +3 -3
  463. package/lib/simple-tree/arrayNodeTypes.d.ts.map +1 -1
  464. package/lib/simple-tree/arrayNodeTypes.js.map +1 -1
  465. package/lib/simple-tree/core/getOrCreateNode.d.ts +1 -1
  466. package/lib/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
  467. package/lib/simple-tree/core/getOrCreateNode.js.map +1 -1
  468. package/lib/simple-tree/core/index.d.ts +2 -1
  469. package/lib/simple-tree/core/index.d.ts.map +1 -1
  470. package/lib/simple-tree/core/index.js +1 -1
  471. package/lib/simple-tree/core/index.js.map +1 -1
  472. package/lib/simple-tree/core/treeNode.d.ts +94 -0
  473. package/lib/simple-tree/core/treeNode.d.ts.map +1 -0
  474. package/lib/simple-tree/core/treeNode.js +118 -0
  475. package/lib/simple-tree/core/treeNode.js.map +1 -0
  476. package/lib/simple-tree/core/treeNodeKernel.d.ts +2 -1
  477. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  478. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  479. package/lib/simple-tree/core/treeNodeSchema.d.ts +3 -1
  480. package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  481. package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
  482. package/lib/simple-tree/core/types.d.ts +0 -165
  483. package/lib/simple-tree/core/types.d.ts.map +1 -1
  484. package/lib/simple-tree/core/types.js +0 -110
  485. package/lib/simple-tree/core/types.js.map +1 -1
  486. package/lib/simple-tree/core/withType.d.ts +1 -1
  487. package/lib/simple-tree/core/withType.d.ts.map +1 -1
  488. package/lib/simple-tree/core/withType.js.map +1 -1
  489. package/lib/simple-tree/index.d.ts +4 -4
  490. package/lib/simple-tree/index.d.ts.map +1 -1
  491. package/lib/simple-tree/index.js +1 -1
  492. package/lib/simple-tree/index.js.map +1 -1
  493. package/lib/simple-tree/mapNode.d.ts +2 -2
  494. package/lib/simple-tree/mapNode.d.ts.map +1 -1
  495. package/lib/simple-tree/mapNode.js +2 -2
  496. package/lib/simple-tree/mapNode.js.map +1 -1
  497. package/lib/simple-tree/mapNodeTypes.d.ts +3 -3
  498. package/lib/simple-tree/mapNodeTypes.d.ts.map +1 -1
  499. package/lib/simple-tree/mapNodeTypes.js.map +1 -1
  500. package/lib/simple-tree/objectNode.d.ts +18 -5
  501. package/lib/simple-tree/objectNode.d.ts.map +1 -1
  502. package/lib/simple-tree/objectNode.js +5 -4
  503. package/lib/simple-tree/objectNode.js.map +1 -1
  504. package/lib/simple-tree/objectNodeTypes.d.ts +4 -4
  505. package/lib/simple-tree/objectNodeTypes.d.ts.map +1 -1
  506. package/lib/simple-tree/objectNodeTypes.js.map +1 -1
  507. package/lib/simple-tree/schemaTypes.d.ts +164 -13
  508. package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
  509. package/lib/simple-tree/schemaTypes.js +96 -8
  510. package/lib/simple-tree/schemaTypes.js.map +1 -1
  511. package/lib/simple-tree/toStoredSchema.d.ts +8 -8
  512. package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
  513. package/lib/simple-tree/toStoredSchema.js +26 -31
  514. package/lib/simple-tree/toStoredSchema.js.map +1 -1
  515. package/lib/simple-tree/treeNodeValid.js +2 -2
  516. package/lib/simple-tree/treeNodeValid.js.map +1 -1
  517. package/lib/tableSchema.d.ts +455 -125
  518. package/lib/tableSchema.d.ts.map +1 -1
  519. package/lib/tableSchema.js +398 -101
  520. package/lib/tableSchema.js.map +1 -1
  521. package/lib/treeFactory.d.ts +1 -1
  522. package/lib/treeFactory.d.ts.map +1 -1
  523. package/lib/treeFactory.js +30 -75
  524. package/lib/treeFactory.js.map +1 -1
  525. package/lib/util/typeUtils.d.ts +1 -1
  526. package/lib/util/typeUtils.js.map +1 -1
  527. package/package.json +21 -21
  528. package/src/codec/codec.ts +6 -1
  529. package/src/codec/index.ts +1 -0
  530. package/src/core/index.ts +1 -2
  531. package/src/core/schema-stored/index.ts +3 -3
  532. package/src/core/schema-stored/schema.ts +3 -1
  533. package/src/core/schema-stored/storedSchemaRepository.ts +1 -1
  534. package/src/core/schema-view/index.ts +0 -1
  535. package/src/core/schema-view/view.ts +0 -31
  536. package/src/core/tree/persistedTreeTextFormat.ts +2 -2
  537. package/src/feature-libraries/forest-summary/format.ts +2 -2
  538. package/src/feature-libraries/index.ts +7 -1
  539. package/src/feature-libraries/mapTreeCursor.ts +3 -3
  540. package/src/feature-libraries/modular-schema/modularChangeFormat.ts +3 -3
  541. package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +38 -9
  542. package/src/feature-libraries/schema-edits/schemaChangeFormat.ts +3 -4
  543. package/src/feature-libraries/schema-index/codec.ts +80 -12
  544. package/src/feature-libraries/schema-index/{format.ts → formatV1.ts} +4 -4
  545. package/src/feature-libraries/schema-index/index.ts +7 -2
  546. package/src/feature-libraries/schema-index/schemaSummarizer.ts +9 -9
  547. package/src/index.ts +18 -1
  548. package/src/internalTypes.ts +0 -2
  549. package/src/jsonDomainSchema.ts +2 -2
  550. package/src/packageVersion.ts +1 -1
  551. package/src/serializableDomainSchema.ts +3 -3
  552. package/src/shared-tree/independentView.ts +4 -3
  553. package/src/shared-tree/index.ts +5 -6
  554. package/src/shared-tree/schematizeTree.ts +10 -40
  555. package/src/shared-tree/schematizingTreeView.ts +12 -17
  556. package/src/shared-tree/sharedTree.ts +67 -6
  557. package/src/shared-tree/{treeApi.ts → tree.ts} +75 -51
  558. package/src/shared-tree/{treeApiAlpha.ts → treeAlpha.ts} +28 -16
  559. package/src/shared-tree-core/branchCommitEnricher.ts +0 -1
  560. package/src/shared-tree-core/transactionEnricher.ts +4 -1
  561. package/src/simple-tree/api/conciseTree.ts +1 -1
  562. package/src/simple-tree/api/configuration.ts +353 -0
  563. package/src/simple-tree/api/getJsonSchema.ts +1 -1
  564. package/src/simple-tree/api/index.ts +23 -15
  565. package/src/simple-tree/api/{view.ts → schemaCompatibilityTester.ts} +8 -15
  566. package/src/simple-tree/api/schemaFactory.ts +139 -19
  567. package/src/simple-tree/api/schemaFactoryAlpha.ts +7 -5
  568. package/src/simple-tree/api/schemaFactoryRecursive.ts +102 -38
  569. package/src/simple-tree/api/schemaFromSimple.ts +2 -2
  570. package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +1 -1
  571. package/src/simple-tree/api/storedSchema.ts +32 -17
  572. package/src/simple-tree/api/tree.ts +38 -354
  573. package/src/simple-tree/api/{treeApiBeta.ts → treeBeta.ts} +20 -6
  574. package/src/simple-tree/api/treeChangeEvents.ts +84 -0
  575. package/src/simple-tree/api/treeNodeApi.ts +1 -1
  576. package/src/simple-tree/api/typesUnsafe.ts +15 -11
  577. package/src/simple-tree/arrayNode.ts +38 -5
  578. package/src/simple-tree/arrayNodeTypes.ts +8 -7
  579. package/src/simple-tree/core/getOrCreateNode.ts +1 -1
  580. package/src/simple-tree/core/index.ts +5 -4
  581. package/src/simple-tree/core/treeNode.ts +163 -0
  582. package/src/simple-tree/core/treeNodeKernel.ts +2 -1
  583. package/src/simple-tree/core/treeNodeSchema.ts +3 -1
  584. package/src/simple-tree/core/types.ts +0 -234
  585. package/src/simple-tree/core/withType.ts +1 -1
  586. package/src/simple-tree/index.ts +19 -2
  587. package/src/simple-tree/mapNode.ts +11 -3
  588. package/src/simple-tree/mapNodeTypes.ts +10 -7
  589. package/src/simple-tree/objectNode.ts +39 -15
  590. package/src/simple-tree/objectNodeTypes.ts +9 -5
  591. package/src/simple-tree/schemaTypes.ts +354 -25
  592. package/src/simple-tree/toStoredSchema.ts +42 -41
  593. package/src/simple-tree/treeNodeValid.ts +2 -2
  594. package/src/tableSchema.ts +1206 -434
  595. package/src/treeFactory.ts +56 -173
  596. package/src/util/typeUtils.ts +1 -1
  597. package/dist/core/schema-stored/format.d.ts.map +0 -1
  598. package/dist/core/schema-stored/format.js.map +0 -1
  599. package/dist/feature-libraries/schema-index/format.d.ts.map +0 -1
  600. package/dist/feature-libraries/schema-index/format.js.map +0 -1
  601. package/dist/shared-tree/treeApi.d.ts.map +0 -1
  602. package/dist/shared-tree/treeApi.js.map +0 -1
  603. package/dist/shared-tree/treeApiAlpha.d.ts.map +0 -1
  604. package/dist/shared-tree/treeApiAlpha.js.map +0 -1
  605. package/dist/simple-tree/api/treeApiBeta.d.ts.map +0 -1
  606. package/dist/simple-tree/api/treeApiBeta.js.map +0 -1
  607. package/dist/simple-tree/api/view.d.ts.map +0 -1
  608. package/dist/simple-tree/api/view.js.map +0 -1
  609. package/lib/core/schema-stored/format.d.ts.map +0 -1
  610. package/lib/core/schema-stored/format.js.map +0 -1
  611. package/lib/feature-libraries/schema-index/format.d.ts.map +0 -1
  612. package/lib/feature-libraries/schema-index/format.js.map +0 -1
  613. package/lib/shared-tree/treeApi.d.ts.map +0 -1
  614. package/lib/shared-tree/treeApi.js.map +0 -1
  615. package/lib/shared-tree/treeApiAlpha.d.ts.map +0 -1
  616. package/lib/shared-tree/treeApiAlpha.js.map +0 -1
  617. package/lib/simple-tree/api/treeApiBeta.d.ts.map +0 -1
  618. package/lib/simple-tree/api/treeApiBeta.js.map +0 -1
  619. package/lib/simple-tree/api/view.d.ts.map +0 -1
  620. package/lib/simple-tree/api/view.js.map +0 -1
  621. /package/src/core/schema-stored/{format.ts → formatV1.ts} +0 -0
@@ -4,51 +4,71 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.TableSchema = void 0;
7
+ exports.TableSchema = exports.System_TableSchema = void 0;
8
8
  const internal_1 = require("@fluidframework/core-utils/internal");
9
+ const internal_2 = require("@fluidframework/telemetry-utils/internal");
9
10
  const index_js_1 = require("./shared-tree/index.js");
10
11
  const index_js_2 = require("./simple-tree/index.js");
11
- // Future improvement TODOs (ideally to be done before promoting these APIs to `@alpha`):
12
- // - Custom fields on Table/Row/Column (props pattern from Nick's demo)
13
- // - Overloads to make Column/Row schema optional when constructing Tables
12
+ // Future improvement TODOs:
13
+ // - Omit `cells` property from Row insertion type.
14
14
  // - Record-like type parameters / input parameters?
15
- // - Move `@system` types into separate / sub scope?
15
+ // - Omit `props` properties from Row and Column schemas when not provided?
16
+ // Longer-term work:
17
+ // - Add constraint APIs to make it possible to avoid situations that could yield "orphaned" cells.
16
18
  /**
17
- * Contains types and factories for creating schema to represent dynamic tabular data.
18
- * @privateRemarks TODO: document in more detail and add `@example`s.
19
- * @internal
19
+ * The sub-scope applied to user-provided {@link SchemaFactory}s by table schema factories.
20
20
  */
21
- var TableSchema;
22
- (function (TableSchema) {
23
- const tableSchemaFactorySubScope = "table";
21
+ const tableSchemaFactorySubScope = "table";
22
+ /**
23
+ * Not intended for use outside of this package.
24
+ *
25
+ * @privateRemarks
26
+ * This namespace is a collection of internal system types relate to {@link TableSchema}.
27
+ * This namespace should be strictly type-exported by the package.
28
+ * All members should be tagged with `@system`.
29
+ *
30
+ * @system @internal
31
+ */
32
+ var System_TableSchema;
33
+ (function (System_TableSchema) {
24
34
  /**
25
35
  * Factory for creating new table column schema.
26
- * @privateRemarks
27
- * TODO:
28
- * - Add overloads to make propsSchema optional.
29
- * - Take field schema rather than node schema for `propsSchema`, in particular to allow making
30
- * the additional properties optional.
31
- * @internal
36
+ * @system @internal
32
37
  */
33
38
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -- Return type is too complex to be reasonable to specify
34
- function createColumn(inputSchemaFactory, propsSchema) {
39
+ function createColumnInternal(inputSchemaFactory, propsSchema) {
35
40
  const schemaFactory = inputSchemaFactory.scopedFactory(tableSchemaFactorySubScope);
41
+ // Note: `columnFields` is broken into two parts to work around a TypeScript bug
42
+ // that results in broken `.d.ts` output.
43
+ // See definition of `ColumnInsertableType` below.
44
+ const columnFieldsBuiltInParts = {
45
+ id: schemaFactory.identifier,
46
+ };
47
+ const columnFieldsPropsPart = {
48
+ props: propsSchema,
49
+ };
36
50
  /**
37
51
  * {@link Column} fields.
38
- * @remarks Extracted for re-use in returned type signature defined later in this function.
52
+ *
53
+ * @remarks
54
+ * Extracted for re-use in returned type signature defined later in this function.
39
55
  * The implicit typing is intentional.
56
+ *
40
57
  * Note: ideally we would add a satisfies clause here to ensure that this satisfies
41
58
  * `Record<string, ImplicitFieldSchema>`, but doing so causes TypeScript to prematurely and incorrectly evaluate the type of `propsSchema`.
42
59
  * Likely related to the following issue: https://github.com/microsoft/TypeScript/issues/52394
43
60
  */
44
61
  const columnFields = {
45
- id: schemaFactory.identifier,
46
- props: schemaFactory.required(propsSchema),
47
- };
62
+ ...columnFieldsBuiltInParts,
63
+ ...columnFieldsPropsPart,
64
+ }; // satisfies Record<string, ImplicitFieldSchema>;
48
65
  /**
49
66
  * A column in a table.
50
67
  */
51
- class Column extends schemaFactory.object("Column", columnFields) {
68
+ class Column extends schemaFactory.objectAlpha("Column", columnFields, {
69
+ // Will make it easier to evolve this schema in the future.
70
+ allowUnknownOptionalFields: true,
71
+ }) {
52
72
  }
53
73
  // Returning SingletonSchema without a type conversion results in TypeScript generating something like `readonly "__#124291@#brand": unknown;`
54
74
  // for the private brand field of TreeNode.
@@ -58,21 +78,29 @@ var TableSchema;
58
78
  const ColumnSchemaType = Column;
59
79
  return ColumnSchemaType;
60
80
  }
61
- TableSchema.createColumn = createColumn;
81
+ System_TableSchema.createColumnInternal = createColumnInternal;
62
82
  /**
63
83
  * Factory for creating new table row schema.
64
84
  *
65
- * @privateRemarks
66
- * TODO:
67
- * - Add overloads to make propsSchema optional.
68
- * - Take field schema rather than node schema for `propsSchema`, in particular to allow making
69
- * the additional properties optional.
70
- *
71
85
  * @sealed @internal
72
86
  */
73
87
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -- Return type is too complex to be reasonable to specify
74
- function createRow(inputSchemaFactory, cellSchema, propsSchema) {
88
+ function createRowInternal(inputSchemaFactory, cellSchema, propsSchema) {
75
89
  const schemaFactory = inputSchemaFactory.scopedFactory(tableSchemaFactorySubScope);
90
+ // Note: `rowFields` is broken into two parts to work around a TypeScript bug
91
+ // that results in broken `.d.ts` output.
92
+ // See definition of `RowInsertableType` below.
93
+ const rowFieldsBuiltInParts = {
94
+ id: schemaFactory.identifier,
95
+ cells: schemaFactory.required(schemaFactory.map("Row.cells", cellSchema), {
96
+ metadata: {
97
+ description: "The cells of the table row, keyed by column ID.",
98
+ },
99
+ }),
100
+ };
101
+ const rowFieldsPropsPart = {
102
+ props: propsSchema,
103
+ };
76
104
  /**
77
105
  * {@link Row} fields.
78
106
  * @remarks Extracted for re-use in returned type signature defined later in this function.
@@ -82,28 +110,34 @@ var TableSchema;
82
110
  * Likely related to the following issue: https://github.com/microsoft/TypeScript/issues/52394
83
111
  */
84
112
  const rowFields = {
85
- id: schemaFactory.identifier,
86
- cells: schemaFactory.map("Row.cells", cellSchema),
87
- props: schemaFactory.required(propsSchema),
88
- };
113
+ ...rowFieldsBuiltInParts,
114
+ ...rowFieldsPropsPart,
115
+ }; // satisfies Record<string, ImplicitFieldSchema>;
89
116
  /**
90
117
  * The Row schema - this is a map of Cells where the key is the column id
91
118
  */
92
- class Row extends schemaFactory.object("Row", rowFields) {
119
+ class Row extends schemaFactory.objectAlpha("Row", rowFields, {
120
+ // Will make it easier to evolve this schema in the future.
121
+ allowUnknownOptionalFields: true,
122
+ }) {
93
123
  getCell(columnOrId) {
94
124
  const columnId = typeof columnOrId === "string" ? columnOrId : columnOrId.id;
95
125
  return this.cells.get(columnId);
96
126
  }
97
127
  setCell(columnOrId, value) {
128
+ // TODO: throw if column does not exist in the owning table.
98
129
  const columnId = typeof columnOrId === "string" ? columnOrId : columnOrId.id;
99
130
  this.cells.set(columnId, value);
100
131
  }
101
132
  removeCell(columnOrId) {
133
+ // TODO: throw if column does not exist in the owning table.
102
134
  const columnId = typeof columnOrId === "string" ? columnOrId : columnOrId.id;
103
- if (!this.cells.has(columnId)) {
104
- return;
135
+ const cell = this.cells.get(columnId);
136
+ if (cell === undefined) {
137
+ return undefined;
105
138
  }
106
139
  this.cells.delete(columnId);
140
+ return cell;
107
141
  }
108
142
  }
109
143
  // Returning SingletonSchema without a type conversion results in TypeScript generating something like `readonly "__#124291@#brand": unknown;`
@@ -114,14 +148,7 @@ var TableSchema;
114
148
  const RowSchemaType = Row;
115
149
  return RowSchemaType;
116
150
  }
117
- TableSchema.createRow = createRow;
118
- /** `createTable` implementation */
119
- function createTable(inputSchemaFactory, _cellSchema, columnSchema, rowSchema) {
120
- const column = columnSchema ?? createColumn(inputSchemaFactory, inputSchemaFactory.null);
121
- return createTableInternal(inputSchemaFactory, _cellSchema, column, rowSchema ??
122
- createRow(inputSchemaFactory, _cellSchema, inputSchemaFactory.null));
123
- }
124
- TableSchema.createTable = createTable;
151
+ System_TableSchema.createRowInternal = createRowInternal;
125
152
  /**
126
153
  * Factory for creating new table schema.
127
154
  * @system @internal
@@ -141,7 +168,10 @@ var TableSchema;
141
168
  /**
142
169
  * The Table schema
143
170
  */
144
- class Table extends schemaFactory.object("Table", tableFields) {
171
+ class Table extends schemaFactory.objectAlpha("Table", tableFields, {
172
+ // Will make it easier to evolve this schema in the future.
173
+ allowUnknownOptionalFields: true,
174
+ }) {
145
175
  getColumn(id) {
146
176
  // TypeScript is unable to narrow the types correctly here, hence the casts.
147
177
  // See: https://github.com/microsoft/TypeScript/issues/52144
@@ -153,98 +183,245 @@ var TableSchema;
153
183
  return this.rows.find((_row) => _row.id === id);
154
184
  }
155
185
  getCell(key) {
156
- const { columnId, rowId } = key;
157
- const row = this.getRow(rowId);
158
- if (row !== undefined) {
159
- const column = this.getColumn(columnId);
160
- if (column !== undefined) {
161
- return row.getCell(column.id);
162
- }
186
+ const { column: columnOrId, row: rowOrId } = key;
187
+ const row = this._getRow(rowOrId);
188
+ if (row === undefined) {
189
+ return undefined;
163
190
  }
164
- // If the cell does not exist return undefined
165
- return undefined;
191
+ const column = this._getColumn(columnOrId);
192
+ if (column === undefined) {
193
+ return undefined;
194
+ }
195
+ return row.getCell(column);
166
196
  }
167
197
  insertColumn({ column, index, }) {
168
- if (index === undefined) {
169
- // TypeScript is unable to narrow the types correctly here, hence the cast.
198
+ const inserted = this.insertColumns({
199
+ columns: [column],
200
+ index,
201
+ });
202
+ return inserted[0] ?? (0, internal_1.oob)();
203
+ }
204
+ insertColumns({ columns, index, }) {
205
+ // #region Input validation
206
+ // Ensure index is valid
207
+ if (index !== undefined) {
208
+ Table.validateInsertionIndex(index, this.columns);
209
+ }
210
+ // Check all of the columns being inserted an ensure the table does not already contain any with the same ID.
211
+ for (const column of columns) {
212
+ // TypeScript is unable to narrow the type of the column type correctly here, hence the casts below.
170
213
  // See: https://github.com/microsoft/TypeScript/issues/52144
214
+ const maybeId = column.id;
215
+ if (maybeId !== undefined && this.containsColumnWithId(maybeId)) {
216
+ throw new internal_2.UsageError(`A column with ID "${column.id}" already exists in the table.`);
217
+ }
218
+ }
219
+ // #endregion
220
+ // TypeScript is unable to narrow the column type correctly here, hence the casts below.
221
+ // See: https://github.com/microsoft/TypeScript/issues/52144
222
+ if (index === undefined) {
171
223
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
172
- this.columns.insertAtEnd(column);
224
+ this.columns.insertAtEnd(index_js_2.TreeArrayNode.spread(columns));
173
225
  }
174
226
  else {
175
- // TypeScript is unable to narrow the types correctly here, hence the cast.
176
- // See: https://github.com/microsoft/TypeScript/issues/52144
177
227
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
178
- this.columns.insertAt(index, column);
228
+ this.columns.insertAt(index, index_js_2.TreeArrayNode.spread(columns));
179
229
  }
180
- // Inserting the input node into the tree hydrates it, making it usable as a node.
181
- return column;
230
+ // Inserting the input nodes into the tree hydrates them, making them usable as nodes.
231
+ return columns;
232
+ }
233
+ insertRow({ row, index, }) {
234
+ const inserted = this.insertRows({
235
+ rows: [row],
236
+ index,
237
+ });
238
+ return inserted[0] ?? (0, internal_1.oob)();
182
239
  }
183
240
  insertRows({ index, rows, }) {
241
+ // #region Input validation
242
+ // Ensure index is valid
243
+ if (index !== undefined) {
244
+ Table.validateInsertionIndex(index, this.rows);
245
+ }
246
+ // Note: TypeScript is unable to narrow the type of the row type correctly here, hence the casts below.
247
+ // See: https://github.com/microsoft/TypeScript/issues/52144
248
+ for (const newRow of rows) {
249
+ // Check all of the rows being inserted an ensure the table does not already contain any with the same ID.
250
+ const maybeId = newRow.id;
251
+ if (maybeId !== undefined && this.containsRowWithId(maybeId)) {
252
+ throw new internal_2.UsageError(`A row with ID "${newRow.id}" already exists in the table.`);
253
+ }
254
+ // If the row contains cells, verify that the table contains the columns for those cells.
255
+ // Note: we intentionally hide `cells` on `IRow` to avoid leaking the internal data representation as much as possible, so we have to cast here.
256
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
257
+ if (newRow.cells !== undefined) {
258
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
259
+ const keys = Object.keys(newRow.cells);
260
+ for (const key of keys) {
261
+ if (!this.containsColumnWithId(key)) {
262
+ throw new internal_2.UsageError(`Attempted to insert row a cell under column ID "${key}", but the table does not contain a column with that ID.`);
263
+ }
264
+ }
265
+ }
266
+ }
267
+ // #endregion
268
+ // TypeScript is unable to narrow the row type correctly here, hence the casts below.
269
+ // See: https://github.com/microsoft/TypeScript/issues/52144
184
270
  if (index === undefined) {
185
- // TypeScript is unable to narrow the types correctly here, hence the cast.
186
- // See: https://github.com/microsoft/TypeScript/issues/52144
187
271
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
188
272
  this.rows.insertAtEnd(index_js_2.TreeArrayNode.spread(rows));
189
273
  }
190
274
  else {
191
- // TypeScript is unable to narrow the types correctly here, hence the cast.
192
- // See: https://github.com/microsoft/TypeScript/issues/52144
193
275
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
194
276
  this.rows.insertAt(index, index_js_2.TreeArrayNode.spread(rows));
195
277
  }
196
278
  // Inserting the input nodes into the tree hydrates them, making them usable as nodes.
197
279
  return rows;
198
280
  }
199
- setCell({ key, cell }) {
200
- const { columnId, rowId } = key;
201
- const row = this.getRow(rowId);
202
- if (row !== undefined) {
203
- const column = this.getColumn(columnId);
204
- if (column !== undefined) {
205
- row.setCell(column.id, cell);
206
- }
281
+ setCell({ key, cell, }) {
282
+ const { column: columnOrId, row: rowOrId } = key;
283
+ const row = this._getRow(rowOrId);
284
+ if (row === undefined) {
285
+ const rowId = this._getRowId(rowOrId);
286
+ throw new internal_2.UsageError(`No row with ID "${rowId}" exists in the table.`);
207
287
  }
288
+ const column = this._getColumn(columnOrId);
289
+ if (column === undefined) {
290
+ const columnId = this._getColumnId(columnOrId);
291
+ throw new internal_2.UsageError(`No column with ID "${columnId}" exists in the table.`);
292
+ }
293
+ row.setCell(column, cell);
294
+ }
295
+ removeColumns(columns) {
296
+ // If there are no columns to remove, do nothing
297
+ if (columns.length === 0) {
298
+ return [];
299
+ }
300
+ // If there is only one column to remove, remove it (and don't incur cost of transaction)
301
+ if (columns.length === 1) {
302
+ const removedColumn = this.removeColumn(columns[0] ?? (0, internal_1.oob)());
303
+ return [removedColumn];
304
+ }
305
+ // If there are multiple columns to remove, remove them in a transaction.
306
+ const removedColumns = [];
307
+ index_js_1.Tree.runTransaction(this, () => {
308
+ // Note, throwing an error within a transaction will abort the entire transaction.
309
+ // So if we throw an error here for any row, no columns will be removed.
310
+ for (const columnToRemove of columns) {
311
+ const removedRow = this.removeColumn(columnToRemove);
312
+ removedColumns.push(removedRow);
313
+ }
314
+ });
315
+ return removedColumns;
208
316
  }
209
- removeColumn(column) {
210
- const index = this.columns.indexOf(column);
211
- // If the column is not in the table, do nothing
212
- if (index === -1)
213
- return;
317
+ removeColumn(columnOrId) {
318
+ const column = this._getColumn(columnOrId);
319
+ const index = column === undefined ? -1 : this.columns.indexOf(column);
320
+ if (index === -1) {
321
+ const columnId = this._getColumnId(columnOrId);
322
+ throw new internal_2.UsageError(`Specified column with ID "${columnId}" does not exist in the table.`);
323
+ }
214
324
  this.columns.removeAt(index);
325
+ return column;
326
+ }
327
+ removeAllColumns() {
328
+ // TypeScript is unable to narrow the row type correctly here, hence the cast.
329
+ // See: https://github.com/microsoft/TypeScript/issues/52144
330
+ return this.removeColumns(this.columns);
215
331
  }
216
332
  removeRows(rows) {
217
333
  // If there are no rows to remove, do nothing
218
334
  if (rows.length === 0) {
219
- return;
335
+ return [];
220
336
  }
221
- // If there is only one row to remove, remove it
337
+ // If there is only one row to remove, remove it (and don't incur cost of transaction)
222
338
  if (rows.length === 1) {
223
- const index = this.rows.indexOf(rows[0] ?? (0, internal_1.oob)());
224
- this.rows.removeAt(index);
225
- return;
339
+ const removedRow = this.removeRow(rows[0] ?? (0, internal_1.oob)());
340
+ return [removedRow];
226
341
  }
227
- // If there are multiple rows to remove, remove them in a transaction
228
- // This is to avoid the performance issues of deleting multiple rows at once
342
+ // If there are multiple rows to remove, remove them in a transaction.
343
+ const removedRows = [];
229
344
  index_js_1.Tree.runTransaction(this, () => {
230
- // Iterate over the rows and remove them
231
- for (const row of rows) {
232
- const index = this.rows.indexOf(row);
233
- this.rows.removeAt(index);
345
+ // Note, throwing an error within a transaction will abort the entire transaction.
346
+ // So if we throw an error here for any row, no rows will be removed.
347
+ for (const rowToRemove of rows) {
348
+ const removedRow = this.removeRow(rowToRemove);
349
+ removedRows.push(removedRow);
234
350
  }
235
351
  });
352
+ return removedRows;
353
+ }
354
+ removeRow(rowOrId) {
355
+ const rowToRemove = this._getRow(rowOrId);
356
+ const index = rowToRemove === undefined ? -1 : this.rows.indexOf(rowToRemove);
357
+ // If the row does not exist in the table, throw an error.
358
+ if (index === -1) {
359
+ const rowId = this._getRowId(rowOrId);
360
+ throw new internal_2.UsageError(`Specified row with ID "${rowId}" does not exist in the table.`);
361
+ }
362
+ this.rows.removeAt(index);
363
+ return rowToRemove;
236
364
  }
237
365
  removeAllRows() {
238
- this.rows.removeRange();
366
+ // TypeScript is unable to narrow the row type correctly here, hence the cast.
367
+ // See: https://github.com/microsoft/TypeScript/issues/52144
368
+ return this.removeRows(this.rows);
239
369
  }
240
370
  removeCell(key) {
241
- const { columnId, rowId } = key;
242
- const row = this.getRow(rowId);
243
- if (row !== undefined) {
244
- const column = this.getColumn(columnId);
245
- if (column !== undefined) {
246
- row.removeCell(column.id);
247
- }
371
+ const { column: columnOrId, row: rowOrId } = key;
372
+ const row = this._getRow(rowOrId);
373
+ if (row === undefined) {
374
+ const rowId = this._getRowId(rowOrId);
375
+ throw new internal_2.UsageError(`Specified row with ID "${rowId}" does not exist in the table.`);
376
+ }
377
+ const column = this._getColumn(columnOrId);
378
+ if (column === undefined) {
379
+ const columnId = this._getColumnId(columnOrId);
380
+ throw new internal_2.UsageError(`Specified column with ID "${columnId}" does not exist in the table.`);
381
+ }
382
+ const cell = row.getCell(column.id);
383
+ if (cell === undefined) {
384
+ return undefined;
385
+ }
386
+ row.removeCell(column.id);
387
+ return cell;
388
+ }
389
+ _getColumn(columnOrId) {
390
+ return typeof columnOrId === "string" ? this.getColumn(columnOrId) : columnOrId;
391
+ }
392
+ _getColumnId(columnOrId) {
393
+ return typeof columnOrId === "string" ? columnOrId : columnOrId.id;
394
+ }
395
+ _getRow(rowOrId) {
396
+ return typeof rowOrId === "string" ? this.getRow(rowOrId) : rowOrId;
397
+ }
398
+ _getRowId(rowOrId) {
399
+ return typeof rowOrId === "string" ? rowOrId : rowOrId.id;
400
+ }
401
+ containsColumnWithId(columnId) {
402
+ // TypeScript is unable to narrow the types correctly here, hence the cast.
403
+ // See: https://github.com/microsoft/TypeScript/issues/52144
404
+ return (this.columns.find((column) => column.id === columnId) !==
405
+ undefined);
406
+ }
407
+ containsRowWithId(rowId) {
408
+ // TypeScript is unable to narrow the types correctly here, hence the cast.
409
+ // See: https://github.com/microsoft/TypeScript/issues/52144
410
+ return this.rows.find((row) => row.id === rowId) !== undefined;
411
+ }
412
+ /**
413
+ * Ensure that the specified index is a valid location for item insertion in the destination list.
414
+ * @throws Throws a usage error if the destination is invalid.
415
+ */
416
+ static validateInsertionIndex(index, destinationList) {
417
+ if (index < 0) {
418
+ throw new internal_2.UsageError("The index must be greater than or equal to 0.");
419
+ }
420
+ if (index > destinationList.length) {
421
+ throw new internal_2.UsageError("The index specified for insertion is out of bounds.");
422
+ }
423
+ if (!Number.isInteger(index)) {
424
+ throw new internal_2.UsageError("The index must be an integer.");
248
425
  }
249
426
  }
250
427
  }
@@ -257,7 +434,127 @@ var TableSchema;
257
434
  // Return the table schema
258
435
  return TableSchemaType;
259
436
  }
260
- TableSchema.createTableInternal = createTableInternal;
437
+ System_TableSchema.createTableInternal = createTableInternal;
438
+ // #endregion
439
+ })(System_TableSchema || (exports.System_TableSchema = System_TableSchema = {}));
440
+ /**
441
+ * Contains types and factories for creating schema to represent dynamic tabular data.
442
+ *
443
+ * @remarks
444
+ *
445
+ * Tables created using these APIs are...
446
+ *
447
+ * - sparse, meaning that cells may be omitted, and new rows are empty by default.
448
+ *
449
+ * - dynamic, meaning that their structure can be modified at runtime.
450
+ * Columns and rows can be inserted, removed, modified, and reordered.
451
+ * Cells can be inserted, removed, and modified.
452
+ *
453
+ * - row-major, meaning that operating on rows (including inserts, removal, moves, and traversal) is more efficient than operating on columns.
454
+ *
455
+ * Column and Row schema created using these APIs are extensible via the `props` field.
456
+ * This allows association of additional properties with column and row nodes.
457
+ *
458
+ * Note: for now it is possible for table cells to become "orphaned".
459
+ * That is, it is possible to enter a state where one or more rows contain cells with no corresponding column.
460
+ * To help avoid this situation, you can manually remove corresponding cells when removing columns.
461
+ * Either way, it is possible to enter such a state via the merging of edits.
462
+ * For example: one client might add a row while another concurrently removes a column, orphaning the cell where the column and row intersected.
463
+ *
464
+ * @example Using default Column and Row schema
465
+ *
466
+ * ```typescript
467
+ * class Cell extends schemaFactory.object("TableCell", {
468
+ * value: schemaFactory.string,
469
+ * }) {}
470
+ *
471
+ * class Table extends TableSchema.createTable({
472
+ * schemaFactory,
473
+ * cell: Cell,
474
+ * }) {}
475
+ *
476
+ * const table = new Table({
477
+ * columns: [{ id: "column-0" }],
478
+ * rows: [{ id: "row-0", cells: {} }],
479
+ * });
480
+ * ```
481
+ *
482
+ * @example Customizing Column and Row schema
483
+ *
484
+ * ```typescript
485
+ * class Cell extends schemaFactory.object("TableCell", {
486
+ * value: schemaFactory.string,
487
+ * }) {}
488
+ *
489
+ * class ColumnProps extends schemaFactory.object("TableColumnProps", {
490
+ * // Column label to display.
491
+ * label: schemaFactory.string,
492
+ * // The type of data represented by the cells. Default: string.
493
+ * dataType: schemaFactory.optional(schemaFactory.string),
494
+ * }) {}
495
+ *
496
+ * class Column extends TableSchema.createColumn({
497
+ * schemaFactory,
498
+ * props: ColumnProps,
499
+ * }) {}
500
+ *
501
+ * class Row extends TableSchema.createRow({
502
+ * schemaFactory,
503
+ * cell: Cell,
504
+ * }) {}
505
+ *
506
+ * class Table extends TableSchema.createTable({
507
+ * schemaFactory,
508
+ * cell: Cell,
509
+ * column: Column,
510
+ * row: Row,
511
+ * }) {}
512
+ *
513
+ * const table = new Table({
514
+ * columns: [
515
+ * new Column({ props: { label: "Entry", dataType: "string" } }),
516
+ * new Column({ props: { label: "Date", dataType: "date" } }),
517
+ * new Column({ props: { label: "Amount", dataType: "number" } }),
518
+ * ],
519
+ * rows: [],
520
+ * });
521
+ * ```
522
+ *
523
+ * @privateRemarks
524
+ * The above examples are backed by tests in `tableSchema.spec.ts`.
525
+ * Those tests and these examples should be kept in-sync to ensure that the examples are correct.
526
+ *
527
+ * @internal
528
+ */
529
+ var TableSchema;
530
+ (function (TableSchema) {
531
+ // #region Column
532
+ /**
533
+ * Overload implementation
534
+ */
535
+ function createColumn({ schemaFactory, props = index_js_2.SchemaFactory.optional(index_js_2.SchemaFactory.null), }) {
536
+ return System_TableSchema.createColumnInternal(schemaFactory, props);
537
+ }
538
+ TableSchema.createColumn = createColumn;
539
+ /**
540
+ * Overload implementation
541
+ */
542
+ function createRow({ schemaFactory, cell, props = index_js_2.SchemaFactory.optional(index_js_2.SchemaFactory.null), }) {
543
+ return System_TableSchema.createRowInternal(schemaFactory, cell, props);
544
+ }
545
+ TableSchema.createRow = createRow;
546
+ /**
547
+ * Overload implementation
548
+ */
549
+ function createTable({ schemaFactory, cell, column = createColumn({
550
+ schemaFactory,
551
+ }), row = createRow({
552
+ schemaFactory,
553
+ cell,
554
+ }), }) {
555
+ return System_TableSchema.createTableInternal(schemaFactory, cell, column, row);
556
+ }
557
+ TableSchema.createTable = createTable;
261
558
  // #endregion
262
559
  })(TableSchema || (exports.TableSchema = TableSchema = {}));
263
560
  //# sourceMappingURL=tableSchema.js.map