@fluidframework/tree 2.53.1 → 2.60.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 (424) hide show
  1. package/.eslintrc.cjs +0 -19
  2. package/.mocharc.customBenchmarks.cjs +1 -9
  3. package/CHANGELOG.md +56 -0
  4. package/api-report/tree.alpha.api.md +50 -36
  5. package/api-report/tree.beta.api.md +15 -1
  6. package/api-report/{tree.legacy.alpha.api.md → tree.legacy.beta.api.md} +5 -5
  7. package/api-report/tree.legacy.public.api.md +1 -1
  8. package/api-report/tree.public.api.md +1 -1
  9. package/dist/alpha.d.ts +8 -2
  10. package/dist/beta.d.ts +3 -0
  11. package/dist/codec/codec.d.ts +43 -6
  12. package/dist/codec/codec.d.ts.map +1 -1
  13. package/dist/codec/codec.js +22 -2
  14. package/dist/codec/codec.js.map +1 -1
  15. package/dist/codec/index.d.ts +1 -1
  16. package/dist/codec/index.d.ts.map +1 -1
  17. package/dist/codec/index.js +4 -1
  18. package/dist/codec/index.js.map +1 -1
  19. package/dist/external-utilities/index.d.ts +1 -1
  20. package/dist/external-utilities/index.d.ts.map +1 -1
  21. package/dist/external-utilities/index.js +2 -1
  22. package/dist/external-utilities/index.js.map +1 -1
  23. package/dist/external-utilities/typeboxValidator.d.ts +6 -1
  24. package/dist/external-utilities/typeboxValidator.d.ts.map +1 -1
  25. package/dist/external-utilities/typeboxValidator.js +7 -1
  26. package/dist/external-utilities/typeboxValidator.js.map +1 -1
  27. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +10 -1
  28. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  29. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +28 -5
  30. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  31. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +19 -2
  32. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
  33. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +10 -2
  34. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
  35. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +59 -4
  36. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  37. package/dist/feature-libraries/chunked-forest/codec/codecs.js +9 -2
  38. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  39. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +46 -8
  40. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  41. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +91 -16
  42. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  43. package/dist/feature-libraries/chunked-forest/codec/format.d.ts +14 -0
  44. package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  45. package/dist/feature-libraries/chunked-forest/codec/format.js +10 -1
  46. package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  47. package/dist/feature-libraries/chunked-forest/codec/index.d.ts +1 -1
  48. package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
  49. package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -1
  50. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts +8 -3
  51. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
  52. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +17 -6
  53. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
  54. package/dist/feature-libraries/chunked-forest/index.d.ts +1 -1
  55. package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -1
  56. package/dist/feature-libraries/chunked-forest/index.js.map +1 -1
  57. package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  58. package/dist/feature-libraries/forest-summary/codec.js +3 -0
  59. package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
  60. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +13 -8
  61. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  62. package/dist/feature-libraries/forest-summary/forestSummarizer.js +76 -38
  63. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  64. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +178 -0
  65. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -0
  66. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js +322 -0
  67. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -0
  68. package/dist/feature-libraries/forest-summary/index.d.ts +1 -1
  69. package/dist/feature-libraries/forest-summary/index.d.ts.map +1 -1
  70. package/dist/feature-libraries/forest-summary/index.js +2 -1
  71. package/dist/feature-libraries/forest-summary/index.js.map +1 -1
  72. package/dist/feature-libraries/index.d.ts +1 -1
  73. package/dist/feature-libraries/index.d.ts.map +1 -1
  74. package/dist/feature-libraries/index.js +2 -1
  75. package/dist/feature-libraries/index.js.map +1 -1
  76. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
  77. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  78. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +1 -1
  79. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  80. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +6 -9
  81. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  82. package/dist/feature-libraries/treeCompressionUtils.d.ts +15 -0
  83. package/dist/feature-libraries/treeCompressionUtils.d.ts.map +1 -1
  84. package/dist/feature-libraries/treeCompressionUtils.js +16 -1
  85. package/dist/feature-libraries/treeCompressionUtils.js.map +1 -1
  86. package/dist/index.d.ts +3 -3
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +6 -2
  89. package/dist/index.js.map +1 -1
  90. package/dist/jsonDomainSchema.d.ts +1 -1
  91. package/dist/jsonDomainSchema.d.ts.map +1 -1
  92. package/dist/packageVersion.d.ts +1 -1
  93. package/dist/packageVersion.js +1 -1
  94. package/dist/packageVersion.js.map +1 -1
  95. package/dist/shared-tree/schematizingTreeView.d.ts +1 -1
  96. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  97. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  98. package/dist/shared-tree/sharedTree.d.ts +23 -6
  99. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  100. package/dist/shared-tree/sharedTree.js +4 -1
  101. package/dist/shared-tree/sharedTree.js.map +1 -1
  102. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
  103. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  104. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  105. package/dist/shared-tree/tree.d.ts.map +1 -1
  106. package/dist/shared-tree/tree.js +3 -0
  107. package/dist/shared-tree/tree.js.map +1 -1
  108. package/dist/shared-tree/treeAlpha.d.ts +9 -11
  109. package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
  110. package/dist/shared-tree/treeAlpha.js.map +1 -1
  111. package/dist/shared-tree/treeCheckout.d.ts +2 -2
  112. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  113. package/dist/shared-tree/treeCheckout.js.map +1 -1
  114. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  115. package/dist/shared-tree-core/sharedTreeCore.js +13 -0
  116. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  117. package/dist/sharedTreeAttributes.d.ts +2 -2
  118. package/dist/sharedTreeAttributes.js +2 -2
  119. package/dist/sharedTreeAttributes.js.map +1 -1
  120. package/dist/simple-tree/api/conciseTree.d.ts.map +1 -1
  121. package/dist/simple-tree/api/conciseTree.js +1 -1
  122. package/dist/simple-tree/api/conciseTree.js.map +1 -1
  123. package/dist/simple-tree/api/customTree.d.ts +39 -11
  124. package/dist/simple-tree/api/customTree.d.ts.map +1 -1
  125. package/dist/simple-tree/api/customTree.js +79 -19
  126. package/dist/simple-tree/api/customTree.js.map +1 -1
  127. package/dist/simple-tree/api/getJsonSchema.d.ts +7 -2
  128. package/dist/simple-tree/api/getJsonSchema.d.ts.map +1 -1
  129. package/dist/simple-tree/api/getJsonSchema.js +1 -0
  130. package/dist/simple-tree/api/getJsonSchema.js.map +1 -1
  131. package/dist/simple-tree/api/index.d.ts +2 -1
  132. package/dist/simple-tree/api/index.d.ts.map +1 -1
  133. package/dist/simple-tree/api/index.js +4 -1
  134. package/dist/simple-tree/api/index.js.map +1 -1
  135. package/dist/simple-tree/api/schemaCreationUtilities.d.ts +1 -1
  136. package/dist/simple-tree/api/schemaCreationUtilities.js +1 -1
  137. package/dist/simple-tree/api/schemaCreationUtilities.js.map +1 -1
  138. package/dist/simple-tree/api/schemaFactory.d.ts +9 -6
  139. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  140. package/dist/simple-tree/api/schemaFactory.js +8 -7
  141. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  142. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +13 -17
  143. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  144. package/dist/simple-tree/api/schemaFactoryAlpha.js +21 -25
  145. package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  146. package/dist/simple-tree/api/schemaFactoryBeta.d.ts +20 -0
  147. package/dist/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -0
  148. package/dist/simple-tree/api/schemaFactoryBeta.js +26 -0
  149. package/dist/simple-tree/api/schemaFactoryBeta.js.map +1 -0
  150. package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts +0 -2
  151. package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
  152. package/dist/simple-tree/api/simpleSchemaToJsonSchema.js +6 -3
  153. package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
  154. package/dist/simple-tree/api/transactionTypes.d.ts +1 -0
  155. package/dist/simple-tree/api/transactionTypes.d.ts.map +1 -1
  156. package/dist/simple-tree/api/transactionTypes.js.map +1 -1
  157. package/dist/simple-tree/api/tree.d.ts +68 -74
  158. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  159. package/dist/simple-tree/api/tree.js.map +1 -1
  160. package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
  161. package/dist/simple-tree/api/verboseTree.js +3 -3
  162. package/dist/simple-tree/api/verboseTree.js.map +1 -1
  163. package/dist/simple-tree/core/simpleNodeSchemaBase.d.ts +6 -0
  164. package/dist/simple-tree/core/simpleNodeSchemaBase.d.ts.map +1 -1
  165. package/dist/simple-tree/core/simpleNodeSchemaBase.js.map +1 -1
  166. package/dist/simple-tree/fieldSchema.d.ts +3 -4
  167. package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
  168. package/dist/simple-tree/fieldSchema.js +0 -3
  169. package/dist/simple-tree/fieldSchema.js.map +1 -1
  170. package/dist/simple-tree/index.d.ts +1 -1
  171. package/dist/simple-tree/index.d.ts.map +1 -1
  172. package/dist/simple-tree/index.js +4 -2
  173. package/dist/simple-tree/index.js.map +1 -1
  174. package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  175. package/dist/simple-tree/node-kinds/record/recordNode.js +2 -3
  176. package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  177. package/dist/simple-tree/simpleSchema.d.ts +12 -0
  178. package/dist/simple-tree/simpleSchema.d.ts.map +1 -1
  179. package/dist/simple-tree/simpleSchema.js.map +1 -1
  180. package/dist/simple-tree/toStoredSchema.d.ts +0 -3
  181. package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
  182. package/dist/simple-tree/toStoredSchema.js +0 -3
  183. package/dist/simple-tree/toStoredSchema.js.map +1 -1
  184. package/dist/tableSchema.d.ts +11 -80
  185. package/dist/tableSchema.d.ts.map +1 -1
  186. package/dist/tableSchema.js +200 -117
  187. package/dist/tableSchema.js.map +1 -1
  188. package/dist/treeFactory.d.ts +1 -2
  189. package/dist/treeFactory.d.ts.map +1 -1
  190. package/dist/treeFactory.js +1 -2
  191. package/dist/treeFactory.js.map +1 -1
  192. package/lib/alpha.d.ts +8 -2
  193. package/lib/beta.d.ts +3 -0
  194. package/lib/codec/codec.d.ts +43 -6
  195. package/lib/codec/codec.d.ts.map +1 -1
  196. package/lib/codec/codec.js +19 -1
  197. package/lib/codec/codec.js.map +1 -1
  198. package/lib/codec/index.d.ts +1 -1
  199. package/lib/codec/index.d.ts.map +1 -1
  200. package/lib/codec/index.js +1 -1
  201. package/lib/codec/index.js.map +1 -1
  202. package/lib/external-utilities/index.d.ts +1 -1
  203. package/lib/external-utilities/index.d.ts.map +1 -1
  204. package/lib/external-utilities/index.js +1 -1
  205. package/lib/external-utilities/index.js.map +1 -1
  206. package/lib/external-utilities/typeboxValidator.d.ts +6 -1
  207. package/lib/external-utilities/typeboxValidator.d.ts.map +1 -1
  208. package/lib/external-utilities/typeboxValidator.js +6 -0
  209. package/lib/external-utilities/typeboxValidator.js.map +1 -1
  210. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +10 -1
  211. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  212. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +27 -5
  213. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  214. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +19 -2
  215. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
  216. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +10 -2
  217. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
  218. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +59 -4
  219. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  220. package/lib/feature-libraries/chunked-forest/codec/codecs.js +10 -3
  221. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  222. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +46 -8
  223. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  224. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +87 -14
  225. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  226. package/lib/feature-libraries/chunked-forest/codec/format.d.ts +14 -0
  227. package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  228. package/lib/feature-libraries/chunked-forest/codec/format.js +9 -0
  229. package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  230. package/lib/feature-libraries/chunked-forest/codec/index.d.ts +1 -1
  231. package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
  232. package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -1
  233. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts +8 -3
  234. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
  235. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +18 -7
  236. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
  237. package/lib/feature-libraries/chunked-forest/index.d.ts +1 -1
  238. package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -1
  239. package/lib/feature-libraries/chunked-forest/index.js.map +1 -1
  240. package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  241. package/lib/feature-libraries/forest-summary/codec.js +3 -0
  242. package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
  243. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +13 -8
  244. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  245. package/lib/feature-libraries/forest-summary/forestSummarizer.js +75 -37
  246. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  247. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +178 -0
  248. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -0
  249. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js +318 -0
  250. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -0
  251. package/lib/feature-libraries/forest-summary/index.d.ts +1 -1
  252. package/lib/feature-libraries/forest-summary/index.d.ts.map +1 -1
  253. package/lib/feature-libraries/forest-summary/index.js +1 -1
  254. package/lib/feature-libraries/forest-summary/index.js.map +1 -1
  255. package/lib/feature-libraries/index.d.ts +1 -1
  256. package/lib/feature-libraries/index.d.ts.map +1 -1
  257. package/lib/feature-libraries/index.js +1 -1
  258. package/lib/feature-libraries/index.js.map +1 -1
  259. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
  260. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  261. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +3 -3
  262. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  263. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +6 -9
  264. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  265. package/lib/feature-libraries/treeCompressionUtils.d.ts +15 -0
  266. package/lib/feature-libraries/treeCompressionUtils.d.ts.map +1 -1
  267. package/lib/feature-libraries/treeCompressionUtils.js +15 -0
  268. package/lib/feature-libraries/treeCompressionUtils.js.map +1 -1
  269. package/lib/index.d.ts +3 -3
  270. package/lib/index.d.ts.map +1 -1
  271. package/lib/index.js +4 -4
  272. package/lib/index.js.map +1 -1
  273. package/lib/jsonDomainSchema.d.ts +1 -1
  274. package/lib/jsonDomainSchema.d.ts.map +1 -1
  275. package/lib/packageVersion.d.ts +1 -1
  276. package/lib/packageVersion.js +1 -1
  277. package/lib/packageVersion.js.map +1 -1
  278. package/lib/shared-tree/schematizingTreeView.d.ts +1 -1
  279. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  280. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  281. package/lib/shared-tree/sharedTree.d.ts +23 -6
  282. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  283. package/lib/shared-tree/sharedTree.js +4 -1
  284. package/lib/shared-tree/sharedTree.js.map +1 -1
  285. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
  286. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  287. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  288. package/lib/shared-tree/tree.d.ts.map +1 -1
  289. package/lib/shared-tree/tree.js +3 -0
  290. package/lib/shared-tree/tree.js.map +1 -1
  291. package/lib/shared-tree/treeAlpha.d.ts +9 -11
  292. package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
  293. package/lib/shared-tree/treeAlpha.js.map +1 -1
  294. package/lib/shared-tree/treeCheckout.d.ts +2 -2
  295. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  296. package/lib/shared-tree/treeCheckout.js.map +1 -1
  297. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  298. package/lib/shared-tree-core/sharedTreeCore.js +13 -0
  299. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  300. package/lib/sharedTreeAttributes.d.ts +2 -2
  301. package/lib/sharedTreeAttributes.js +2 -2
  302. package/lib/sharedTreeAttributes.js.map +1 -1
  303. package/lib/simple-tree/api/conciseTree.d.ts.map +1 -1
  304. package/lib/simple-tree/api/conciseTree.js +2 -2
  305. package/lib/simple-tree/api/conciseTree.js.map +1 -1
  306. package/lib/simple-tree/api/customTree.d.ts +39 -11
  307. package/lib/simple-tree/api/customTree.d.ts.map +1 -1
  308. package/lib/simple-tree/api/customTree.js +79 -19
  309. package/lib/simple-tree/api/customTree.js.map +1 -1
  310. package/lib/simple-tree/api/getJsonSchema.d.ts +7 -2
  311. package/lib/simple-tree/api/getJsonSchema.d.ts.map +1 -1
  312. package/lib/simple-tree/api/getJsonSchema.js +1 -0
  313. package/lib/simple-tree/api/getJsonSchema.js.map +1 -1
  314. package/lib/simple-tree/api/index.d.ts +2 -1
  315. package/lib/simple-tree/api/index.d.ts.map +1 -1
  316. package/lib/simple-tree/api/index.js +2 -1
  317. package/lib/simple-tree/api/index.js.map +1 -1
  318. package/lib/simple-tree/api/schemaCreationUtilities.d.ts +1 -1
  319. package/lib/simple-tree/api/schemaCreationUtilities.js +1 -1
  320. package/lib/simple-tree/api/schemaCreationUtilities.js.map +1 -1
  321. package/lib/simple-tree/api/schemaFactory.d.ts +9 -6
  322. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  323. package/lib/simple-tree/api/schemaFactory.js +6 -6
  324. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  325. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +13 -17
  326. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  327. package/lib/simple-tree/api/schemaFactoryAlpha.js +22 -26
  328. package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  329. package/lib/simple-tree/api/schemaFactoryBeta.d.ts +20 -0
  330. package/lib/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -0
  331. package/lib/simple-tree/api/schemaFactoryBeta.js +22 -0
  332. package/lib/simple-tree/api/schemaFactoryBeta.js.map +1 -0
  333. package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts +0 -2
  334. package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
  335. package/lib/simple-tree/api/simpleSchemaToJsonSchema.js +6 -3
  336. package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
  337. package/lib/simple-tree/api/transactionTypes.d.ts +1 -0
  338. package/lib/simple-tree/api/transactionTypes.d.ts.map +1 -1
  339. package/lib/simple-tree/api/transactionTypes.js.map +1 -1
  340. package/lib/simple-tree/api/tree.d.ts +68 -74
  341. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  342. package/lib/simple-tree/api/tree.js.map +1 -1
  343. package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
  344. package/lib/simple-tree/api/verboseTree.js +4 -4
  345. package/lib/simple-tree/api/verboseTree.js.map +1 -1
  346. package/lib/simple-tree/core/simpleNodeSchemaBase.d.ts +6 -0
  347. package/lib/simple-tree/core/simpleNodeSchemaBase.d.ts.map +1 -1
  348. package/lib/simple-tree/core/simpleNodeSchemaBase.js.map +1 -1
  349. package/lib/simple-tree/fieldSchema.d.ts +3 -4
  350. package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
  351. package/lib/simple-tree/fieldSchema.js +0 -3
  352. package/lib/simple-tree/fieldSchema.js.map +1 -1
  353. package/lib/simple-tree/index.d.ts +1 -1
  354. package/lib/simple-tree/index.d.ts.map +1 -1
  355. package/lib/simple-tree/index.js +1 -1
  356. package/lib/simple-tree/index.js.map +1 -1
  357. package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  358. package/lib/simple-tree/node-kinds/record/recordNode.js +2 -3
  359. package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  360. package/lib/simple-tree/simpleSchema.d.ts +12 -0
  361. package/lib/simple-tree/simpleSchema.d.ts.map +1 -1
  362. package/lib/simple-tree/simpleSchema.js.map +1 -1
  363. package/lib/simple-tree/toStoredSchema.d.ts +0 -3
  364. package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
  365. package/lib/simple-tree/toStoredSchema.js +0 -3
  366. package/lib/simple-tree/toStoredSchema.js.map +1 -1
  367. package/lib/tableSchema.d.ts +11 -80
  368. package/lib/tableSchema.d.ts.map +1 -1
  369. package/lib/tableSchema.js +201 -118
  370. package/lib/tableSchema.js.map +1 -1
  371. package/lib/treeFactory.d.ts +1 -2
  372. package/lib/treeFactory.d.ts.map +1 -1
  373. package/lib/treeFactory.js +1 -2
  374. package/lib/treeFactory.js.map +1 -1
  375. package/package.json +21 -21
  376. package/src/codec/codec.ts +52 -7
  377. package/src/codec/index.ts +4 -0
  378. package/src/external-utilities/index.ts +1 -1
  379. package/src/external-utilities/typeboxValidator.ts +7 -1
  380. package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +38 -4
  381. package/src/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.ts +10 -3
  382. package/src/feature-libraries/chunked-forest/codec/codecs.ts +96 -8
  383. package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +123 -19
  384. package/src/feature-libraries/chunked-forest/codec/format.ts +11 -0
  385. package/src/feature-libraries/chunked-forest/codec/index.ts +4 -0
  386. package/src/feature-libraries/chunked-forest/codec/schemaBasedEncode.ts +28 -3
  387. package/src/feature-libraries/chunked-forest/index.ts +2 -0
  388. package/src/feature-libraries/forest-summary/codec.ts +3 -0
  389. package/src/feature-libraries/forest-summary/forestSummarizer.ts +118 -50
  390. package/src/feature-libraries/forest-summary/incrementalSummaryBuilder.ts +511 -0
  391. package/src/feature-libraries/forest-summary/index.ts +1 -1
  392. package/src/feature-libraries/index.ts +5 -1
  393. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +8 -4
  394. package/src/feature-libraries/treeCompressionUtils.ts +19 -0
  395. package/src/index.ts +6 -1
  396. package/src/packageVersion.ts +1 -1
  397. package/src/shared-tree/schematizingTreeView.ts +1 -1
  398. package/src/shared-tree/sharedTree.ts +37 -4
  399. package/src/shared-tree/sharedTreeChangeFamily.ts +2 -2
  400. package/src/shared-tree/tree.ts +3 -0
  401. package/src/shared-tree/treeAlpha.ts +10 -11
  402. package/src/shared-tree/treeCheckout.ts +2 -2
  403. package/src/shared-tree-core/sharedTreeCore.ts +17 -0
  404. package/src/sharedTreeAttributes.ts +2 -2
  405. package/src/simple-tree/api/conciseTree.ts +2 -1
  406. package/src/simple-tree/api/customTree.ts +102 -32
  407. package/src/simple-tree/api/getJsonSchema.ts +7 -2
  408. package/src/simple-tree/api/index.ts +3 -0
  409. package/src/simple-tree/api/schemaCreationUtilities.ts +1 -1
  410. package/src/simple-tree/api/schemaFactory.ts +21 -14
  411. package/src/simple-tree/api/schemaFactoryAlpha.ts +29 -30
  412. package/src/simple-tree/api/schemaFactoryBeta.ts +28 -0
  413. package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +7 -3
  414. package/src/simple-tree/api/transactionTypes.ts +1 -0
  415. package/src/simple-tree/api/tree.ts +75 -81
  416. package/src/simple-tree/api/verboseTree.ts +42 -39
  417. package/src/simple-tree/core/simpleNodeSchemaBase.ts +6 -0
  418. package/src/simple-tree/fieldSchema.ts +3 -4
  419. package/src/simple-tree/index.ts +3 -0
  420. package/src/simple-tree/node-kinds/record/recordNode.ts +2 -3
  421. package/src/simple-tree/simpleSchema.ts +12 -0
  422. package/src/simple-tree/toStoredSchema.ts +0 -3
  423. package/src/tableSchema.ts +261 -243
  424. package/src/treeFactory.ts +1 -2
