@fluidframework/tree 2.103.0 → 2.111.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 (530) hide show
  1. package/.vscode/settings.json +1 -0
  2. package/CHANGELOG.md +109 -0
  3. package/api-report/tree.alpha.api.md +60 -34
  4. package/api-report/tree.beta.api.md +49 -3
  5. package/api-report/tree.legacy.beta.api.md +49 -3
  6. package/dist/codec/versioned/format.js +2 -24
  7. package/dist/codec/versioned/format.js.map +1 -1
  8. package/dist/core/change-family/changeFamily.d.ts +3 -10
  9. package/dist/core/change-family/changeFamily.d.ts.map +1 -1
  10. package/dist/core/change-family/changeFamily.js.map +1 -1
  11. package/dist/core/rebase/types.d.ts +2 -2
  12. package/dist/core/rebase/types.js +2 -24
  13. package/dist/core/rebase/types.js.map +1 -1
  14. package/dist/core/schema-stored/formatV1.js +2 -24
  15. package/dist/core/schema-stored/formatV1.js.map +1 -1
  16. package/dist/core/schema-stored/formatV2.js +2 -24
  17. package/dist/core/schema-stored/formatV2.js.map +1 -1
  18. package/dist/core/schema-stored/index.js +3 -25
  19. package/dist/core/schema-stored/index.js.map +1 -1
  20. package/dist/core/schema-stored/storedSchemaRepository.d.ts +2 -2
  21. package/dist/core/schema-stored/storedSchemaRepository.js.map +1 -1
  22. package/dist/core/tree/anchorSet.js +4 -8
  23. package/dist/core/tree/anchorSet.js.map +1 -1
  24. package/dist/core/tree/detachedFieldIndexFormatCommon.js +2 -24
  25. package/dist/core/tree/detachedFieldIndexFormatCommon.js.map +1 -1
  26. package/dist/core/tree/detachedFieldIndexFormatV2.js +2 -24
  27. package/dist/core/tree/detachedFieldIndexFormatV2.js.map +1 -1
  28. package/dist/core/tree/persistedTreeTextFormat.js +2 -24
  29. package/dist/core/tree/persistedTreeTextFormat.js.map +1 -1
  30. package/dist/entrypoints/alpha.d.ts +1 -1
  31. package/dist/entrypoints/alpha.d.ts.map +1 -1
  32. package/dist/entrypoints/alpha.js.map +1 -1
  33. package/dist/entrypoints/beta.d.ts +1 -1
  34. package/dist/entrypoints/beta.d.ts.map +1 -1
  35. package/dist/entrypoints/beta.js.map +1 -1
  36. package/dist/entrypoints/internal.js +2 -15
  37. package/dist/entrypoints/internal.js.map +1 -1
  38. package/dist/entrypoints/legacy.d.ts +1 -1
  39. package/dist/entrypoints/legacy.d.ts.map +1 -1
  40. package/dist/entrypoints/legacy.js.map +1 -1
  41. package/dist/feature-libraries/chunked-forest/chunkedForest.js +7 -11
  42. package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  43. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +19 -14
  44. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  45. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +13 -32
  46. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  47. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +85 -28
  48. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  49. package/dist/feature-libraries/chunked-forest/codec/codecs.js +83 -9
  50. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  51. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +4 -2
  52. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  53. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +11 -0
  54. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  55. package/dist/feature-libraries/chunked-forest/codec/format/formatGeneric.js +2 -24
  56. package/dist/feature-libraries/chunked-forest/codec/format/formatGeneric.js.map +1 -1
  57. package/dist/feature-libraries/chunked-forest/codec/format/formatV1.js +2 -24
  58. package/dist/feature-libraries/chunked-forest/codec/format/formatV1.js.map +1 -1
  59. package/dist/feature-libraries/chunked-forest/codec/format/formatV2.js +2 -24
  60. package/dist/feature-libraries/chunked-forest/codec/format/formatV2.js.map +1 -1
  61. package/dist/feature-libraries/chunked-forest/codec/format/formatVText.js +2 -24
  62. package/dist/feature-libraries/chunked-forest/codec/format/formatVText.js.map +1 -1
  63. package/dist/feature-libraries/chunked-forest/codec/index.d.ts +1 -1
  64. package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
  65. package/dist/feature-libraries/chunked-forest/codec/index.js +2 -1
  66. package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -1
  67. package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts +1 -1
  68. package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts.map +1 -1
  69. package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.js +3 -15
  70. package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.js.map +1 -1
  71. package/dist/feature-libraries/chunked-forest/index.d.ts +1 -1
  72. package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -1
  73. package/dist/feature-libraries/chunked-forest/index.js +2 -1
  74. package/dist/feature-libraries/chunked-forest/index.js.map +1 -1
  75. package/dist/feature-libraries/flex-tree/lazyEntity.js +9 -19
  76. package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
  77. package/dist/feature-libraries/flex-tree/lazyNode.js +3 -13
  78. package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  79. package/dist/feature-libraries/forest-summary/codec.d.ts +3 -3
  80. package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  81. package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
  82. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +3 -2
  83. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  84. package/dist/feature-libraries/forest-summary/forestSummarizer.js +4 -6
  85. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  86. package/dist/feature-libraries/forest-summary/formatCommon.js +2 -24
  87. package/dist/feature-libraries/forest-summary/formatCommon.js.map +1 -1
  88. package/dist/feature-libraries/index.d.ts +1 -1
  89. package/dist/feature-libraries/index.d.ts.map +1 -1
  90. package/dist/feature-libraries/index.js +4 -25
  91. package/dist/feature-libraries/index.js.map +1 -1
  92. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.js +2 -24
  93. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -1
  94. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
  95. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +9 -9
  96. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
  97. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  98. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +10 -30
  99. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  100. package/dist/feature-libraries/modular-schema/modularChangeFormatV1.js +2 -24
  101. package/dist/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -1
  102. package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js +2 -24
  103. package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js.map +1 -1
  104. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +0 -5
  105. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  106. package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  107. package/dist/feature-libraries/object-forest/objectForest.js +11 -55
  108. package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
  109. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.js +2 -24
  110. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -1
  111. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.js +2 -24
  112. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -1
  113. package/dist/feature-libraries/schema-edits/schemaChangeFormat.js +2 -24
  114. package/dist/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  115. package/dist/feature-libraries/schema-index/formatV1.js +2 -24
  116. package/dist/feature-libraries/schema-index/formatV1.js.map +1 -1
  117. package/dist/feature-libraries/schema-index/formatV2.js +2 -24
  118. package/dist/feature-libraries/schema-index/formatV2.js.map +1 -1
  119. package/dist/feature-libraries/sequence-field/formatV1.js +2 -24
  120. package/dist/feature-libraries/sequence-field/formatV1.js.map +1 -1
  121. package/dist/feature-libraries/sequence-field/formatV2.js +2 -24
  122. package/dist/feature-libraries/sequence-field/formatV2.js.map +1 -1
  123. package/dist/feature-libraries/sequence-field/formatV3.js +2 -24
  124. package/dist/feature-libraries/sequence-field/formatV3.js.map +1 -1
  125. package/dist/index.d.ts +2 -2
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +4 -25
  128. package/dist/index.js.map +1 -1
  129. package/dist/packageVersion.d.ts +1 -1
  130. package/dist/packageVersion.js +1 -1
  131. package/dist/packageVersion.js.map +1 -1
  132. package/dist/shared-tree/independentView.d.ts.map +1 -1
  133. package/dist/shared-tree/independentView.js +4 -7
  134. package/dist/shared-tree/independentView.js.map +1 -1
  135. package/dist/shared-tree/index.d.ts +1 -1
  136. package/dist/shared-tree/index.d.ts.map +1 -1
  137. package/dist/shared-tree/index.js.map +1 -1
  138. package/dist/shared-tree/schematizingTreeView.d.ts +6 -5
  139. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  140. package/dist/shared-tree/schematizingTreeView.js +7 -41
  141. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  142. package/dist/shared-tree/sharedTree.d.ts +5 -1
  143. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  144. package/dist/shared-tree/sharedTree.js +13 -49
  145. package/dist/shared-tree/sharedTree.js.map +1 -1
  146. package/dist/shared-tree/sharedTreeChangeFormat.js +2 -24
  147. package/dist/shared-tree/sharedTreeChangeFormat.js.map +1 -1
  148. package/dist/shared-tree/transactionPostProcessor.d.ts +28 -0
  149. package/dist/shared-tree/transactionPostProcessor.d.ts.map +1 -0
  150. package/dist/shared-tree/transactionPostProcessor.js +28 -0
  151. package/dist/shared-tree/transactionPostProcessor.js.map +1 -0
  152. package/dist/shared-tree/treeAlpha.js +3 -3
  153. package/dist/shared-tree/treeAlpha.js.map +1 -1
  154. package/dist/shared-tree/treeCheckout.d.ts +28 -15
  155. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  156. package/dist/shared-tree/treeCheckout.js +124 -145
  157. package/dist/shared-tree/treeCheckout.js.map +1 -1
  158. package/dist/shared-tree/unhydratedTreeContext.d.ts +5 -5
  159. package/dist/shared-tree/unhydratedTreeContext.d.ts.map +1 -1
  160. package/dist/shared-tree/unhydratedTreeContext.js.map +1 -1
  161. package/dist/shared-tree-core/branch.js +13 -17
  162. package/dist/shared-tree-core/branch.js.map +1 -1
  163. package/dist/shared-tree-core/editManagerCodecs.d.ts +3 -2
  164. package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  165. package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
  166. package/dist/shared-tree-core/editManagerCodecsCommons.d.ts +3 -9
  167. package/dist/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -1
  168. package/dist/shared-tree-core/editManagerCodecsCommons.js +2 -4
  169. package/dist/shared-tree-core/editManagerCodecsCommons.js.map +1 -1
  170. package/dist/shared-tree-core/editManagerCodecsV1toV4.d.ts +3 -3
  171. package/dist/shared-tree-core/editManagerCodecsV1toV4.d.ts.map +1 -1
  172. package/dist/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -1
  173. package/dist/shared-tree-core/editManagerCodecsVSharedBranches.d.ts +3 -3
  174. package/dist/shared-tree-core/editManagerCodecsVSharedBranches.d.ts.map +1 -1
  175. package/dist/shared-tree-core/editManagerCodecsVSharedBranches.js.map +1 -1
  176. package/dist/shared-tree-core/editManagerFormatCommons.js +2 -24
  177. package/dist/shared-tree-core/editManagerFormatCommons.js.map +1 -1
  178. package/dist/shared-tree-core/editManagerFormatV1toV4.js +2 -24
  179. package/dist/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
  180. package/dist/shared-tree-core/editManagerFormatVSharedBranches.js +2 -24
  181. package/dist/shared-tree-core/editManagerFormatVSharedBranches.js.map +1 -1
  182. package/dist/shared-tree-core/editManagerSummarizer.d.ts +5 -9
  183. package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  184. package/dist/shared-tree-core/editManagerSummarizer.js +5 -10
  185. package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
  186. package/dist/shared-tree-core/index.d.ts +1 -1
  187. package/dist/shared-tree-core/index.d.ts.map +1 -1
  188. package/dist/shared-tree-core/index.js +3 -2
  189. package/dist/shared-tree-core/index.js.map +1 -1
  190. package/dist/shared-tree-core/messageCodecVSharedBranches.js +2 -24
  191. package/dist/shared-tree-core/messageCodecVSharedBranches.js.map +1 -1
  192. package/dist/shared-tree-core/messageFormatV1ToV4.js +2 -24
  193. package/dist/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
  194. package/dist/shared-tree-core/messageFormatVSharedBranches.js +2 -24
  195. package/dist/shared-tree-core/messageFormatVSharedBranches.js.map +1 -1
  196. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  197. package/dist/shared-tree-core/sharedTreeCore.js +9 -44
  198. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  199. package/dist/shared-tree-core/transaction.d.ts +84 -9
  200. package/dist/shared-tree-core/transaction.d.ts.map +1 -1
  201. package/dist/shared-tree-core/transaction.js +94 -37
  202. package/dist/shared-tree-core/transaction.js.map +1 -1
  203. package/dist/simple-tree/api/index.d.ts +1 -1
  204. package/dist/simple-tree/api/index.d.ts.map +1 -1
  205. package/dist/simple-tree/api/index.js.map +1 -1
  206. package/dist/simple-tree/api/schemaCreationUtilities.d.ts +3 -3
  207. package/dist/simple-tree/api/schemaCreationUtilities.js +3 -3
  208. package/dist/simple-tree/api/schemaCreationUtilities.js.map +1 -1
  209. package/dist/simple-tree/api/schemaFactory.d.ts +1 -1
  210. package/dist/simple-tree/api/schemaFactory.js +2 -2
  211. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  212. package/dist/simple-tree/api/simpleSchemaCodec.js +2 -24
  213. package/dist/simple-tree/api/simpleSchemaCodec.js.map +1 -1
  214. package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts +2 -2
  215. package/dist/simple-tree/api/snapshotCompatibilityChecker.js +4 -26
  216. package/dist/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -1
  217. package/dist/simple-tree/api/transactionTypes.d.ts +91 -28
  218. package/dist/simple-tree/api/transactionTypes.d.ts.map +1 -1
  219. package/dist/simple-tree/api/transactionTypes.js.map +1 -1
  220. package/dist/simple-tree/api/tree.d.ts +96 -22
  221. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  222. package/dist/simple-tree/api/tree.js.map +1 -1
  223. package/dist/simple-tree/api/treeBeta.d.ts.map +1 -1
  224. package/dist/simple-tree/api/treeBeta.js.map +1 -1
  225. package/dist/simple-tree/core/treeNodeKernel.js +83 -93
  226. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  227. package/dist/simple-tree/core/treeNodeSchema.d.ts +7 -7
  228. package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
  229. package/dist/simple-tree/core/unhydratedFlexTree.js +6 -10
  230. package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  231. package/dist/simple-tree/index.d.ts +1 -1
  232. package/dist/simple-tree/index.d.ts.map +1 -1
  233. package/dist/simple-tree/index.js.map +1 -1
  234. package/dist/simple-tree/leafNodeSchema.js +2 -12
  235. package/dist/simple-tree/leafNodeSchema.js.map +1 -1
  236. package/dist/simple-tree/node-kinds/array/arrayNode.js +2 -6
  237. package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  238. package/dist/simple-tree/simpleSchemaFormatV1.js +2 -24
  239. package/dist/simple-tree/simpleSchemaFormatV1.js.map +1 -1
  240. package/dist/tableSchema.d.ts +50 -4
  241. package/dist/tableSchema.d.ts.map +1 -1
  242. package/dist/tableSchema.js +202 -106
  243. package/dist/tableSchema.js.map +1 -1
  244. package/dist/text/index.d.ts +1 -0
  245. package/dist/text/index.d.ts.map +1 -1
  246. package/dist/text/index.js +3 -1
  247. package/dist/text/index.js.map +1 -1
  248. package/dist/text/textDomainFormatted.d.ts +69 -758
  249. package/dist/text/textDomainFormatted.d.ts.map +1 -1
  250. package/dist/text/textDomainFormatted.js +275 -322
  251. package/dist/text/textDomainFormatted.js.map +1 -1
  252. package/dist/text/textDomainFormattedDefault.d.ts +273 -0
  253. package/dist/text/textDomainFormattedDefault.d.ts.map +1 -0
  254. package/dist/text/textDomainFormattedDefault.js +94 -0
  255. package/dist/text/textDomainFormattedDefault.js.map +1 -0
  256. package/dist/util/arrayUtilities.d.ts +20 -0
  257. package/dist/util/arrayUtilities.d.ts.map +1 -1
  258. package/dist/util/arrayUtilities.js +24 -1
  259. package/dist/util/arrayUtilities.js.map +1 -1
  260. package/dist/util/compressedIds.d.ts +118 -0
  261. package/dist/util/compressedIds.d.ts.map +1 -0
  262. package/dist/util/compressedIds.js +133 -0
  263. package/dist/util/compressedIds.js.map +1 -0
  264. package/dist/util/index.d.ts +2 -1
  265. package/dist/util/index.d.ts.map +1 -1
  266. package/dist/util/index.js +11 -2
  267. package/dist/util/index.js.map +1 -1
  268. package/dist/util/rangeMap.d.ts +13 -0
  269. package/dist/util/rangeMap.d.ts.map +1 -1
  270. package/dist/util/rangeMap.js +69 -8
  271. package/dist/util/rangeMap.js.map +1 -1
  272. package/dist/util/typeboxBrand.js +2 -24
  273. package/dist/util/typeboxBrand.js.map +1 -1
  274. package/dist/util/utils.js +2 -24
  275. package/dist/util/utils.js.map +1 -1
  276. package/eslint.config.mts +0 -30
  277. package/lib/core/change-family/changeFamily.d.ts +3 -10
  278. package/lib/core/change-family/changeFamily.d.ts.map +1 -1
  279. package/lib/core/change-family/changeFamily.js.map +1 -1
  280. package/lib/core/rebase/types.d.ts +2 -2
  281. package/lib/core/rebase/types.js.map +1 -1
  282. package/lib/core/schema-stored/storedSchemaRepository.d.ts +2 -2
  283. package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -1
  284. package/lib/core/tree/anchorSet.js +1 -5
  285. package/lib/core/tree/anchorSet.js.map +1 -1
  286. package/lib/entrypoints/alpha.d.ts +1 -1
  287. package/lib/entrypoints/alpha.d.ts.map +1 -1
  288. package/lib/entrypoints/alpha.js.map +1 -1
  289. package/lib/entrypoints/beta.d.ts +1 -1
  290. package/lib/entrypoints/beta.d.ts.map +1 -1
  291. package/lib/entrypoints/beta.js.map +1 -1
  292. package/lib/entrypoints/legacy.d.ts +1 -1
  293. package/lib/entrypoints/legacy.d.ts.map +1 -1
  294. package/lib/entrypoints/legacy.js.map +1 -1
  295. package/lib/feature-libraries/chunked-forest/chunkedForest.js +1 -5
  296. package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  297. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +19 -14
  298. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  299. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +14 -33
  300. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  301. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +85 -28
  302. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  303. package/lib/feature-libraries/chunked-forest/codec/codecs.js +82 -9
  304. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  305. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +4 -2
  306. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  307. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +12 -1
  308. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  309. package/lib/feature-libraries/chunked-forest/codec/index.d.ts +1 -1
  310. package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
  311. package/lib/feature-libraries/chunked-forest/codec/index.js +1 -1
  312. package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -1
  313. package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts +1 -1
  314. package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts.map +1 -1
  315. package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.js +3 -15
  316. package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.js.map +1 -1
  317. package/lib/feature-libraries/chunked-forest/index.d.ts +1 -1
  318. package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -1
  319. package/lib/feature-libraries/chunked-forest/index.js +1 -1
  320. package/lib/feature-libraries/chunked-forest/index.js.map +1 -1
  321. package/lib/feature-libraries/flex-tree/lazyEntity.js +1 -11
  322. package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
  323. package/lib/feature-libraries/flex-tree/lazyNode.js +1 -11
  324. package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  325. package/lib/feature-libraries/forest-summary/codec.d.ts +3 -3
  326. package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  327. package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
  328. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +3 -2
  329. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  330. package/lib/feature-libraries/forest-summary/forestSummarizer.js +4 -6
  331. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  332. package/lib/feature-libraries/index.d.ts +1 -1
  333. package/lib/feature-libraries/index.d.ts.map +1 -1
  334. package/lib/feature-libraries/index.js +1 -1
  335. package/lib/feature-libraries/index.js.map +1 -1
  336. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
  337. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js +10 -10
  338. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
  339. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  340. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +10 -30
  341. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  342. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +0 -5
  343. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  344. package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  345. package/lib/feature-libraries/object-forest/objectForest.js +1 -45
  346. package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
  347. package/lib/index.d.ts +2 -2
  348. package/lib/index.d.ts.map +1 -1
  349. package/lib/index.js +1 -1
  350. package/lib/index.js.map +1 -1
  351. package/lib/packageVersion.d.ts +1 -1
  352. package/lib/packageVersion.js +1 -1
  353. package/lib/packageVersion.js.map +1 -1
  354. package/lib/shared-tree/independentView.d.ts.map +1 -1
  355. package/lib/shared-tree/independentView.js +5 -8
  356. package/lib/shared-tree/independentView.js.map +1 -1
  357. package/lib/shared-tree/index.d.ts +1 -1
  358. package/lib/shared-tree/index.d.ts.map +1 -1
  359. package/lib/shared-tree/index.js.map +1 -1
  360. package/lib/shared-tree/schematizingTreeView.d.ts +6 -5
  361. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  362. package/lib/shared-tree/schematizingTreeView.js +4 -38
  363. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  364. package/lib/shared-tree/sharedTree.d.ts +5 -1
  365. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  366. package/lib/shared-tree/sharedTree.js +9 -45
  367. package/lib/shared-tree/sharedTree.js.map +1 -1
  368. package/lib/shared-tree/transactionPostProcessor.d.ts +28 -0
  369. package/lib/shared-tree/transactionPostProcessor.d.ts.map +1 -0
  370. package/lib/shared-tree/transactionPostProcessor.js +23 -0
  371. package/lib/shared-tree/transactionPostProcessor.js.map +1 -0
  372. package/lib/shared-tree/treeAlpha.js +3 -3
  373. package/lib/shared-tree/treeAlpha.js.map +1 -1
  374. package/lib/shared-tree/treeCheckout.d.ts +28 -15
  375. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  376. package/lib/shared-tree/treeCheckout.js +80 -101
  377. package/lib/shared-tree/treeCheckout.js.map +1 -1
  378. package/lib/shared-tree/unhydratedTreeContext.d.ts +5 -5
  379. package/lib/shared-tree/unhydratedTreeContext.d.ts.map +1 -1
  380. package/lib/shared-tree/unhydratedTreeContext.js.map +1 -1
  381. package/lib/shared-tree-core/branch.js +1 -5
  382. package/lib/shared-tree-core/branch.js.map +1 -1
  383. package/lib/shared-tree-core/editManagerCodecs.d.ts +3 -2
  384. package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  385. package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
  386. package/lib/shared-tree-core/editManagerCodecsCommons.d.ts +3 -9
  387. package/lib/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -1
  388. package/lib/shared-tree-core/editManagerCodecsCommons.js +3 -5
  389. package/lib/shared-tree-core/editManagerCodecsCommons.js.map +1 -1
  390. package/lib/shared-tree-core/editManagerCodecsV1toV4.d.ts +3 -3
  391. package/lib/shared-tree-core/editManagerCodecsV1toV4.d.ts.map +1 -1
  392. package/lib/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -1
  393. package/lib/shared-tree-core/editManagerCodecsVSharedBranches.d.ts +3 -3
  394. package/lib/shared-tree-core/editManagerCodecsVSharedBranches.d.ts.map +1 -1
  395. package/lib/shared-tree-core/editManagerCodecsVSharedBranches.js.map +1 -1
  396. package/lib/shared-tree-core/editManagerSummarizer.d.ts +5 -9
  397. package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  398. package/lib/shared-tree-core/editManagerSummarizer.js +5 -10
  399. package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
  400. package/lib/shared-tree-core/index.d.ts +1 -1
  401. package/lib/shared-tree-core/index.d.ts.map +1 -1
  402. package/lib/shared-tree-core/index.js +1 -1
  403. package/lib/shared-tree-core/index.js.map +1 -1
  404. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  405. package/lib/shared-tree-core/sharedTreeCore.js +4 -39
  406. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  407. package/lib/shared-tree-core/transaction.d.ts +84 -9
  408. package/lib/shared-tree-core/transaction.d.ts.map +1 -1
  409. package/lib/shared-tree-core/transaction.js +74 -17
  410. package/lib/shared-tree-core/transaction.js.map +1 -1
  411. package/lib/simple-tree/api/index.d.ts +1 -1
  412. package/lib/simple-tree/api/index.d.ts.map +1 -1
  413. package/lib/simple-tree/api/index.js.map +1 -1
  414. package/lib/simple-tree/api/schemaCreationUtilities.d.ts +3 -3
  415. package/lib/simple-tree/api/schemaCreationUtilities.js +3 -3
  416. package/lib/simple-tree/api/schemaCreationUtilities.js.map +1 -1
  417. package/lib/simple-tree/api/schemaFactory.d.ts +1 -1
  418. package/lib/simple-tree/api/schemaFactory.js +2 -2
  419. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  420. package/lib/simple-tree/api/snapshotCompatibilityChecker.d.ts +2 -2
  421. package/lib/simple-tree/api/snapshotCompatibilityChecker.js +2 -2
  422. package/lib/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -1
  423. package/lib/simple-tree/api/transactionTypes.d.ts +91 -28
  424. package/lib/simple-tree/api/transactionTypes.d.ts.map +1 -1
  425. package/lib/simple-tree/api/transactionTypes.js.map +1 -1
  426. package/lib/simple-tree/api/tree.d.ts +96 -22
  427. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  428. package/lib/simple-tree/api/tree.js.map +1 -1
  429. package/lib/simple-tree/api/treeBeta.d.ts.map +1 -1
  430. package/lib/simple-tree/api/treeBeta.js.map +1 -1
  431. package/lib/simple-tree/core/treeNodeKernel.js +1 -11
  432. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  433. package/lib/simple-tree/core/treeNodeSchema.d.ts +7 -7
  434. package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
  435. package/lib/simple-tree/core/unhydratedFlexTree.js +1 -5
  436. package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  437. package/lib/simple-tree/index.d.ts +1 -1
  438. package/lib/simple-tree/index.d.ts.map +1 -1
  439. package/lib/simple-tree/index.js.map +1 -1
  440. package/lib/simple-tree/leafNodeSchema.js +1 -11
  441. package/lib/simple-tree/leafNodeSchema.js.map +1 -1
  442. package/lib/simple-tree/node-kinds/array/arrayNode.js +1 -5
  443. package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  444. package/lib/tableSchema.d.ts +50 -4
  445. package/lib/tableSchema.d.ts.map +1 -1
  446. package/lib/tableSchema.js +171 -75
  447. package/lib/tableSchema.js.map +1 -1
  448. package/lib/text/index.d.ts +1 -0
  449. package/lib/text/index.d.ts.map +1 -1
  450. package/lib/text/index.js +1 -0
  451. package/lib/text/index.js.map +1 -1
  452. package/lib/text/textDomainFormatted.d.ts +69 -758
  453. package/lib/text/textDomainFormatted.d.ts.map +1 -1
  454. package/lib/text/textDomainFormatted.js +277 -324
  455. package/lib/text/textDomainFormatted.js.map +1 -1
  456. package/lib/text/textDomainFormattedDefault.d.ts +273 -0
  457. package/lib/text/textDomainFormattedDefault.d.ts.map +1 -0
  458. package/lib/text/textDomainFormattedDefault.js +91 -0
  459. package/lib/text/textDomainFormattedDefault.js.map +1 -0
  460. package/lib/util/arrayUtilities.d.ts +20 -0
  461. package/lib/util/arrayUtilities.d.ts.map +1 -1
  462. package/lib/util/arrayUtilities.js +22 -0
  463. package/lib/util/arrayUtilities.js.map +1 -1
  464. package/lib/util/compressedIds.d.ts +118 -0
  465. package/lib/util/compressedIds.d.ts.map +1 -0
  466. package/lib/util/compressedIds.js +124 -0
  467. package/lib/util/compressedIds.js.map +1 -0
  468. package/lib/util/index.d.ts +2 -1
  469. package/lib/util/index.d.ts.map +1 -1
  470. package/lib/util/index.js +2 -1
  471. package/lib/util/index.js.map +1 -1
  472. package/lib/util/rangeMap.d.ts +13 -0
  473. package/lib/util/rangeMap.d.ts.map +1 -1
  474. package/lib/util/rangeMap.js +69 -8
  475. package/lib/util/rangeMap.js.map +1 -1
  476. package/package.json +25 -24
  477. package/src/core/change-family/changeFamily.ts +3 -12
  478. package/src/core/rebase/types.ts +2 -2
  479. package/src/core/schema-stored/storedSchemaRepository.ts +2 -2
  480. package/src/entrypoints/alpha.ts +12 -8
  481. package/src/entrypoints/beta.ts +8 -0
  482. package/src/entrypoints/legacy.ts +8 -0
  483. package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +35 -64
  484. package/src/feature-libraries/chunked-forest/codec/codecs.ts +138 -42
  485. package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +32 -4
  486. package/src/feature-libraries/chunked-forest/codec/index.ts +1 -0
  487. package/src/feature-libraries/chunked-forest/codec/nodeEncoder.ts +7 -19
  488. package/src/feature-libraries/chunked-forest/index.ts +3 -0
  489. package/src/feature-libraries/forest-summary/codec.ts +5 -3
  490. package/src/feature-libraries/forest-summary/forestSummarizer.ts +4 -5
  491. package/src/feature-libraries/index.ts +3 -0
  492. package/src/feature-libraries/modular-schema/modularChangeCodecV1.ts +13 -9
  493. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +14 -47
  494. package/src/feature-libraries/modular-schema/modularChangeTypes.ts +0 -5
  495. package/src/index.ts +13 -8
  496. package/src/packageVersion.ts +1 -1
  497. package/src/shared-tree/independentView.ts +5 -10
  498. package/src/shared-tree/index.ts +1 -0
  499. package/src/shared-tree/schematizingTreeView.ts +29 -25
  500. package/src/shared-tree/sharedTree.ts +18 -10
  501. package/src/shared-tree/transactionPostProcessor.ts +40 -0
  502. package/src/shared-tree/treeAlpha.ts +3 -3
  503. package/src/shared-tree/treeCheckout.ts +120 -95
  504. package/src/shared-tree/unhydratedTreeContext.ts +18 -15
  505. package/src/shared-tree-core/editManagerCodecs.ts +3 -2
  506. package/src/shared-tree-core/editManagerCodecsCommons.ts +10 -14
  507. package/src/shared-tree-core/editManagerCodecsV1toV4.ts +3 -2
  508. package/src/shared-tree-core/editManagerCodecsVSharedBranches.ts +3 -2
  509. package/src/shared-tree-core/editManagerSummarizer.ts +5 -9
  510. package/src/shared-tree-core/index.ts +8 -5
  511. package/src/shared-tree-core/sharedTreeCore.ts +3 -2
  512. package/src/shared-tree-core/transaction.ts +148 -18
  513. package/src/simple-tree/api/index.ts +13 -9
  514. package/src/simple-tree/api/schemaCreationUtilities.ts +3 -3
  515. package/src/simple-tree/api/schemaFactory.ts +2 -2
  516. package/src/simple-tree/api/snapshotCompatibilityChecker.ts +2 -2
  517. package/src/simple-tree/api/transactionTypes.ts +111 -39
  518. package/src/simple-tree/api/tree.ts +152 -47
  519. package/src/simple-tree/api/treeBeta.ts +2 -0
  520. package/src/simple-tree/core/treeNodeSchema.ts +7 -7
  521. package/src/simple-tree/index.ts +12 -8
  522. package/src/tableSchema.ts +306 -80
  523. package/src/text/index.ts +1 -0
  524. package/src/text/textDomainFormatted.ts +520 -415
  525. package/src/text/textDomainFormattedDefault.ts +150 -0
  526. package/src/util/arrayUtilities.ts +35 -0
  527. package/src/util/compressedIds.ts +216 -0
  528. package/src/util/index.ts +17 -0
  529. package/src/util/rangeMap.ts +108 -9
  530. package/tsconfig.json +5 -0
