@fluidframework/container-runtime 1.4.0-121020 → 2.0.0-dev-rc.1.0.0.225277

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 (705) hide show
  1. package/.eslintrc.js +19 -29
  2. package/.mocharc.js +12 -0
  3. package/CHANGELOG.md +427 -0
  4. package/README.md +69 -0
  5. package/api-extractor-esm.json +4 -0
  6. package/api-extractor-lint.json +4 -0
  7. package/api-extractor.json +2 -2
  8. package/api-report/container-runtime.api.md +863 -0
  9. package/dist/{batchTracker.js → batchTracker.cjs} +9 -8
  10. package/dist/batchTracker.cjs.map +1 -0
  11. package/dist/batchTracker.d.ts +6 -5
  12. package/dist/batchTracker.d.ts.map +1 -1
  13. package/dist/blobManager.cjs +709 -0
  14. package/dist/blobManager.cjs.map +1 -0
  15. package/dist/blobManager.d.ts +140 -39
  16. package/dist/blobManager.d.ts.map +1 -1
  17. package/dist/connectionTelemetry.cjs +230 -0
  18. package/dist/connectionTelemetry.cjs.map +1 -0
  19. package/dist/connectionTelemetry.d.ts +2 -2
  20. package/dist/connectionTelemetry.d.ts.map +1 -1
  21. package/dist/container-runtime-alpha.d.ts +1690 -0
  22. package/dist/container-runtime-beta.d.ts +250 -0
  23. package/dist/container-runtime-public.d.ts +250 -0
  24. package/dist/container-runtime-untrimmed.d.ts +1805 -0
  25. package/dist/{containerHandleContext.js → containerHandleContext.cjs} +4 -2
  26. package/dist/containerHandleContext.cjs.map +1 -0
  27. package/dist/containerHandleContext.d.ts.map +1 -1
  28. package/dist/containerRuntime.cjs +2535 -0
  29. package/dist/containerRuntime.cjs.map +1 -0
  30. package/dist/containerRuntime.d.ts +458 -256
  31. package/dist/containerRuntime.d.ts.map +1 -1
  32. package/dist/{dataStore.js → dataStore.cjs} +54 -45
  33. package/dist/dataStore.cjs.map +1 -0
  34. package/dist/dataStore.d.ts +2 -2
  35. package/dist/dataStore.d.ts.map +1 -1
  36. package/dist/{dataStoreContext.js → dataStoreContext.cjs} +343 -247
  37. package/dist/dataStoreContext.cjs.map +1 -0
  38. package/dist/dataStoreContext.d.ts +73 -41
  39. package/dist/dataStoreContext.d.ts.map +1 -1
  40. package/dist/{dataStoreContexts.js → dataStoreContexts.cjs} +19 -15
  41. package/dist/dataStoreContexts.cjs.map +1 -0
  42. package/dist/dataStoreContexts.d.ts +1 -1
  43. package/dist/dataStoreContexts.d.ts.map +1 -1
  44. package/dist/{dataStoreRegistry.js → dataStoreRegistry.cjs} +9 -4
  45. package/dist/dataStoreRegistry.cjs.map +1 -0
  46. package/dist/dataStoreRegistry.d.ts +3 -0
  47. package/dist/dataStoreRegistry.d.ts.map +1 -1
  48. package/dist/{dataStores.js → dataStores.cjs} +276 -124
  49. package/dist/dataStores.cjs.map +1 -0
  50. package/dist/dataStores.d.ts +56 -23
  51. package/dist/dataStores.d.ts.map +1 -1
  52. package/dist/deltaManagerProxyBase.cjs +77 -0
  53. package/dist/deltaManagerProxyBase.cjs.map +1 -0
  54. package/dist/deltaManagerProxyBase.d.ts +35 -0
  55. package/dist/deltaManagerProxyBase.d.ts.map +1 -0
  56. package/dist/deltaManagerSummarizerProxy.cjs +42 -0
  57. package/dist/deltaManagerSummarizerProxy.cjs.map +1 -0
  58. package/dist/deltaManagerSummarizerProxy.d.ts +19 -0
  59. package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -0
  60. package/dist/{deltaScheduler.js → deltaScheduler.cjs} +25 -18
  61. package/dist/deltaScheduler.cjs.map +1 -0
  62. package/dist/deltaScheduler.d.ts +8 -6
  63. package/dist/deltaScheduler.d.ts.map +1 -1
  64. package/dist/error.cjs +21 -0
  65. package/dist/error.cjs.map +1 -0
  66. package/dist/error.d.ts +14 -0
  67. package/dist/error.d.ts.map +1 -0
  68. package/dist/gc/garbageCollection.cjs +865 -0
  69. package/dist/gc/garbageCollection.cjs.map +1 -0
  70. package/dist/gc/garbageCollection.d.ts +224 -0
  71. package/dist/gc/garbageCollection.d.ts.map +1 -0
  72. package/dist/gc/gcConfigs.cjs +160 -0
  73. package/dist/gc/gcConfigs.cjs.map +1 -0
  74. package/dist/gc/gcConfigs.d.ts +23 -0
  75. package/dist/gc/gcConfigs.d.ts.map +1 -0
  76. package/dist/gc/gcDefinitions.cjs +96 -0
  77. package/dist/gc/gcDefinitions.cjs.map +1 -0
  78. package/dist/gc/gcDefinitions.d.ts +458 -0
  79. package/dist/gc/gcDefinitions.d.ts.map +1 -0
  80. package/dist/gc/gcHelpers.cjs +235 -0
  81. package/dist/gc/gcHelpers.cjs.map +1 -0
  82. package/dist/gc/gcHelpers.d.ts +71 -0
  83. package/dist/gc/gcHelpers.d.ts.map +1 -0
  84. package/dist/gc/gcReferenceGraphAlgorithm.cjs +49 -0
  85. package/dist/gc/gcReferenceGraphAlgorithm.cjs.map +1 -0
  86. package/dist/gc/gcReferenceGraphAlgorithm.d.ts +16 -0
  87. package/dist/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -0
  88. package/dist/{summarizerTypes.js → gc/gcSummaryDefinitions.cjs} +1 -6
  89. package/dist/gc/gcSummaryDefinitions.cjs.map +1 -0
  90. package/dist/gc/gcSummaryDefinitions.d.ts +52 -0
  91. package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -0
  92. package/dist/gc/gcSummaryStateTracker.cjs +213 -0
  93. package/dist/gc/gcSummaryStateTracker.cjs.map +1 -0
  94. package/dist/gc/gcSummaryStateTracker.d.ts +94 -0
  95. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -0
  96. package/dist/gc/gcTelemetry.cjs +307 -0
  97. package/dist/gc/gcTelemetry.cjs.map +1 -0
  98. package/dist/gc/gcTelemetry.d.ts +99 -0
  99. package/dist/gc/gcTelemetry.d.ts.map +1 -0
  100. package/dist/gc/gcUnreferencedStateTracker.cjs +118 -0
  101. package/dist/gc/gcUnreferencedStateTracker.cjs.map +1 -0
  102. package/dist/gc/gcUnreferencedStateTracker.d.ts +40 -0
  103. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -0
  104. package/dist/gc/index.cjs +44 -0
  105. package/dist/gc/index.cjs.map +1 -0
  106. package/dist/gc/index.d.ts +13 -0
  107. package/dist/gc/index.d.ts.map +1 -0
  108. package/dist/index.cjs +47 -0
  109. package/dist/index.cjs.map +1 -0
  110. package/dist/index.d.ts +19 -8
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/messageTypes.cjs +37 -0
  113. package/dist/messageTypes.cjs.map +1 -0
  114. package/dist/messageTypes.d.ts +142 -0
  115. package/dist/messageTypes.d.ts.map +1 -0
  116. package/dist/metadata.cjs +7 -0
  117. package/dist/metadata.cjs.map +1 -0
  118. package/dist/metadata.d.ts +24 -0
  119. package/dist/metadata.d.ts.map +1 -0
  120. package/dist/opLifecycle/batchManager.cjs +139 -0
  121. package/dist/opLifecycle/batchManager.cjs.map +1 -0
  122. package/dist/opLifecycle/batchManager.d.ts +48 -0
  123. package/dist/opLifecycle/batchManager.d.ts.map +1 -0
  124. package/dist/opLifecycle/definitions.cjs +7 -0
  125. package/dist/opLifecycle/definitions.cjs.map +1 -0
  126. package/dist/opLifecycle/definitions.d.ts +83 -0
  127. package/dist/opLifecycle/definitions.d.ts.map +1 -0
  128. package/dist/opLifecycle/index.cjs +26 -0
  129. package/dist/opLifecycle/index.cjs.map +1 -0
  130. package/dist/opLifecycle/index.d.ts +13 -0
  131. package/dist/opLifecycle/index.d.ts.map +1 -0
  132. package/dist/opLifecycle/opCompressor.cjs +84 -0
  133. package/dist/opLifecycle/opCompressor.cjs.map +1 -0
  134. package/dist/opLifecycle/opCompressor.d.ts +18 -0
  135. package/dist/opLifecycle/opCompressor.d.ts.map +1 -0
  136. package/dist/opLifecycle/opDecompressor.cjs +132 -0
  137. package/dist/opLifecycle/opDecompressor.cjs.map +1 -0
  138. package/dist/opLifecycle/opDecompressor.d.ts +25 -0
  139. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -0
  140. package/dist/opLifecycle/opGroupingManager.cjs +95 -0
  141. package/dist/opLifecycle/opGroupingManager.cjs.map +1 -0
  142. package/dist/opLifecycle/opGroupingManager.d.ts +22 -0
  143. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -0
  144. package/dist/opLifecycle/opSplitter.cjs +202 -0
  145. package/dist/opLifecycle/opSplitter.cjs.map +1 -0
  146. package/dist/opLifecycle/opSplitter.d.ts +61 -0
  147. package/dist/opLifecycle/opSplitter.d.ts.map +1 -0
  148. package/dist/opLifecycle/outbox.cjs +326 -0
  149. package/dist/opLifecycle/outbox.cjs.map +1 -0
  150. package/dist/opLifecycle/outbox.d.ts +104 -0
  151. package/dist/opLifecycle/outbox.d.ts.map +1 -0
  152. package/dist/opLifecycle/remoteMessageProcessor.cjs +136 -0
  153. package/dist/opLifecycle/remoteMessageProcessor.cjs.map +1 -0
  154. package/dist/opLifecycle/remoteMessageProcessor.d.ts +47 -0
  155. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -0
  156. package/dist/opProperties.cjs +17 -0
  157. package/dist/opProperties.cjs.map +1 -0
  158. package/dist/opProperties.d.ts +7 -0
  159. package/dist/opProperties.d.ts.map +1 -0
  160. package/dist/{packageVersion.js → packageVersion.cjs} +2 -2
  161. package/dist/packageVersion.cjs.map +1 -0
  162. package/dist/packageVersion.d.ts +1 -1
  163. package/dist/packageVersion.d.ts.map +1 -1
  164. package/dist/pendingStateManager.cjs +282 -0
  165. package/dist/pendingStateManager.cjs.map +1 -0
  166. package/dist/pendingStateManager.d.ts +32 -69
  167. package/dist/pendingStateManager.d.ts.map +1 -1
  168. package/dist/scheduleManager.cjs +258 -0
  169. package/dist/scheduleManager.cjs.map +1 -0
  170. package/dist/scheduleManager.d.ts +31 -0
  171. package/dist/scheduleManager.d.ts.map +1 -0
  172. package/dist/storageServiceWithAttachBlobs.cjs +32 -0
  173. package/dist/storageServiceWithAttachBlobs.cjs.map +1 -0
  174. package/dist/storageServiceWithAttachBlobs.d.ts +17 -0
  175. package/dist/storageServiceWithAttachBlobs.d.ts.map +1 -0
  176. package/dist/summary/index.cjs +51 -0
  177. package/dist/summary/index.cjs.map +1 -0
  178. package/dist/summary/index.d.ts +17 -0
  179. package/dist/summary/index.d.ts.map +1 -0
  180. package/dist/{orderedClientElection.js → summary/orderedClientElection.cjs} +100 -84
  181. package/dist/summary/orderedClientElection.cjs.map +1 -0
  182. package/{lib → dist/summary}/orderedClientElection.d.ts +41 -18
  183. package/dist/summary/orderedClientElection.d.ts.map +1 -0
  184. package/dist/{runWhileConnectedCoordinator.js → summary/runWhileConnectedCoordinator.cjs} +12 -10
  185. package/dist/summary/runWhileConnectedCoordinator.cjs.map +1 -0
  186. package/{lib → dist/summary}/runWhileConnectedCoordinator.d.ts +8 -2
  187. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -0
  188. package/dist/summary/runningSummarizer.cjs +679 -0
  189. package/dist/summary/runningSummarizer.cjs.map +1 -0
  190. package/dist/summary/runningSummarizer.d.ts +128 -0
  191. package/dist/summary/runningSummarizer.d.ts.map +1 -0
  192. package/dist/summary/summarizer.cjs +263 -0
  193. package/dist/summary/summarizer.cjs.map +1 -0
  194. package/dist/{summarizer.d.ts → summary/summarizer.d.ts} +18 -33
  195. package/dist/summary/summarizer.d.ts.map +1 -0
  196. package/dist/{summarizerClientElection.js → summary/summarizerClientElection.cjs} +15 -46
  197. package/dist/summary/summarizerClientElection.cjs.map +1 -0
  198. package/{lib → dist/summary}/summarizerClientElection.d.ts +4 -4
  199. package/dist/summary/summarizerClientElection.d.ts.map +1 -0
  200. package/dist/summary/summarizerHeuristics.cjs +156 -0
  201. package/dist/summary/summarizerHeuristics.cjs.map +1 -0
  202. package/{lib → dist/summary}/summarizerHeuristics.d.ts +28 -6
  203. package/dist/summary/summarizerHeuristics.d.ts.map +1 -0
  204. package/dist/summary/summarizerNode/index.cjs +12 -0
  205. package/dist/summary/summarizerNode/index.cjs.map +1 -0
  206. package/dist/summary/summarizerNode/index.d.ts +8 -0
  207. package/dist/summary/summarizerNode/index.d.ts.map +1 -0
  208. package/dist/summary/summarizerNode/summarizerNode.cjs +526 -0
  209. package/dist/summary/summarizerNode/summarizerNode.cjs.map +1 -0
  210. package/dist/summary/summarizerNode/summarizerNode.d.ts +167 -0
  211. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -0
  212. package/dist/summary/summarizerNode/summarizerNodeUtils.cjs +130 -0
  213. package/dist/summary/summarizerNode/summarizerNodeUtils.cjs.map +1 -0
  214. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +121 -0
  215. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -0
  216. package/dist/summary/summarizerNode/summarizerNodeWithGc.cjs +375 -0
  217. package/dist/summary/summarizerNode/summarizerNodeWithGc.cjs.map +1 -0
  218. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +153 -0
  219. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -0
  220. package/dist/summary/summarizerTypes.cjs +7 -0
  221. package/dist/summary/summarizerTypes.cjs.map +1 -0
  222. package/{lib → dist/summary}/summarizerTypes.d.ts +233 -83
  223. package/dist/summary/summarizerTypes.d.ts.map +1 -0
  224. package/dist/{summaryCollection.js → summary/summaryCollection.cjs} +80 -49
  225. package/dist/summary/summaryCollection.cjs.map +1 -0
  226. package/dist/{summaryCollection.d.ts → summary/summaryCollection.d.ts} +23 -5
  227. package/dist/summary/summaryCollection.d.ts.map +1 -0
  228. package/dist/{summaryFormat.js → summary/summaryFormat.cjs} +29 -26
  229. package/dist/summary/summaryFormat.cjs.map +1 -0
  230. package/{lib → dist/summary}/summaryFormat.d.ts +25 -30
  231. package/dist/summary/summaryFormat.d.ts.map +1 -0
  232. package/dist/{summaryGenerator.js → summary/summaryGenerator.cjs} +162 -74
  233. package/dist/summary/summaryGenerator.cjs.map +1 -0
  234. package/dist/{summaryGenerator.d.ts → summary/summaryGenerator.d.ts} +53 -11
  235. package/dist/summary/summaryGenerator.d.ts.map +1 -0
  236. package/dist/{summaryManager.js → summary/summaryManager.cjs} +98 -55
  237. package/dist/summary/summaryManager.cjs.map +1 -0
  238. package/{lib → dist/summary}/summaryManager.d.ts +13 -11
  239. package/dist/summary/summaryManager.d.ts.map +1 -0
  240. package/dist/{throttler.js → throttler.cjs} +21 -21
  241. package/dist/throttler.cjs.map +1 -0
  242. package/dist/throttler.d.ts +2 -2
  243. package/dist/throttler.d.ts.map +1 -1
  244. package/dist/tsdoc-metadata.json +11 -0
  245. package/lib/{batchTracker.d.ts → batchTracker.d.mts} +7 -6
  246. package/lib/batchTracker.d.mts.map +1 -0
  247. package/lib/{batchTracker.js → batchTracker.mjs} +9 -8
  248. package/lib/batchTracker.mjs.map +1 -0
  249. package/lib/blobManager.d.mts +196 -0
  250. package/lib/blobManager.d.mts.map +1 -0
  251. package/lib/blobManager.mjs +704 -0
  252. package/lib/blobManager.mjs.map +1 -0
  253. package/lib/{connectionTelemetry.d.ts → connectionTelemetry.d.mts} +3 -3
  254. package/lib/connectionTelemetry.d.mts.map +1 -0
  255. package/lib/connectionTelemetry.mjs +226 -0
  256. package/lib/connectionTelemetry.mjs.map +1 -0
  257. package/lib/container-runtime-alpha.d.mts +1690 -0
  258. package/lib/container-runtime-beta.d.mts +250 -0
  259. package/lib/container-runtime-public.d.mts +250 -0
  260. package/lib/container-runtime-untrimmed.d.mts +1805 -0
  261. package/lib/{containerHandleContext.d.ts → containerHandleContext.d.mts} +2 -2
  262. package/lib/containerHandleContext.d.mts.map +1 -0
  263. package/lib/{containerHandleContext.js → containerHandleContext.mjs} +4 -2
  264. package/lib/containerHandleContext.mjs.map +1 -0
  265. package/lib/containerRuntime.d.mts +813 -0
  266. package/lib/containerRuntime.d.mts.map +1 -0
  267. package/lib/containerRuntime.mjs +2530 -0
  268. package/lib/containerRuntime.mjs.map +1 -0
  269. package/lib/{dataStore.d.ts → dataStore.d.mts} +5 -5
  270. package/lib/dataStore.d.mts.map +1 -0
  271. package/lib/{dataStore.js → dataStore.mjs} +52 -43
  272. package/lib/dataStore.mjs.map +1 -0
  273. package/lib/{dataStoreContext.d.ts → dataStoreContext.d.mts} +75 -43
  274. package/lib/dataStoreContext.d.mts.map +1 -0
  275. package/lib/{dataStoreContext.js → dataStoreContext.mjs} +309 -213
  276. package/lib/dataStoreContext.mjs.map +1 -0
  277. package/lib/{dataStoreContexts.d.ts → dataStoreContexts.d.mts} +3 -3
  278. package/lib/dataStoreContexts.d.mts.map +1 -0
  279. package/lib/{dataStoreContexts.js → dataStoreContexts.mjs} +12 -8
  280. package/lib/dataStoreContexts.mjs.map +1 -0
  281. package/lib/{dataStoreRegistry.d.ts → dataStoreRegistry.d.mts} +4 -1
  282. package/lib/dataStoreRegistry.d.mts.map +1 -0
  283. package/lib/{dataStoreRegistry.js → dataStoreRegistry.mjs} +7 -6
  284. package/lib/dataStoreRegistry.mjs.map +1 -0
  285. package/lib/{dataStores.d.ts → dataStores.d.mts} +60 -27
  286. package/lib/dataStores.d.mts.map +1 -0
  287. package/lib/{dataStores.js → dataStores.mjs} +257 -105
  288. package/lib/dataStores.mjs.map +1 -0
  289. package/lib/deltaManagerProxyBase.d.mts +35 -0
  290. package/lib/deltaManagerProxyBase.d.mts.map +1 -0
  291. package/lib/deltaManagerProxyBase.mjs +73 -0
  292. package/lib/deltaManagerProxyBase.mjs.map +1 -0
  293. package/lib/deltaManagerSummarizerProxy.d.mts +19 -0
  294. package/lib/deltaManagerSummarizerProxy.d.mts.map +1 -0
  295. package/lib/deltaManagerSummarizerProxy.mjs +38 -0
  296. package/lib/deltaManagerSummarizerProxy.mjs.map +1 -0
  297. package/lib/{deltaScheduler.d.ts → deltaScheduler.d.mts} +9 -7
  298. package/lib/deltaScheduler.d.mts.map +1 -0
  299. package/lib/{deltaScheduler.js → deltaScheduler.mjs} +22 -15
  300. package/lib/deltaScheduler.mjs.map +1 -0
  301. package/lib/error.d.mts +14 -0
  302. package/lib/error.d.mts.map +1 -0
  303. package/lib/error.mjs +17 -0
  304. package/lib/error.mjs.map +1 -0
  305. package/lib/gc/garbageCollection.d.mts +224 -0
  306. package/lib/gc/garbageCollection.d.mts.map +1 -0
  307. package/lib/gc/garbageCollection.mjs +861 -0
  308. package/lib/gc/garbageCollection.mjs.map +1 -0
  309. package/lib/gc/gcConfigs.d.mts +23 -0
  310. package/lib/gc/gcConfigs.d.mts.map +1 -0
  311. package/lib/gc/gcConfigs.mjs +156 -0
  312. package/lib/gc/gcConfigs.mjs.map +1 -0
  313. package/lib/gc/gcDefinitions.d.mts +458 -0
  314. package/lib/gc/gcDefinitions.d.mts.map +1 -0
  315. package/lib/gc/gcDefinitions.mjs +93 -0
  316. package/lib/gc/gcDefinitions.mjs.map +1 -0
  317. package/lib/gc/gcHelpers.d.mts +71 -0
  318. package/lib/gc/gcHelpers.d.mts.map +1 -0
  319. package/lib/gc/gcHelpers.mjs +222 -0
  320. package/lib/gc/gcHelpers.mjs.map +1 -0
  321. package/lib/gc/gcReferenceGraphAlgorithm.d.mts +16 -0
  322. package/lib/gc/gcReferenceGraphAlgorithm.d.mts.map +1 -0
  323. package/lib/gc/gcReferenceGraphAlgorithm.mjs +45 -0
  324. package/lib/gc/gcReferenceGraphAlgorithm.mjs.map +1 -0
  325. package/lib/gc/gcSummaryDefinitions.d.mts +52 -0
  326. package/lib/gc/gcSummaryDefinitions.d.mts.map +1 -0
  327. package/lib/gc/gcSummaryDefinitions.mjs +6 -0
  328. package/lib/gc/gcSummaryDefinitions.mjs.map +1 -0
  329. package/lib/gc/gcSummaryStateTracker.d.mts +94 -0
  330. package/lib/gc/gcSummaryStateTracker.d.mts.map +1 -0
  331. package/lib/gc/gcSummaryStateTracker.mjs +209 -0
  332. package/lib/gc/gcSummaryStateTracker.mjs.map +1 -0
  333. package/lib/gc/gcTelemetry.d.mts +99 -0
  334. package/lib/gc/gcTelemetry.d.mts.map +1 -0
  335. package/lib/gc/gcTelemetry.mjs +302 -0
  336. package/lib/gc/gcTelemetry.mjs.map +1 -0
  337. package/lib/gc/gcUnreferencedStateTracker.d.mts +40 -0
  338. package/lib/gc/gcUnreferencedStateTracker.d.mts.map +1 -0
  339. package/lib/gc/gcUnreferencedStateTracker.mjs +114 -0
  340. package/lib/gc/gcUnreferencedStateTracker.mjs.map +1 -0
  341. package/lib/gc/index.d.mts +13 -0
  342. package/lib/gc/index.d.mts.map +1 -0
  343. package/lib/gc/index.mjs +12 -0
  344. package/lib/gc/index.mjs.map +1 -0
  345. package/lib/index.d.mts +25 -0
  346. package/lib/index.d.mts.map +1 -0
  347. package/lib/index.mjs +24 -0
  348. package/lib/index.mjs.map +1 -0
  349. package/lib/messageTypes.d.mts +142 -0
  350. package/lib/messageTypes.d.mts.map +1 -0
  351. package/lib/messageTypes.mjs +34 -0
  352. package/lib/messageTypes.mjs.map +1 -0
  353. package/lib/metadata.d.mts +24 -0
  354. package/lib/metadata.d.mts.map +1 -0
  355. package/lib/metadata.mjs +6 -0
  356. package/lib/metadata.mjs.map +1 -0
  357. package/lib/opLifecycle/batchManager.d.mts +48 -0
  358. package/lib/opLifecycle/batchManager.d.mts.map +1 -0
  359. package/lib/opLifecycle/batchManager.mjs +133 -0
  360. package/lib/opLifecycle/batchManager.mjs.map +1 -0
  361. package/lib/opLifecycle/definitions.d.mts +83 -0
  362. package/lib/opLifecycle/definitions.d.mts.map +1 -0
  363. package/lib/opLifecycle/definitions.mjs +6 -0
  364. package/lib/opLifecycle/definitions.mjs.map +1 -0
  365. package/lib/opLifecycle/index.d.mts +13 -0
  366. package/lib/opLifecycle/index.d.mts.map +1 -0
  367. package/lib/opLifecycle/index.mjs +12 -0
  368. package/lib/opLifecycle/index.mjs.map +1 -0
  369. package/lib/opLifecycle/opCompressor.d.mts +18 -0
  370. package/lib/opLifecycle/opCompressor.d.mts.map +1 -0
  371. package/lib/opLifecycle/opCompressor.mjs +80 -0
  372. package/lib/opLifecycle/opCompressor.mjs.map +1 -0
  373. package/lib/opLifecycle/opDecompressor.d.mts +25 -0
  374. package/lib/opLifecycle/opDecompressor.d.mts.map +1 -0
  375. package/lib/opLifecycle/opDecompressor.mjs +128 -0
  376. package/lib/opLifecycle/opDecompressor.mjs.map +1 -0
  377. package/lib/opLifecycle/opGroupingManager.d.mts +22 -0
  378. package/lib/opLifecycle/opGroupingManager.d.mts.map +1 -0
  379. package/lib/opLifecycle/opGroupingManager.mjs +91 -0
  380. package/lib/opLifecycle/opGroupingManager.mjs.map +1 -0
  381. package/lib/opLifecycle/opSplitter.d.mts +61 -0
  382. package/lib/opLifecycle/opSplitter.d.mts.map +1 -0
  383. package/lib/opLifecycle/opSplitter.mjs +197 -0
  384. package/lib/opLifecycle/opSplitter.mjs.map +1 -0
  385. package/lib/opLifecycle/outbox.d.mts +104 -0
  386. package/lib/opLifecycle/outbox.d.mts.map +1 -0
  387. package/lib/opLifecycle/outbox.mjs +321 -0
  388. package/lib/opLifecycle/outbox.mjs.map +1 -0
  389. package/lib/opLifecycle/remoteMessageProcessor.d.mts +47 -0
  390. package/lib/opLifecycle/remoteMessageProcessor.d.mts.map +1 -0
  391. package/lib/opLifecycle/remoteMessageProcessor.mjs +131 -0
  392. package/lib/opLifecycle/remoteMessageProcessor.mjs.map +1 -0
  393. package/lib/opProperties.d.mts +7 -0
  394. package/lib/opProperties.d.mts.map +1 -0
  395. package/lib/opProperties.mjs +13 -0
  396. package/lib/opProperties.mjs.map +1 -0
  397. package/lib/{packageVersion.d.ts → packageVersion.d.mts} +2 -2
  398. package/lib/packageVersion.d.mts.map +1 -0
  399. package/lib/{packageVersion.js → packageVersion.mjs} +2 -2
  400. package/lib/packageVersion.mjs.map +1 -0
  401. package/lib/{pendingStateManager.d.ts → pendingStateManager.d.mts} +33 -70
  402. package/lib/pendingStateManager.d.mts.map +1 -0
  403. package/lib/pendingStateManager.mjs +275 -0
  404. package/lib/pendingStateManager.mjs.map +1 -0
  405. package/lib/scheduleManager.d.mts +27 -0
  406. package/lib/scheduleManager.d.mts.map +1 -0
  407. package/lib/scheduleManager.mjs +254 -0
  408. package/lib/scheduleManager.mjs.map +1 -0
  409. package/lib/storageServiceWithAttachBlobs.d.mts +17 -0
  410. package/lib/storageServiceWithAttachBlobs.d.mts.map +1 -0
  411. package/lib/storageServiceWithAttachBlobs.mjs +28 -0
  412. package/lib/storageServiceWithAttachBlobs.mjs.map +1 -0
  413. package/lib/summary/index.d.mts +17 -0
  414. package/lib/summary/index.d.mts.map +1 -0
  415. package/lib/summary/index.mjs +16 -0
  416. package/lib/summary/index.mjs.map +1 -0
  417. package/{dist/orderedClientElection.d.ts → lib/summary/orderedClientElection.d.mts} +42 -23
  418. package/lib/summary/orderedClientElection.d.mts.map +1 -0
  419. package/lib/{orderedClientElection.js → summary/orderedClientElection.mjs} +95 -79
  420. package/lib/summary/orderedClientElection.mjs.map +1 -0
  421. package/{dist/runWhileConnectedCoordinator.d.ts → lib/summary/runWhileConnectedCoordinator.d.mts} +10 -4
  422. package/lib/summary/runWhileConnectedCoordinator.d.mts.map +1 -0
  423. package/lib/{runWhileConnectedCoordinator.js → summary/runWhileConnectedCoordinator.mjs} +12 -10
  424. package/lib/summary/runWhileConnectedCoordinator.mjs.map +1 -0
  425. package/lib/summary/runningSummarizer.d.mts +128 -0
  426. package/lib/summary/runningSummarizer.d.mts.map +1 -0
  427. package/lib/summary/runningSummarizer.mjs +675 -0
  428. package/lib/summary/runningSummarizer.mjs.map +1 -0
  429. package/lib/{summarizer.d.ts → summary/summarizer.d.mts} +21 -36
  430. package/lib/summary/summarizer.d.mts.map +1 -0
  431. package/lib/summary/summarizer.mjs +257 -0
  432. package/lib/summary/summarizer.mjs.map +1 -0
  433. package/{dist/summarizerClientElection.d.ts → lib/summary/summarizerClientElection.d.mts} +7 -7
  434. package/lib/summary/summarizerClientElection.d.mts.map +1 -0
  435. package/lib/{summarizerClientElection.js → summary/summarizerClientElection.mjs} +14 -45
  436. package/lib/summary/summarizerClientElection.mjs.map +1 -0
  437. package/{dist/summarizerHeuristics.d.ts → lib/summary/summarizerHeuristics.d.mts} +30 -8
  438. package/lib/summary/summarizerHeuristics.d.mts.map +1 -0
  439. package/lib/summary/summarizerHeuristics.mjs +151 -0
  440. package/lib/summary/summarizerHeuristics.mjs.map +1 -0
  441. package/lib/summary/summarizerNode/index.d.mts +8 -0
  442. package/lib/summary/summarizerNode/index.d.mts.map +1 -0
  443. package/lib/summary/summarizerNode/index.mjs +7 -0
  444. package/lib/summary/summarizerNode/index.mjs.map +1 -0
  445. package/lib/summary/summarizerNode/summarizerNode.d.mts +167 -0
  446. package/lib/summary/summarizerNode/summarizerNode.d.mts.map +1 -0
  447. package/lib/summary/summarizerNode/summarizerNode.mjs +521 -0
  448. package/lib/summary/summarizerNode/summarizerNode.mjs.map +1 -0
  449. package/lib/summary/summarizerNode/summarizerNodeUtils.d.mts +121 -0
  450. package/lib/summary/summarizerNode/summarizerNodeUtils.d.mts.map +1 -0
  451. package/lib/summary/summarizerNode/summarizerNodeUtils.mjs +123 -0
  452. package/lib/summary/summarizerNode/summarizerNodeUtils.mjs.map +1 -0
  453. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.mts +153 -0
  454. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.mts.map +1 -0
  455. package/lib/summary/summarizerNode/summarizerNodeWithGc.mjs +370 -0
  456. package/lib/summary/summarizerNode/summarizerNodeWithGc.mjs.map +1 -0
  457. package/{dist/summarizerTypes.d.ts → lib/summary/summarizerTypes.d.mts} +235 -85
  458. package/lib/summary/summarizerTypes.d.mts.map +1 -0
  459. package/lib/summary/summarizerTypes.mjs +6 -0
  460. package/lib/summary/summarizerTypes.mjs.map +1 -0
  461. package/lib/{summaryCollection.d.ts → summary/summaryCollection.d.mts} +24 -6
  462. package/lib/summary/summaryCollection.d.mts.map +1 -0
  463. package/lib/{summaryCollection.js → summary/summaryCollection.mjs} +76 -45
  464. package/lib/summary/summaryCollection.mjs.map +1 -0
  465. package/{dist/summaryFormat.d.ts → lib/summary/summaryFormat.d.mts} +26 -31
  466. package/lib/summary/summaryFormat.d.mts.map +1 -0
  467. package/lib/{summaryFormat.js → summary/summaryFormat.mjs} +30 -26
  468. package/lib/summary/summaryFormat.mjs.map +1 -0
  469. package/lib/summary/summaryGenerator.d.mts +127 -0
  470. package/lib/summary/summaryGenerator.d.mts.map +1 -0
  471. package/lib/{summaryGenerator.js → summary/summaryGenerator.mjs} +153 -67
  472. package/lib/summary/summaryGenerator.mjs.map +1 -0
  473. package/{dist/summaryManager.d.ts → lib/summary/summaryManager.d.mts} +16 -14
  474. package/lib/summary/summaryManager.d.mts.map +1 -0
  475. package/lib/{summaryManager.js → summary/summaryManager.mjs} +94 -51
  476. package/lib/summary/summaryManager.mjs.map +1 -0
  477. package/lib/{throttler.d.ts → throttler.d.mts} +3 -3
  478. package/lib/throttler.d.mts.map +1 -0
  479. package/lib/{throttler.js → throttler.mjs} +21 -21
  480. package/lib/throttler.mjs.map +1 -0
  481. package/package.json +199 -71
  482. package/prettier.config.cjs +8 -0
  483. package/src/batchTracker.ts +59 -54
  484. package/src/blobManager.ts +942 -294
  485. package/src/connectionTelemetry.ts +342 -252
  486. package/src/containerHandleContext.ts +27 -29
  487. package/src/containerRuntime.ts +3883 -3143
  488. package/src/dataStore.ts +170 -140
  489. package/src/dataStoreContext.ts +1166 -986
  490. package/src/dataStoreContexts.ts +176 -163
  491. package/src/dataStoreRegistry.ts +29 -21
  492. package/src/dataStores.ts +924 -678
  493. package/src/deltaManagerProxyBase.ts +111 -0
  494. package/src/deltaManagerSummarizerProxy.ts +49 -0
  495. package/src/deltaScheduler.ts +161 -156
  496. package/src/error.ts +21 -0
  497. package/src/gc/garbageCollection.md +106 -0
  498. package/src/gc/garbageCollection.ts +1157 -0
  499. package/src/gc/gcConfigs.ts +224 -0
  500. package/src/gc/gcDefinitions.ts +524 -0
  501. package/src/gc/gcHelpers.ts +284 -0
  502. package/src/gc/gcReferenceGraphAlgorithm.ts +52 -0
  503. package/src/gc/gcSummaryDefinitions.ts +54 -0
  504. package/src/gc/gcSummaryStateTracker.ts +299 -0
  505. package/src/gc/gcTelemetry.ts +433 -0
  506. package/src/gc/gcUnreferencedStateTracker.ts +153 -0
  507. package/src/gc/index.ts +60 -0
  508. package/src/index.ts +101 -74
  509. package/src/messageTypes.ts +238 -0
  510. package/src/metadata.ts +26 -0
  511. package/src/opLifecycle/README.md +321 -0
  512. package/src/opLifecycle/batchManager.ts +179 -0
  513. package/src/opLifecycle/definitions.ts +89 -0
  514. package/src/opLifecycle/index.ts +19 -0
  515. package/src/opLifecycle/opCompressor.ts +99 -0
  516. package/src/opLifecycle/opDecompressor.ts +190 -0
  517. package/src/opLifecycle/opGroupingManager.ts +133 -0
  518. package/src/opLifecycle/opSplitter.ts +279 -0
  519. package/src/opLifecycle/outbox.ts +474 -0
  520. package/src/opLifecycle/remoteMessageProcessor.ts +175 -0
  521. package/src/opProperties.ts +21 -0
  522. package/src/packageVersion.ts +1 -1
  523. package/src/pendingStateManager.ts +396 -465
  524. package/src/scheduleManager.ts +358 -0
  525. package/src/storageServiceWithAttachBlobs.ts +38 -0
  526. package/src/summary/index.ts +109 -0
  527. package/src/summary/orderedClientElection.ts +571 -0
  528. package/src/summary/runWhileConnectedCoordinator.ts +117 -0
  529. package/src/summary/runningSummarizer.ts +920 -0
  530. package/src/summary/summarizer.ts +352 -0
  531. package/src/summary/summarizerClientElection.ts +140 -0
  532. package/src/summary/summarizerHeuristics.ts +227 -0
  533. package/src/summary/summarizerNode/index.ts +12 -0
  534. package/src/summary/summarizerNode/summarizerNode.ts +725 -0
  535. package/src/summary/summarizerNode/summarizerNodeUtils.ts +206 -0
  536. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +571 -0
  537. package/src/summary/summarizerTypes.ts +631 -0
  538. package/src/summary/summaryCollection.ts +474 -0
  539. package/src/summary/summaryFormat.ts +249 -0
  540. package/src/summary/summaryGenerator.ts +539 -0
  541. package/src/summary/summaryManager.ts +452 -0
  542. package/src/throttler.ts +131 -122
  543. package/tsc-multi.test.json +4 -0
  544. package/tsconfig.json +11 -13
  545. package/dist/batchTracker.js.map +0 -1
  546. package/dist/blobManager.js +0 -249
  547. package/dist/blobManager.js.map +0 -1
  548. package/dist/connectionTelemetry.js +0 -178
  549. package/dist/connectionTelemetry.js.map +0 -1
  550. package/dist/containerHandleContext.js.map +0 -1
  551. package/dist/containerRuntime.js +0 -2174
  552. package/dist/containerRuntime.js.map +0 -1
  553. package/dist/dataStore.js.map +0 -1
  554. package/dist/dataStoreContext.js.map +0 -1
  555. package/dist/dataStoreContexts.js.map +0 -1
  556. package/dist/dataStoreRegistry.js.map +0 -1
  557. package/dist/dataStores.js.map +0 -1
  558. package/dist/deltaScheduler.js.map +0 -1
  559. package/dist/garbageCollection.d.ts +0 -319
  560. package/dist/garbageCollection.d.ts.map +0 -1
  561. package/dist/garbageCollection.js +0 -993
  562. package/dist/garbageCollection.js.map +0 -1
  563. package/dist/index.js +0 -33
  564. package/dist/index.js.map +0 -1
  565. package/dist/opTelemetry.d.ts +0 -22
  566. package/dist/opTelemetry.d.ts.map +0 -1
  567. package/dist/opTelemetry.js +0 -60
  568. package/dist/opTelemetry.js.map +0 -1
  569. package/dist/orderedClientElection.d.ts.map +0 -1
  570. package/dist/orderedClientElection.js.map +0 -1
  571. package/dist/packageVersion.js.map +0 -1
  572. package/dist/pendingStateManager.js +0 -346
  573. package/dist/pendingStateManager.js.map +0 -1
  574. package/dist/runWhileConnectedCoordinator.d.ts.map +0 -1
  575. package/dist/runWhileConnectedCoordinator.js.map +0 -1
  576. package/dist/runningSummarizer.d.ts +0 -93
  577. package/dist/runningSummarizer.d.ts.map +0 -1
  578. package/dist/runningSummarizer.js +0 -384
  579. package/dist/runningSummarizer.js.map +0 -1
  580. package/dist/serializedSnapshotStorage.d.ts +0 -58
  581. package/dist/serializedSnapshotStorage.d.ts.map +0 -1
  582. package/dist/serializedSnapshotStorage.js +0 -108
  583. package/dist/serializedSnapshotStorage.js.map +0 -1
  584. package/dist/summarizer.d.ts.map +0 -1
  585. package/dist/summarizer.js +0 -348
  586. package/dist/summarizer.js.map +0 -1
  587. package/dist/summarizerClientElection.d.ts.map +0 -1
  588. package/dist/summarizerClientElection.js.map +0 -1
  589. package/dist/summarizerHandle.d.ts +0 -12
  590. package/dist/summarizerHandle.d.ts.map +0 -1
  591. package/dist/summarizerHandle.js +0 -22
  592. package/dist/summarizerHandle.js.map +0 -1
  593. package/dist/summarizerHeuristics.d.ts.map +0 -1
  594. package/dist/summarizerHeuristics.js +0 -84
  595. package/dist/summarizerHeuristics.js.map +0 -1
  596. package/dist/summarizerTypes.d.ts.map +0 -1
  597. package/dist/summarizerTypes.js.map +0 -1
  598. package/dist/summaryCollection.d.ts.map +0 -1
  599. package/dist/summaryCollection.js.map +0 -1
  600. package/dist/summaryFormat.d.ts.map +0 -1
  601. package/dist/summaryFormat.js.map +0 -1
  602. package/dist/summaryGenerator.d.ts.map +0 -1
  603. package/dist/summaryGenerator.js.map +0 -1
  604. package/dist/summaryManager.d.ts.map +0 -1
  605. package/dist/summaryManager.js.map +0 -1
  606. package/dist/throttler.js.map +0 -1
  607. package/garbageCollection.md +0 -41
  608. package/lib/batchTracker.d.ts.map +0 -1
  609. package/lib/batchTracker.js.map +0 -1
  610. package/lib/blobManager.d.ts +0 -95
  611. package/lib/blobManager.d.ts.map +0 -1
  612. package/lib/blobManager.js +0 -244
  613. package/lib/blobManager.js.map +0 -1
  614. package/lib/connectionTelemetry.d.ts.map +0 -1
  615. package/lib/connectionTelemetry.js +0 -174
  616. package/lib/connectionTelemetry.js.map +0 -1
  617. package/lib/containerHandleContext.d.ts.map +0 -1
  618. package/lib/containerHandleContext.js.map +0 -1
  619. package/lib/containerRuntime.d.ts +0 -615
  620. package/lib/containerRuntime.d.ts.map +0 -1
  621. package/lib/containerRuntime.js +0 -2166
  622. package/lib/containerRuntime.js.map +0 -1
  623. package/lib/dataStore.d.ts.map +0 -1
  624. package/lib/dataStore.js.map +0 -1
  625. package/lib/dataStoreContext.d.ts.map +0 -1
  626. package/lib/dataStoreContext.js.map +0 -1
  627. package/lib/dataStoreContexts.d.ts.map +0 -1
  628. package/lib/dataStoreContexts.js.map +0 -1
  629. package/lib/dataStoreRegistry.d.ts.map +0 -1
  630. package/lib/dataStoreRegistry.js.map +0 -1
  631. package/lib/dataStores.d.ts.map +0 -1
  632. package/lib/dataStores.js.map +0 -1
  633. package/lib/deltaScheduler.d.ts.map +0 -1
  634. package/lib/deltaScheduler.js.map +0 -1
  635. package/lib/garbageCollection.d.ts +0 -319
  636. package/lib/garbageCollection.d.ts.map +0 -1
  637. package/lib/garbageCollection.js +0 -989
  638. package/lib/garbageCollection.js.map +0 -1
  639. package/lib/index.d.ts +0 -14
  640. package/lib/index.d.ts.map +0 -1
  641. package/lib/index.js +0 -13
  642. package/lib/index.js.map +0 -1
  643. package/lib/opTelemetry.d.ts +0 -22
  644. package/lib/opTelemetry.d.ts.map +0 -1
  645. package/lib/opTelemetry.js +0 -56
  646. package/lib/opTelemetry.js.map +0 -1
  647. package/lib/orderedClientElection.d.ts.map +0 -1
  648. package/lib/orderedClientElection.js.map +0 -1
  649. package/lib/packageVersion.d.ts.map +0 -1
  650. package/lib/packageVersion.js.map +0 -1
  651. package/lib/pendingStateManager.d.ts.map +0 -1
  652. package/lib/pendingStateManager.js +0 -339
  653. package/lib/pendingStateManager.js.map +0 -1
  654. package/lib/runWhileConnectedCoordinator.d.ts.map +0 -1
  655. package/lib/runWhileConnectedCoordinator.js.map +0 -1
  656. package/lib/runningSummarizer.d.ts +0 -93
  657. package/lib/runningSummarizer.d.ts.map +0 -1
  658. package/lib/runningSummarizer.js +0 -380
  659. package/lib/runningSummarizer.js.map +0 -1
  660. package/lib/serializedSnapshotStorage.d.ts +0 -58
  661. package/lib/serializedSnapshotStorage.d.ts.map +0 -1
  662. package/lib/serializedSnapshotStorage.js +0 -104
  663. package/lib/serializedSnapshotStorage.js.map +0 -1
  664. package/lib/summarizer.d.ts.map +0 -1
  665. package/lib/summarizer.js +0 -342
  666. package/lib/summarizer.js.map +0 -1
  667. package/lib/summarizerClientElection.d.ts.map +0 -1
  668. package/lib/summarizerClientElection.js.map +0 -1
  669. package/lib/summarizerHandle.d.ts +0 -12
  670. package/lib/summarizerHandle.d.ts.map +0 -1
  671. package/lib/summarizerHandle.js +0 -18
  672. package/lib/summarizerHandle.js.map +0 -1
  673. package/lib/summarizerHeuristics.d.ts.map +0 -1
  674. package/lib/summarizerHeuristics.js +0 -79
  675. package/lib/summarizerHeuristics.js.map +0 -1
  676. package/lib/summarizerTypes.d.ts.map +0 -1
  677. package/lib/summarizerTypes.js +0 -9
  678. package/lib/summarizerTypes.js.map +0 -1
  679. package/lib/summaryCollection.d.ts.map +0 -1
  680. package/lib/summaryCollection.js.map +0 -1
  681. package/lib/summaryFormat.d.ts.map +0 -1
  682. package/lib/summaryFormat.js.map +0 -1
  683. package/lib/summaryGenerator.d.ts +0 -85
  684. package/lib/summaryGenerator.d.ts.map +0 -1
  685. package/lib/summaryGenerator.js.map +0 -1
  686. package/lib/summaryManager.d.ts.map +0 -1
  687. package/lib/summaryManager.js.map +0 -1
  688. package/lib/throttler.d.ts.map +0 -1
  689. package/lib/throttler.js.map +0 -1
  690. package/src/garbageCollection.ts +0 -1434
  691. package/src/opTelemetry.ts +0 -71
  692. package/src/orderedClientElection.ts +0 -511
  693. package/src/runWhileConnectedCoordinator.ts +0 -106
  694. package/src/runningSummarizer.ts +0 -550
  695. package/src/serializedSnapshotStorage.ts +0 -146
  696. package/src/summarizer.ts +0 -438
  697. package/src/summarizerClientElection.ts +0 -161
  698. package/src/summarizerHandle.ts +0 -21
  699. package/src/summarizerHeuristics.ts +0 -108
  700. package/src/summarizerTypes.ts +0 -462
  701. package/src/summaryCollection.ts +0 -406
  702. package/src/summaryFormat.ts +0 -239
  703. package/src/summaryGenerator.ts +0 -427
  704. package/src/summaryManager.ts +0 -368
  705. package/tsconfig.esnext.json +0 -7