@@ -420,21 +420,6 @@ export declare namespace TableSchema {
420
420
  */
421
421
  readonly row: string | TreeNodeFromImplicitAllowedTypes<TRow>;
422
422
  }
423
- /**
424
- * {@link TableSchema.Table.insertColumn} parameters.
425
- * @alpha
426
- */
427
- interface InsertColumnParameters<TColumn extends ImplicitAllowedTypes> {
428
- /**
429
- * The index at which to insert the new column.
430
- * @remarks If not provided, the column will be appended to the end of the table.
431
- */
432
- readonly index?: number | undefined;
433
- /**
434
- * The column to insert.
435
- */
436
- readonly column: InsertableTreeNodeFromImplicitAllowedTypes<TColumn>;
437
- }
438
423
  /**
439
424
  * {@link TableSchema.Table.insertColumns} parameters.
440
425
  * @alpha
@@ -450,21 +435,6 @@ export declare namespace TableSchema {
450
435
  */
451
436
  readonly columns: InsertableTreeNodeFromImplicitAllowedTypes<TColumn>[];
452
437
  }
453
- /**
454
- * {@link TableSchema.Table.insertRow} parameters.
455
- * @alpha
456
- */
457
- interface InsertRowParameters<TRow extends ImplicitAllowedTypes> {
458
- /**
459
- * The index at which to insert the new row.
460
- * @remarks If not provided, the row will be appended to the end of the table.
461
- */
462
- readonly index?: number | undefined;
463
- /**
464
- * The row to insert.
465
- */
466
- readonly row: InsertableTreeNodeFromImplicitAllowedTypes<TRow>;
467
- }
468
438
  /**
469
439
  * {@link TableSchema.Table.insertRows} parameters.
470
440
  * @alpha
@@ -524,14 +494,6 @@ export declare namespace TableSchema {
524
494
  * @param key - A key that uniquely distinguishes a cell in the table, represented as a combination of the column ID and row ID.
525
495
  */
