@fluidframework/container-runtime 2.0.0-internal.3.0.0 → 2.0.0-internal.3.1.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 (327) hide show
  1. package/.eslintrc.js +19 -19
  2. package/.mocharc.js +2 -2
  3. package/api-extractor.json +2 -2
  4. package/dist/batchTracker.d.ts.map +1 -1
  5. package/dist/batchTracker.js +2 -1
  6. package/dist/batchTracker.js.map +1 -1
  7. package/dist/blobManager.d.ts +9 -2
  8. package/dist/blobManager.d.ts.map +1 -1
  9. package/dist/blobManager.js +80 -33
  10. package/dist/blobManager.js.map +1 -1
  11. package/dist/connectionTelemetry.d.ts.map +1 -1
  12. package/dist/connectionTelemetry.js +11 -9
  13. package/dist/connectionTelemetry.js.map +1 -1
  14. package/dist/containerHandleContext.d.ts.map +1 -1
  15. package/dist/containerHandleContext.js +3 -1
  16. package/dist/containerHandleContext.js.map +1 -1
  17. package/dist/containerRuntime.d.ts +10 -0
  18. package/dist/containerRuntime.d.ts.map +1 -1
  19. package/dist/containerRuntime.js +140 -72
  20. package/dist/containerRuntime.js.map +1 -1
  21. package/dist/dataStore.d.ts.map +1 -1
  22. package/dist/dataStore.js +11 -9
  23. package/dist/dataStore.js.map +1 -1
  24. package/dist/dataStoreContext.d.ts +18 -1
  25. package/dist/dataStoreContext.d.ts.map +1 -1
  26. package/dist/dataStoreContext.js +66 -15
  27. package/dist/dataStoreContext.js.map +1 -1
  28. package/dist/dataStoreContexts.d.ts.map +1 -1
  29. package/dist/dataStoreContexts.js +7 -3
  30. package/dist/dataStoreContexts.js.map +1 -1
  31. package/dist/dataStoreRegistry.d.ts.map +1 -1
  32. package/dist/dataStoreRegistry.js +3 -1
  33. package/dist/dataStoreRegistry.js.map +1 -1
  34. package/dist/dataStores.d.ts +26 -1
  35. package/dist/dataStores.d.ts.map +1 -1
  36. package/dist/dataStores.js +103 -18
  37. package/dist/dataStores.js.map +1 -1
  38. package/dist/deltaScheduler.d.ts.map +1 -1
  39. package/dist/deltaScheduler.js +8 -3
  40. package/dist/deltaScheduler.js.map +1 -1
  41. package/dist/garbageCollection.d.ts +34 -14
  42. package/dist/garbageCollection.d.ts.map +1 -1
  43. package/dist/garbageCollection.js +188 -93
  44. package/dist/garbageCollection.js.map +1 -1
  45. package/dist/garbageCollectionConstants.d.ts +3 -0
  46. package/dist/garbageCollectionConstants.d.ts.map +1 -1
  47. package/dist/garbageCollectionConstants.js +6 -1
  48. package/dist/garbageCollectionConstants.js.map +1 -1
  49. package/dist/garbageCollectionHelpers.d.ts +26 -0
  50. package/dist/garbageCollectionHelpers.d.ts.map +1 -0
  51. package/dist/garbageCollectionHelpers.js +45 -0
  52. package/dist/garbageCollectionHelpers.js.map +1 -0
  53. package/dist/gcSweepReadyUsageDetection.d.ts +5 -5
  54. package/dist/gcSweepReadyUsageDetection.d.ts.map +1 -1
  55. package/dist/gcSweepReadyUsageDetection.js +14 -10
  56. package/dist/gcSweepReadyUsageDetection.js.map +1 -1
  57. package/dist/index.d.ts +2 -2
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/opLifecycle/batchManager.d.ts +5 -5
  61. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  62. package/dist/opLifecycle/batchManager.js +19 -12
  63. package/dist/opLifecycle/batchManager.js.map +1 -1
  64. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  65. package/dist/opLifecycle/definitions.js.map +1 -1
  66. package/dist/opLifecycle/index.d.ts.map +1 -1
  67. package/dist/opLifecycle/index.js.map +1 -1
  68. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  69. package/dist/opLifecycle/opCompressor.js.map +1 -1
  70. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  71. package/dist/opLifecycle/opDecompressor.js +5 -2
  72. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  73. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  74. package/dist/opLifecycle/opSplitter.js +4 -1
  75. package/dist/opLifecycle/opSplitter.js.map +1 -1
  76. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  77. package/dist/opLifecycle/outbox.js +19 -17
  78. package/dist/opLifecycle/outbox.js.map +1 -1
  79. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  80. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  81. package/dist/opProperties.d.ts.map +1 -1
  82. package/dist/opProperties.js +1 -3
  83. package/dist/opProperties.js.map +1 -1
  84. package/dist/orderedClientElection.d.ts.map +1 -1
  85. package/dist/orderedClientElection.js +10 -4
  86. package/dist/orderedClientElection.js.map +1 -1
  87. package/dist/packageVersion.d.ts +1 -1
  88. package/dist/packageVersion.js +1 -1
  89. package/dist/packageVersion.js.map +1 -1
  90. package/dist/pendingStateManager.d.ts +7 -0
  91. package/dist/pendingStateManager.d.ts.map +1 -1
  92. package/dist/pendingStateManager.js +7 -4
  93. package/dist/pendingStateManager.js.map +1 -1
  94. package/dist/runWhileConnectedCoordinator.d.ts.map +1 -1
  95. package/dist/runWhileConnectedCoordinator.js.map +1 -1
  96. package/dist/runningSummarizer.d.ts.map +1 -1
  97. package/dist/runningSummarizer.js +34 -21
  98. package/dist/runningSummarizer.js.map +1 -1
  99. package/dist/scheduleManager.d.ts.map +1 -1
  100. package/dist/scheduleManager.js +3 -2
  101. package/dist/scheduleManager.js.map +1 -1
  102. package/dist/serializedSnapshotStorage.d.ts +2 -2
  103. package/dist/serializedSnapshotStorage.d.ts.map +1 -1
  104. package/dist/serializedSnapshotStorage.js +5 -3
  105. package/dist/serializedSnapshotStorage.js.map +1 -1
  106. package/dist/summarizer.d.ts +2 -2
  107. package/dist/summarizer.d.ts.map +1 -1
  108. package/dist/summarizer.js +37 -17
  109. package/dist/summarizer.js.map +1 -1
  110. package/dist/summarizerClientElection.d.ts.map +1 -1
  111. package/dist/summarizerClientElection.js.map +1 -1
  112. package/dist/summarizerHandle.d.ts.map +1 -1
  113. package/dist/summarizerHandle.js.map +1 -1
  114. package/dist/summarizerHeuristics.d.ts.map +1 -1
  115. package/dist/summarizerHeuristics.js +6 -9
  116. package/dist/summarizerHeuristics.js.map +1 -1
  117. package/dist/summarizerTypes.d.ts +21 -21
  118. package/dist/summarizerTypes.d.ts.map +1 -1
  119. package/dist/summarizerTypes.js.map +1 -1
  120. package/dist/summaryCollection.d.ts.map +1 -1
  121. package/dist/summaryCollection.js +18 -8
  122. package/dist/summaryCollection.js.map +1 -1
  123. package/dist/summaryFormat.d.ts +22 -0
  124. package/dist/summaryFormat.d.ts.map +1 -1
  125. package/dist/summaryFormat.js +18 -10
  126. package/dist/summaryFormat.js.map +1 -1
  127. package/dist/summaryGenerator.d.ts.map +1 -1
  128. package/dist/summaryGenerator.js +34 -15
  129. package/dist/summaryGenerator.js.map +1 -1
  130. package/dist/summaryManager.d.ts.map +1 -1
  131. package/dist/summaryManager.js +21 -9
  132. package/dist/summaryManager.js.map +1 -1
  133. package/dist/throttler.d.ts +2 -2
  134. package/dist/throttler.d.ts.map +1 -1
  135. package/dist/throttler.js +4 -4
  136. package/dist/throttler.js.map +1 -1
  137. package/garbageCollection.md +15 -2
  138. package/lib/batchTracker.d.ts.map +1 -1
  139. package/lib/batchTracker.js +2 -1
  140. package/lib/batchTracker.js.map +1 -1
  141. package/lib/blobManager.d.ts +9 -2
  142. package/lib/blobManager.d.ts.map +1 -1
  143. package/lib/blobManager.js +82 -35
  144. package/lib/blobManager.js.map +1 -1
  145. package/lib/connectionTelemetry.d.ts.map +1 -1
  146. package/lib/connectionTelemetry.js +11 -9
  147. package/lib/connectionTelemetry.js.map +1 -1
  148. package/lib/containerHandleContext.d.ts.map +1 -1
  149. package/lib/containerHandleContext.js +3 -1
  150. package/lib/containerHandleContext.js.map +1 -1
  151. package/lib/containerRuntime.d.ts +10 -0
  152. package/lib/containerRuntime.d.ts.map +1 -1
  153. package/lib/containerRuntime.js +146 -78
  154. package/lib/containerRuntime.js.map +1 -1
  155. package/lib/dataStore.d.ts.map +1 -1
  156. package/lib/dataStore.js +11 -9
  157. package/lib/dataStore.js.map +1 -1
  158. package/lib/dataStoreContext.d.ts +18 -1
  159. package/lib/dataStoreContext.d.ts.map +1 -1
  160. package/lib/dataStoreContext.js +68 -17
  161. package/lib/dataStoreContext.js.map +1 -1
  162. package/lib/dataStoreContexts.d.ts.map +1 -1
  163. package/lib/dataStoreContexts.js +7 -3
  164. package/lib/dataStoreContexts.js.map +1 -1
  165. package/lib/dataStoreRegistry.d.ts.map +1 -1
  166. package/lib/dataStoreRegistry.js +3 -1
  167. package/lib/dataStoreRegistry.js.map +1 -1
  168. package/lib/dataStores.d.ts +26 -1
  169. package/lib/dataStores.d.ts.map +1 -1
  170. package/lib/dataStores.js +109 -24
  171. package/lib/dataStores.js.map +1 -1
  172. package/lib/deltaScheduler.d.ts.map +1 -1
  173. package/lib/deltaScheduler.js +9 -4
  174. package/lib/deltaScheduler.js.map +1 -1
  175. package/lib/garbageCollection.d.ts +34 -14
  176. package/lib/garbageCollection.d.ts.map +1 -1
  177. package/lib/garbageCollection.js +190 -95
  178. package/lib/garbageCollection.js.map +1 -1
  179. package/lib/garbageCollectionConstants.d.ts +3 -0
  180. package/lib/garbageCollectionConstants.d.ts.map +1 -1
  181. package/lib/garbageCollectionConstants.js +5 -0
  182. package/lib/garbageCollectionConstants.js.map +1 -1
  183. package/lib/garbageCollectionHelpers.d.ts +26 -0
  184. package/lib/garbageCollectionHelpers.d.ts.map +1 -0
  185. package/lib/garbageCollectionHelpers.js +40 -0
  186. package/lib/garbageCollectionHelpers.js.map +1 -0
  187. package/lib/gcSweepReadyUsageDetection.d.ts +5 -5
  188. package/lib/gcSweepReadyUsageDetection.d.ts.map +1 -1
  189. package/lib/gcSweepReadyUsageDetection.js +14 -10
  190. package/lib/gcSweepReadyUsageDetection.js.map +1 -1
  191. package/lib/index.d.ts +2 -2
  192. package/lib/index.d.ts.map +1 -1
  193. package/lib/index.js +1 -1
  194. package/lib/index.js.map +1 -1
  195. package/lib/opLifecycle/batchManager.d.ts +5 -5
  196. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  197. package/lib/opLifecycle/batchManager.js +19 -12
  198. package/lib/opLifecycle/batchManager.js.map +1 -1
  199. package/lib/opLifecycle/definitions.d.ts.map +1 -1
  200. package/lib/opLifecycle/definitions.js.map +1 -1
  201. package/lib/opLifecycle/index.d.ts.map +1 -1
  202. package/lib/opLifecycle/index.js.map +1 -1
  203. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  204. package/lib/opLifecycle/opCompressor.js.map +1 -1
  205. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  206. package/lib/opLifecycle/opDecompressor.js +5 -2
  207. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  208. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  209. package/lib/opLifecycle/opSplitter.js +5 -2
  210. package/lib/opLifecycle/opSplitter.js.map +1 -1
  211. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  212. package/lib/opLifecycle/outbox.js +19 -17
  213. package/lib/opLifecycle/outbox.js.map +1 -1
  214. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  215. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  216. package/lib/opProperties.d.ts.map +1 -1
  217. package/lib/opProperties.js +1 -3
  218. package/lib/opProperties.js.map +1 -1
  219. package/lib/orderedClientElection.d.ts.map +1 -1
  220. package/lib/orderedClientElection.js +10 -4
  221. package/lib/orderedClientElection.js.map +1 -1
  222. package/lib/packageVersion.d.ts +1 -1
  223. package/lib/packageVersion.js +1 -1
  224. package/lib/packageVersion.js.map +1 -1
  225. package/lib/pendingStateManager.d.ts +7 -0
  226. package/lib/pendingStateManager.d.ts.map +1 -1
  227. package/lib/pendingStateManager.js +7 -4
  228. package/lib/pendingStateManager.js.map +1 -1
  229. package/lib/runWhileConnectedCoordinator.d.ts.map +1 -1
  230. package/lib/runWhileConnectedCoordinator.js.map +1 -1
  231. package/lib/runningSummarizer.d.ts.map +1 -1
  232. package/lib/runningSummarizer.js +35 -22
  233. package/lib/runningSummarizer.js.map +1 -1
  234. package/lib/scheduleManager.d.ts.map +1 -1
  235. package/lib/scheduleManager.js +3 -2
  236. package/lib/scheduleManager.js.map +1 -1
  237. package/lib/serializedSnapshotStorage.d.ts +2 -2
  238. package/lib/serializedSnapshotStorage.d.ts.map +1 -1
  239. package/lib/serializedSnapshotStorage.js +5 -3
  240. package/lib/serializedSnapshotStorage.js.map +1 -1
  241. package/lib/summarizer.d.ts +2 -2
  242. package/lib/summarizer.d.ts.map +1 -1
  243. package/lib/summarizer.js +37 -17
  244. package/lib/summarizer.js.map +1 -1
  245. package/lib/summarizerClientElection.d.ts.map +1 -1
  246. package/lib/summarizerClientElection.js.map +1 -1
  247. package/lib/summarizerHandle.d.ts.map +1 -1
  248. package/lib/summarizerHandle.js.map +1 -1
  249. package/lib/summarizerHeuristics.d.ts.map +1 -1
  250. package/lib/summarizerHeuristics.js +6 -9
  251. package/lib/summarizerHeuristics.js.map +1 -1
  252. package/lib/summarizerTypes.d.ts +21 -21
  253. package/lib/summarizerTypes.d.ts.map +1 -1
  254. package/lib/summarizerTypes.js.map +1 -1
  255. package/lib/summaryCollection.d.ts.map +1 -1
  256. package/lib/summaryCollection.js +18 -8
  257. package/lib/summaryCollection.js.map +1 -1
  258. package/lib/summaryFormat.d.ts +22 -0
  259. package/lib/summaryFormat.d.ts.map +1 -1
  260. package/lib/summaryFormat.js +20 -12
  261. package/lib/summaryFormat.js.map +1 -1
  262. package/lib/summaryGenerator.d.ts.map +1 -1
  263. package/lib/summaryGenerator.js +34 -15
  264. package/lib/summaryGenerator.js.map +1 -1
  265. package/lib/summaryManager.d.ts.map +1 -1
  266. package/lib/summaryManager.js +21 -9
  267. package/lib/summaryManager.js.map +1 -1
  268. package/lib/throttler.d.ts +2 -2
  269. package/lib/throttler.d.ts.map +1 -1
  270. package/lib/throttler.js +4 -4
  271. package/lib/throttler.js.map +1 -1
  272. package/package.json +121 -149
  273. package/prettier.config.cjs +1 -1
  274. package/src/batchTracker.ts +54 -49
  275. package/src/blobManager.ts +793 -672
  276. package/src/connectionTelemetry.ts +280 -249
  277. package/src/containerHandleContext.ts +27 -29
  278. package/src/containerRuntime.ts +3168 -2940
  279. package/src/dataStore.ts +172 -159
  280. package/src/dataStoreContext.ts +1098 -996
  281. package/src/dataStoreContexts.ts +178 -161
  282. package/src/dataStoreRegistry.ts +25 -20
  283. package/src/dataStores.ts +884 -728
  284. package/src/deltaScheduler.ts +158 -150
  285. package/src/garbageCollection.ts +1883 -1692
  286. package/src/garbageCollectionConstants.ts +6 -0
  287. package/src/garbageCollectionHelpers.ts +61 -0
  288. package/src/gcSweepReadyUsageDetection.ts +89 -83
  289. package/src/index.ts +67 -66
  290. package/src/opLifecycle/README.md +152 -0
  291. package/src/opLifecycle/batchManager.ts +145 -141
  292. package/src/opLifecycle/definitions.ts +29 -29
  293. package/src/opLifecycle/index.ts +5 -5
  294. package/src/opLifecycle/opCompressor.ts +54 -53
  295. package/src/opLifecycle/opDecompressor.ts +100 -81
  296. package/src/opLifecycle/opSplitter.ts +214 -188
  297. package/src/opLifecycle/outbox.ts +204 -194
  298. package/src/opLifecycle/remoteMessageProcessor.ts +62 -62
  299. package/src/opProperties.ts +11 -9
  300. package/src/orderedClientElection.ts +489 -457
  301. package/src/packageVersion.ts +1 -1
  302. package/src/pendingStateManager.ts +384 -338
  303. package/src/runWhileConnectedCoordinator.ts +78 -71
  304. package/src/runningSummarizer.ts +619 -581
  305. package/src/scheduleManager.ts +299 -269
  306. package/src/serializedSnapshotStorage.ts +126 -112
  307. package/src/summarizer.ts +417 -381
  308. package/src/summarizerClientElection.ts +107 -100
  309. package/src/summarizerHandle.ts +11 -9
  310. package/src/summarizerHeuristics.ts +183 -186
  311. package/src/summarizerTypes.ts +344 -330
  312. package/src/summaryCollection.ts +378 -349
  313. package/src/summaryFormat.ts +170 -126
  314. package/src/summaryGenerator.ts +465 -406
  315. package/src/summaryManager.ts +377 -348
  316. package/src/throttler.ts +131 -122
  317. package/tsconfig.esnext.json +6 -6
  318. package/tsconfig.json +9 -13
  319. package/dist/garbageCollectionTombstoneUtils.d.ts +0 -14
  320. package/dist/garbageCollectionTombstoneUtils.d.ts.map +0 -1
  321. package/dist/garbageCollectionTombstoneUtils.js +0 -23
  322. package/dist/garbageCollectionTombstoneUtils.js.map +0 -1
  323. package/lib/garbageCollectionTombstoneUtils.d.ts +0 -14
  324. package/lib/garbageCollectionTombstoneUtils.d.ts.map +0 -1
  325. package/lib/garbageCollectionTombstoneUtils.js +0 -19
  326. package/lib/garbageCollectionTombstoneUtils.js.map +0 -1
  327. package/src/garbageCollectionTombstoneUtils.ts +0 -28