@@ -3,53 +3,9 @@
3
3
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
4
  * Licensed under the MIT License.
5
5
  */
6
- var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
7
- var useValue = arguments.length > 2;
8
- for (var i = 0; i < initializers.length; i++) {
9
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
10
- }
11
- return useValue ? value : void 0;
12
- };
13
- var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
14
- function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
15
- var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
16
- var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
17
- var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
18
- var _, done = false;
19
- for (var i = decorators.length - 1; i >= 0; i--) {
20
- var context = {};
21
- for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
22
- for (var p in contextIn.access) context.access[p] = contextIn.access[p];
23
- context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
24
- var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
25
- if (kind === "accessor") {
26
- if (result === void 0) continue;
27
- if (result === null || typeof result !== "object") throw new TypeError("Object expected");
28
- if (_ = accept(result.get)) descriptor.get = _;
29
- if (_ = accept(result.set)) descriptor.set = _;
30
- if (_ = accept(result.init)) initializers.unshift(_);
31
- }
32
- else if (_ = accept(result)) {
33
- if (kind === "field") initializers.unshift(_);
34
- else descriptor[key] = _;
35
- }
36
- }
37
- if (target) Object.defineProperty(target, contextIn.name, descriptor);
38
- done = true;
39
- };
40
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
41
- if (kind === "m") throw new TypeError("Private method is not writable");
42
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
43
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
44
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
45
- };
46
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
47
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
48
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
49
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
50
- };
51
6
  Object.defineProperty(exports, "__esModule", { value: true });