526
496
  getCell(key: CellKey<TColumn, TRow>): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
527
- /**
528
- * Inserts a column into the table.
529
- *
530
- * @throws Throws an error if the specified index is out of range.
531
- *
532
- * No column is inserted in this case.
533
- */
534
- insertColumn(params: InsertColumnParameters<TColumn>): TreeNodeFromImplicitAllowedTypes<TColumn>;
535
497
  /**
536
498
  * Inserts 0 or more columns into the table.
537
499
  *
@@ -540,19 +502,6 @@ export declare namespace TableSchema {
540
502
  * No columns are inserted in this case.
541
503
  */
542
504
  insertColumns(params: InsertColumnsParameters<TColumn>): TreeNodeFromImplicitAllowedTypes<TColumn>[];
543
- /**
544
- * Inserts a row into the table.
545
- *
546
- * @throws
547
- * Throws an error in the following cases:
548
- *
549
- * - The row contains cells, but the table does not contain matching columns for one or more of those cells.
550
- *
551
- * - The specified index is out of range.
552
- *
553
- * No row is inserted in these cases.
554
- */
555
- insertRow(params: InsertRowParameters<TRow>): TreeNodeFromImplicitAllowedTypes<TRow>;
556
505
  /**
557
506
  * Inserts 0 or more rows into the table.
558
507
  *
@@ -572,19 +521,19 @@ export declare namespace TableSchema {
572
521
  */