@@ -4,13 +4,17 @@
4
4
  */
5
5
 
6
6
  import { assert, bufferToString, stringToBuffer } from "@fluidframework/common-utils";
7
- import { IDocumentStorageService, ISummaryContext } from "@fluidframework/driver-definitions";
8
7
  import {
9
- ICreateBlobResponse,
10
- ISnapshotTree,
11
- ISummaryHandle,
12
- ISummaryTree,
13
- IVersion,
8
+ FetchSource,
9
+ IDocumentStorageService,
10
+ ISummaryContext,
11
+ } from "@fluidframework/driver-definitions";
12
+ import {
13
+ ICreateBlobResponse,
14
+ ISnapshotTree,
15
+ ISummaryHandle,
16
+ ISummaryTree,
17
+ IVersion,
14
18
  } from "@fluidframework/protocol-definitions";
15
19
  import { ISnapshotTreeWithBlobContents } from "@fluidframework/container-definitions";
16
20
 
@@ -18,7 +22,7 @@ import { ISnapshotTreeWithBlobContents } from "@fluidframework/container-definit
18
22
  * Serialized blobs from a snapshot. Used to load offline.
19
23
  */
20
24
  export interface ISerializedBaseSnapshotBlobs {
21
- [id: string]: string;
25
+ [id: string]: string;
22
26
  }
