@fluidframework/tree 2.61.0 → 2.62.0-356644

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 (237) hide show
  1. package/api-report/tree.alpha.api.md +3 -0
  2. package/dist/core/index.d.ts +1 -1
  3. package/dist/core/index.d.ts.map +1 -1
  4. package/dist/core/index.js +2 -1
  5. package/dist/core/index.js.map +1 -1
  6. package/dist/core/rebase/index.d.ts +1 -1
  7. package/dist/core/rebase/index.d.ts.map +1 -1
  8. package/dist/core/rebase/index.js +2 -1
  9. package/dist/core/rebase/index.js.map +1 -1
  10. package/dist/core/rebase/utils.d.ts +10 -0
  11. package/dist/core/rebase/utils.d.ts.map +1 -1
  12. package/dist/core/rebase/utils.js +20 -1
  13. package/dist/core/rebase/utils.js.map +1 -1
  14. package/dist/packageVersion.d.ts +1 -1
  15. package/dist/packageVersion.d.ts.map +1 -1
  16. package/dist/packageVersion.js +1 -1
  17. package/dist/packageVersion.js.map +1 -1
  18. package/dist/shared-tree/schematizingTreeView.js +2 -2
  19. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  20. package/dist/shared-tree/sharedTree.d.ts +12 -2
  21. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  22. package/dist/shared-tree/sharedTree.js +71 -33
  23. package/dist/shared-tree/sharedTree.js.map +1 -1
  24. package/dist/shared-tree/treeCheckout.d.ts +13 -7
  25. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  26. package/dist/shared-tree/treeCheckout.js +114 -84
  27. package/dist/shared-tree/treeCheckout.js.map +1 -1
  28. package/dist/shared-tree-core/branch.d.ts +3 -0
  29. package/dist/shared-tree-core/branch.d.ts.map +1 -1
  30. package/dist/shared-tree-core/branch.js.map +1 -1
  31. package/dist/shared-tree-core/branchIdCodec.d.ts +11 -0
  32. package/dist/shared-tree-core/branchIdCodec.d.ts.map +1 -0
  33. package/dist/shared-tree-core/branchIdCodec.js +18 -0
  34. package/dist/shared-tree-core/branchIdCodec.js.map +1 -0
  35. package/dist/shared-tree-core/editManager.d.ts +33 -63
  36. package/dist/shared-tree-core/editManager.d.ts.map +1 -1
  37. package/dist/shared-tree-core/editManager.js +437 -290
  38. package/dist/shared-tree-core/editManager.js.map +1 -1
  39. package/dist/shared-tree-core/editManagerCodecs.d.ts +1 -1
  40. package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  41. package/dist/shared-tree-core/editManagerCodecs.js +7 -96
  42. package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
  43. package/dist/shared-tree-core/editManagerCodecsCommons.d.ts +17 -0
  44. package/dist/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -0
  45. package/dist/shared-tree-core/editManagerCodecsCommons.js +139 -0
  46. package/dist/shared-tree-core/editManagerCodecsCommons.js.map +1 -0
  47. package/dist/shared-tree-core/editManagerCodecsV1toV4.d.ts +16 -0
  48. package/dist/shared-tree-core/editManagerCodecsV1toV4.d.ts.map +1 -0
  49. package/dist/shared-tree-core/editManagerCodecsV1toV4.js +39 -0
  50. package/dist/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -0
  51. package/dist/shared-tree-core/editManagerCodecsV5.d.ts +16 -0
  52. package/dist/shared-tree-core/editManagerCodecsV5.d.ts.map +1 -0
  53. package/dist/shared-tree-core/editManagerCodecsV5.js +58 -0
  54. package/dist/shared-tree-core/editManagerCodecsV5.js.map +1 -0
  55. package/dist/shared-tree-core/{editManagerFormat.d.ts → editManagerFormatCommons.d.ts} +31 -7
  56. package/dist/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -0
  57. package/dist/shared-tree-core/{editManagerFormat.js → editManagerFormatCommons.js} +13 -12
  58. package/dist/shared-tree-core/editManagerFormatCommons.js.map +1 -0
  59. package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts +31 -0
  60. package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -0
  61. package/dist/shared-tree-core/editManagerFormatV1toV4.js +24 -0
  62. package/dist/shared-tree-core/editManagerFormatV1toV4.js.map +1 -0
  63. package/dist/shared-tree-core/editManagerFormatV5.d.ts +62 -0
  64. package/dist/shared-tree-core/editManagerFormatV5.d.ts.map +1 -0
  65. package/dist/shared-tree-core/editManagerFormatV5.js +20 -0
  66. package/dist/shared-tree-core/editManagerFormatV5.js.map +1 -0
  67. package/dist/shared-tree-core/index.d.ts +3 -3
  68. package/dist/shared-tree-core/index.d.ts.map +1 -1
  69. package/dist/shared-tree-core/index.js.map +1 -1
  70. package/dist/shared-tree-core/messageCodecV1ToV4.d.ts +11 -0
  71. package/dist/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -0
  72. package/dist/shared-tree-core/messageCodecV1ToV4.js +59 -0
  73. package/dist/shared-tree-core/messageCodecV1ToV4.js.map +1 -0
  74. package/dist/shared-tree-core/messageCodecV5.d.ts +11 -0
  75. package/dist/shared-tree-core/messageCodecV5.d.ts.map +1 -0
  76. package/dist/shared-tree-core/messageCodecV5.js +78 -0
  77. package/dist/shared-tree-core/messageCodecV5.js.map +1 -0
  78. package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
  79. package/dist/shared-tree-core/messageCodecs.js +16 -47
  80. package/dist/shared-tree-core/messageCodecs.js.map +1 -1
  81. package/dist/shared-tree-core/{messageFormat.d.ts → messageFormatV1ToV4.d.ts} +1 -1
  82. package/dist/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -0
  83. package/dist/shared-tree-core/{messageFormat.js → messageFormatV1ToV4.js} +1 -1
  84. package/dist/shared-tree-core/messageFormatV1ToV4.js.map +1 -0
  85. package/dist/shared-tree-core/messageFormatV5.d.ts +42 -0
  86. package/dist/shared-tree-core/messageFormatV5.d.ts.map +1 -0
  87. package/dist/shared-tree-core/messageFormatV5.js +20 -0
  88. package/dist/shared-tree-core/messageFormatV5.js.map +1 -0
  89. package/dist/shared-tree-core/messageTypes.d.ts +12 -2
  90. package/dist/shared-tree-core/messageTypes.d.ts.map +1 -1
  91. package/dist/shared-tree-core/messageTypes.js.map +1 -1
  92. package/dist/shared-tree-core/sequenceIdUtils.d.ts +1 -1
  93. package/dist/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  94. package/dist/shared-tree-core/sequenceIdUtils.js.map +1 -1
  95. package/dist/shared-tree-core/sharedTreeCore.d.ts +18 -5
  96. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  97. package/dist/shared-tree-core/sharedTreeCore.js +175 -56
  98. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  99. package/dist/simple-tree/api/tree.d.ts +10 -0
  100. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  101. package/dist/simple-tree/api/tree.js.map +1 -1
  102. package/lib/core/index.d.ts +1 -1
  103. package/lib/core/index.d.ts.map +1 -1
  104. package/lib/core/index.js +1 -1
  105. package/lib/core/index.js.map +1 -1
  106. package/lib/core/rebase/index.d.ts +1 -1
  107. package/lib/core/rebase/index.d.ts.map +1 -1
  108. package/lib/core/rebase/index.js +1 -1
  109. package/lib/core/rebase/index.js.map +1 -1
  110. package/lib/core/rebase/utils.d.ts +10 -0
  111. package/lib/core/rebase/utils.d.ts.map +1 -1
  112. package/lib/core/rebase/utils.js +18 -0
  113. package/lib/core/rebase/utils.js.map +1 -1
  114. package/lib/packageVersion.d.ts +1 -1
  115. package/lib/packageVersion.d.ts.map +1 -1
  116. package/lib/packageVersion.js +1 -1
  117. package/lib/packageVersion.js.map +1 -1
  118. package/lib/shared-tree/schematizingTreeView.js +2 -2
  119. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  120. package/lib/shared-tree/sharedTree.d.ts +12 -2
  121. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  122. package/lib/shared-tree/sharedTree.js +72 -34
  123. package/lib/shared-tree/sharedTree.js.map +1 -1
  124. package/lib/shared-tree/treeCheckout.d.ts +13 -7
  125. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  126. package/lib/shared-tree/treeCheckout.js +115 -85
  127. package/lib/shared-tree/treeCheckout.js.map +1 -1
  128. package/lib/shared-tree-core/branch.d.ts +3 -0
  129. package/lib/shared-tree-core/branch.d.ts.map +1 -1
  130. package/lib/shared-tree-core/branch.js.map +1 -1
  131. package/lib/shared-tree-core/branchIdCodec.d.ts +11 -0
  132. package/lib/shared-tree-core/branchIdCodec.d.ts.map +1 -0
  133. package/lib/shared-tree-core/branchIdCodec.js +13 -0
  134. package/lib/shared-tree-core/branchIdCodec.js.map +1 -0
  135. package/lib/shared-tree-core/editManager.d.ts +33 -63
  136. package/lib/shared-tree-core/editManager.d.ts.map +1 -1
  137. package/lib/shared-tree-core/editManager.js +437 -290
  138. package/lib/shared-tree-core/editManager.js.map +1 -1
  139. package/lib/shared-tree-core/editManagerCodecs.d.ts +1 -1
  140. package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  141. package/lib/shared-tree-core/editManagerCodecs.js +4 -93
  142. package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
  143. package/lib/shared-tree-core/editManagerCodecsCommons.d.ts +17 -0
  144. package/lib/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -0
  145. package/lib/shared-tree-core/editManagerCodecsCommons.js +134 -0
  146. package/lib/shared-tree-core/editManagerCodecsCommons.js.map +1 -0
  147. package/lib/shared-tree-core/editManagerCodecsV1toV4.d.ts +16 -0
  148. package/lib/shared-tree-core/editManagerCodecsV1toV4.d.ts.map +1 -0
  149. package/lib/shared-tree-core/editManagerCodecsV1toV4.js +35 -0
  150. package/lib/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -0
  151. package/lib/shared-tree-core/editManagerCodecsV5.d.ts +16 -0
  152. package/lib/shared-tree-core/editManagerCodecsV5.d.ts.map +1 -0
  153. package/lib/shared-tree-core/editManagerCodecsV5.js +54 -0
  154. package/lib/shared-tree-core/editManagerCodecsV5.js.map +1 -0
  155. package/lib/shared-tree-core/{editManagerFormat.d.ts → editManagerFormatCommons.d.ts} +31 -7
  156. package/lib/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -0
  157. package/lib/shared-tree-core/{editManagerFormat.js → editManagerFormatCommons.js} +10 -11
  158. package/lib/shared-tree-core/editManagerFormatCommons.js.map +1 -0
  159. package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts +31 -0
  160. package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -0
  161. package/lib/shared-tree-core/editManagerFormatV1toV4.js +20 -0
  162. package/lib/shared-tree-core/editManagerFormatV1toV4.js.map +1 -0
  163. package/lib/shared-tree-core/editManagerFormatV5.d.ts +62 -0
  164. package/lib/shared-tree-core/editManagerFormatV5.d.ts.map +1 -0
  165. package/lib/shared-tree-core/editManagerFormatV5.js +16 -0
  166. package/lib/shared-tree-core/editManagerFormatV5.js.map +1 -0
  167. package/lib/shared-tree-core/index.d.ts +3 -3
  168. package/lib/shared-tree-core/index.d.ts.map +1 -1
  169. package/lib/shared-tree-core/index.js.map +1 -1
  170. package/lib/shared-tree-core/messageCodecV1ToV4.d.ts +11 -0
  171. package/lib/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -0
  172. package/lib/shared-tree-core/messageCodecV1ToV4.js +55 -0
  173. package/lib/shared-tree-core/messageCodecV1ToV4.js.map +1 -0
  174. package/lib/shared-tree-core/messageCodecV5.d.ts +11 -0
  175. package/lib/shared-tree-core/messageCodecV5.d.ts.map +1 -0
  176. package/lib/shared-tree-core/messageCodecV5.js +74 -0
  177. package/lib/shared-tree-core/messageCodecV5.js.map +1 -0
  178. package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
  179. package/lib/shared-tree-core/messageCodecs.js +17 -48
  180. package/lib/shared-tree-core/messageCodecs.js.map +1 -1
  181. package/lib/shared-tree-core/{messageFormat.d.ts → messageFormatV1ToV4.d.ts} +1 -1
  182. package/lib/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -0
  183. package/lib/shared-tree-core/{messageFormat.js → messageFormatV1ToV4.js} +1 -1
  184. package/lib/shared-tree-core/messageFormatV1ToV4.js.map +1 -0
  185. package/lib/shared-tree-core/messageFormatV5.d.ts +42 -0
  186. package/lib/shared-tree-core/messageFormatV5.d.ts.map +1 -0
  187. package/lib/shared-tree-core/messageFormatV5.js +16 -0
  188. package/lib/shared-tree-core/messageFormatV5.js.map +1 -0
  189. package/lib/shared-tree-core/messageTypes.d.ts +12 -2
  190. package/lib/shared-tree-core/messageTypes.d.ts.map +1 -1
  191. package/lib/shared-tree-core/messageTypes.js.map +1 -1
  192. package/lib/shared-tree-core/sequenceIdUtils.d.ts +1 -1
  193. package/lib/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  194. package/lib/shared-tree-core/sequenceIdUtils.js.map +1 -1
  195. package/lib/shared-tree-core/sharedTreeCore.d.ts +18 -5
  196. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  197. package/lib/shared-tree-core/sharedTreeCore.js +176 -57
  198. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  199. package/lib/simple-tree/api/tree.d.ts +10 -0
  200. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  201. package/lib/simple-tree/api/tree.js.map +1 -1
  202. package/package.json +20 -20
  203. package/src/core/index.ts +1 -0
  204. package/src/core/rebase/index.ts +1 -0
  205. package/src/core/rebase/utils.ts +27 -0
  206. package/src/packageVersion.ts +1 -1
  207. package/src/shared-tree/schematizingTreeView.ts +2 -2
  208. package/src/shared-tree/sharedTree.ts +103 -46
  209. package/src/shared-tree/treeCheckout.ts +147 -98
  210. package/src/shared-tree-core/branch.ts +7 -0
  211. package/src/shared-tree-core/branchIdCodec.ts +28 -0
  212. package/src/shared-tree-core/editManager.ts +709 -437
  213. package/src/shared-tree-core/editManagerCodecs.ts +4 -164
  214. package/src/shared-tree-core/editManagerCodecsCommons.ts +236 -0
  215. package/src/shared-tree-core/editManagerCodecsV1toV4.ts +108 -0
  216. package/src/shared-tree-core/editManagerCodecsV5.ts +150 -0
  217. package/src/shared-tree-core/{editManagerFormat.ts → editManagerFormatCommons.ts} +17 -13
  218. package/src/shared-tree-core/editManagerFormatV1toV4.ts +42 -0
  219. package/src/shared-tree-core/editManagerFormatV5.ts +35 -0
  220. package/src/shared-tree-core/index.ts +3 -1
  221. package/src/shared-tree-core/messageCodecV1ToV4.ts +101 -0
  222. package/src/shared-tree-core/messageCodecV5.ts +128 -0
  223. package/src/shared-tree-core/messageCodecs.ts +16 -85
  224. package/src/shared-tree-core/messageFormatV5.ts +50 -0
  225. package/src/shared-tree-core/messageTypes.ts +15 -2
  226. package/src/shared-tree-core/sequenceIdUtils.ts +1 -1
  227. package/src/shared-tree-core/sharedTreeCore.ts +270 -84
  228. package/src/simple-tree/api/tree.ts +15 -0
  229. package/dist/shared-tree-core/editManagerFormat.d.ts.map +0 -1
  230. package/dist/shared-tree-core/editManagerFormat.js.map +0 -1
  231. package/dist/shared-tree-core/messageFormat.d.ts.map +0 -1
  232. package/dist/shared-tree-core/messageFormat.js.map +0 -1
  233. package/lib/shared-tree-core/editManagerFormat.d.ts.map +0 -1
  234. package/lib/shared-tree-core/editManagerFormat.js.map +0 -1
  235. package/lib/shared-tree-core/messageFormat.d.ts.map +0 -1
  236. package/lib/shared-tree-core/messageFormat.js.map +0 -1
  237. /package/src/shared-tree-core/{messageFormat.ts → messageFormatV1ToV4.ts} +0 -0