573
522
  setCell(params: SetCellParameters<TCell, TColumn, TRow>): void;
574
523
  /**
575
- * Removes the specified column from the table.
524
+ * Removes a range of columns from the table.
525
+ *
576
526
  * @remarks
577
527
  * Also removes any corresponding cells from the table's rows.
578
528
  *
579
529
  * Note: this operation can be slow for tables with many rows.
580
530
  * We are actively working on improving the performance of this operation, but for now it may have a negative
581
531
  * impact on performance.
582
- *
583
- * @param column - The {@link TableSchema.Column | column} or {@link TableSchema.Column.id | column ID} to remove.
584
- * @throws Throws an error if the column is not in the table.
585
- * In this case, no columns are removed.
532
+ * @param index - The starting index of the range to remove. Default: `0`.
533
+ * @param count - The number of columns to remove. Default: all remaining columns starting from `index`.
534
+ * @throws Throws an error if the specified range is invalid. In this case, no columns are removed.
586
535
  */
587
- removeColumn(column: string | TreeNodeFromImplicitAllowedTypes<TColumn>): TreeNodeFromImplicitAllowedTypes<TColumn>;
536
+ removeColumns(index?: number | undefined, count?: number | undefined): TreeNodeFromImplicitAllowedTypes<TColumn>[];
588
537
  /**
589
538
  * Removes 0 or more columns from the table.
590
539
  * @remarks
@@ -615,25 +564,12 @@ export declare namespace TableSchema {
615
564
  */
616
565
  removeColumns(columns: readonly string[]): TreeNodeFromImplicitAllowedTypes<TColumn>[];
617
566
  /**
618
- * Removes all columns from the table.
619
- *
620
- * @remarks
621
- * Also removes any corresponding cells from the table's rows.
622
- *
623
- * Note: this operation can be slow for tables with many rows.
624
- * We are actively working on improving the performance of this operation, but for now it may have a negative
625
- * impact on performance.
626
- *
627
- * @returns The removed columns.
628
- */
629
- removeAllColumns(): TreeNodeFromImplicitAllowedTypes<TColumn>[];
630
- /**
631
- * Removes the specified row from the table.
632
- * @param row - The {@link TableSchema.Row | row} or {@link TableSchema.Row.id | row ID} to remove.
633
- * @throws Throws an error if the row is not in the table.
634
- * In this case, no rows are removed.
567
+ * Removes a range of rows from the table.
568
+ * @param index - The starting index of the range to remove. Default: `0`.
569
+ * @param count - The number of rows to remove. Default: all remaining rows starting from `index`.
570
+ * @throws Throws an error if the specified range is invalid. In this case, no rows are removed.
635
571
  */
636
- removeRow(row: string | TreeNodeFromImplicitAllowedTypes<TRow>): TreeNodeFromImplicitAllowedTypes<TRow>;
572
+ removeRows(index?: number | undefined, count?: number | undefined): TreeNodeFromImplicitAllowedTypes<TRow>[];
637
573
  /**
638
574
  * Removes 0 or more rows from the table.
639
575
  * @param rows - The rows to remove.
@@ -648,11 +584,6 @@ export declare namespace TableSchema {
648
584
  * In this case, no rows are removed.
649
585
  */
650
586
  removeRows(rows: readonly string[]): TreeNodeFromImplicitAllowedTypes<TRow>[];
