@fluidframework/container-runtime 2.0.0-dev.2.2.0.111723 → 2.0.0-dev.3.1.0.125672

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