@@ -1,406 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
-
6
- import { IDisposable, IEvent, ITelemetryLogger } from "@fluidframework/common-definitions";
7
- import { Deferred, assert, TypedEventEmitter } from "@fluidframework/common-utils";
8
- import { IDeltaManager } from "@fluidframework/container-definitions";
9
- import {
10
- IDocumentMessage,
11
- ISequencedDocumentMessage,
12
- ISummaryAck,
13
- ISummaryContent,
14
- ISummaryNack,
15
- MessageType,
16
- } from "@fluidframework/protocol-definitions";
17
-
18
- /**
19
- * Interface for summary op messages with typed contents.
20
- */
21
- export interface ISummaryOpMessage extends ISequencedDocumentMessage {
22
- type: MessageType.Summarize;
23
- contents: ISummaryContent;
24
- }
25
-
26
- /**
27
- * Interface for summary ack messages with typed contents.
28
- */
29
- export interface ISummaryAckMessage extends ISequencedDocumentMessage {
30
- type: MessageType.SummaryAck;
31
- contents: ISummaryAck;
32
- }
33
-
34
- /**
35
- * Interface for summary nack messages with typed contents.
36
- */
37
- export interface ISummaryNackMessage extends ISequencedDocumentMessage {
38
- type: MessageType.SummaryNack;
39
- contents: ISummaryNack;
40
- }
41
-
42
- /**
43
- * A single summary which can be tracked as it goes through its life cycle.
44
- * The life cycle is: Local to Broadcast to Acked/Nacked.
45
- */
46
- export interface ISummary {
47
- readonly clientId: string;
48
- readonly clientSequenceNumber: number;
49
- waitBroadcast(): Promise<ISummaryOpMessage>;
50
- waitAckNack(): Promise<ISummaryAckMessage | ISummaryNackMessage>;
51
- }
52
-
53
- /**
54
- * A single summary which has already been acked by the server.
55
- */
56
- export interface IAckedSummary {
57
- readonly summaryOp: ISummaryOpMessage;
58
- readonly summaryAck: ISummaryAckMessage;
59
- }
60
-
61
- enum SummaryState {
62
- Local = 0,
63
- Broadcast = 1,
64
- Acked = 2,
65
- Nacked = -1,
66
- }
67
-
68
- class Summary implements ISummary {
69
- public static createLocal(clientId: string, clientSequenceNumber: number) {
70
- return new Summary(clientId, clientSequenceNumber);
71
- }
72
- public static createFromOp(op: ISummaryOpMessage) {
73
- const summary = new Summary(op.clientId, op.clientSequenceNumber);
74
- summary.broadcast(op);
75
- return summary;
76
- }
77
-
78
- private state = SummaryState.Local;
79
-
80
- private _summaryOp?: ISummaryOpMessage;
81
- private _summaryAckNack?: ISummaryAckMessage | ISummaryNackMessage;
82
-
83
- private readonly defSummaryOp = new Deferred<void>();
84
- private readonly defSummaryAck = new Deferred<void>();
85
-
86
- public get summaryOp() { return this._summaryOp; }
87
- public get summaryAckNack() { return this._summaryAckNack; }
88
-
89
- private constructor(
90
- public readonly clientId: string,
91
- public readonly clientSequenceNumber: number) { }
92
-
93
- public hasBeenAcked(): this is IAckedSummary {
94
- return this.state === SummaryState.Acked;
95
- }
96
-
97
- public broadcast(op: ISummaryOpMessage) {
98
- assert(this.state === SummaryState.Local, 0x175 /* "Can only broadcast if summarizer starts in local state" */);
99
- this._summaryOp = op;
100
- this.defSummaryOp.resolve();
101
- this.state = SummaryState.Broadcast;
102
- return true;
103
- }
104
-
105
- public ackNack(op: ISummaryAckMessage | ISummaryNackMessage) {
106
- assert(this.state === SummaryState.Broadcast,
107
- 0x176 /* "Can only ack/nack if summarizer is in broadcasting state" */);
108
- this._summaryAckNack = op;
109
- this.defSummaryAck.resolve();
110
- this.state = op.type === MessageType.SummaryAck ? SummaryState.Acked : SummaryState.Nacked;
111
- return true;
112
- }
113
-
114
- public async waitBroadcast(): Promise<ISummaryOpMessage> {
115
- await this.defSummaryOp.promise;
116
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
117
- return this._summaryOp!;
118
- }
119
-
120
- public async waitAckNack(): Promise<ISummaryAckMessage | ISummaryNackMessage> {
121
- await this.defSummaryAck.promise;
122
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
123
- return this._summaryAckNack!;
124
- }
125
- }
126
-
127
- /**
128
- * Watches summaries created by a specific client.
129
- */
130
- export interface IClientSummaryWatcher extends IDisposable {
131
- watchSummary(clientSequenceNumber: number): ISummary;
132
- waitFlushed(): Promise<IAckedSummary | undefined>;
133
- }
134
-
135
- /**
136
- * This class watches summaries created by a specific client.
137
- * It should be created and managed from a SummaryCollection.
138
- */
139
- class ClientSummaryWatcher implements IClientSummaryWatcher {
140
- // key: clientSeqNum
141
- private readonly localSummaries = new Map<number, Summary>();
142
- private _disposed = false;
143
-
144
- public get disposed() { return this._disposed; }
145
-
146
- public constructor(
147
- public readonly clientId: string,
148
- private readonly summaryCollection: SummaryCollection,
149
- ) { }
150
-
151
- /**
152
- * Watches for a specific sent summary op.
153
- * @param clientSequenceNumber - client sequence number of sent summary op
154
- */
155
- public watchSummary(clientSequenceNumber: number): ISummary {
156
- let summary = this.localSummaries.get(clientSequenceNumber);
157
- if (!summary) {
158
- summary = Summary.createLocal(this.clientId, clientSequenceNumber);
159
- this.localSummaries.set(summary.clientSequenceNumber, summary);
160
- }
161
- return summary;
162
- }
163
-
164
- /**
165
- * Waits until all of the pending summaries in the underlying SummaryCollection
166
- * are acked/nacked.
167
- */
168
- // eslint-disable-next-line @typescript-eslint/promise-function-async
169
- public waitFlushed() {
170
- return this.summaryCollection.waitFlushed();
171
- }
172
-
173
- /**
174
- * Gets a watched summary or returns undefined if not watched.
175
- * @param clientSequenceNumber - client sequence number of sent summary op
176
- */
177
- public tryGetSummary(clientSequenceNumber: number) {
178
- return this.localSummaries.get(clientSequenceNumber);
179
- }
180
-
181
- /**
182
- * Starts watching a summary made by this client.
183
- * @param summary - summary to start watching
184
- */
185
- public setSummary(summary: Summary) {
186
- this.localSummaries.set(summary.clientSequenceNumber, summary);
187
- }
188
-
189
- public dispose() {
190
- this.summaryCollection.removeWatcher(this.clientId);
191
- this._disposed = true;
192
- }
193
- }
194
-
195
- export type OpActionEventName = MessageType.Summarize | MessageType.SummaryAck | MessageType.SummaryNack | "default";
196
- export type OpActionEventListener = (op: ISequencedDocumentMessage) => void;
197
- export interface ISummaryCollectionOpEvents extends IEvent {
198
- (event: OpActionEventName, listener: OpActionEventListener);
199
- }
200
-
201
- /**
202
- * Data structure that looks at the op stream to track summaries as they
203
- * are broadcast, acked and nacked.
204
- * It provides functionality for watching specific summaries.
205
- */
206
- export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEvents> {
207
- // key: clientId
208
- private readonly summaryWatchers = new Map<string, ClientSummaryWatcher>();
209
- // key: summarySeqNum
210
- private readonly pendingSummaries = new Map<number, Summary>();
211
- private refreshWaitNextAck = new Deferred<void>();
212
-
213
- private lastSummaryTimestamp: number | undefined;
214
- private maxAckWaitTime: number | undefined;
215
- private pendingAckTimerTimeoutCallback: (() => void) | undefined;
216
- private lastAck: IAckedSummary | undefined;
217
-
218
- public get latestAck(): IAckedSummary | undefined { return this.lastAck; }
219
-
220
- public emit(event: OpActionEventName, ...args: Parameters<OpActionEventListener>): boolean {
221
- return super.emit(event, ...args);
222
- }
223
-
224
- public get opsSinceLastAck() {
225
- return this.deltaManager.lastSequenceNumber -
226
- (this.lastAck?.summaryAck.sequenceNumber ?? this.deltaManager.initialSequenceNumber);
227
- }
228
-
229
- public addOpListener(listener: () => void) {
230
- this.deltaManager.on("op", listener);
231
- }
232
-
233
- public removeOpListener(listener: () => void) {
234
- this.deltaManager.off("op", listener);
235
- }
236
-
237
- public constructor(
238
- private readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>,
239
- private readonly logger: ITelemetryLogger,
240
- ) {
241
- super();
242
- this.deltaManager.on(
243
- "op",
244
- (op) => this.handleOp(op));
245
- }
246
-
247
- /**
248
- * Creates and returns a summary watcher for a specific client.
249
- * This will allow for local sent summaries to be better tracked.
250
- * @param clientId - client id for watcher
251
- */
252
- public createWatcher(clientId: string): IClientSummaryWatcher {
253
- const watcher = new ClientSummaryWatcher(clientId, this);
254
- this.summaryWatchers.set(clientId, watcher);
255
- return watcher;
256
- }
257
-
258
- public removeWatcher(clientId: string) {
259
- this.summaryWatchers.delete(clientId);
260
- }
261
-
262
- public setPendingAckTimerTimeoutCallback(maxAckWaitTime: number, timeoutCallback: () => void) {
263
- this.maxAckWaitTime = maxAckWaitTime;
264
- this.pendingAckTimerTimeoutCallback = timeoutCallback;
265
- }
266
-
267
- public unsetPendingAckTimerTimeoutCallback() {
268
- this.maxAckWaitTime = undefined;
269
- this.pendingAckTimerTimeoutCallback = undefined;
270
- }
271
-
272
- /**
273
- * Returns a promise that resolves once all pending summary ops
274
- * have been acked or nacked.
275
- */
276
- public async waitFlushed(): Promise<IAckedSummary | undefined> {
277
- while (this.pendingSummaries.size > 0) {
278
- // eslint-disable-next-line @typescript-eslint/promise-function-async
279
- const promises = Array.from(this.pendingSummaries, ([, summary]) => summary.waitAckNack());
280
- await Promise.all(promises);
281
- }
282
- return this.lastAck;
283
- }
284
-
285
- /**
286
- * Returns a promise that resolves once a summary is acked that has a reference
287
- * sequence number greater than or equal to the passed in sequence number.
288
- * @param referenceSequenceNumber - reference sequence number to wait for
289
- * @returns The latest acked summary
290
- */
291
- public async waitSummaryAck(referenceSequenceNumber: number): Promise<IAckedSummary> {
292
- while (!this.lastAck || this.lastAck.summaryOp.referenceSequenceNumber < referenceSequenceNumber) {
293
- await this.refreshWaitNextAck.promise;
294
- }
295
- return this.lastAck;
296
- }
297
-
298
- /**
299
- * Handler for ops; only handles ops relating to summaries.
300
- * @param op - op message to handle
301
- */
302
- private handleOp(op: ISequencedDocumentMessage) {
303
- switch (op.type) {
304
- case MessageType.Summarize: {
305
- this.handleSummaryOp(op as ISummaryOpMessage);
306
- return;
307
- }
308
- case MessageType.SummaryAck: {
309
- this.handleSummaryAck(op as ISummaryAckMessage);
310
- return;
311
- }
312
- case MessageType.SummaryNack: {
313
- this.handleSummaryNack(op as ISummaryNackMessage);
314
- return;
315
- }
316
- default: {
317
- // If the difference between timestamp of current op and last summary op is greater than
318
- // the maxAckWaitTime, then we need to inform summarizer to not wait and summarize
319
- // immediately as we have already waited for maxAckWaitTime.
320
- const lastOpTimestamp = op.timestamp;
321
- if (this.lastSummaryTimestamp !== undefined &&
322
- this.maxAckWaitTime !== undefined &&
323
- lastOpTimestamp - this.lastSummaryTimestamp >= this.maxAckWaitTime
324
- ) {
325
- this.pendingAckTimerTimeoutCallback?.();
326
- }
327
- this.emit("default", op);
328
-
329
- return;
330
- }
331
- }
332
- }
333
-
334
- private handleSummaryOp(op: ISummaryOpMessage) {
335
- let summary: Summary | undefined;
336
-
337
- // Check if summary already being watched, broadcast if so
338
- const watcher = this.summaryWatchers.get(op.clientId);
339
- if (watcher) {
340
- summary = watcher.tryGetSummary(op.clientSequenceNumber);
341
- if (summary) {
342
- summary.broadcast(op);
343
- }
344
- }
345
-
346
- // If not watched, create from op
347
- if (!summary) {
348
- summary = Summary.createFromOp(op);
349
- if (watcher) {
350
- watcher.setSummary(summary);
351
- }
352
- }
353
- this.pendingSummaries.set(op.sequenceNumber, summary);
354
- this.lastSummaryTimestamp = op.timestamp;
355
- this.emit(MessageType.Summarize, op);
356
- }
357
-
358
- private handleSummaryAck(op: ISummaryAckMessage) {
359
- const seq = op.contents.summaryProposal.summarySequenceNumber;
360
- const summary = this.pendingSummaries.get(seq);
361
- if (!summary || summary.summaryOp === undefined) {
362
- // Summary ack without an op should be rare. We could fetch the
363
- // reference sequence number from the snapshot, but instead we
364
- // will not emit this ack. It should be the case that the summary
365
- // op that this ack is for is earlier than this file was loaded
366
- // from. i.e. initialSequenceNumber > summarySequenceNumber.
367
- // We really don't care about it for now, since it is older than
368
- // the one we loaded from.
369
- if (seq >= this.deltaManager.initialSequenceNumber) {
370
- // Potential causes for it to be later than our initialSequenceNumber
371
- // are that the summaryOp was nacked then acked, double-acked, or
372
- // the summarySequenceNumber is incorrect.
373
- this.logger.sendErrorEvent({
374
- eventName: "SummaryAckWithoutOp",
375
- sequenceNumber: op.sequenceNumber, // summary ack seq #
376
- summarySequenceNumber: seq, // missing summary seq #
377
- initialSequenceNumber: this.deltaManager.initialSequenceNumber,
378
- });
379
- }
380
- return;
381
- }
382
- summary.ackNack(op);
383
- this.pendingSummaries.delete(seq);
384
-
385
- // Track latest ack
386
- if (!this.lastAck || seq > this.lastAck.summaryAck.contents.summaryProposal.summarySequenceNumber) {
387
- this.lastAck = {
388
- summaryOp: summary.summaryOp,
389
- summaryAck: op,
390
- };
391
- this.refreshWaitNextAck.resolve();
392
- this.refreshWaitNextAck = new Deferred<void>();
393
- this.emit(MessageType.SummaryAck, op);
394
- }
395
- }
396
-
397
- private handleSummaryNack(op: ISummaryNackMessage) {
398
- const seq = op.contents.summaryProposal.summarySequenceNumber;
399
- const summary = this.pendingSummaries.get(seq);
400
- if (summary) {
401
- summary.ackNack(op);
402
- this.pendingSummaries.delete(seq);
403
- this.emit(MessageType.SummaryNack, op);
404
- }
405
- }
406
- }
@@ -1,239 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
-
6
- import { assert } from "@fluidframework/common-utils";
7
- import { IDocumentStorageService } from "@fluidframework/driver-definitions";
8
- import { readAndParse } from "@fluidframework/driver-utils";
9
- import { ISequencedDocumentMessage, ISnapshotTree, SummaryType } from "@fluidframework/protocol-definitions";
10
- import { channelsTreeName, ISummaryTreeWithStats } from "@fluidframework/runtime-definitions";
11
- import { gcTreeKey } from "./garbageCollection";
12
-
13
- type OmitAttributesVersions<T> = Omit<T, "snapshotFormatVersion" | "summaryFormatVersion">;
14
- interface IFluidDataStoreAttributes0 {
15
- readonly snapshotFormatVersion?: undefined;
16
- readonly summaryFormatVersion?: undefined;
17
- pkg: string;
18
- /**
19
- * This tells whether a data store is root. Root data stores are never collected.
20
- * Non-root data stores may be collected if they are not used. If this is not present, default it to
21
- * true. This will ensure that older data stores are incorrectly collected.
22
- */
23
- readonly isRootDataStore?: boolean;
24
- }
25
- interface IFluidDataStoreAttributes1 extends OmitAttributesVersions<IFluidDataStoreAttributes0> {
26
- readonly snapshotFormatVersion: "0.1";
27
- readonly summaryFormatVersion?: undefined;
28
- }
29
- interface IFluidDataStoreAttributes2 extends OmitAttributesVersions<IFluidDataStoreAttributes1> {
30
- /** Switch from snapshotFormatVersion to summaryFormatVersion */
31
- readonly snapshotFormatVersion?: undefined;
32
- readonly summaryFormatVersion: 2;
33
- /**
34
- * True if channels are not isolated in .channels subtrees, otherwise isolated.
35
- * This is required in both datastore attributes as well as the root container,
36
- * because reused summary handles may cause different format versions in each
37
- * datastore subtree within the summary.
38
- */
39
- readonly disableIsolatedChannels?: true;
40
- }
41
- /**
42
- * Added IFluidDataStoreAttributes similar to IChannelAttributes which will tell the attributes of a
43
- * store like the package, snapshotFormatVersion to take different decisions based on a particular
44
- * snapshotFormatVersion.
45
- */
46
- export type ReadFluidDataStoreAttributes =
47
- | IFluidDataStoreAttributes0
48
- | IFluidDataStoreAttributes1
49
- | IFluidDataStoreAttributes2;
50
- export type WriteFluidDataStoreAttributes = IFluidDataStoreAttributes1 | IFluidDataStoreAttributes2;
51
-
52
- export function getAttributesFormatVersion(attributes: ReadFluidDataStoreAttributes): number {
53
- if (attributes.summaryFormatVersion) {
54
- /**
55
- * Version 2+: Introduces .channels trees for isolation of
56
- * channel trees from data store objects.
57
- */
58
- return attributes.summaryFormatVersion;
59
- } else if (attributes.snapshotFormatVersion === "0.1") {
60
- /**
61
- * Version 1: from this version the pkg within the data store
62
- * attributes blob is a JSON array rather than a string.
63
- */
64
- return 1;
65
- }
66
- /**
67
- * Version 0: format version is missing from summary.
68
- * This indicates it is an older version.
69
- */
70
- return 0;
71
- }
72
-
73
- export function hasIsolatedChannels(attributes: ReadFluidDataStoreAttributes): boolean {
74
- return !!attributes.summaryFormatVersion && !attributes.disableIsolatedChannels;
75
- }
76
-
77
- export interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGCMetadata {
78
- readonly summaryFormatVersion: 1;
79
- /** The last message processed at the time of summary. Only primitive property types are added to the summary. */
80
- readonly message: ISummaryMetadataMessage | undefined;
81
- /** True if channels are not isolated in .channels subtrees, otherwise isolated. */
82
- readonly disableIsolatedChannels?: true;
83
- /** The summary number for a container's summary. Incremented on summaries throughout its lifetime. */
84
- readonly summaryNumber?: number;
85
- /**
86
- * @deprecated - User summaryNumber instead.
87
- * Counter of the last summary happened, increments every time we summarize
88
- */
89
- readonly summaryCount?: number;
90
- }
91
-
92
- export interface ICreateContainerMetadata {
93
- /** Runtime version of the container when it was first created */
94
- createContainerRuntimeVersion?: string;
95
- /** Timestamp of the container when it was first created */
96
- createContainerTimestamp?: number;
97
- }
98
-
99
- export type GCVersion = number;
100
- export interface IGCMetadata {
101
- /**
102
- * The version of the GC code that was run to generate the GC data that is written in the summary.
103
- * Also, used to determine whether GC is enabled for this container or not:
104
- * - A value of 0 or undefined means GC is disabled.
105
- * - A value greater than 0 means GC is enabled.
106
- */
107
- readonly gcFeature?: GCVersion;
108
- /** If this is present, the session for this container will expire after this time and the container will close */
109
- readonly sessionExpiryTimeoutMs?: number;
110
- /**
111
- * Tells whether the GC sweep phase is enabled for this container.
112
- * - True means sweep phase is enabled.
113
- * - False means sweep phase is disabled. If GC is disabled as per gcFeature, sweep is also disabled.
114
- */
115
- readonly sweepEnabled?: boolean;
116
- }
117
-
118
- /** The properties of an ISequencedDocumentMessage to be stored in the metadata blob in summary. */
119
- export type ISummaryMetadataMessage = Pick<ISequencedDocumentMessage,
120
- | "clientId"
121
- | "clientSequenceNumber"
122
- | "minimumSequenceNumber"
123
- | "referenceSequenceNumber"
124
- | "sequenceNumber"
125
- | "timestamp"
126
- | "type">;
127
-
128
- /**
129
- * Extracts the properties from an ISequencedDocumentMessage as defined by ISummaryMetadataMessage. This message is
130
- * added to the metadata blob in summary.
131
- */
132
- export const extractSummaryMetadataMessage = (
133
- message?: ISequencedDocumentMessage,
134
- ): ISummaryMetadataMessage | undefined => message === undefined ? undefined : {
135
- clientId: message.clientId,
136
- clientSequenceNumber: message.clientSequenceNumber,
137
- minimumSequenceNumber: message.minimumSequenceNumber,
138
- referenceSequenceNumber: message.referenceSequenceNumber,
139
- sequenceNumber: message.sequenceNumber,
140
- timestamp: message.timestamp,
141
- type: message.type,
142
- };
143
-
144
- export function getMetadataFormatVersion(metadata?: IContainerRuntimeMetadata): number {
145
- /**
146
- * Version 2+: Introduces runtime sequence number for data verification.
147
- *
148
- * Version 1+: Introduces .metadata blob and .channels trees for isolation of
149
- * data store trees from container-level objects.
150
- * Also introduces enableGC option stored in the summary.
151
- *
152
- * Version 0: metadata blob missing; format version is missing from summary.
153
- * This indicates it is an older version.
154
- */
155
- return metadata?.summaryFormatVersion ?? 0;
156
- }
157
-
158
- export const aliasBlobName = ".aliases";
159
- export const metadataBlobName = ".metadata";
160
- export const chunksBlobName = ".chunks";
161
- export const electedSummarizerBlobName = ".electedSummarizer";
162
- export const blobsTreeName = ".blobs";
163
-
164
- export function rootHasIsolatedChannels(metadata?: IContainerRuntimeMetadata): boolean {
165
- return !!metadata && !metadata.disableIsolatedChannels;
166
- }
167
-
168
- export function getGCVersion(metadata?: IGCMetadata): GCVersion {
169
- if (!metadata) {
170
- // Force to 0/disallowed in prior versions
171
- return 0;
172
- }
173
- return metadata.gcFeature ?? 0;
174
- }
175
-
176
- export const protocolTreeName = ".protocol";
177
-
178
- /**
179
- * List of tree IDs at the container level which are reserved.
180
- * This is for older versions of summaries that do not yet have an
181
- * isolated data stores namespace. Without the namespace, this must
182
- * be used to prevent name collisions with data store IDs.
183
- */
184
- export const nonDataStorePaths = [protocolTreeName, ".logTail", ".serviceProtocol", blobsTreeName, gcTreeKey];
185
-
186
- export const dataStoreAttributesBlobName = ".component";
187
-
188
- /**
189
- * Modifies summary tree and stats to put tree under .channels tree.
190
- *
191
- * @param summarizeResult - Summary tree and stats to modify
192
- *
193
- * @example
194
- * Converts from:
195
- * ```typescript
196
- * {
197
- * type: SummaryType.Tree,
198
- * tree: { a: {...}, b: {...}, c: {...} },
199
- * }
200
- * ```
201
- *
202
- * to:
203
- *
204
- * ```typescript
205
- * {
206
- * type: SummaryType.Tree,
207
- * tree: {
208
- * ".channels": {
209
- * type: SummaryType.Tree,
210
- * tree: { a: {...}, b: {...}, c: {...} }
211
- * },
212
- * },
213
- * }
214
- * ```
215
- * And adds +1 to treeNodeCount in stats.
216
- */
217
- export function wrapSummaryInChannelsTree(summarizeResult: ISummaryTreeWithStats): void {
218
- summarizeResult.summary = {
219
- type: SummaryType.Tree,
220
- tree: { [channelsTreeName]: summarizeResult.summary },
221
- };
222
- summarizeResult.stats.treeNodeCount++;
223
- }
224
-
225
- export async function getFluidDataStoreAttributes(
226
- storage: IDocumentStorageService,
227
- snapshot: ISnapshotTree,
228
- ): Promise<ReadFluidDataStoreAttributes> {
229
- const attributes = await readAndParse<ReadFluidDataStoreAttributes>(
230
- storage, snapshot.blobs[dataStoreAttributesBlobName]);
231
- // Use the snapshotFormatVersion to determine how the pkg is encoded in the snapshot.
232
- // For snapshotFormatVersion = "0.1" (1) or above, pkg is jsonified, otherwise it is just a string.
233
- // However the feature of loading a detached container from snapshot, is added when the
234
- // snapshotFormatVersion is at least "0.1" (1), so we don't expect it to be anything else.
235
- const formatVersion = getAttributesFormatVersion(attributes);
236
- assert(formatVersion > 0,
237
- 0x1d5 /* Invalid snapshot format version */);
238
- return attributes;
239
- }