651
- /**
652
- * Removes all rows from the table.
653
- * @returns The removed rows.
654
- */
655
- removeAllRows(): TreeNodeFromImplicitAllowedTypes<TRow>[];
656
587
  /**
657
588
  * Removes the cell at the specified location in the table.
658
589
  * @returns The cell if it exists, otherwise undefined.
@@ -1 +1 @@
1
- {"version":3,"file":"tableSchema.d.ts","sourceRoot":"","sources":["../src/tableSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EACN,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAEzB,KAAK,0CAA0C,EAC/C,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,gCAAgC,EAErC,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,0BAA0B,EAC/B,KAAK,oCAAoC,EACzC,KAAK,gBAAgB,EACrB,aAAa,EACb,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAGlC,MAAM,wBAAwB,CAAC;AA+DhC;;;;;;;;;GASG;AACH,yBAAiB,kBAAkB,CAAC;IACnC;;;;;;;OAOG;IACH,KAAY,gBAAgB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7E;;;;;OAKG;IACH,UAAiB,wBAAwB,CAAC,cAAc,SAAS,kBAAkB;QAClF;;;WAGG;QACH,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;KACvC;IAED;;;;;OAKG;IACH,UAAiB,qBAAqB,CAAC,WAAW,SAAS,oBAAoB;QAC9E;;WAEG;QACH,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;KAC3B;IAID;;;;OAIG;IACH,KAAY,uBAAuB,CAClC,cAAc,SAAS,kBAAkB,GAAG,kBAAkB,EAC9D,KAAK,SAAS,oBAAoB,GAAG,oBAAoB,IACtD,wBAAwB,CAAC,cAAc,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE5E;;;OAGG;IAEH,SAAgB,kBAAkB,CACjC,KAAK,CAAC,WAAW,SAAS,MAAM,GAAG,SAAS,EAC5C,KAAK,CAAC,WAAW,SAAS,oBAAoB,EAC9C,KAAK,CAAC,YAAY,SAAS,4BAA4B,EAEvD,kBAAkB,EAAE,kBAAkB,CAAC,WAAW,CAAC,EACnD,UAAU,EAAE,WAAW,EACvB,WAAW,EAAE,YAAY;;;QAwFrB;;;WAGG;;;QAMH;;;WAGG;eACI,qCACN,8BAA8B,YAAY,CAAC,CAC3C;;;;OAmCL;IAED;;;OAGG;IACH,KAAY,gBAAgB,CAC3B,MAAM,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EACtD,WAAW,SAAS,oBAAoB,GAAG,oBAAoB,EAC/D,YAAY,SAAS,4BAA4B,GAAG,4BAA4B,IAC7E,UAAU,CAAC,OAAO,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAM7E;;;;OAIG;IACH,KAAY,oBAAoB,CAC/B,cAAc,SAAS,kBAAkB,GAAG,kBAAkB,EAC9D,KAAK,SAAS,oBAAoB,GAAG,oBAAoB,IACtD,wBAAwB,CAAC,cAAc,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE5E;;;OAGG;IAEH,SAAgB,eAAe,CAC9B,KAAK,CAAC,WAAW,SAAS,MAAM,GAAG,SAAS,EAC5C,KAAK,CAAC,WAAW,SAAS,oBAAoB,EAC9C,KAAK,CAAC,YAAY,SAAS,4BAA4B,EAEvD,kBAAkB,EAAE,kBAAkB,CAAC,WAAW,CAAC,EACnD,UAAU,EAAE,WAAW,EACvB,WAAW,EAAE,YAAY;;;;QAoIrB;;;;WAIG;;;QAMH;;;;WAIG;eACI,qCACN,8BAA8B,YAAY,CAAC,CAC3C;;;;QAxIJ;;;;WAIG;;OAuKJ;IAED;;;OAGG;IACH,KAAY,aAAa,CACxB,MAAM,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EACtD,WAAW,SAAS,oBAAoB,GAAG,oBAAoB,EAC/D,YAAY,SAAS,4BAA4B,GAAG,4BAA4B,IAC7E,UAAU,CAAC,OAAO,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAM1E;;;;OAIG;IACH,KAAY,uBAAuB,CAClC,cAAc,SAAS,kBAAkB,GAAG,kBAAkB,EAC9D,KAAK,SAAS,oBAAoB,GAAG,oBAAoB,IACtD,wBAAwB,CAAC,cAAc,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE5E;;;OAGG;IAEH,SAAgB,iBAAiB,CAChC,KAAK,CAAC,WAAW,SAAS,MAAM,GAAG,SAAS,EAC5C,KAAK,CAAC,WAAW,SAAS,oBAAoB,EAC9C,KAAK,CAAC,aAAa,SAAS,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,EACtE,KAAK,CAAC,UAAU,SAAS,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,EAEhE,kBAAkB,EAAE,kBAAkB,CAAC,WAAW,CAAC,EACnD,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,aAAa,EAC3B,SAAS,EAAE,UAAU;;;;;;;;;;QA6YpB;;WAEG;;;;wMAC6C,KAAK,GAAG,aAAa,KAAK,CAAC;MAK5E;IAED;;;OAGG;IACH,KAAY,eAAe,CAC1B,MAAM,SAAS,MAAM,GAAG,SAAS,EACjC,KAAK,SAAS,oBAAoB,EAClC,OAAO,SAAS,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,EAC/C,IAAI,SAAS,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,IACtC,UAAU,CAAC,OAAO,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;CAGvE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiHG;AACH,yBAAiB,WAAW,CAAC;IAG5B;;;;;;OAMG;IACH,UAAiB,MAAM,CACtB,KAAK,SAAS,oBAAoB,EAClC,MAAM,SAAS,4BAA4B,GAAG,4BAA4B;QAE1E;;;WAGG;QACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAEpB;;;;;;WAMG;QACH,IAAI,KAAK,IAAI,0BAA0B,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/E,IAAI,KAAK,CAAC,KAAK,EAAE,oCAAoC,CACpD,6BAA6B,CAAC,MAAM,CAAC,CACrC,EAAE;QAEH;;;WAGG;QACH,QAAQ,IAAI,SAAS;YACpB,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,gCAAgC,CAAC,KAAK,CAAC,CAAC;SAC9C,EAAE,CAAC;KACJ;IAED;;;;;OAKG;IACH,SAAgB,MAAM,CACrB,KAAK,CAAC,MAAM,SAAS,MAAM,GAAG,SAAS,EACvC,KAAK,CAAC,KAAK,SAAS,oBAAoB,EAExC,MAAM,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GACnF,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC3F;;;;;;OAMG;IACH,SAAgB,MAAM,CACrB,KAAK,CAAC,MAAM,SAAS,MAAM,GAAG,SAAS,EACvC,KAAK,CAAC,KAAK,SAAS,oBAAoB,EACxC,KAAK,CAAC,MAAM,SAAS,4BAA4B,EAEjD,MAAM,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG;QACvF;;WAEG;QACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACvB,GACC,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAkB9D;;;;;;OAMG;IACH,UAAiB,GAAG,CACnB,KAAK,SAAS,oBAAoB,EAClC,MAAM,SAAS,4BAA4B,GAAG,4BAA4B;QAE1E;;;WAGG;QACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAEpB;;;;WAIG;QACH,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,gCAAgC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QACpF;;;WAGG;QACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,gCAAgC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QAE/E;;WAEG;QACH,QAAQ,IAAI,SAAS;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,gCAAgC,CAAC,KAAK,CAAC,CAAC;SAC9C,EAAE,CAAC;QAEJ;;;;WAIG;QACH,OAAO,CACN,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EACrB,KAAK,EAAE,0CAA0C,CAAC,KAAK,CAAC,GACtD,IAAI,CAAC;QACR;;;WAGG;QACH,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,0CAA0C,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAE1F;;;;WAIG;QACH,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,gCAAgC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QACvF;;;WAGG;QACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,gCAAgC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QAElF;;;;;;WAMG;QACH,IAAI,KAAK,IAAI,0BAA0B,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/E,IAAI,KAAK,CAAC,KAAK,EAAE,oCAAoC,CACpD,6BAA6B,CAAC,MAAM,CAAC,CACrC,EAAE;KACH;IAED;;;;;OAKG;IACH,SAAgB,GAAG,CAClB,KAAK,CAAC,MAAM,SAAS,MAAM,GAAG,SAAS,EACvC,KAAK,CAAC,KAAK,SAAS,oBAAoB,EAExC,MAAM,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAChF,kBAAkB,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACxF;;;;;;OAMG;IACH,SAAgB,GAAG,CAClB,KAAK,CAAC,MAAM,SAAS,MAAM,GAAG,SAAS,EACvC,KAAK,CAAC,KAAK,SAAS,oBAAoB,EACxC,KAAK,CAAC,MAAM,SAAS,4BAA4B,EAEjD,MAAM,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG;QACpF;;WAEG;QACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACvB,GACC,kBAAkB,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAkB3D;;;OAGG;IACH,UAAiB,OAAO,CACvB,OAAO,SAAS,oBAAoB,EACpC,IAAI,SAAS,oBAAoB;QAEjC;;WAEG;QACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;QAEpE;;WAEG;QACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;KAC9D;IAED;;;OAGG;IACH,UAAiB,sBAAsB,CAAC,OAAO,SAAS,oBAAoB;QAC3E;;;WAGG;QACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAEpC;;WAEG;QACH,QAAQ,CAAC,MAAM,EAAE,0CAA0C,CAAC,OAAO,CAAC,CAAC;KACrE;IAED;;;OAGG;IACH,UAAiB,uBAAuB,CAAC,OAAO,SAAS,oBAAoB;QAC5E;;;WAGG;QACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAEpC;;WAEG;QACH,QAAQ,CAAC,OAAO,EAAE,0CAA0C,CAAC,OAAO,CAAC,EAAE,CAAC;KACxE;IAED;;;OAGG;IACH,UAAiB,mBAAmB,CAAC,IAAI,SAAS,oBAAoB;QACrE;;;WAGG;QACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAEpC;;WAEG;QACH,QAAQ,CAAC,GAAG,EAAE,0CAA0C,CAAC,IAAI,CAAC,CAAC;KAC/D;IAED;;;OAGG;IACH,UAAiB,oBAAoB,CAAC,IAAI,SAAS,oBAAoB;QACtE;;;WAGG;QACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAEpC;;WAEG;QACH,QAAQ,CAAC,IAAI,EAAE,0CAA0C,CAAC,IAAI,CAAC,EAAE,CAAC;KAClE;IAED;;;OAGG;IACH,UAAiB,iBAAiB,CACjC,KAAK,SAAS,oBAAoB,EAClC,OAAO,SAAS,oBAAoB,EACpC,IAAI,SAAS,oBAAoB;QAEjC;;WAEG;QACH,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAErC;;WAEG;QACH,QAAQ,CAAC,IAAI,EAAE,0CAA0C,CAAC,KAAK,CAAC,CAAC;KACjE;IAED;;;;;;;OAOG;IACH,UAAiB,KAAK,CACrB,MAAM,SAAS,MAAM,GAAG,SAAS,EACjC,KAAK,SAAS,oBAAoB,EAClC,OAAO,SAAS,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,EAClE,IAAI,SAAS,kBAAkB,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC;QAE5D;;WAEG;QACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAEzC;;WAEG;QACH,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QAEnC;;WAEG;QACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,gCAAgC,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QAE7E;;WAEG;QACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,gCAAgC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;QAEvE;;;WAGG;QACH,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,gCAAgC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QAE1F;;;;;;WAMG;QACH,YAAY,CACX,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACrC,gCAAgC,CAAC,OAAO,CAAC,CAAC;QAE7C;;;;;;WAMG;QACH,aAAa,CACZ,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,GACtC,gCAAgC,CAAC,OAAO,CAAC,EAAE,CAAC;QAE/C;;;;;;;;;;;WAWG;QACH,SAAS,CAAC,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;QAErF;;;;;;;;;;;WAWG;QACH,UAAU,CAAC,MAAM,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,gCAAgC,CAAC,IAAI,CAAC,EAAE,CAAC;QAEzF;;;WAGG;QACH,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;QAE/D;;;;;;;;;;;;WAYG;QACH,YAAY,CACX,MAAM,EAAE,MAAM,GAAG,gCAAgC,CAAC,OAAO,CAAC,GACxD,gCAAgC,CAAC,OAAO,CAAC,CAAC;QAE7C;;;;;;;;;;;;WAYG;QACH,aAAa,CACZ,OAAO,EAAE,SAAS,gCAAgC,CAAC,OAAO,CAAC,EAAE,GAC3D,gCAAgC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C;;;;;;;;;;;;;WAaG;QACH,aAAa,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,gCAAgC,CAAC,OAAO,CAAC,EAAE,CAAC;QAEvF;;;;;;;;;;;WAWG;QACH,gBAAgB,IAAI,gCAAgC,CAAC,OAAO,CAAC,EAAE,CAAC;QAEhE;;;;;WAKG;QACH,SAAS,CACR,GAAG,EAAE,MAAM,GAAG,gCAAgC,CAAC,IAAI,CAAC,GAClD,gCAAgC,CAAC,IAAI,CAAC,CAAC;QAE1C;;;;;WAKG;QACH,UAAU,CACT,IAAI,EAAE,SAAS,gCAAgC,CAAC,IAAI,CAAC,EAAE,GACrD,gCAAgC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C;;;;;WAKG;QACH,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,gCAAgC,CAAC,IAAI,CAAC,EAAE,CAAC;QAE9E;;;WAGG;QACH,aAAa,IAAI,gCAAgC,CAAC,IAAI,CAAC,EAAE,CAAC;QAE1D;;;;WAIG;QACH,UAAU,CACT,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GACzB,gCAAgC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;KACvD;IAED;;;;;OAKG;IACH,SAAgB,KAAK,CACpB,KAAK,CAAC,MAAM,SAAS,MAAM,GAAG,SAAS,EACvC,KAAK,CAAC,KAAK,SAAS,oBAAoB,EAExC,MAAM,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GACnF,kBAAkB,CAAC,eAAe,CACpC,MAAM,EACN,KAAK,EACL,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EACvF,kBAAkB,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CACpF,CAAC;IACF;;;;;;OAMG;IACH,SAAgB,KAAK,CACpB,KAAK,CAAC,MAAM,SAAS,MAAM,GAAG,SAAS,EACvC,KAAK,CAAC,KAAK,SAAS,oBAAoB,EACxC,KAAK,CAAC,OAAO,SAAS,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,EAExE,MAAM,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG;QACvF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;KACzB,GACC,kBAAkB,CAAC,eAAe,CACpC,MAAM,EACN,KAAK,EACL,OAAO,EACP,kBAAkB,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CACpF,CAAC;IACF;;;;;;OAMG;IACH,SAAgB,KAAK,CACpB,KAAK,CAAC,MAAM,SAAS,MAAM,GAAG,SAAS,EACvC,KAAK,CAAC,KAAK,SAAS,oBAAoB,EACxC,KAAK,CAAC,IAAI,SAAS,kBAAkB,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAElE,MAAM,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG;QACvF,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;KACnB,GACC,kBAAkB,CAAC,eAAe,CACpC,MAAM,EACN,KAAK,EACL,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EACvF,IAAI,CACJ,CAAC;IACF;;;;;;;OAOG;IACH,SAAgB,KAAK,CACpB,KAAK,CAAC,MAAM,SAAS,MAAM,GAAG,SAAS,EACvC,KAAK,CAAC,KAAK,SAAS,oBAAoB,EACxC,KAAK,CAAC,OAAO,SAAS,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,EACxE,KAAK,CAAC,IAAI,SAAS,kBAAkB,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAElE,MAAM,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG;QACvF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;KACnB,GACC,kBAAkB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;CA4BpE"}
1
+ {"version":3,"file":"tableSchema.d.ts","sourceRoot":"","sources":["../src/tableSchema.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { assert, oob } from "@fluidframework/core-utils/internal";
5
+ import { fail } from "@fluidframework/core-utils/internal";
6
6
  import { UsageError } from "@fluidframework/telemetry-utils/internal";
7
7
  import { Tree, TreeAlpha } from "./shared-tree/index.js";
8
8
  import { TreeArrayNode, SchemaFactory, isArrayNodeSchema, } from "./simple-tree/index.js";
@@ -60,7 +60,7 @@ export var System_TableSchema;
60
60
  */