52
7
  exports.TreeCheckout = exports.assertValidConstraint = exports.addConstraintsToTransaction = exports.createTreeCheckout = void 0;
8
+ const tslib_1 = require("tslib");
53
9
  const client_utils_1 = require("@fluid-internal/client-utils");
54
10
  const internal_1 = require("@fluidframework/core-utils/internal");
55
11
  const internal_2 = require("@fluidframework/id-compressor/internal");
@@ -63,6 +19,7 @@ const index_js_6 = require("../util/index.js");
63
19
  const schematizingTreeView_js_1 = require("./schematizingTreeView.js");
64
20
  const sharedTreeChangeEnricher_js_1 = require("./sharedTreeChangeEnricher.js");
65
21
  const sharedTreeChangeFamily_js_1 = require("./sharedTreeChangeFamily.js");
22
+ const transactionPostProcessor_js_1 = require("./transactionPostProcessor.js");
66
23
  /**
67
24
  * Yields all defined (non-`undefined`) labels from a {@link LabelTree}, depth-first.
68
25
  */
@@ -129,7 +86,7 @@ function createTreeCheckout(idCompressor, mintRevisionTag, revisionTagCodec, arg
129
86
  change: changeFamily.rebaser.compose([]),
130
87
  revision: "root",
131
88
  }, changeFamily, () => idCompressor.generateCompressedId());