@@ -215,21 +215,21 @@ export interface RevertMetrics {
215
215
  */
216
216
  export declare class TreeCheckout implements ITreeCheckoutFork {
217
217
  #private;
218
- /** True if and only if this checkout is for a forked branch and not the "main branch" of the tree. */
219
- readonly isBranch: boolean;
218
+ /** True if and only if this checkout is for a branch which is persisted and shared with other clients. */
219
+ readonly isSharedBranch: boolean;
220
220
  private readonly changeFamily;
221
221
  readonly storedSchema: TreeStoredSchemaRepository;
222
222
  readonly forest: IEditableForest;
223
223
  private readonly mintRevisionTag;
224
224
  private readonly revisionTagCodec;
225
225
  private readonly idCompressor;
226
- private removedRoots;
226
+ removedRoots: DetachedFieldIndex;
227
227
  /** Optional logger for telemetry. */
228
228
  private readonly logger?;
229
229
  readonly breaker: Breakable;
230
- private readonly disposeForksAfterTransaction;
230
+ readonly disposeForksAfterTransaction: boolean;
231
231
  disposed: boolean;
232
- private readonly editLock;
232
+ private editLock;
233
233
  private readonly views;
234
234
  /**
235
235
  * Set of revertibles maintained for automatic disposal
@@ -248,12 +248,17 @@ export declare class TreeCheckout implements ITreeCheckoutFork {
248
248
  static readonly revertTelemetryEventName = "RevertRevertible";
249
249
  events: Listenable<CheckoutEvents>;
250
250
  constructor(branch: SharedTreeBranch<SharedTreeEditBuilder, SharedTreeChange>,
251
- /** True if and only if this checkout is for a forked branch and not the "main branch" of the tree. */
252
- isBranch: boolean, changeFamily: ChangeFamily<SharedTreeEditBuilder, SharedTreeChange>, storedSchema: TreeStoredSchemaRepository, forest: IEditableForest, mintRevisionTag: () => RevisionTag, revisionTagCodec: RevisionTagCodec, idCompressor: IIdCompressor, removedRoots?: DetachedFieldIndex,
251
+ /** True if and only if this checkout is for a branch which is persisted and shared with other clients. */
252
+ isSharedBranch: boolean, changeFamily: ChangeFamily<SharedTreeEditBuilder, SharedTreeChange>, storedSchema: TreeStoredSchemaRepository, forest: IEditableForest, mintRevisionTag: () => RevisionTag, revisionTagCodec: RevisionTagCodec, idCompressor: IIdCompressor, removedRoots?: DetachedFieldIndex,
253
253
  /** Optional logger for telemetry. */
254
254
  logger?: ITelemetryLoggerExt | undefined, breaker?: Breakable, disposeForksAfterTransaction?: boolean);
255
+ private registerForBranchEvents;
256
+ private unregisterFromBranchEvents;
257
+ private createTransactionStack;
255
258
  exportVerbose(): VerboseTree | undefined;
259
+ private readonly onAfterBranchChange;
256
260
  private readonly onAfterChange;
261
+ private applyChange;
257
262
  private readonly onAncestryTrimmed;
258
263
  private withCombinedVisitor;
259
264
  private checkNotDisposed;
@@ -275,6 +280,7 @@ export declare class TreeCheckout implements ITreeCheckoutFork {
275
280
  locate(anchor: Anchor): AnchorNode | undefined;
276
281
  get transaction(): Transactor;
277
282
  branch(): TreeCheckout;
283
+ switchBranch(branch: SharedTreeBranch<SharedTreeEditBuilder, SharedTreeChange>): void;
278
284
  rebase(checkout: TreeCheckout): void;
279
285
  rebaseOnto(checkout: ITreeCheckout): void;
280
286
  merge(checkout: TreeCheckout): void;
@@ -1 +1 @@
1
- {"version":3,"file":"treeCheckout.d.ts","sourceRoot":"","sources":["../../src/shared-tree/treeCheckout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"treeCheckout.d.ts","sourceRoot":"","sources":["../../src/shared-tree/treeCheckout.ts"],"names":[],"mappings":"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"}
@@ -3,17 +3,17 @@
3
3
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
4
  * Licensed under the MIT License.
5
5
  */
6
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
7
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
8
- 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");
9
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
10
- };
11
6
  var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
12
7
  if (kind === "m") throw new TypeError("Private method is not writable");
13
8
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
14
9
  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");
15
10
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
11
  };
12
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
13
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
14
+ 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");
15
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
16
+ };
17
17
  var _TreeCheckout_events, _TreeCheckout_transaction, _TreeCheckout_validatedCommits;
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  exports.TreeCheckout = exports.createTreeCheckout = void 0;
@@ -47,12 +47,14 @@ function createTreeCheckout(idCompressor, mintRevisionTag, revisionTagCodec, arg
47
47
  const changeFamily = args?.changeFamily ??
48
48
  new sharedTreeChangeFamily_js_1.SharedTreeChangeFamily(revisionTagCodec, args?.fieldBatchCodec ??
49
49
  (0, index_js_3.makeFieldBatchCodec)(defaultCodecOptions, defaultFieldBatchVersion), defaultCodecOptions, args?.chunkCompressionStrategy, idCompressor);
50
+ // TODO: If a branch is passed in, is it supposed to be local main?
51
+ // Otherwise shouldn't we set `isSharedBranch` to false?
50
52
  const branch = args?.branch ??
51
53
  new index_js_4.SharedTreeBranch({
52
54
  change: changeFamily.rebaser.compose([]),
53
55
  revision: "root",
54
56
  }, changeFamily, () => idCompressor.generateCompressedId());
55
- return new TreeCheckout(branch, false, changeFamily, schema, forest, mintRevisionTag, revisionTagCodec, idCompressor, args?.removedRoots, args?.logger, breaker, args?.disposeForksAfterTransaction);
57
+ return new TreeCheckout(branch, true, changeFamily, schema, forest, mintRevisionTag, revisionTagCodec, idCompressor, args?.removedRoots, args?.logger, breaker, args?.disposeForksAfterTransaction);
56
58
  }
57
59
  exports.createTreeCheckout = createTreeCheckout;
58
60
  /**
@@ -60,11 +62,11 @@ exports.createTreeCheckout = createTreeCheckout;
60
62
  */
61
63
  class TreeCheckout {
62
64
  constructor(branch,
63
- /** True if and only if this checkout is for a forked branch and not the "main branch" of the tree. */
64
- isBranch, changeFamily, storedSchema, forest, mintRevisionTag, revisionTagCodec, idCompressor, removedRoots = (0, index_js_2.makeDetachedFieldIndex)("repair", revisionTagCodec, idCompressor),
65
+ /** True if and only if this checkout is for a branch which is persisted and shared with other clients. */
66
+ isSharedBranch, changeFamily, storedSchema, forest, mintRevisionTag, revisionTagCodec, idCompressor, removedRoots = (0, index_js_2.makeDetachedFieldIndex)("repair", revisionTagCodec, idCompressor),
65
67
  /** Optional logger for telemetry. */
66
68
  logger, breaker = new index_js_5.Breakable("TreeCheckout"), disposeForksAfterTransaction = true) {
67
- this.isBranch = isBranch;
69
+ this.isSharedBranch = isSharedBranch;
68
70
  this.changeFamily = changeFamily;
69
71
  this.storedSchema = storedSchema;
70
72
  this.forest = forest;
@@ -89,6 +91,39 @@ class TreeCheckout {
89
91
  this.revertibleCommitBranches = new Map();
90
92
  _TreeCheckout_events.set(this, (0, client_utils_1.createEmitter)());
91
93
  this.events = __classPrivateFieldGet(this, _TreeCheckout_events, "f");
94
+ this.onAfterBranchChange = (event) => {
95
+ // The following logic allows revertibles to be generated for the change.
96
+ // Currently only appends (including merges and transaction commits) are supported.
97
+ if (event.type === "append") {
98
+ // TODO:#20949: When the SharedTree is detached, these commits will already have been garbage collected.
99
+ // Figure out a way to generate revertibles before the commits are garbage collected.
100
+ for (const commit of event.newCommits) {
101
+ const kind = event.type === "append" ? event.kind : index_js_2.CommitKind.Default;
102
+ const { change, revision } = commit;
103
+ const getRevertible = (0, sharedTreeChangeFamily_js_1.hasSchemaChange)(change)
104
+ ? undefined
105
+ : (onRevertibleDisposed) => {
106
+ if (!withinEventContext) {
107
+ throw new internal_2.UsageError("Cannot get a revertible outside of the context of a changed event.");
108
+ }
109
+ if (this.revertibleCommitBranches.get(revision) !== undefined) {
110
+ throw new internal_2.UsageError("Cannot generate the same revertible more than once. Note that this can happen when multiple changed event listeners are registered.");
111
+ }
112
+ const revertible = this.createRevertible(revision, kind, this, onRevertibleDisposed);
113
+ this.revertibleCommitBranches.set(revision, __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.fork(commit));
114
+ this.revertibles.add(revertible);
115
+ return revertible;
116
+ };
117
+ let withinEventContext = true;
118
+ __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("changed", { isLocal: true, kind }, getRevertible);
119
+ withinEventContext = false;
120
+ }
121
+ }
122
+ else if (this.isRemoteChangeEvent(event)) {
123
+ // TODO: figure out how to plumb through commit kind info for remote changes
124
+ __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("changed", { isLocal: false, kind: index_js_2.CommitKind.Default });
125
+ }
126
+ };
92
127
  this.onAfterChange = (event) => {
93
128
  this.editLock.lock();
94
129
  __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("beforeBatch", event);
@@ -96,36 +131,7 @@ class TreeCheckout {
96
131
  const revision = event.type === "rebase"
97
132
  ? __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.getHead().revision
98
133
  : event.change.revision;
99
- // Conflicts due to schema will be empty and thus are not applied.
100
- for (const change of event.change.change.changes) {
101
- if (change.type === "data") {
102
- const delta = (0, index_js_3.intoDelta)((0, index_js_2.tagChange)(change.innerChange, revision));
103
- this.withCombinedVisitor((visitor) => {
104
- (0, index_js_2.visitDelta)(delta, visitor, this.removedRoots, revision);
105
- });
106
- }
107
- else if (change.type === "schema") {
108
- // Schema changes from a current to a new schema are expected to be backwards compatible.
109
- // This guarantees that all data in the forest (which is valid before the schema change)
110
- // is also valid under the new schema.
111
- // Note however, that such schema changes may in some cases be rolled back:
112
- // Case 1: A transaction with a schema change may be aborted.
113
- // The transaction may have made some data changes that would render some trees invalid
114
- // under the old schema, but these changes will also be rolled back, thereby putting the forest
115
- // back in the state before the transaction, which is valid under the original (reinstated) schema.
116
- // Case 2: A branch with a schema change may be rebased such that the schema change (because
117
- // of a constraint) is no longer applied.
118
- // Such a branch may contain data changes that would render some trees invalid under the
119
- // original schema. These data changes may not necessarily be rolled back.
120
- // They will however be rebased over the rollback of the schema change. This rebasing will
121
- // ensure that these data changes are muted if they would render some trees invalid under the
122
- // original (reinstated) schema.
123
- this.storedSchema.apply(change.innerChange.schema.new);
124
- }
125
- else {
126
- (0, internal_1.fail)(0xad1 /* Unknown Shared Tree change type. */);
127
- }
128
- }
134
+ this.applyChange(event.change.change, revision);
129
135
  }
130
136
  __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("afterBatch");
131
137
  this.editLock.unlock();
@@ -162,7 +168,22 @@ class TreeCheckout {
162
168
  // #region Commit Validation
163
169
  /** Used to maintain the contract of {@link onCommitValid}(). */
164
170
  _TreeCheckout_validatedCommits.set(this, new WeakMap());
165
- __classPrivateFieldSet(this, _TreeCheckout_transaction, new index_js_4.SquashingTransactionStack(branch, (commits) => {
171
+ __classPrivateFieldSet(this, _TreeCheckout_transaction, this.createTransactionStack(branch), "f");
172
+ this.editLock = new EditLock(__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEditor);
173
+ this.registerForBranchEvents();
174
+ }
175
+ registerForBranchEvents() {
176
+ __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.events.on("afterChange", this.onAfterBranchChange);
177
+ __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.on("afterChange", this.onAfterChange);
178
+ __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.on("ancestryTrimmed", this.onAncestryTrimmed);
179
+ }
180
+ unregisterFromBranchEvents() {
181
+ __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.events.off("afterChange", this.onAfterBranchChange);
182
+ __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.off("afterChange", this.onAfterChange);
183
+ __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.off("ancestryTrimmed", this.onAncestryTrimmed);
184
+ }
185
+ createTransactionStack(branch) {
186
+ return new index_js_4.SquashingTransactionStack(branch, (commits) => {
166
187
  const revision = this.mintRevisionTag();
167
188
  for (const transactionStep of commits) {
168
189
  this.removedRoots.updateMajor(transactionStep.revision, revision);
@@ -192,43 +213,7 @@ class TreeCheckout {
192
213
  }
193
214
  disposeForks?.();
194
215
  };
195
- }), "f");
196
- this.editLock = new EditLock(__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEditor);
197
- branch.events.on("afterChange", (event) => {
198
- // The following logic allows revertibles to be generated for the change.
199
- // Currently only appends (including merges and transaction commits) are supported.
200
- if (event.type === "append") {
201
- // TODO:#20949: When the SharedTree is detached, these commits will already have been garbage collected.
202
- // Figure out a way to generate revertibles before the commits are garbage collected.
203
- for (const commit of event.newCommits) {
204
- const kind = event.type === "append" ? event.kind : index_js_2.CommitKind.Default;
205
- const { change, revision } = commit;
206
- const getRevertible = (0, sharedTreeChangeFamily_js_1.hasSchemaChange)(change)
207
- ? undefined
208
- : (onRevertibleDisposed) => {
209
- if (!withinEventContext) {
210
- throw new internal_2.UsageError("Cannot get a revertible outside of the context of a changed event.");
211
- }
212
- if (this.revertibleCommitBranches.get(revision) !== undefined) {
213
- throw new internal_2.UsageError("Cannot generate the same revertible more than once. Note that this can happen when multiple changed event listeners are registered.");
214
- }
215
- const revertible = this.createRevertible(revision, kind, this, onRevertibleDisposed);
216
- this.revertibleCommitBranches.set(revision, __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.fork(commit));
217
- this.revertibles.add(revertible);
218
- return revertible;
219
- };
220
- let withinEventContext = true;
221
- __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("changed", { isLocal: true, kind }, getRevertible);
222
- withinEventContext = false;
223
- }
224
- }
225
- else if (this.isRemoteChangeEvent(event)) {
226
- // TODO: figure out how to plumb through commit kind info for remote changes
227
- __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("changed", { isLocal: false, kind: index_js_2.CommitKind.Default });
228
- }
229
216
  });
230
- __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.on("afterChange", this.onAfterChange);
231
- __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.on("ancestryTrimmed", this.onAncestryTrimmed);
232
217
  }
233
218
  exportVerbose() {
234
219
  const cursor = this.forest.allocateCursor("contentSnapshot");
@@ -250,6 +235,39 @@ class TreeCheckout {
250
235
  cursor.free();
251
236
  }
252
237
  }
238
+ // Revision is the revision of the commit, if any, which caused this change.
239
+ applyChange(change, revision) {
240
+ // Conflicts due to schema will be empty and thus are not applied.
241
+ for (const innerChange of change.changes) {
242
+ if (innerChange.type === "data") {
243
+ const delta = (0, index_js_3.intoDelta)((0, index_js_2.tagChange)(innerChange.innerChange, revision));
244
+ this.withCombinedVisitor((visitor) => {
245
+ (0, index_js_2.visitDelta)(delta, visitor, this.removedRoots, revision);
246
+ });
247
+ }
248
+ else if (innerChange.type === "schema") {
249
+ // Schema changes from a current to a new schema are expected to be backwards compatible.
250
+ // This guarantees that all data in the forest (which is valid before the schema change)
251
+ // is also valid under the new schema.
252
+ // Note however, that such schema changes may in some cases be rolled back:
253
+ // Case 1: A transaction with a schema change may be aborted.
254
+ // The transaction may have made some data changes that would render some trees invalid
255
+ // under the old schema, but these changes will also be rolled back, thereby putting the forest
256
+ // back in the state before the transaction, which is valid under the original (reinstated) schema.
257
+ // Case 2: A branch with a schema change may be rebased such that the schema change (because
258
+ // of a constraint) is no longer applied.
259
+ // Such a branch may contain data changes that would render some trees invalid under the
260
+ // original schema. These data changes may not necessarily be rolled back.
261
+ // They will however be rebased over the rollback of the schema change. This rebasing will
262
+ // ensure that these data changes are muted if they would render some trees invalid under the
263
+ // original (reinstated) schema.
264
+ this.storedSchema.apply(innerChange.innerChange.schema.new);
265
+ }
266
+ else {
267
+ (0, internal_1.fail)(0xad1 /* Unknown Shared Tree change type. */);
268
+ }
269
+ }
270
+ }
253
271
  withCombinedVisitor(fn) {
254
272
  const anchorVisitor = this.forest.anchors.acquireVisitor();
255
273
  const combinedVisitor = (0, index_js_2.combineVisitors)([this.forest.acquireVisitor(), anchorVisitor]);
@@ -350,16 +368,28 @@ class TreeCheckout {
350
368
  const branch = __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.fork();
351
369
  const storedSchema = this.storedSchema.clone();
352
370
  const forest = this.forest.clone(storedSchema, anchors);
353
- const checkout = new TreeCheckout(branch, true, this.changeFamily, storedSchema, forest, this.mintRevisionTag, this.revisionTagCodec, this.idCompressor, this.removedRoots.clone(), this.logger, this.breaker, this.disposeForksAfterTransaction);
371
+ const checkout = new TreeCheckout(branch, false, this.changeFamily, storedSchema, forest, this.mintRevisionTag, this.revisionTagCodec, this.idCompressor, this.removedRoots.clone(), this.logger, this.breaker, this.disposeForksAfterTransaction);
354
372
  __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("fork", checkout);
355
373
  return checkout;
356
374
  }
375
+ switchBranch(branch) {
376
+ // TODO: Dispose old branch, if necessary
377
+ (0, internal_1.assert)(!__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").isInProgress(), "Cannot switch branches during a transaction");
378
+ const diff = (0, index_js_2.diffHistories)(this.changeFamily.rebaser, __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.getHead(), branch.getHead(), this.mintRevisionTag);
379
+ this.unregisterFromBranchEvents();
380
+ __classPrivateFieldSet(this, _TreeCheckout_transaction, this.createTransactionStack(branch), "f");
381
+ this.editLock = new EditLock(__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEditor);
382
+ this.registerForBranchEvents();
383
+ // TODO: Rework eventing
384
+ this.applyChange(diff);
385
+ __classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("afterBatch");
386
+ }
357
387
  rebase(checkout) {
358
388
  this.checkNotDisposed("The target of the branch rebase has been disposed and cannot be rebased.");
359
389
  checkout.checkNotDisposed("The source of the branch rebase has been disposed and cannot be rebased.");
360
390
  this.editLock.checkUnlocked("Rebasing");
361
391
  (0, internal_1.assert)(!checkout.transaction.isInProgress(), 0x9af /* A view cannot be rebased while it has a pending transaction */);
362
- (0, internal_1.assert)(checkout.isBranch, 0xa5d /* The main branch cannot be rebased onto another branch. */);
392
+ (0, internal_1.assert)(!checkout.isSharedBranch, 0xa5d /* Shared branches cannot be rebased onto another branch. */);
363
393
  __classPrivateFieldGet(checkout, _TreeCheckout_transaction, "f").activeBranch.rebaseOnto(__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch);
364
394
  }
365
395
  rebaseOnto(checkout) {
@@ -375,8 +405,8 @@ class TreeCheckout {
375
405
  checkout.transaction.commit();
376
406
  }
377
407
  __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.merge(__classPrivateFieldGet(checkout, _TreeCheckout_transaction, "f").activeBranch);
378
- if (disposeMerged && checkout.isBranch) {
379
- // Dispose the merged checkout unless it is the main branch.
408
+ if (disposeMerged && !checkout.isSharedBranch) {
409
+ // Dispose the merged checkout unless it is a shared branch.
380
410
  checkout[index_js_5.disposeSymbol]();
381
411
  }
382
412
  }
@@ -489,10 +519,10 @@ class TreeCheckout {
489
519
  */
490
520
  isRemoteChangeEvent(event) {
491
521
  return (
492
- // Remote changes are only ever applied to the main branch
493
- !this.isBranch &&
494
- // Remote changes are applied to the main branch by rebasing it onto the trunk.
495
- // No other rebases are allowed on the main branch, so we can use this to detect remote changes.
522
+ // Remote changes are only ever applied to shared branches
523
+ this.isSharedBranch &&
524
+ // Remote changes are applied to the branch by rebasing it onto the trunk.
525
+ // No other rebases are allowed on shared branches, so we can use this to detect remote changes.
496
526
  event.type === "rebase");
497
527
  }
498
528
  /**