61
61
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -- Return type is too complex to be reasonable to specify
62
62
  function createColumnSchema(inputSchemaFactory, cellSchema, propsSchema) {
63
- const schemaFactory = inputSchemaFactory.scopedFactory(tableSchemaFactorySubScope);
63
+ const schemaFactory = inputSchemaFactory.scopedFactoryAlpha(tableSchemaFactorySubScope);
64
64
  // Note: `columnFields` is broken into two parts to work around a TypeScript bug
65
65
  // that results in broken `.d.ts` output.
66
66
  // See definition of `ColumnInsertableType` below.
@@ -125,7 +125,7 @@ export var System_TableSchema;
125
125
  */
126
126
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -- Return type is too complex to be reasonable to specify
127
127
  function createRowSchema(inputSchemaFactory, cellSchema, propsSchema) {
128
- const schemaFactory = inputSchemaFactory.scopedFactory(tableSchemaFactorySubScope);
128
+ const schemaFactory = inputSchemaFactory.scopedFactoryAlpha(tableSchemaFactorySubScope);
129
129
  // Note: `rowFields` is broken into two parts to work around a TypeScript bug
130
130
  // that results in broken `.d.ts` output.
131
131
  // See definition of `RowInsertableType` below.
@@ -220,7 +220,7 @@ export var System_TableSchema;
220
220
  */
221
221
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -- Return type is too complex to be reasonable to specify
222
222
  function createTableSchema(inputSchemaFactory, _cellSchema, columnSchema, rowSchema) {
223
- const schemaFactory = inputSchemaFactory.scopedFactory(tableSchemaFactorySubScope);
223
+ const schemaFactory = inputSchemaFactory.scopedFactoryAlpha(tableSchemaFactorySubScope);
224
224
  /**
225
225
  * {@link Table} fields.
226
226
  * @remarks Extracted for re-use in returned type signature defined later in this function.
@@ -252,23 +252,16 @@ export var System_TableSchema;
252
252
  }
253
253
  getCell(key) {
254
254
  const { column: columnOrId, row: rowOrId } = key;
255
- const row = this._getRow(rowOrId);
255
+ const row = this._tryGetRow(rowOrId);
256
256
  if (row === undefined) {
257
257
  return undefined;
258
258
  }
259
- const column = this._getColumn(columnOrId);
259
+ const column = this._tryGetColumn(columnOrId);
260
260
  if (column === undefined) {
261
261
  return undefined;
262
262
  }
263
263
  return row.getCell(column);
264
264
  }
265
- insertColumn({ column, index, }) {
266
- const inserted = this.insertColumns({
267
- columns: [column],
268
- index,
269
- });
270
- return inserted[0] ?? oob();
271
- }
272
265
  insertColumns({ columns, index, }) {
273
266
  // Ensure index is valid
274
267
  if (index !== undefined) {
@@ -287,13 +280,6 @@ export var System_TableSchema;
287
280
  // Inserting the input nodes into the tree hydrates them, making them usable as nodes.
288
281
  return columns;
289
282
  }
290
- insertRow({ row, index, }) {
291
- const inserted = this.insertRows({
292
- rows: [row],
293
- index,
294
- });
295
- return inserted[0] ?? oob();
296
- }
297
283
  insertRows({ index, rows, }) {
298
284
  // #region Input validation
299
285
  // Ensure index is valid
@@ -310,7 +296,7 @@ export var System_TableSchema;
310
296
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
311
297
  const keys = Object.keys(newRow.cells);
312
298
  for (const key of keys) {
313
- if (!this.containsColumnWithId(key)) {
299
+ if (!this._containsColumnWithId(key)) {
314
300
  throw new UsageError(`Attempted to insert row a cell under column ID "${key}", but the table does not contain a column with that ID.`);
315
301
  }
316
302
  }
@@ -333,113 +319,101 @@ export var System_TableSchema;
333
319
  setCell({ key, cell, }) {
334
320
  const { column: columnOrId, row: rowOrId } = key;
335
321
  const row = this._getRow(rowOrId);
336
- if (row === undefined) {
337
- const rowId = this._getRowId(rowOrId);
338
- throw new UsageError(`No row with ID "${rowId}" exists in the table.`);
339
- }
340
322
  const column = this._getColumn(columnOrId);
341
- if (column === undefined) {
342
- const columnId = this._getColumnId(columnOrId);
343
- throw new UsageError(`No column with ID "${columnId}" exists in the table.`);
344
- }
345
323
  row.setCell(column, cell);
346
324
  }
347
- removeColumns(columns) {
348
- // If there are no columns to remove, do nothing
349
- if (columns.length === 0) {
350
- return [];
351
- }
352
- // If there is only one column to remove, remove it (and don't incur cost of transaction)
353
- if (columns.length === 1) {
354
- const removedColumn = this.removeColumn(columns[0] ?? oob());
355
- return [removedColumn];
325
+ removeColumns(indexOrColumns, count = undefined) {
326
+ if (typeof indexOrColumns === "number" || indexOrColumns === undefined) {
327
+ let removedColumns;
328
+ const startIndex = indexOrColumns ?? 0;
329
+ const _count = count ?? this.columns.length - startIndex;
330
+ // If there are no columns to remove, do nothing
331
+ if (_count === 0) {
332
+ return [];
333
+ }
334
+ Table._assertValidRange({ index: startIndex, count: _count }, this.columns);
335
+ this._applyEditsInBatch(() => {
336
+ const columnsToRemove = this.columns.slice(startIndex, startIndex + _count);
337
+ // First, remove all cells that correspond to each column from each row:
338
+ for (const column of columnsToRemove) {
339
+ this._removeCells(column);
340
+ }
341
+ // Second, remove the column nodes:
342
+ Table._removeRange({
343
+ index: startIndex,
344
+ count: _count,
345
+ }, this.columns);
346
+ removedColumns = columnsToRemove;
347
+ });
348
+ return removedColumns ?? fail(0xc1f /* Transaction did not complete. */);
356
349
  }
357
- // If there are multiple columns to remove, remove them in a transaction.
358
- const removedColumns = [];
359
- Tree.runTransaction(this, () => {
360
- // Note, throwing an error within a transaction will abort the entire transaction.
361
- // So if we throw an error here for any row, no columns will be removed.
362
- for (const columnToRemove of columns) {
363
- const removedRow = this.removeColumn(columnToRemove);
364
- removedColumns.push(removedRow);
350
+ else {
351
+ // If there are no columns to remove, do nothing
352
+ if (indexOrColumns.length === 0) {
353
+ return [];
365
354
  }
366
- });
367
- return removedColumns;
368
- }
369
- removeColumn(columnOrId) {
370
- const column = this._getColumn(columnOrId);
371
- const index = column === undefined ? -1 : this.columns.indexOf(column);
372
- if (index === -1) {
373
- const columnId = this._getColumnId(columnOrId);
374
- throw new UsageError(`Specified column with ID "${columnId}" does not exist in the table.`);
375
- }
376
- assert(column !== undefined, 0xc10 /* column should not be undefined */);
377
- Tree.runTransaction(this, () => {
378
- // Remove the corresponding cell from all rows.
379
- for (const row of this.rows) {
380
- // TypeScript is unable to narrow the row type correctly here, hence the cast.
381
- // See: https://github.com/microsoft/TypeScript/issues/52144
382
- row.removeCell(column);
355
+ // Resolve any IDs to actual nodes.
356
+ // This validates that all of the rows exist before starting transaction.
357
+ // This improves user-facing error experience.
358
+ const columnsToRemove = [];
359
+ for (const columnOrIdToRemove of indexOrColumns) {
360
+ columnsToRemove.push(this._getColumn(columnOrIdToRemove));
383
361
  }
384
- this.columns.removeAt(index);
385
- });
386
- return column;
387
- }
388
- removeAllColumns() {
389
- // TypeScript is unable to narrow the row type correctly here, hence the cast.
390
- // See: https://github.com/microsoft/TypeScript/issues/52144
391
- return this.removeColumns(this.columns);
362
+ this._applyEditsInBatch(() => {
363
+ // Note, throwing an error within a transaction will abort the entire transaction.
364
+ // So if we throw an error here for any column, no columns will be removed.
365
+ for (const columnToRemove of columnsToRemove) {
366
+ // Remove the corresponding cell from all rows.
367
+ for (const row of this.rows) {
368
+ // TypeScript is unable to narrow the row type correctly here, hence the cast.
369
+ // See: https://github.com/microsoft/TypeScript/issues/52144
370
+ row.removeCell(columnToRemove);
371
+ }
372
+ // We have already validated that all of the columns exist above, so this is safe.
373
+ this.columns.removeAt(this.columns.indexOf(columnToRemove));
374
+ }
375
+ });
376
+ return columnsToRemove;
377
+ }
392
378
  }
393
- removeRows(rows) {
379
+ removeRows(indexOrRows, count) {
380
+ if (typeof indexOrRows === "number" || indexOrRows === undefined) {
381
+ const startIndex = indexOrRows ?? 0;
382
+ const _count = count ?? this.columns.length - startIndex;
383
+ // If there are no rows to remove, do nothing
384
+ if (_count === 0) {
385
+ return [];
386
+ }
387
+ return Table._removeRange({
388
+ index: startIndex,
389
+ count: _count,
390
+ }, this.rows);
391
+ }
394
392
  // If there are no rows to remove, do nothing
395
- if (rows.length === 0) {
393
+ if (indexOrRows.length === 0) {
396
394
  return [];
397
395
  }
398
- // If there is only one row to remove, remove it (and don't incur cost of transaction)
399
- if (rows.length === 1) {
400
- const removedRow = this.removeRow(rows[0] ?? oob());
401
- return [removedRow];
396
+ // Resolve any IDs to actual nodes.
397
+ // This validates that all of the rows exist before starting transaction.
398
+ // This improves user-facing error experience.
399
+ const rowsToRemove = [];
400
+ for (const rowToRemove of indexOrRows) {
401
+ rowsToRemove.push(this._getRow(rowToRemove));
402
402
  }
403
- // If there are multiple rows to remove, remove them in a transaction.
404
- const removedRows = [];
405
- Tree.runTransaction(this, () => {
403
+ this._applyEditsInBatch(() => {
406
404
  // Note, throwing an error within a transaction will abort the entire transaction.
407
405
  // So if we throw an error here for any row, no rows will be removed.
408
- for (const rowToRemove of rows) {
409
- const removedRow = this.removeRow(rowToRemove);
410
- removedRows.push(removedRow);
406
+ for (const rowToRemove of rowsToRemove) {
407
+ // We have already validated that all of the rows exist above, so this is safe.
408
+ this.rows.removeAt(this.rows.indexOf(rowToRemove));
411
409
  }
412
410
  });
413
- return removedRows;
414
- }
415
- removeRow(rowOrId) {
416
- const rowToRemove = this._getRow(rowOrId);
417
- const index = rowToRemove === undefined ? -1 : this.rows.indexOf(rowToRemove);
418
- // If the row does not exist in the table, throw an error.
419
- if (index === -1) {
420
- const rowId = this._getRowId(rowOrId);
421
- throw new UsageError(`Specified row with ID "${rowId}" does not exist in the table.`);
422
- }
423
- this.rows.removeAt(index);
424
- return rowToRemove;
425
- }
426
- removeAllRows() {
427
- // TypeScript is unable to narrow the row type correctly here, hence the cast.
428
- // See: https://github.com/microsoft/TypeScript/issues/52144
429
- return this.removeRows(this.rows);
411
+ return rowsToRemove;
430
412
  }
431
413
  removeCell(key) {
432
414
  const { column: columnOrId, row: rowOrId } = key;
433
415
  const row = this._getRow(rowOrId);
434
- if (row === undefined) {
435
- const rowId = this._getRowId(rowOrId);
436
- throw new UsageError(`Specified row with ID "${rowId}" does not exist in the table.`);
437
- }
438
416
  const column = this._getColumn(columnOrId);
439
- if (column === undefined) {
440
- const columnId = this._getColumnId(columnOrId);
441
- throw new UsageError(`Specified column with ID "${columnId}" does not exist in the table.`);
442
- }
443
417
  const cell = row.getCell(column.id);
444
418
  if (cell === undefined) {
445
419
  return undefined;
@@ -447,28 +421,137 @@ export var System_TableSchema;
447
421
  row.removeCell(column.id);
448
422
  return cell;
449
423
  }
424
+ /**
425
+ * Removes the cell corresponding with the specified column from each row in the table.
426
+ */
427
+ _removeCells(column) {
428
+ for (const row of this.rows) {
429
+ // TypeScript is unable to narrow the row type correctly here, hence the cast.
430
+ // See: https://github.com/microsoft/TypeScript/issues/52144
431
+ row.removeCell(column);
432
+ }
433
+ }
434
+ static _assertValidRange(range, array) {
435
+ const { index, count } = range;
436
+ if (index < 0 || index >= array.length) {
437
+ throw new UsageError(`Start index out of bounds. Expected index to be on [0, ${array.length - 1}], but got ${index}.`);
438
+ }
439
+ if (count < 0) {
440
+ throw new UsageError(`Expected non-negative count. Got ${count}.`);
441
+ }
442
+ const end = index + count; // exclusive
443
+ if (end > array.length) {
444
+ throw new UsageError(`End index out of bounds. Expected end to be on [${index}, ${array.length}], but got ${end}.`);
445
+ }
446
+ }
447
+ /**
448
+ * Applies the provided edits in a "batch".
449
+ *
450
+ * @remarks
451
+ * For hydrated trees, this will be done in a transaction to ensure atomicity.
452
+ *
453
+ * Transactions are not supported for unhydrated trees, so we cannot run a transaction in that case.
454
+ * But since there are no collaborators, this is not an issue.
455
+ */
456
+ _applyEditsInBatch(applyEdits) {
457
+ const branch = TreeAlpha.branch(this);
458
+ if (branch === undefined) {
459
+ // If this node does not have a corresponding branch, then it is unhydrated.
460
+ // I.e., it is not part of a collaborative session yet.
461
+ // Therefore, we don't need to run the edits as a transaction.
462
+ applyEdits();
463
+ }
464
+ else {
465
+ branch.runTransaction(() => {
466
+ applyEdits();
467
+ });
468
+ }
469
+ }
470
+ /**
471
+ * Attempts to resolve the provided Column node or ID to a Column node in the table.
472
+ * Returns `undefined` if there is no match.
473
+ * @remarks Searches for a match based strictly on the ID and returns that result.
474
+ */
475
+ _tryGetColumn(columnOrId) {
476
+ const columnId = this._getColumnId(columnOrId);
477
+ return this.getColumn(columnId);
478
+ }
479
+ /**
480
+ * Attempts to resolve the provided Column node or ID to a Column node in the table.
481
+ * @throws Throws a `UsageError` if there is no match.
482
+ * @remarks Searches for a match based strictly on the ID and returns that result.
483
+ */
450
484
  _getColumn(columnOrId) {
451
- return typeof columnOrId === "string" ? this.getColumn(columnOrId) : columnOrId;
485
+ const column = this._tryGetColumn(columnOrId);
486
+ if (column === undefined) {
487
+ this._throwMissingColumnError(this._getColumnId(columnOrId));
488
+ }
489
+ return column;
452
490
  }
491
+ /**
492
+ * Resolves a Column node or ID to its ID.
493
+ * If an ID is provided, it is returned as-is.
494
+ * If a node is provided, its ID is returned.
495
+ */
453
496
  _getColumnId(columnOrId) {
454
497
  return typeof columnOrId === "string" ? columnOrId : columnOrId.id;
455
498
  }
499
+ /**
500
+ * Checks if a Column with the specified ID exists in the table.
501
+ */
502
+ _containsColumnWithId(columnId) {
503
+ return this._tryGetColumn(columnId) !== undefined;
504
+ }
505
+ /**
506
+ * Throw a `UsageError` for a missing Column by its ID.
507
+ */
508
+ _throwMissingColumnError(columnId) {
509
+ throw new UsageError(`No column with ID "${columnId}" exists in the table.`);
510
+ }
511
+ /**
512
+ * Attempts to resolve the provided Row node or ID to a Row node in the table.
513
+ * Returns `undefined` if there is no match.
514
+ * @remarks Searches for a match based strictly on the ID and returns that result.
515
+ */
516
+ _tryGetRow(rowOrId) {
517
+ const rowId = this._getRowId(rowOrId);
518
+ return this.getRow(rowId);
519
+ }
520
+ /**
521
+ * Attempts to resolve the provided Row node or ID to a Row node in the table.
522
+ * @throws Throws a `UsageError` if there is no match.
523
+ * @remarks Searches for a match based strictly on the ID and returns that result.
524
+ */
456
525
  _getRow(rowOrId) {
457
- return typeof rowOrId === "string" ? this.getRow(rowOrId) : rowOrId;
526
+ const row = this._tryGetRow(rowOrId);
527
+ if (row === undefined) {
528
+ this._throwMissingRowError(this._getRowId(rowOrId));
529
+ }
530
+ return row;
458
531
  }
532
+ /**
533
+ * Resolves a Row node or ID to its ID.
534
+ * If an ID is provided, it is returned as-is.
535
+ * If a node is provided, its ID is returned.
536
+ */
459
537
  _getRowId(rowOrId) {
460
538
  return typeof rowOrId === "string" ? rowOrId : rowOrId.id;
461
539
  }
462
- containsColumnWithId(columnId) {
463
- // TypeScript is unable to narrow the types correctly here, hence the cast.
464
- // See: https://github.com/microsoft/TypeScript/issues/52144
465
- return (this.columns.find((column) => column.id === columnId) !== undefined);
540
+ /**
541
+ * Throw a `UsageError` for a missing Row by its ID.
542
+ */
543
+ _throwMissingRowError(rowId) {
544
+ throw new UsageError(`No row with ID "${rowId}" exists in the table.`);
466
545
  }
467
- containsRowWithId(rowId) {
468
- // TypeScript is unable to narrow the types correctly here, hence the cast.
546
+ static _removeRange(range, array) {
547
+ Table._assertValidRange(range, array);
548
+ const { index, count } = range;
549
+ const end = index + count; // exclusive
550
+ // TypeScript is unable to narrow the array element type correctly here, hence the cast.
469
551
  // See: https://github.com/microsoft/TypeScript/issues/52144
470
- return (this.rows.find((row) => row.id === rowId) !==
471
- undefined);
552
+ const removedRows = array.slice(index, end);
553
+ array.removeRange(index, end);
554
+ return removedRows;
472
555
  }
473
556
  /**
474
557
  * Ensure that the specified index is a valid location for item insertion in the destination list.