132
- return new TreeCheckout(branch, true, changeFamily, schema, forest, mintRevisionTag, revisionTagCodec, idCompressor, args?.removedRoots, args?.logger, breaker, args?.disposeForksAfterTransaction);
89
+ return new TreeCheckout(branch, true, changeFamily, schema, forest, mintRevisionTag, revisionTagCodec, idCompressor, args?.removedRoots, args?.logger, breaker);
133
90
  }
134
91
  exports.createTreeCheckout = createTreeCheckout;
135
92
  /**
@@ -151,7 +108,7 @@ function getCheckout(context) {
151
108
  * @param constraintsOnRevert - If true, use {@link ISharedTreeEditor.addNodeExistsConstraintOnRevert}.
152
109
  * @param constraints - The constraints to add to the transaction.
153
110
  *
154
- * @see {@link RunTransactionParams.preconditions}.
111
+ * @see {@link RunTransactionParamsAlpha.preconditions}.
155
112
  */
156
113
  function addConstraintsToTransaction(checkout, constraintsOnRevert, constraints = []) {
157
114
  for (const constraint of constraints) {
@@ -226,8 +183,8 @@ let TreeCheckout = (() => {
226
183
  /** True if and only if this checkout is for a branch which is persisted and shared with other clients. */
227
184
  isSharedBranch, changeFamily, storedSchema, forest, mintRevisionTag, revisionTagCodec, idCompressor, _removedRoots = (0, index_js_2.makeDetachedFieldIndex)("repair", revisionTagCodec, idCompressor),
228
185
  /** Optional logger for telemetry. */
229
- logger, breaker = new index_js_6.Breakable("TreeCheckout"), disposeForksAfterTransaction = true) {
230
- this.isSharedBranch = (__runInitializers(this, _instanceExtraInitializers), isSharedBranch);
186
+ logger, breaker = new index_js_6.Breakable("TreeCheckout")) {
187
+ this.isSharedBranch = (tslib_1.__runInitializers(this, _instanceExtraInitializers), isSharedBranch);
231
188
  this.changeFamily = changeFamily;
232
189
  this.storedSchema = storedSchema;
233
190
  this.forest = forest;
@@ -237,13 +194,12 @@ let TreeCheckout = (() => {
237
194
  this._removedRoots = _removedRoots;
238
195
  this.logger = logger;
239
196
  this.breaker = breaker;
240
- this.disposeForksAfterTransaction = disposeForksAfterTransaction;
241
197
  this.disposed = false;
242
198
  this.views = new Set();
243
199
  /**
244
- * Set of revertibles maintained for automatic disposal
200
+ * Revertibles maintained for automatic disposal
245
201
  */
246
- this.revertibles = new Set();
202
+ this.revertibles = new Map();
247
203
  /**
248
204
  * Each branch's head commit corresponds to a revertible commit.
249
205
  * Maintaining a whole branch ensures the commit graph is not pruned in a way that would prevent the commit from
@@ -251,7 +207,7 @@ let TreeCheckout = (() => {
251
207
  */
252
208
  this.revertibleCommitBranches = new Map();
253
209
  _TreeCheckout_events.set(this, (0, client_utils_1.createEmitter)());
254
- this.events = __classPrivateFieldGet(this, _TreeCheckout_events, "f");
210
+ this.events = tslib_1.__classPrivateFieldGet(this, _TreeCheckout_events, "f");
255
211
  this.onAfterBranchChange = (event) => {
256
212
  // The following logic allows revertibles to be generated for the change.
257
213
  // Currently only appends (including merges and transaction commits) are supported.
@@ -275,8 +231,8 @@ let TreeCheckout = (() => {
275
231
  throw new internal_3.UsageError("Cannot generate the same revertible more than once. Note that this can happen when multiple changed event listeners are registered.");
276
232
  }
277
233
  const revertible = this.createRevertible(revision, kind, this, onRevertibleDisposed, commitLabelTree);
278
- this.revertibleCommitBranches.set(revision, __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.fork(commit));
279
- this.revertibles.add(revertible);
234
+ this.revertibleCommitBranches.set(revision, tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.fork(commit));
235
+ this.revertibles.set(revision, revertible);
280
236
  return revertible;
281
237
  };
282
238
  let withinEventContext = true;
@@ -303,29 +259,39 @@ let TreeCheckout = (() => {
303
259
  label: this.labelTreeNode?.label,
304
260
  labels: buildLabelsSet(this.labelTreeNode),
305
261
  };
306
- __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("changed", metadata, getRevertible);
262
+ this.emitChangedLocked(() => {
263
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("changed", metadata, getRevertible);
264
+ });
307
265
  withinEventContext = false;
308
266
  }
309
267
  }
268
+ else if (event.type === "remove") {
269
+ // Commits that are rolled back should no longer be revertible
270
+ for (const commit of event.removedCommits) {
271
+ this.revertibles.get(commit.revision)?.dispose();
272
+ }
273
+ }
310
274
  else if (this.isRemoteChangeEvent(event)) {
311
275
  // TODO: figure out how to plumb through commit kind info for remote changes
312
- __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("changed", {
313
- isLocal: false,
314
- kind: index_js_2.CommitKind.Default,
315
- labels: new Set(),
276
+ this.emitChangedLocked(() => {
277
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("changed", {
278
+ isLocal: false,
279
+ kind: index_js_2.CommitKind.Default,
280
+ labels: new Set(),
281
+ });
316
282
  });
317
283
  }
318
284
  };
319
285
  this.onAfterChange = (event) => {
320
286
  this.editLock.lock();
321
- __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("beforeBatch", event);
287
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("beforeBatch", event);
322
288
  if (event.change !== undefined) {
323
289
  const revision = event.type === "rebase"
324
- ? __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.getHead().revision
290
+ ? tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.getHead().revision
325
291
  : event.change.revision;
326
292
  this.applyInternalChange(event.change.change, revision);
327
293
  }
328
- __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("afterBatch");
294
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("afterBatch");
329
295
  this.editLock.unlock();
330
296
  if (event.type === "append") {
331
297
  for (const commit of event.newCommits) {
@@ -370,8 +336,8 @@ let TreeCheckout = (() => {
370
336
  * The performance cost of maintaining this information is negligible.
371
337
  */
372
338
  this.enrichmentStats = { batches: 0, diffs: 0, commitsEnriched: 0, refreshers: 0, forks: 0, applied: 0 };
373
- __classPrivateFieldSet(this, _TreeCheckout_transaction, this.createTransactionStack(branch), "f");
374
- this.editLock = new EditLock(__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEditor);
339
+ tslib_1.__classPrivateFieldSet(this, _TreeCheckout_transaction, this.createTransactionStack(branch), "f");
340
+ this.editLock = new EditLock(tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEditor);
375
341
  this.registerForBranchEvents();
376
342
  }
377
343
  /**
@@ -479,24 +445,21 @@ let TreeCheckout = (() => {
479
445
  return this._removedRoots;
480
446
  }
481
447
  registerForBranchEvents() {
482
- __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.events.on("afterChange", this.onAfterBranchChange);
483
- __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.on("afterChange", this.onAfterChange);
484
- __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.on("ancestryTrimmed", this.onAncestryTrimmed);
448
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.events.on("afterChange", this.onAfterBranchChange);
449
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.on("afterChange", this.onAfterChange);
450
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.on("ancestryTrimmed", this.onAncestryTrimmed);
485
451
  }
486
452
  unregisterFromBranchEvents() {
487
- __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.events.off("afterChange", this.onAfterBranchChange);
488
- __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.off("afterChange", this.onAfterChange);
489
- __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.off("ancestryTrimmed", this.onAncestryTrimmed);
453
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.events.off("afterChange", this.onAfterBranchChange);
454
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.off("afterChange", this.onAfterChange);
455
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.off("ancestryTrimmed", this.onAncestryTrimmed);
490
456
  }
491
457
  createTransactionStack(branch) {
492
458
  return new index_js_4.SquashingTransactionStack(branch, this.mintRevisionTag, () => {
493
- const disposeForks = this.disposeForksAfterTransaction
494
- ? trackForksForDisposal(this)
495
- : undefined;
496
459
  // When each transaction is started, make a restorable checkpoint of the current state of removed roots
497
460
  const restoreRemovedRoots = this._removedRoots.createCheckpoint();
498
461
  return (result, viewUpdate) => {
499
- const newHead = __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.getHead();
462
+ const newHead = tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.getHead();
500
463
  switch (result) {
501
464
  case index_js_4.TransactionResult.Abort: {
502
465
  restoreRemovedRoots();
@@ -519,7 +482,6 @@ let TreeCheckout = (() => {
519
482
  (0, internal_1.unreachableCase)(result);
520
483
  }
521
484
  }
522
- disposeForks?.();
523
485
  };
524
486
  });
525
487
  }
@@ -543,6 +505,31 @@ let TreeCheckout = (() => {
543
505
  cursor.free();
544
506
  }
545
507
  }
508
+ /**
509
+ * Hold the `editLock` for the duration of `emit`, so that re-entrant edits, transactions,
510
+ * branch operations, etc. attempted from inside a `changed` listener throw the canonical
511
+ * "forbidden during a change event" {@link UsageError} via {@link EditLock.checkUnlocked}.
512
+ *
513
+ * @remarks
514
+ * Shared by both the local and remote `changed` emission paths in {@link TreeCheckout.onAfterBranchChange}.
515
+ * The `try`/`finally` ensures the lock is released even if a listener throws.
516
+ */
517
+ emitChangedLocked(emit) {
518
+ this.editLock.lock();
519
+ try {
520
+ emit();
521
+ }
522
+ finally {
523
+ // TODO: any event that throws potentially leaves the code which triggered that event,
524
+ // and thus this checkout (and likely more) in a broken state.
525
+ // Unlocking this editLock prevents future use of this broken state from giving a confusing error in this case,
526
+ // however, a better approach would probably be to put something (this checkout and/or the editLock)
527
+ // into a broken state (using a properly scoped `Breakable`),
528
+ // likely by moving emitChangedLocked into EditLock, and having EditLock get a Breakable,
529
+ // and having the new emitChangedLocked use `Breakable.use`.
530
+ this.editLock.unlock();
531
+ }
532
+ }
546
533
  /**
547
534
  * Applies the given serialized change (as was produced via a `"changed"` event of another checkout) to this checkout.
548
535
  */
@@ -562,7 +549,7 @@ let TreeCheckout = (() => {
562
549
  };
563
550
  const decodedChange = this.changeFamily.codecs.resolve(4).decode(change, context);
564
551
  // Apply the change to the branch, but _not_ the `activeBranch` - we do not support squashing serialized commits in a transaction.
565
- __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.apply((0, index_js_2.tagChange)(decodedChange, revision));
552
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.apply((0, index_js_2.tagChange)(decodedChange, revision));
566
553
  }
567
554
  // #region TreeBranchAlpha
568
555
  applyChange(change) {
@@ -586,11 +573,22 @@ let TreeCheckout = (() => {
586
573
  }
587
574
  mountTransaction(params, isAsync) {
588
575
  this.checkNotDisposed();
576
+ // Starting a transaction is an edit, so it is forbidden from within a change-event
577
+ // callback (where the edit lock is held), the same as direct edits. For the async
578
+ // entry point this throw is captured as a rejected promise by the `async` wrapper.
579
+ //
580
+ // Note: because runTransaction/runTransactionAsync are `@breakingMethod`, this throw also
581
+ // puts the checkout into a broken state (unlike a direct edit, which throws recoverably).
582
+ // That is the same pre-existing broken-state limitation tracked by the TODO in
583
+ // `emitChangedLocked`, not something specific to transactions.
584
+ this.editLock.checkUnlocked("Running a transaction");
589
585
  if (isAsync && this.transaction.size > 0) {
590
586
  throw new internal_3.UsageError("An asynchronous transaction cannot be started while another transaction is already in progress.");
591
587
  }
592
588
  this.pushLabelFrame(params?.label);
593
- this.transaction.start();
589
+ this.transaction.start({
590
+ postProcessor: (0, transactionPostProcessor_js_1.extractTransactionChangeProcessor)(params?.postProcessor),
591
+ });
594
592
  addConstraintsToTransaction(this, false, params?.preconditions);
595
593
  }
596
594
  unmountTransaction(transactionCallbackStatus, params) {
@@ -704,7 +702,7 @@ let TreeCheckout = (() => {
704
702
  throw new internal_3.UsageError("Unable to clone a revertible that has been disposed.");
705
703
  }
706
704
  const commitToRevert = revertibleBranch.getHead();
707
- const activeBranchHead = __classPrivateFieldGet(targetCheckout, _TreeCheckout_transaction, "f").activeBranch.getHead();
705
+ const activeBranchHead = tslib_1.__classPrivateFieldGet(targetCheckout, _TreeCheckout_transaction, "f").activeBranch.getHead();
708
706
  if ((0, index_js_2.isAncestor)(commitToRevert, activeBranchHead, true) === false) {
709
707
  throw new internal_3.UsageError("Cannot clone revertible for a commit that is not present on the given branch.");
710
708
  }
@@ -715,7 +713,7 @@ let TreeCheckout = (() => {
715
713
  if (revertible.status === index_js_2.RevertibleStatus.Disposed) {
716
714
  throw new internal_3.UsageError("Unable to dispose a revertible that has already been disposed.");
717
715
  }
718
- checkout.disposeRevertible(revertible, revision);
716
+ checkout.disposeRevertible(revision);
719
717
  onRevertibleDisposed?.(revertible);
720
718
  },
721
719
  };
@@ -740,7 +738,7 @@ let TreeCheckout = (() => {
740
738
  return this.forest.anchors.locate(anchor);
741
739
  }
742
740
  get transaction() {
743
- return __classPrivateFieldGet(this, _TreeCheckout_transaction, "f");
741
+ return tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f");
744
742
  }
745
743
  fork() {
746
744
  this.checkNotDisposed("The parent branch has already been disposed and can no longer create new branches.");
@@ -748,26 +746,25 @@ let TreeCheckout = (() => {
748
746
  if (this.transaction.size > 0) {
749
747
  throw new internal_3.UsageError("A view cannot be forked while it has a pending transaction.");
750
748
  }
751
- this.editLock.checkUnlocked("Branching");
752
- const branch = __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.fork();
749
+ const branch = tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.fork();
753
750
  const storedSchema = this.storedSchema.clone();
754
751
  const forkBreaker = new index_js_6.Breakable("TreeCheckout");
755
752
  const forest = this.forest.clone(storedSchema, forkBreaker);
756
- const checkout = new _a(branch, false, this.changeFamily, storedSchema, forest, this.mintRevisionTag, this.revisionTagCodec, this.idCompressor, this._removedRoots.clone(), this.logger, forkBreaker, this.disposeForksAfterTransaction);
757
- __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("fork", checkout);
753
+ const checkout = new _a(branch, false, this.changeFamily, storedSchema, forest, this.mintRevisionTag, this.revisionTagCodec, this.idCompressor, this._removedRoots.clone(), this.logger, forkBreaker);
754
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("fork", checkout);
758
755
  return checkout;
759
756
  }
760
757
  switchBranch(branch) {
761
758
  // TODO: Dispose old branch, if necessary
762
- (0, internal_1.assert)(__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").size === 0, 0xc55 /* Cannot switch branches during a transaction */);
763
- const diff = (0, index_js_2.diffHistories)(this.changeFamily.rebaser, __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.getHead(), branch.getHead(), this.mintRevisionTag);
759
+ (0, internal_1.assert)(tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").size === 0, 0xc55 /* Cannot switch branches during a transaction */);
760
+ const diff = (0, index_js_2.diffHistories)(this.changeFamily.rebaser, tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.getHead(), branch.getHead(), this.mintRevisionTag);
764
761
  this.unregisterFromBranchEvents();
765
- __classPrivateFieldSet(this, _TreeCheckout_transaction, this.createTransactionStack(branch), "f");
766
- this.editLock = new EditLock(__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEditor);
762
+ tslib_1.__classPrivateFieldSet(this, _TreeCheckout_transaction, this.createTransactionStack(branch), "f");
763
+ this.editLock = new EditLock(tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEditor);
767
764
  this.registerForBranchEvents();
768
765
  // TODO: Rework eventing
769
766
  this.applyInternalChange(diff);
770
- __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("afterBatch");
767
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("afterBatch");
771
768
  }
772
769
  rebase(branch) {
773
770
  const checkout = getCheckout(branch);
@@ -781,11 +778,23 @@ let TreeCheckout = (() => {
781
778
  throw new internal_3.UsageError("A view cannot be rebased while it has a pending transaction.");
782
779
  }
783
780
  (0, internal_1.assert)(!checkout.isSharedBranch, 0xa5d /* Shared branches cannot be rebased onto another branch. */);
784
- __classPrivateFieldGet(checkout, _TreeCheckout_transaction, "f").activeBranch.rebaseOnto(__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch);
781
+ tslib_1.__classPrivateFieldGet(checkout, _TreeCheckout_transaction, "f").activeBranch.rebaseOnto(tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch);
785
782
  }
786
783
  rebaseOnto(branch) {
787
784
  getCheckout(branch).rebase(this);
788
785
  }
786
+ isMissingEditsFrom(branch) {
787
+ const branchCheckout = getCheckout(branch);
788
+ const targetPath = [];
789
+ const ancestor = (0, index_js_2.findCommonAncestor)(this.mainBranch.getHead(), [
790
+ branchCheckout.mainBranch.getHead(),
791
+ targetPath,
792
+ ]);
793
+ if (ancestor === undefined) {
794
+ throw new internal_3.UsageError("Branches do not share a common ancestor.");
795
+ }
796
+ return targetPath.length > 0;
797
+ }
789
798
  merge(branch, disposeMerged = true) {
790
799
  const checkout = getCheckout(branch);
791
800
  this.checkNotDisposed("The target branch of the merge has been disposed and cannot be merged.");
@@ -797,7 +806,7 @@ let TreeCheckout = (() => {
797
806
  if (checkout.transaction.size > 0) {
798
807
  throw new internal_3.UsageError("Views with an open transaction cannot be merged into another view.");
799
808
  }
800
- __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.merge(__classPrivateFieldGet(checkout, _TreeCheckout_transaction, "f").activeBranch);
809
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.merge(tslib_1.__classPrivateFieldGet(checkout, _TreeCheckout_transaction, "f").activeBranch);
801
810
  if (disposeMerged && !checkout.isSharedBranch) {
802
811
  // Dispose the merged checkout unless it is a shared branch.
803
812
  checkout[index_js_6.disposeSymbol]();
@@ -817,13 +826,13 @@ let TreeCheckout = (() => {
817
826
  [(_TreeCheckout_events = new WeakMap(), _TreeCheckout_transaction = new WeakMap(), _TreeCheckout_validatedCommits = new WeakMap(), _exportVerbose_decorators = [index_js_6.throwIfBroken], _applySerializedChange_decorators = [index_js_6.throwIfBroken], _applyChange_decorators = [index_js_6.throwIfBroken], _runTransaction_decorators = [index_js_6.breakingMethod], _runTransactionAsync_decorators = [index_js_6.breakingMethod], _viewWith_decorators = [index_js_6.throwIfBroken], _fork_decorators = [index_js_6.throwIfBroken], index_js_6.disposeSymbol)]() {
818
827
  this.checkNotDisposed("The branch has already been disposed and cannot be disposed again.");
819
828
  this.disposed = true;
820
- __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.dispose();
821
- __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").dispose();
829
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.dispose();
830
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").dispose();
822
831
  this.purgeRevertibles();
823
832
  for (const view of this.views) {
824
833
  view.dispose();
825
834
  }
826
- __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("dispose");
835
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("dispose");
827
836
  }
828
837
  getRemovedRoots() {
829
838
  this.assertNoUntrackedRoots();
@@ -849,19 +858,19 @@ let TreeCheckout = (() => {
849
858
  load() {
850
859
  // Set the tip revision as the latest relevant revision for any removed roots that are loaded from a summary - this allows them to be garbage collected later.
851
860
  // When a load happens, the head of the trunk and the head of the local/main branch must be the same (this is enforced by SharedTree).
852
- this._removedRoots.setRevisionsForLoadedData(__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.getHead().revision);
861
+ this._removedRoots.setRevisionsForLoadedData(tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.getHead().revision);
853
862
  // The content of the checkout (e.g. the forest) has (maybe) changed, so fire an afterBatch event.
854
- __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("afterBatch");
863
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("afterBatch");
855
864
  }
856
865
  purgeRevertibles() {
857
- for (const revertible of this.revertibles) {
866
+ for (const revertible of this.revertibles.values()) {
858
867
  revertible.dispose();
859
868
  }
860
869
  }
861
- disposeRevertible(revertible, revision) {
870
+ disposeRevertible(revision) {
862
871
  this.revertibleCommitBranches.get(revision)?.dispose();
863
872
  this.revertibleCommitBranches.delete(revision);
864
- this.revertibles.delete(revertible);
873
+ this.revertibles.delete(revision);
865
874
  }
866
875
  revertRevertible(revision, kind, labelTree) {
867
876
  this.editLock.checkUnlocked("Reverting a commit");
@@ -873,7 +882,7 @@ let TreeCheckout = (() => {
873
882
  const commitToRevert = revertibleBranch.getHead();
874
883
  const revisionForInvert = this.mintRevisionTag();
875
884
  let change = (0, index_js_2.tagChange)(this.changeFamily.rebaser.invert(commitToRevert, false, revisionForInvert), revisionForInvert);
876
- const headCommit = __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.getHead();
885
+ const headCommit = tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.getHead();
877
886
  // Rebase the inverted change onto any commits that occurred after the undoable commits.
878
887
  if (commitToRevert !== headCommit) {
879
888
  // The inverse may be rebased over newer commits which (despite being present in the history)
@@ -889,7 +898,7 @@ let TreeCheckout = (() => {
889
898
  const previousLabelTreeNode = this.labelTreeNode;
890
899
  this.labelTreeNode = labelTree;
891
900
  try {
892
- __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.apply(change, kind === index_js_2.CommitKind.Default || kind === index_js_2.CommitKind.Redo
901
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.apply(change, kind === index_js_2.CommitKind.Default || kind === index_js_2.CommitKind.Redo
893
902
  ? index_js_2.CommitKind.Undo
894
903
  : index_js_2.CommitKind.Redo);
895
904
  }
@@ -943,7 +952,7 @@ let TreeCheckout = (() => {
943
952
  * Otherwise, the function is registered to be called later and this function returns `false`.
944
953
  */
945
954
  onCommitValid(commit, fn) {
946
- const validated = (0, index_js_6.getOrCreate)(__classPrivateFieldGet(this, _TreeCheckout_validatedCommits, "f"), commit, () => []);
955
+ const validated = (0, index_js_6.getOrCreate)(tslib_1.__classPrivateFieldGet(this, _TreeCheckout_validatedCommits, "f"), commit, () => []);
947
956
  if (validated === true) {
948
957
  fn(commit);
949
958
  return true;
@@ -953,12 +962,12 @@ let TreeCheckout = (() => {
953
962
  }
954
963
  /** Mark the given commit as "validated" according to the contract of {@link onCommitValid}(). */
955
964
  validateCommit(commit) {
956
- const validated = (0, index_js_6.getOrCreate)(__classPrivateFieldGet(this, _TreeCheckout_validatedCommits, "f"), commit, () => []);
965
+ const validated = (0, index_js_6.getOrCreate)(tslib_1.__classPrivateFieldGet(this, _TreeCheckout_validatedCommits, "f"), commit, () => []);
957
966
  if (validated !== true) {
958
967
  for (const fn of validated) {
959
968
  fn(commit);
960
969
  }
961
- __classPrivateFieldGet(this, _TreeCheckout_validatedCommits, "f").set(commit, true);
970
+ tslib_1.__classPrivateFieldGet(this, _TreeCheckout_validatedCommits, "f").set(commit, true);
962
971
  }
963
972
  }
964
973
  resetEnrichmentStats() {
@@ -980,7 +989,7 @@ let TreeCheckout = (() => {
980
989
  const enricher = new sharedTreeChangeEnricher_js_1.SharedTreeChangeEnricher(this.forest, this._removedRoots, this.storedSchema, this.idCompressor, () => (this.enrichmentStats.commitsEnriched += 1), () => (this.enrichmentStats.refreshers += 1), () => (this.enrichmentStats.forks += 1), () => (this.enrichmentStats.applied += 1));
981
990
  // This `lastCommitApplied` may be on the main branch or on a transaction branch.
982
991
  // In either case, it is crucial that the state of the forest & detached field index reflects all changes up to and including this commit.
983
- const lastCommitApplied = __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.getHead();
992
+ const lastCommitApplied = tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.getHead();
984
993
  if (context !== lastCommitApplied) {
985
994
  enricher.enqueueChange(() => {
986
995
  this.enrichmentStats.diffs += 1;
@@ -997,18 +1006,18 @@ let TreeCheckout = (() => {
997
1006
  return enriched;
998
1007
  }
999
1008
  get mainBranch() {
1000
- return __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch;
1009
+ return tslib_1.__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch;
1001
1010
  }
1002
1011
  },
1003
1012
  (() => {
1004
1013
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
1005
- __esDecorate(_a, null, _exportVerbose_decorators, { kind: "method", name: "exportVerbose", static: false, private: false, access: { has: obj => "exportVerbose" in obj, get: obj => obj.exportVerbose }, metadata: _metadata }, null, _instanceExtraInitializers);
1006
- __esDecorate(_a, null, _applySerializedChange_decorators, { kind: "method", name: "applySerializedChange", static: false, private: false, access: { has: obj => "applySerializedChange" in obj, get: obj => obj.applySerializedChange }, metadata: _metadata }, null, _instanceExtraInitializers);
1007
- __esDecorate(_a, null, _applyChange_decorators, { kind: "method", name: "applyChange", static: false, private: false, access: { has: obj => "applyChange" in obj, get: obj => obj.applyChange }, metadata: _metadata }, null, _instanceExtraInitializers);
1008
- __esDecorate(_a, null, _runTransaction_decorators, { kind: "method", name: "runTransaction", static: false, private: false, access: { has: obj => "runTransaction" in obj, get: obj => obj.runTransaction }, metadata: _metadata }, null, _instanceExtraInitializers);
1009
- __esDecorate(_a, null, _runTransactionAsync_decorators, { kind: "method", name: "runTransactionAsync", static: false, private: false, access: { has: obj => "runTransactionAsync" in obj, get: obj => obj.runTransactionAsync }, metadata: _metadata }, null, _instanceExtraInitializers);
1010
- __esDecorate(_a, null, _viewWith_decorators, { kind: "method", name: "viewWith", static: false, private: false, access: { has: obj => "viewWith" in obj, get: obj => obj.viewWith }, metadata: _metadata }, null, _instanceExtraInitializers);
1011
- __esDecorate(_a, null, _fork_decorators, { kind: "method", name: "fork", static: false, private: false, access: { has: obj => "fork" in obj, get: obj => obj.fork }, metadata: _metadata }, null, _instanceExtraInitializers);
1014
+ tslib_1.__esDecorate(_a, null, _exportVerbose_decorators, { kind: "method", name: "exportVerbose", static: false, private: false, access: { has: obj => "exportVerbose" in obj, get: obj => obj.exportVerbose }, metadata: _metadata }, null, _instanceExtraInitializers);
1015
+ tslib_1.__esDecorate(_a, null, _applySerializedChange_decorators, { kind: "method", name: "applySerializedChange", static: false, private: false, access: { has: obj => "applySerializedChange" in obj, get: obj => obj.applySerializedChange }, metadata: _metadata }, null, _instanceExtraInitializers);
1016
+ tslib_1.__esDecorate(_a, null, _applyChange_decorators, { kind: "method", name: "applyChange", static: false, private: false, access: { has: obj => "applyChange" in obj, get: obj => obj.applyChange }, metadata: _metadata }, null, _instanceExtraInitializers);
1017
+ tslib_1.__esDecorate(_a, null, _runTransaction_decorators, { kind: "method", name: "runTransaction", static: false, private: false, access: { has: obj => "runTransaction" in obj, get: obj => obj.runTransaction }, metadata: _metadata }, null, _instanceExtraInitializers);
1018
+ tslib_1.__esDecorate(_a, null, _runTransactionAsync_decorators, { kind: "method", name: "runTransactionAsync", static: false, private: false, access: { has: obj => "runTransactionAsync" in obj, get: obj => obj.runTransactionAsync }, metadata: _metadata }, null, _instanceExtraInitializers);
1019
+ tslib_1.__esDecorate(_a, null, _viewWith_decorators, { kind: "method", name: "viewWith", static: false, private: false, access: { has: obj => "viewWith" in obj, get: obj => obj.viewWith }, metadata: _metadata }, null, _instanceExtraInitializers);
1020
+ tslib_1.__esDecorate(_a, null, _fork_decorators, { kind: "method", name: "fork", static: false, private: false, access: { has: obj => "fork" in obj, get: obj => obj.fork }, metadata: _metadata }, null, _instanceExtraInitializers);
1012
1021
  if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
1013
1022
  })(),
1014
1023
  /**
@@ -1101,10 +1110,7 @@ class EditLock {
1101
1110
  */
1102
1111
  checkUnlocked(action) {
1103
1112
  if (this.locked) {
1104
- // These type assertions ensure that the event name strings used here match the actual event names
1105
- const nodeChanged = "nodeChanged";
1106
- const treeChanged = "treeChanged";
1107
- throw new internal_3.UsageError(`${action} is forbidden during a ${nodeChanged} or ${treeChanged} event`);
1113
+ throw new internal_3.UsageError(`${action} is forbidden during a change event callback`);
1108
1114
  }
1109
1115
  }
1110
1116
  /**
@@ -1116,33 +1122,6 @@ class EditLock {
1116
1122
  this.locked = false;
1117
1123
  }
1118
1124
  }
1119
- /**
1120
- * Keeps track of all new forks created until the returned function is invoked, which will dispose all of those for.
1121
- * The returned function may only be called once.
1122
- *
1123
- * @param checkout - The tree checkout for which you want to monitor forks for disposal.
1124
- * @returns a function which can be called to dispose all of the tracked forks.
1125
- */
1126
- function trackForksForDisposal(checkout) {
1127
- const forks = new Set();
1128
- const onDisposeUnSubscribes = [];
1129
- const onForkUnSubscribe = (0, index_js_4.onForkTransitive)(checkout, (fork) => {
1130
- forks.add(fork);
1131
- onDisposeUnSubscribes.push(fork.events.on("dispose", () => forks.delete(fork)));
1132
- });
1133
- let disposed = false;
1134
- return () => {
1135
- (0, internal_1.assert)(!disposed, 0xaa9 /* Forks may only be disposed once */);
1136
- for (const fork of forks) {
1137
- fork.dispose();
1138
- }
1139
- for (const unsubscribe of onDisposeUnSubscribes) {
1140
- unsubscribe();
1141
- }
1142
- onForkUnSubscribe();
1143
- disposed = true;
1144
- };
1145
- }
1146
1125
  function verboseFromCursor(reader, schema) {
1147
1126
  const fields = (0, index_js_5.customFromCursorStored)(reader, schema, verboseFromCursor);
1148
1127
  const nodeSchema = schema.get(reader.type) ?? (0, internal_1.fail)(0xac9 /* missing schema for type in cursor */);