23
27
 
24
28
  /**
@@ -26,121 +30,131 @@ export interface ISerializedBaseSnapshotBlobs {
26
30
  * Used in offline load/attached dehydration to save snapshot blobs that are still needed but may have been deleted.
27
31
  */
28
32
  export class SerializedSnapshotStorage implements IDocumentStorageService {
29
- constructor(
30
- private readonly storageGetter: () => IDocumentStorageService,
31
- private readonly blobs: ISerializedBaseSnapshotBlobs,
32
- ) { }
33
+ constructor(
34
+ private readonly storageGetter: () => IDocumentStorageService,
35
+ private readonly blobs: ISerializedBaseSnapshotBlobs,
36
+ ) {}
33
37
 
34
- public static async serializeTree(
35
- snapshot: ISnapshotTree,
36
- storage: IDocumentStorageService,
37
- ): Promise<ISerializedBaseSnapshotBlobs> {
38
- const blobs = {};
39
- await this.serializeTreeCore(snapshot, blobs, storage);
40
- return blobs;
41
- }
38
+ public static async serializeTree(
39
+ snapshot: ISnapshotTree,
40
+ storage: IDocumentStorageService,
41
+ ): Promise<ISerializedBaseSnapshotBlobs> {
42
+ const blobs = {};
43
+ await this.serializeTreeCore(snapshot, blobs, storage);
44
+ return blobs;
45
+ }
42
46
 
43
- private static async serializeTreeCore(
44
- tree: ISnapshotTree,
45
- blobs: ISerializedBaseSnapshotBlobs,
46
- storage: IDocumentStorageService,
47
- ) {
48
- const treePs: Promise<any>[] = [];
49
- for (const subTree of Object.values(tree.trees)) {
50
- treePs.push(this.serializeTreeCore(subTree, blobs, storage));
51
- }
52
- for (const id of Object.values(tree.blobs)) {
53
- const blob = await storage.readBlob(id);
54
- // ArrayBufferLike will not survive JSON.stringify()
55
- blobs[id] = bufferToString(blob, "utf8");
56
- }
57
- return Promise.all(treePs);
58
- }
47
+ private static async serializeTreeCore(
48
+ tree: ISnapshotTree,
49
+ blobs: ISerializedBaseSnapshotBlobs,
50
+ storage: IDocumentStorageService,
51
+ ) {
52
+ const treePs: Promise<any>[] = [];
53
+ for (const subTree of Object.values(tree.trees)) {
54
+ treePs.push(this.serializeTreeCore(subTree, blobs, storage));
55
+ }
56
+ for (const id of Object.values(tree.blobs)) {
57
+ const blob = await storage.readBlob(id);
58
+ // ArrayBufferLike will not survive JSON.stringify()
59
+ blobs[id] = bufferToString(blob, "utf8");
60
+ }
61
+ return Promise.all(treePs);
62
+ }
59
63
 
60
- public static serializeTreeWithBlobContents(
61
- snapshot: ISnapshotTreeWithBlobContents,
62
- ): ISerializedBaseSnapshotBlobs {
63
- const blobs = {};
64
- this.serializeTreeWithBlobContentsCore(snapshot, blobs);
65
- return blobs;
66
- }
64
+ public static serializeTreeWithBlobContents(
65
+ snapshot: ISnapshotTreeWithBlobContents,
66
+ ): ISerializedBaseSnapshotBlobs {
67
+ const blobs = {};
68
+ this.serializeTreeWithBlobContentsCore(snapshot, blobs);
69
+ return blobs;
70
+ }
67
71
 
68
- private static serializeTreeWithBlobContentsCore(
69
- tree: ISnapshotTreeWithBlobContents,
70
- blobs: ISerializedBaseSnapshotBlobs,
71
- ) {
72
- for (const subTree of Object.values(tree.trees)) {
73
- this.serializeTreeWithBlobContentsCore(subTree, blobs);
74
- }
75
- for (const id of Object.values(tree.blobs)) {
76
- const blob = tree.blobsContents[id];
77
- assert(!!blob, 0x2ec /* "Blob must be present in blobsContents" */);
78
- // ArrayBufferLike will not survive JSON.stringify()
79
- blobs[id] = bufferToString(blob, "utf8");
80
- }
81
- }
72
+ private static serializeTreeWithBlobContentsCore(
73
+ tree: ISnapshotTreeWithBlobContents,
74
+ blobs: ISerializedBaseSnapshotBlobs,
75
+ ) {
76
+ for (const subTree of Object.values(tree.trees)) {
77
+ this.serializeTreeWithBlobContentsCore(subTree, blobs);
78
+ }
79
+ for (const id of Object.values(tree.blobs)) {
80
+ const blob = tree.blobsContents[id];
81
+ assert(!!blob, 0x2ec /* "Blob must be present in blobsContents" */);
82
+ // ArrayBufferLike will not survive JSON.stringify()
83
+ blobs[id] = bufferToString(blob, "utf8");
84
+ }
85
+ }
82
86
 
83
- private _storage?: IDocumentStorageService;
84
- private get storage(): IDocumentStorageService {
85
- // avoid calling it until we need it since it will be undefined if we're not connected
86
- // and we shouldn't need it in this case anyway
87
- if (this._storage) {
88
- return this._storage;
89
- }
90
- this._storage = this.storageGetter();
91
- return this._storage;
92
- }
87
+ private _storage?: IDocumentStorageService;
88
+ private get storage(): IDocumentStorageService {
89
+ // avoid calling it until we need it since it will be undefined if we're not connected
90
+ // and we shouldn't need it in this case anyway
91
+ if (this._storage) {
92
+ return this._storage;
93
+ }
94
+ this._storage = this.storageGetter();
95
+ return this._storage;
96
+ }
93
97
 
94
- public get repositoryUrl(): string { return this.storage.repositoryUrl; }
98
+ public get repositoryUrl(): string {
99
+ return this.storage.repositoryUrl;
100
+ }
95
101
 
96
- /**
97
- * Reads the object with the given ID, returns content in arrayBufferLike
98
- */
99
- public async readBlob(id: string): Promise<ArrayBufferLike> {
100
- if (this.blobs[id] !== undefined) {
101
- return stringToBuffer(this.blobs[id], "utf8");
102
- }
103
- return this.storage.readBlob(id);
104
- }
102
+ /**
103
+ * Reads the object with the given ID, returns content in arrayBufferLike
104
+ */
105
+ public async readBlob(id: string): Promise<ArrayBufferLike> {
106
+ if (this.blobs[id] !== undefined) {
107
+ return stringToBuffer(this.blobs[id], "utf8");
108
+ }
109
+ return this.storage.readBlob(id);
110
+ }
105
111
 
106
- /**
107
- * Returns the snapshot tree.
108
- */
109
- // eslint-disable-next-line @rushstack/no-new-null
110
- public async getSnapshotTree(version?: IVersion): Promise<ISnapshotTree | null> {
111
- return this.storage.getSnapshotTree(version);
112
- }
112
+ /**
113
+ * Returns the snapshot tree.
114
+ */
115
+ // eslint-disable-next-line @rushstack/no-new-null
116
+ public async getSnapshotTree(version?: IVersion): Promise<ISnapshotTree | null> {
117
+ return this.storage.getSnapshotTree(version);
118
+ }
113
119
 
114
- /**
115
- * Retrieves all versions of the document starting at the specified versionId - or null if from the head
116
- */
117
- // eslint-disable-next-line @rushstack/no-new-null
118
- public async getVersions(versionId: string | null, count: number): Promise<IVersion[]> {
119
- return this.storage.getVersions(versionId, count);
120
- }
120
+ /**
121
+ * Retrieves all versions of the document starting at the specified versionId - or null if from the head
122
+ */
123
+ // eslint-disable-next-line @rushstack/no-new-null
124
+ public async getVersions(
125
+ versionId: string | null,
126
+ count: number,
127
+ scenarioName?: string,
128
+ fetchSource?: FetchSource,
129
+ ): Promise<IVersion[]> {
130
+ return this.storage.getVersions(versionId, count, scenarioName, fetchSource);
131
+ }
121
132
 
122
- /**
123
- * Creates a blob out of the given buffer
124
- */
125
- public async createBlob(file: ArrayBufferLike): Promise<ICreateBlobResponse> {
126
- return this.storage.createBlob(file);
127
- }
133
+ /**
134
+ * Creates a blob out of the given buffer
135
+ */
136
+ public async createBlob(file: ArrayBufferLike): Promise<ICreateBlobResponse> {
137
+ return this.storage.createBlob(file);
138
+ }
128
139
 
129
- /**
130
- * Uploads a summary tree to storage using the given context for reference of previous summary handle.
131
- * The ISummaryHandles in the uploaded tree should have paths to indicate which summary object they are
132
- * referencing from the previously acked summary.
133
- * Returns the uploaded summary handle.
134
- */
135
- public async uploadSummaryWithContext(summary: ISummaryTree, context: ISummaryContext): Promise<string> {
136
- return this.storage.uploadSummaryWithContext(summary, context);
137
- }
140
+ /**
141
+ * Uploads a summary tree to storage using the given context for reference of previous summary handle.
142
+ * The ISummaryHandles in the uploaded tree should have paths to indicate which summary object they are
143
+ * referencing from the previously acked summary.
144
+ * Returns the uploaded summary handle.
145
+ */
146
+ public async uploadSummaryWithContext(
147
+ summary: ISummaryTree,
148
+ context: ISummaryContext,
149
+ ): Promise<string> {
150
+ return this.storage.uploadSummaryWithContext(summary, context);
151
+ }
138
152
 
139
- /**
140
- * Retrieves the commit that matches the packfile handle. If the packfile has already been committed and the
141
- * server has deleted it this call may result in a broken promise.
142
- */
143
- public async downloadSummary(handle: ISummaryHandle): Promise<ISummaryTree> {
144
- return this.storage.downloadSummary(handle);
145
- }
153
+ /**
154
+ * Retrieves the commit that matches the packfile handle. If the packfile has already been committed and the
155
+ * server has deleted it this call may result in a broken promise.
156
+ */
157
+ public async downloadSummary(handle: ISummaryHandle): Promise<ISummaryTree> {
158
+ return this.storage.downloadSummary(handle);
159
+ }
146
160
  }