@fluidframework/container-runtime 2.13.0 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (489) hide show
  1. package/.eslintrc.cjs +71 -5
  2. package/CHANGELOG.md +84 -0
  3. package/api-report/container-runtime.legacy.alpha.api.md +38 -232
  4. package/dist/batchTracker.d.ts +1 -2
  5. package/dist/batchTracker.d.ts.map +1 -1
  6. package/dist/batchTracker.js +1 -1
  7. package/dist/batchTracker.js.map +1 -1
  8. package/dist/blobManager/blobManager.d.ts +5 -1
  9. package/dist/blobManager/blobManager.d.ts.map +1 -1
  10. package/dist/blobManager/blobManager.js +30 -13
  11. package/dist/blobManager/blobManager.js.map +1 -1
  12. package/dist/blobManager/blobManagerSnapSum.d.ts +1 -0
  13. package/dist/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  14. package/dist/blobManager/blobManagerSnapSum.js +7 -5
  15. package/dist/blobManager/blobManagerSnapSum.js.map +1 -1
  16. package/dist/channelCollection.d.ts +23 -12
  17. package/dist/channelCollection.d.ts.map +1 -1
  18. package/dist/channelCollection.js +85 -53
  19. package/dist/channelCollection.js.map +1 -1
  20. package/dist/connectionTelemetry.d.ts +2 -2
  21. package/dist/connectionTelemetry.d.ts.map +1 -1
  22. package/dist/connectionTelemetry.js +10 -6
  23. package/dist/connectionTelemetry.js.map +1 -1
  24. package/dist/containerHandleContext.d.ts +1 -1
  25. package/dist/containerHandleContext.d.ts.map +1 -1
  26. package/dist/containerHandleContext.js.map +1 -1
  27. package/dist/containerRuntime.d.ts +87 -94
  28. package/dist/containerRuntime.d.ts.map +1 -1
  29. package/dist/containerRuntime.js +312 -226
  30. package/dist/containerRuntime.js.map +1 -1
  31. package/dist/dataStore.d.ts +7 -3
  32. package/dist/dataStore.d.ts.map +1 -1
  33. package/dist/dataStore.js +8 -4
  34. package/dist/dataStore.js.map +1 -1
  35. package/dist/dataStoreContext.d.ts +41 -25
  36. package/dist/dataStoreContext.d.ts.map +1 -1
  37. package/dist/dataStoreContext.js +47 -29
  38. package/dist/dataStoreContext.js.map +1 -1
  39. package/dist/dataStoreContexts.d.ts +6 -2
  40. package/dist/dataStoreContexts.d.ts.map +1 -1
  41. package/dist/dataStoreContexts.js +7 -2
  42. package/dist/dataStoreContexts.js.map +1 -1
  43. package/dist/dataStoreRegistry.d.ts +1 -1
  44. package/dist/dataStoreRegistry.d.ts.map +1 -1
  45. package/dist/dataStoreRegistry.js.map +1 -1
  46. package/dist/deltaManagerProxies.d.ts +1 -17
  47. package/dist/deltaManagerProxies.d.ts.map +1 -1
  48. package/dist/deltaManagerProxies.js.map +1 -1
  49. package/dist/deltaScheduler.d.ts +9 -6
  50. package/dist/deltaScheduler.d.ts.map +1 -1
  51. package/dist/deltaScheduler.js +95 -89
  52. package/dist/deltaScheduler.js.map +1 -1
  53. package/dist/gc/garbageCollection.d.ts +21 -7
  54. package/dist/gc/garbageCollection.d.ts.map +1 -1
  55. package/dist/gc/garbageCollection.js +48 -19
  56. package/dist/gc/garbageCollection.js.map +1 -1
  57. package/dist/gc/gcConfigs.d.ts +11 -0
  58. package/dist/gc/gcConfigs.d.ts.map +1 -1
  59. package/dist/gc/gcConfigs.js +5 -2
  60. package/dist/gc/gcConfigs.js.map +1 -1
  61. package/dist/gc/gcDefinitions.d.ts +218 -70
  62. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  63. package/dist/gc/gcDefinitions.js +40 -13
  64. package/dist/gc/gcDefinitions.js.map +1 -1
  65. package/dist/gc/gcHelpers.d.ts +6 -2
  66. package/dist/gc/gcHelpers.d.ts.map +1 -1
  67. package/dist/gc/gcHelpers.js +14 -7
  68. package/dist/gc/gcHelpers.js.map +1 -1
  69. package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  70. package/dist/gc/gcSummaryDefinitions.d.ts +18 -6
  71. package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -1
  72. package/dist/gc/gcSummaryDefinitions.js.map +1 -1
  73. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  74. package/dist/gc/gcSummaryStateTracker.js +2 -1
  75. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  76. package/dist/gc/gcTelemetry.d.ts +33 -11
  77. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  78. package/dist/gc/gcTelemetry.js +35 -17
  79. package/dist/gc/gcTelemetry.js.map +1 -1
  80. package/dist/gc/gcUnreferencedStateTracker.d.ts +42 -13
  81. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  82. package/dist/gc/gcUnreferencedStateTracker.js +27 -9
  83. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  84. package/dist/gc/index.d.ts +1 -0
  85. package/dist/gc/index.d.ts.map +1 -1
  86. package/dist/gc/index.js +3 -1
  87. package/dist/gc/index.js.map +1 -1
  88. package/dist/inboundBatchAggregator.d.ts +34 -0
  89. package/dist/inboundBatchAggregator.d.ts.map +1 -0
  90. package/dist/inboundBatchAggregator.js +185 -0
  91. package/dist/inboundBatchAggregator.js.map +1 -0
  92. package/dist/index.d.ts +1 -1
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js.map +1 -1
  95. package/dist/layerCompatState.d.ts +19 -0
  96. package/dist/layerCompatState.d.ts.map +1 -0
  97. package/dist/layerCompatState.js +64 -0
  98. package/dist/layerCompatState.js.map +1 -0
  99. package/dist/legacy.d.ts +0 -4
  100. package/dist/messageTypes.d.ts +14 -5
  101. package/dist/messageTypes.d.ts.map +1 -1
  102. package/dist/messageTypes.js.map +1 -1
  103. package/dist/metadata.d.ts +12 -4
  104. package/dist/metadata.d.ts.map +1 -1
  105. package/dist/metadata.js +6 -2
  106. package/dist/metadata.js.map +1 -1
  107. package/dist/opLifecycle/batchManager.d.ts +9 -3
  108. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  109. package/dist/opLifecycle/batchManager.js +3 -1
  110. package/dist/opLifecycle/batchManager.js.map +1 -1
  111. package/dist/opLifecycle/duplicateBatchDetector.d.ts +9 -3
  112. package/dist/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
  113. package/dist/opLifecycle/duplicateBatchDetector.js +11 -5
  114. package/dist/opLifecycle/duplicateBatchDetector.js.map +1 -1
  115. package/dist/opLifecycle/opCompressor.d.ts +3 -2
  116. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  117. package/dist/opLifecycle/opCompressor.js +13 -19
  118. package/dist/opLifecycle/opCompressor.js.map +1 -1
  119. package/dist/opLifecycle/opDecompressor.d.ts +6 -1
  120. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  121. package/dist/opLifecycle/opDecompressor.js +16 -8
  122. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  123. package/dist/opLifecycle/opGroupingManager.d.ts +1 -2
  124. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  125. package/dist/opLifecycle/opGroupingManager.js +9 -6
  126. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  127. package/dist/opLifecycle/opSplitter.d.ts +13 -10
  128. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  129. package/dist/opLifecycle/opSplitter.js +16 -11
  130. package/dist/opLifecycle/opSplitter.js.map +1 -1
  131. package/dist/opLifecycle/outbox.d.ts +4 -4
  132. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  133. package/dist/opLifecycle/outbox.js +17 -16
  134. package/dist/opLifecycle/outbox.js.map +1 -1
  135. package/dist/opLifecycle/remoteMessageProcessor.d.ts +9 -3
  136. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  137. package/dist/opLifecycle/remoteMessageProcessor.js +3 -1
  138. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  139. package/dist/package.json +2 -1
  140. package/dist/packageVersion.d.ts +1 -1
  141. package/dist/packageVersion.js +1 -1
  142. package/dist/packageVersion.js.map +1 -1
  143. package/dist/pendingStateManager.d.ts +22 -11
  144. package/dist/pendingStateManager.d.ts.map +1 -1
  145. package/dist/pendingStateManager.js +24 -15
  146. package/dist/pendingStateManager.js.map +1 -1
  147. package/dist/summary/documentSchema.d.ts +7 -0
  148. package/dist/summary/documentSchema.d.ts.map +1 -1
  149. package/dist/summary/documentSchema.js +8 -4
  150. package/dist/summary/documentSchema.js.map +1 -1
  151. package/dist/summary/index.d.ts +1 -1
  152. package/dist/summary/index.d.ts.map +1 -1
  153. package/dist/summary/index.js.map +1 -1
  154. package/dist/summary/orderedClientElection.d.ts +94 -31
  155. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  156. package/dist/summary/orderedClientElection.js +28 -16
  157. package/dist/summary/orderedClientElection.js.map +1 -1
  158. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -0
  159. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  160. package/dist/summary/runWhileConnectedCoordinator.js +7 -2
  161. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  162. package/dist/summary/runningSummarizer.d.ts +17 -6
  163. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  164. package/dist/summary/runningSummarizer.js +48 -19
  165. package/dist/summary/runningSummarizer.js.map +1 -1
  166. package/dist/summary/summarizer.d.ts +10 -5
  167. package/dist/summary/summarizer.d.ts.map +1 -1
  168. package/dist/summary/summarizer.js +26 -11
  169. package/dist/summary/summarizer.js.map +1 -1
  170. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  171. package/dist/summary/summarizerClientElection.js +1 -0
  172. package/dist/summary/summarizerClientElection.js.map +1 -1
  173. package/dist/summary/summarizerHeuristics.d.ts +6 -2
  174. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  175. package/dist/summary/summarizerHeuristics.js +13 -5
  176. package/dist/summary/summarizerHeuristics.js.map +1 -1
  177. package/dist/summary/summarizerNode/index.d.ts.map +1 -1
  178. package/dist/summary/summarizerNode/index.js.map +1 -1
  179. package/dist/summary/summarizerNode/summarizerNode.d.ts +24 -8
  180. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  181. package/dist/summary/summarizerNode/summarizerNode.js +45 -36
  182. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  183. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
  184. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  185. package/dist/summary/summarizerNode/summarizerNodeUtils.js +3 -1
  186. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  187. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +13 -5
  188. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  189. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +15 -7
  190. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  191. package/dist/summary/summarizerTypes.d.ts +253 -135
  192. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  193. package/dist/summary/summarizerTypes.js.map +1 -1
  194. package/dist/summary/summaryCollection.d.ts +3 -4
  195. package/dist/summary/summaryCollection.d.ts.map +1 -1
  196. package/dist/summary/summaryCollection.js +10 -8
  197. package/dist/summary/summaryCollection.js.map +1 -1
  198. package/dist/summary/summaryFormat.d.ts +28 -9
  199. package/dist/summary/summaryFormat.d.ts.map +1 -1
  200. package/dist/summary/summaryFormat.js +3 -2
  201. package/dist/summary/summaryFormat.js.map +1 -1
  202. package/dist/summary/summaryGenerator.d.ts +9 -3
  203. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  204. package/dist/summary/summaryGenerator.js +22 -9
  205. package/dist/summary/summaryGenerator.js.map +1 -1
  206. package/dist/summary/summaryManager.d.ts +8 -4
  207. package/dist/summary/summaryManager.d.ts.map +1 -1
  208. package/dist/summary/summaryManager.js +20 -9
  209. package/dist/summary/summaryManager.js.map +1 -1
  210. package/dist/throttler.d.ts +26 -10
  211. package/dist/throttler.d.ts.map +1 -1
  212. package/dist/throttler.js +12 -4
  213. package/dist/throttler.js.map +1 -1
  214. package/lib/batchTracker.d.ts +1 -2
  215. package/lib/batchTracker.d.ts.map +1 -1
  216. package/lib/batchTracker.js +2 -2
  217. package/lib/batchTracker.js.map +1 -1
  218. package/lib/blobManager/blobManager.d.ts +5 -1
  219. package/lib/blobManager/blobManager.d.ts.map +1 -1
  220. package/lib/blobManager/blobManager.js +30 -13
  221. package/lib/blobManager/blobManager.js.map +1 -1
  222. package/lib/blobManager/blobManagerSnapSum.d.ts +1 -0
  223. package/lib/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  224. package/lib/blobManager/blobManagerSnapSum.js +7 -5
  225. package/lib/blobManager/blobManagerSnapSum.js.map +1 -1
  226. package/lib/channelCollection.d.ts +23 -12
  227. package/lib/channelCollection.d.ts.map +1 -1
  228. package/lib/channelCollection.js +88 -54
  229. package/lib/channelCollection.js.map +1 -1
  230. package/lib/connectionTelemetry.d.ts +2 -2
  231. package/lib/connectionTelemetry.d.ts.map +1 -1
  232. package/lib/connectionTelemetry.js +11 -7
  233. package/lib/connectionTelemetry.js.map +1 -1
  234. package/lib/containerHandleContext.d.ts +1 -1
  235. package/lib/containerHandleContext.d.ts.map +1 -1
  236. package/lib/containerHandleContext.js.map +1 -1
  237. package/lib/containerRuntime.d.ts +87 -94
  238. package/lib/containerRuntime.d.ts.map +1 -1
  239. package/lib/containerRuntime.js +319 -228
  240. package/lib/containerRuntime.js.map +1 -1
  241. package/lib/dataStore.d.ts +7 -3
  242. package/lib/dataStore.d.ts.map +1 -1
  243. package/lib/dataStore.js +8 -4
  244. package/lib/dataStore.js.map +1 -1
  245. package/lib/dataStoreContext.d.ts +41 -25
  246. package/lib/dataStoreContext.d.ts.map +1 -1
  247. package/lib/dataStoreContext.js +47 -29
  248. package/lib/dataStoreContext.js.map +1 -1
  249. package/lib/dataStoreContexts.d.ts +6 -2
  250. package/lib/dataStoreContexts.d.ts.map +1 -1
  251. package/lib/dataStoreContexts.js +7 -2
  252. package/lib/dataStoreContexts.js.map +1 -1
  253. package/lib/dataStoreRegistry.d.ts +1 -1
  254. package/lib/dataStoreRegistry.d.ts.map +1 -1
  255. package/lib/dataStoreRegistry.js.map +1 -1
  256. package/lib/deltaManagerProxies.d.ts +1 -17
  257. package/lib/deltaManagerProxies.d.ts.map +1 -1
  258. package/lib/deltaManagerProxies.js.map +1 -1
  259. package/lib/deltaScheduler.d.ts +9 -6
  260. package/lib/deltaScheduler.d.ts.map +1 -1
  261. package/lib/deltaScheduler.js +96 -90
  262. package/lib/deltaScheduler.js.map +1 -1
  263. package/lib/gc/garbageCollection.d.ts +21 -7
  264. package/lib/gc/garbageCollection.d.ts.map +1 -1
  265. package/lib/gc/garbageCollection.js +51 -20
  266. package/lib/gc/garbageCollection.js.map +1 -1
  267. package/lib/gc/gcConfigs.d.ts +11 -0
  268. package/lib/gc/gcConfigs.d.ts.map +1 -1
  269. package/lib/gc/gcConfigs.js +4 -2
  270. package/lib/gc/gcConfigs.js.map +1 -1
  271. package/lib/gc/gcDefinitions.d.ts +218 -70
  272. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  273. package/lib/gc/gcDefinitions.js +40 -13
  274. package/lib/gc/gcDefinitions.js.map +1 -1
  275. package/lib/gc/gcHelpers.d.ts +6 -2
  276. package/lib/gc/gcHelpers.d.ts.map +1 -1
  277. package/lib/gc/gcHelpers.js +14 -7
  278. package/lib/gc/gcHelpers.js.map +1 -1
  279. package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  280. package/lib/gc/gcSummaryDefinitions.d.ts +18 -6
  281. package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -1
  282. package/lib/gc/gcSummaryDefinitions.js.map +1 -1
  283. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  284. package/lib/gc/gcSummaryStateTracker.js +2 -1
  285. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  286. package/lib/gc/gcTelemetry.d.ts +33 -11
  287. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  288. package/lib/gc/gcTelemetry.js +38 -18
  289. package/lib/gc/gcTelemetry.js.map +1 -1
  290. package/lib/gc/gcUnreferencedStateTracker.d.ts +42 -13
  291. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  292. package/lib/gc/gcUnreferencedStateTracker.js +27 -9
  293. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
  294. package/lib/gc/index.d.ts +1 -0
  295. package/lib/gc/index.d.ts.map +1 -1
  296. package/lib/gc/index.js +1 -0
  297. package/lib/gc/index.js.map +1 -1
  298. package/lib/inboundBatchAggregator.d.ts +34 -0
  299. package/lib/inboundBatchAggregator.d.ts.map +1 -0
  300. package/lib/inboundBatchAggregator.js +181 -0
  301. package/lib/inboundBatchAggregator.js.map +1 -0
  302. package/lib/index.d.ts +1 -1
  303. package/lib/index.d.ts.map +1 -1
  304. package/lib/index.js.map +1 -1
  305. package/lib/layerCompatState.d.ts +19 -0
  306. package/lib/layerCompatState.d.ts.map +1 -0
  307. package/lib/layerCompatState.js +60 -0
  308. package/lib/layerCompatState.js.map +1 -0
  309. package/lib/legacy.d.ts +0 -4
  310. package/lib/messageTypes.d.ts +14 -5
  311. package/lib/messageTypes.d.ts.map +1 -1
  312. package/lib/messageTypes.js.map +1 -1
  313. package/lib/metadata.d.ts +12 -4
  314. package/lib/metadata.d.ts.map +1 -1
  315. package/lib/metadata.js +6 -2
  316. package/lib/metadata.js.map +1 -1
  317. package/lib/opLifecycle/batchManager.d.ts +9 -3
  318. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  319. package/lib/opLifecycle/batchManager.js +3 -1
  320. package/lib/opLifecycle/batchManager.js.map +1 -1
  321. package/lib/opLifecycle/duplicateBatchDetector.d.ts +9 -3
  322. package/lib/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
  323. package/lib/opLifecycle/duplicateBatchDetector.js +11 -5
  324. package/lib/opLifecycle/duplicateBatchDetector.js.map +1 -1
  325. package/lib/opLifecycle/opCompressor.d.ts +3 -2
  326. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  327. package/lib/opLifecycle/opCompressor.js +14 -20
  328. package/lib/opLifecycle/opCompressor.js.map +1 -1
  329. package/lib/opLifecycle/opDecompressor.d.ts +6 -1
  330. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  331. package/lib/opLifecycle/opDecompressor.js +17 -9
  332. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  333. package/lib/opLifecycle/opGroupingManager.d.ts +1 -2
  334. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  335. package/lib/opLifecycle/opGroupingManager.js +10 -7
  336. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  337. package/lib/opLifecycle/opSplitter.d.ts +13 -10
  338. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  339. package/lib/opLifecycle/opSplitter.js +16 -11
  340. package/lib/opLifecycle/opSplitter.js.map +1 -1
  341. package/lib/opLifecycle/outbox.d.ts +4 -4
  342. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  343. package/lib/opLifecycle/outbox.js +17 -16
  344. package/lib/opLifecycle/outbox.js.map +1 -1
  345. package/lib/opLifecycle/remoteMessageProcessor.d.ts +9 -3
  346. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  347. package/lib/opLifecycle/remoteMessageProcessor.js +3 -1
  348. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  349. package/lib/packageVersion.d.ts +1 -1
  350. package/lib/packageVersion.js +1 -1
  351. package/lib/packageVersion.js.map +1 -1
  352. package/lib/pendingStateManager.d.ts +22 -11
  353. package/lib/pendingStateManager.d.ts.map +1 -1
  354. package/lib/pendingStateManager.js +25 -16
  355. package/lib/pendingStateManager.js.map +1 -1
  356. package/lib/summary/documentSchema.d.ts +7 -0
  357. package/lib/summary/documentSchema.d.ts.map +1 -1
  358. package/lib/summary/documentSchema.js +8 -4
  359. package/lib/summary/documentSchema.js.map +1 -1
  360. package/lib/summary/index.d.ts +1 -1
  361. package/lib/summary/index.d.ts.map +1 -1
  362. package/lib/summary/index.js.map +1 -1
  363. package/lib/summary/orderedClientElection.d.ts +94 -31
  364. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  365. package/lib/summary/orderedClientElection.js +28 -16
  366. package/lib/summary/orderedClientElection.js.map +1 -1
  367. package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -0
  368. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  369. package/lib/summary/runWhileConnectedCoordinator.js +7 -2
  370. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  371. package/lib/summary/runningSummarizer.d.ts +17 -6
  372. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  373. package/lib/summary/runningSummarizer.js +48 -19
  374. package/lib/summary/runningSummarizer.js.map +1 -1
  375. package/lib/summary/summarizer.d.ts +10 -5
  376. package/lib/summary/summarizer.d.ts.map +1 -1
  377. package/lib/summary/summarizer.js +26 -11
  378. package/lib/summary/summarizer.js.map +1 -1
  379. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  380. package/lib/summary/summarizerClientElection.js +1 -0
  381. package/lib/summary/summarizerClientElection.js.map +1 -1
  382. package/lib/summary/summarizerHeuristics.d.ts +6 -2
  383. package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
  384. package/lib/summary/summarizerHeuristics.js +13 -5
  385. package/lib/summary/summarizerHeuristics.js.map +1 -1
  386. package/lib/summary/summarizerNode/index.d.ts.map +1 -1
  387. package/lib/summary/summarizerNode/index.js.map +1 -1
  388. package/lib/summary/summarizerNode/summarizerNode.d.ts +24 -8
  389. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  390. package/lib/summary/summarizerNode/summarizerNode.js +45 -36
  391. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  392. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
  393. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  394. package/lib/summary/summarizerNode/summarizerNodeUtils.js +3 -1
  395. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  396. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +13 -5
  397. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  398. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +15 -7
  399. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  400. package/lib/summary/summarizerTypes.d.ts +253 -135
  401. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  402. package/lib/summary/summarizerTypes.js.map +1 -1
  403. package/lib/summary/summaryCollection.d.ts +3 -4
  404. package/lib/summary/summaryCollection.d.ts.map +1 -1
  405. package/lib/summary/summaryCollection.js +10 -8
  406. package/lib/summary/summaryCollection.js.map +1 -1
  407. package/lib/summary/summaryFormat.d.ts +28 -9
  408. package/lib/summary/summaryFormat.d.ts.map +1 -1
  409. package/lib/summary/summaryFormat.js +2 -2
  410. package/lib/summary/summaryFormat.js.map +1 -1
  411. package/lib/summary/summaryGenerator.d.ts +9 -3
  412. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  413. package/lib/summary/summaryGenerator.js +22 -9
  414. package/lib/summary/summaryGenerator.js.map +1 -1
  415. package/lib/summary/summaryManager.d.ts +8 -4
  416. package/lib/summary/summaryManager.d.ts.map +1 -1
  417. package/lib/summary/summaryManager.js +20 -9
  418. package/lib/summary/summaryManager.js.map +1 -1
  419. package/lib/throttler.d.ts +26 -10
  420. package/lib/throttler.d.ts.map +1 -1
  421. package/lib/throttler.js +12 -4
  422. package/lib/throttler.js.map +1 -1
  423. package/package.json +22 -31
  424. package/src/batchTracker.ts +34 -36
  425. package/src/blobManager/blobManager.ts +54 -33
  426. package/src/blobManager/blobManagerSnapSum.ts +10 -10
  427. package/src/channelCollection.ts +108 -82
  428. package/src/connectionTelemetry.ts +43 -19
  429. package/src/containerHandleContext.ts +2 -2
  430. package/src/containerRuntime.ts +492 -364
  431. package/src/dataStore.ts +17 -9
  432. package/src/dataStoreContext.ts +94 -73
  433. package/src/dataStoreContexts.ts +17 -12
  434. package/src/dataStoreRegistry.ts +1 -1
  435. package/src/deltaManagerProxies.ts +5 -5
  436. package/src/deltaScheduler.ts +24 -18
  437. package/src/gc/garbageCollection.ts +89 -40
  438. package/src/gc/gcConfigs.ts +13 -5
  439. package/src/gc/gcDefinitions.ts +224 -70
  440. package/src/gc/gcHelpers.ts +22 -11
  441. package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
  442. package/src/gc/gcSummaryDefinitions.ts +18 -6
  443. package/src/gc/gcSummaryStateTracker.ts +7 -3
  444. package/src/gc/gcTelemetry.ts +73 -30
  445. package/src/gc/gcUnreferencedStateTracker.ts +40 -16
  446. package/src/gc/index.ts +1 -0
  447. package/src/{scheduleManager.ts → inboundBatchAggregator.ts} +55 -122
  448. package/src/index.ts +0 -3
  449. package/src/layerCompatState.ts +75 -0
  450. package/src/messageTypes.ts +16 -5
  451. package/src/metadata.ts +12 -4
  452. package/src/opLifecycle/README.md +43 -34
  453. package/src/opLifecycle/batchManager.ts +12 -6
  454. package/src/opLifecycle/duplicateBatchDetector.ts +12 -6
  455. package/src/opLifecycle/opCompressor.ts +22 -25
  456. package/src/opLifecycle/opDecompressor.ts +23 -11
  457. package/src/opLifecycle/opGroupingManager.ts +16 -11
  458. package/src/opLifecycle/opSplitter.ts +24 -18
  459. package/src/opLifecycle/outbox.ts +35 -33
  460. package/src/opLifecycle/remoteMessageProcessor.ts +13 -5
  461. package/src/packageVersion.ts +1 -1
  462. package/src/pendingStateManager.ts +49 -26
  463. package/src/summary/documentSchema.ts +41 -22
  464. package/src/summary/index.ts +0 -3
  465. package/src/summary/orderedClientElection.ts +114 -49
  466. package/src/summary/runWhileConnectedCoordinator.ts +12 -3
  467. package/src/summary/runningSummarizer.ts +79 -36
  468. package/src/summary/summarizer.ts +51 -25
  469. package/src/summary/summarizerClientElection.ts +4 -2
  470. package/src/summary/summarizerHeuristics.ts +23 -12
  471. package/src/summary/summarizerNode/index.ts +1 -0
  472. package/src/summary/summarizerNode/summarizerNode.ts +54 -43
  473. package/src/summary/summarizerNode/summarizerNodeUtils.ts +48 -16
  474. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +25 -15
  475. package/src/summary/summarizerTypes.ts +253 -139
  476. package/src/summary/summaryCollection.ts +41 -31
  477. package/src/summary/summaryFormat.ts +34 -13
  478. package/src/summary/summaryGenerator.ts +39 -18
  479. package/src/summary/summaryManager.ts +36 -24
  480. package/src/throttler.ts +23 -11
  481. package/container-runtime.test-files.tar +0 -0
  482. package/dist/scheduleManager.d.ts +0 -28
  483. package/dist/scheduleManager.d.ts.map +0 -1
  484. package/dist/scheduleManager.js +0 -233
  485. package/dist/scheduleManager.js.map +0 -1
  486. package/lib/scheduleManager.d.ts +0 -28
  487. package/lib/scheduleManager.d.ts.map +0 -1
  488. package/lib/scheduleManager.js +0 -229
  489. package/lib/scheduleManager.js.map +0 -1
@@ -5,7 +5,11 @@
5
5
 
6
6
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
7
7
  import { IDeltaManager } from "@fluidframework/container-definitions/internal";
8
- import { IDisposable, IEvent } from "@fluidframework/core-interfaces";
8
+ import {
9
+ IDisposable,
10
+ IEvent,
11
+ type ITelemetryBaseLogger,
12
+ } from "@fluidframework/core-interfaces";
9
13
  import { assert, Deferred } from "@fluidframework/core-utils/internal";
10
14
  import {
11
15
  IDocumentMessage,
@@ -15,7 +19,10 @@ import {
15
19
  MessageType,
16
20
  ISequencedDocumentMessage,
17
21
  } from "@fluidframework/driver-definitions/internal";
18
- import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
22
+ import {
23
+ createChildLogger,
24
+ ITelemetryLoggerExt,
25
+ } from "@fluidframework/telemetry-utils/internal";
19
26
 
20
27
  /**
21
28
  * Interface for summary op messages with typed contents.
@@ -78,10 +85,10 @@ enum SummaryState {
78
85
  }
79
86
 
80
87
  class Summary implements ISummary {
81
- public static createLocal(clientId: string, clientSequenceNumber: number) {
88
+ public static createLocal(clientId: string, clientSequenceNumber: number): Summary {
82
89
  return new Summary(clientId, clientSequenceNumber);
83
90
  }
84
- public static createFromOp(op: ISummaryOpMessage) {
91
+ public static createFromOp(op: ISummaryOpMessage): Summary {
85
92
  // TODO: Verify whether this should be able to handle server-generated ops (with null clientId)
86
93
 
87
94
  const summary = new Summary(op.clientId as string, op.clientSequenceNumber);
@@ -97,10 +104,10 @@ class Summary implements ISummary {
97
104
  private readonly defSummaryOp = new Deferred<void>();
98
105
  private readonly defSummaryAck = new Deferred<void>();
99
106
 
100
- public get summaryOp() {
107
+ public get summaryOp(): ISummaryOpMessage | undefined {
101
108
  return this._summaryOp;
102
109
  }
103
- public get summaryAckNack() {
110
+ public get summaryAckNack(): ISummaryAckMessage | ISummaryNackMessage | undefined {
104
111
  return this._summaryAckNack;
105
112
  }
106
113
 
@@ -113,7 +120,7 @@ class Summary implements ISummary {
113
120
  return this.state === SummaryState.Acked;
114
121
  }
115
122
 
116
- public broadcast(op: ISummaryOpMessage) {
123
+ public broadcast(op: ISummaryOpMessage): boolean {
117
124
  assert(
118
125
  this.state === SummaryState.Local,
119
126
  0x175 /* "Can only broadcast if summarizer starts in local state" */,
@@ -124,7 +131,7 @@ class Summary implements ISummary {
124
131
  return true;
125
132
  }
126
133
 
127
- public ackNack(op: ISummaryAckMessage | ISummaryNackMessage) {
134
+ public ackNack(op: ISummaryAckMessage | ISummaryNackMessage): boolean {
128
135
  assert(
129
136
  this.state === SummaryState.Broadcast,
130
137
  0x176 /* "Can only ack/nack if summarizer is in broadcasting state" */,
@@ -167,7 +174,7 @@ class ClientSummaryWatcher implements IClientSummaryWatcher {
167
174
  private readonly localSummaries = new Map<number, Summary>();
168
175
  private _disposed = false;
169
176
 
170
- public get disposed() {
177
+ public get disposed(): boolean {
171
178
  return this._disposed;
172
179
  }
173
180
 
@@ -193,8 +200,7 @@ class ClientSummaryWatcher implements IClientSummaryWatcher {
193
200
  * Waits until all of the pending summaries in the underlying SummaryCollection
194
201
  * are acked/nacked.
195
202
  */
196
- // eslint-disable-next-line @typescript-eslint/promise-function-async
197
- public waitFlushed() {
203
+ public async waitFlushed(): Promise<IAckedSummary | undefined> {
198
204
  return this.summaryCollection.waitFlushed();
199
205
  }
200
206
 
@@ -202,7 +208,7 @@ class ClientSummaryWatcher implements IClientSummaryWatcher {
202
208
  * Gets a watched summary or returns undefined if not watched.
203
209
  * @param clientSequenceNumber - client sequence number of sent summary op
204
210
  */
205
- public tryGetSummary(clientSequenceNumber: number) {
211
+ public tryGetSummary(clientSequenceNumber: number): Summary | undefined {
206
212
  return this.localSummaries.get(clientSequenceNumber);
207
213
  }
208
214
 
@@ -210,11 +216,11 @@ class ClientSummaryWatcher implements IClientSummaryWatcher {
210
216
  * Starts watching a summary made by this client.
211
217
  * @param summary - summary to start watching
212
218
  */
213
- public setSummary(summary: Summary) {
219
+ public setSummary(summary: Summary): void {
214
220
  this.localSummaries.set(summary.clientSequenceNumber, summary);
215
221
  }
216
222
 
217
- public dispose() {
223
+ public dispose(): void {
218
224
  this.summaryCollection.removeWatcher(this.clientId);
219
225
  this._disposed = true;
220
226
  }
@@ -270,27 +276,29 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
270
276
  return super.emit(event, ...args);
271
277
  }
272
278
 
273
- public get opsSinceLastAck() {
279
+ public get opsSinceLastAck(): number {
274
280
  return (
275
281
  this.deltaManager.lastSequenceNumber -
276
282
  (this.lastAck?.summaryAck.sequenceNumber ?? this.deltaManager.initialSequenceNumber)
277
283
  );
278
284
  }
279
285
 
280
- public addOpListener(listener: () => void) {
286
+ public addOpListener(listener: () => void): void {
281
287
  this.deltaManager.on("op", listener);
282
288
  }
283
289
 
284
- public removeOpListener(listener: () => void) {
290
+ public removeOpListener(listener: () => void): void {
285
291
  this.deltaManager.off("op", listener);
286
292
  }
287
293
 
294
+ private readonly logger: ITelemetryLoggerExt;
288
295
  public constructor(
289
296
  private readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>,
290
- private readonly logger: ITelemetryLoggerExt,
297
+ logger: ITelemetryBaseLogger,
291
298
  ) {
292
299
  super();
293
300
  this.deltaManager.on("op", (op) => this.handleOp(op));
301
+ this.logger = createChildLogger({ logger });
294
302
  }
295
303
 
296
304
  /**
@@ -304,19 +312,19 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
304
312
  return watcher;
305
313
  }
306
314
 
307
- public removeWatcher(clientId: string) {
315
+ public removeWatcher(clientId: string): void {
308
316
  this.summaryWatchers.delete(clientId);
309
317
  }
310
318
 
311
319
  public setPendingAckTimerTimeoutCallback(
312
320
  maxAckWaitTime: number,
313
321
  timeoutCallback: () => void,
314
- ) {
322
+ ): void {
315
323
  this.maxAckWaitTime = maxAckWaitTime;
316
324
  this.pendingAckTimerTimeoutCallback = timeoutCallback;
317
325
  }
318
326
 
319
- public unsetPendingAckTimerTimeoutCallback() {
327
+ public unsetPendingAckTimerTimeoutCallback(): void {
320
328
  this.maxAckWaitTime = undefined;
321
329
  this.pendingAckTimerTimeoutCallback = undefined;
322
330
  }
@@ -352,7 +360,7 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
352
360
  return this.lastAck;
353
361
  }
354
362
 
355
- private parseContent(op: ISequencedDocumentMessage) {
363
+ private parseContent(op: ISequencedDocumentMessage): void {
356
364
  // This should become unconditional once (Loader LTS) reaches 2.4 or later
357
365
  // There will be a long time of needing both cases, until LTS catches up to the change.
358
366
  // That said, we may instead move to listen for "op" events from ContainerRuntime,
@@ -366,24 +374,26 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
366
374
  * Handler for ops; only handles ops relating to summaries.
367
375
  * @param op - op message to handle
368
376
  */
369
- private handleOp(opArg: ISequencedDocumentMessage) {
377
+ private handleOp(opArg: ISequencedDocumentMessage): void {
370
378
  const op = { ...opArg };
371
379
 
372
380
  switch (op.type) {
373
- case MessageType.Summarize:
381
+ case MessageType.Summarize: {
374
382
  this.parseContent(op);
375
383
  return this.handleSummaryOp(op as ISummaryOpMessage);
384
+ }
376
385
  case MessageType.SummaryAck:
377
- case MessageType.SummaryNack:
386
+ case MessageType.SummaryNack: {
378
387
  // Old files (prior to PR #10077) may not contain this info
379
- if (op.data !== undefined) {
380
- op.contents = JSON.parse(op.data);
381
- } else {
388
+ if (op.data === undefined) {
382
389
  this.parseContent(op);
390
+ } else {
391
+ op.contents = JSON.parse(op.data);
383
392
  }
384
393
  return op.type === MessageType.SummaryAck
385
394
  ? this.handleSummaryAck(op as ISummaryAckMessage)
386
395
  : this.handleSummaryNack(op as ISummaryNackMessage);
396
+ }
387
397
  default: {
388
398
  // If the difference between timestamp of current op and last summary op is greater than
389
399
  // the maxAckWaitTime, then we need to inform summarizer to not wait and summarize
@@ -403,7 +413,7 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
403
413
  }
404
414
  }
405
415
 
406
- private handleSummaryOp(op: ISummaryOpMessage) {
416
+ private handleSummaryOp(op: ISummaryOpMessage): void {
407
417
  let summary: Summary | undefined;
408
418
 
409
419
  // Check if summary already being watched, broadcast if so
@@ -429,7 +439,7 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
429
439
  this.emit(MessageType.Summarize, op);
430
440
  }
431
441
 
432
- private handleSummaryAck(op: ISummaryAckMessage) {
442
+ private handleSummaryAck(op: ISummaryAckMessage): void {
433
443
  const seq = op.contents.summaryProposal.summarySequenceNumber;
434
444
  const summary = this.pendingSummaries.get(seq);
435
445
  // eslint-disable-next-line @typescript-eslint/prefer-optional-chain -- optional chain is not logically equivalent
@@ -472,7 +482,7 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
472
482
  }
473
483
  }
474
484
 
475
- private handleSummaryNack(op: ISummaryNackMessage) {
485
+ private handleSummaryNack(op: ISummaryNackMessage): void {
476
486
  const seq = op.contents.summaryProposal.summarySequenceNumber;
477
487
  const summary = this.pendingSummaries.get(seq);
478
488
  if (summary) {
@@ -10,10 +10,7 @@ import {
10
10
  ISnapshotTree,
11
11
  ISequencedDocumentMessage,
12
12
  } from "@fluidframework/driver-definitions/internal";
13
- import {
14
- blobHeadersBlobName as blobNameForBlobHeaders,
15
- readAndParse,
16
- } from "@fluidframework/driver-utils/internal";
13
+ import { readAndParse } from "@fluidframework/driver-utils/internal";
17
14
  import {
18
15
  ISummaryTreeWithStats,
19
16
  channelsTreeName,
@@ -21,8 +18,10 @@ import {
21
18
  } from "@fluidframework/runtime-definitions/internal";
22
19
 
23
20
  import { blobsTreeName } from "../blobManager/index.js";
21
+ // eslint-disable-next-line import/no-deprecated
24
22
  import { IGCMetadata } from "../gc/index.js";
25
23
 
24
+ // eslint-disable-next-line import/no-deprecated
26
25
  import { IDocumentSchema } from "./documentSchema.js";
27
26
 
28
27
  /**
@@ -70,7 +69,9 @@ export interface IFluidDataStoreAttributes1
70
69
  */
71
70
  export interface IFluidDataStoreAttributes2
72
71
  extends OmitAttributesVersions<IFluidDataStoreAttributes1> {
73
- /** Switch from snapshotFormatVersion to summaryFormatVersion */
72
+ /**
73
+ * Switch from snapshotFormatVersion to summaryFormatVersion
74
+ */
74
75
  readonly snapshotFormatVersion?: undefined;
75
76
  readonly summaryFormatVersion: 2;
76
77
  /**
@@ -128,31 +129,49 @@ export function hasIsolatedChannels(attributes: ReadFluidDataStoreAttributes): b
128
129
  /**
129
130
  * @legacy
130
131
  * @alpha
132
+ * @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
131
133
  */
134
+ // eslint-disable-next-line import/no-deprecated
132
135
  export interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGCMetadata {
133
136
  readonly summaryFormatVersion: 1;
134
- /** @deprecated - used by old (prior to 2.0 RC3) runtimes */
137
+ /**
138
+ * @deprecated - used by old (prior to 2.0 RC3) runtimes
139
+ */
135
140
  readonly message?: ISummaryMetadataMessage;
136
- /** The last message processed at the time of summary. Only primitive property types are added to the summary. */
141
+ /**
142
+ * The last message processed at the time of summary. Only primitive property types are added to the summary.
143
+ */
137
144
  readonly lastMessage?: ISummaryMetadataMessage;
138
- /** True if channels are not isolated in .channels subtrees, otherwise isolated. */
145
+ /**
146
+ * True if channels are not isolated in .channels subtrees, otherwise isolated.
147
+ */
139
148
  readonly disableIsolatedChannels?: true;
140
- /** The summary number for a container's summary. Incremented on summaries throughout its lifetime. */
149
+ /**
150
+ * The summary number for a container's summary. Incremented on summaries throughout its lifetime.
151
+ */
141
152
  readonly summaryNumber?: number;
142
- /** GUID to identify a document in telemetry */
153
+ /**
154
+ * GUID to identify a document in telemetry
155
+ */
143
156
  readonly telemetryDocumentId?: string;
144
157
 
158
+ // eslint-disable-next-line import/no-deprecated
145
159
  readonly documentSchema?: IDocumentSchema;
146
160
  }
147
161
 
148
162
  /**
149
163
  * @legacy
150
164
  * @alpha
165
+ * @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
151
166
  */
152
167
  export interface ICreateContainerMetadata {
153
- /** Runtime version of the container when it was first created */
168
+ /**
169
+ * Runtime version of the container when it was first created
170
+ */
154
171
  createContainerRuntimeVersion?: string;
155
- /** Timestamp of the container when it was first created */
172
+ /**
173
+ * Timestamp of the container when it was first created
174
+ */
156
175
  createContainerTimestamp?: number;
157
176
  }
158
177
 
@@ -160,6 +179,7 @@ export interface ICreateContainerMetadata {
160
179
  * The properties of an ISequencedDocumentMessage to be stored in the metadata blob in summary.
161
180
  * @legacy
162
181
  * @alpha
182
+ * @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
163
183
  */
164
184
  export type ISummaryMetadataMessage = Pick<
165
185
  ISequencedDocumentMessage,
@@ -211,7 +231,6 @@ export const chunksBlobName = ".chunks";
211
231
  export const recentBatchInfoBlobName = ".recentBatchInfo";
212
232
  export const electedSummarizerBlobName = ".electedSummarizer";
213
233
  export const idCompressorBlobName = ".idCompressor";
214
- export const blobHeadersBlobName = blobNameForBlobHeaders;
215
234
 
216
235
  export function rootHasIsolatedChannels(metadata?: IContainerRuntimeMetadata): boolean {
217
236
  return !!metadata && !metadata.disableIsolatedChannels;
@@ -292,3 +311,5 @@ export async function getFluidDataStoreAttributes(
292
311
  assert(formatVersion > 0, 0x1d5 /* Invalid snapshot format version */);
293
312
  return attributes;
294
313
  }
314
+
315
+ export { blobHeadersBlobName } from "@fluidframework/driver-utils/internal";
@@ -25,10 +25,13 @@ import {
25
25
  IAckSummaryResult,
26
26
  IBroadcastSummaryResult,
27
27
  INackSummaryResult,
28
+ // eslint-disable-next-line import/no-deprecated
28
29
  IRefreshSummaryAckOptions,
30
+ // eslint-disable-next-line import/no-deprecated
29
31
  ISubmitSummaryOptions,
30
32
  ISummarizeHeuristicData,
31
33
  ISummarizeResults,
34
+ // eslint-disable-next-line import/no-deprecated
32
35
  ISummaryCancellationToken,
33
36
  SubmitSummaryFailureData,
34
37
  SubmitSummaryResult,
@@ -43,10 +46,13 @@ export type raceTimerResult<T> =
43
46
  | { result: IPromiseTimerResult["timerResult"] }
44
47
  | { result: "cancelled" };
45
48
 
46
- /** Helper function to wait for a promise or PromiseTimer to elapse. */
49
+ /**
50
+ * Wait for a promise or PromiseTimer to elapse.
51
+ */
47
52
  export async function raceTimer<T>(
48
53
  promise: Promise<T>,
49
54
  timer: Promise<IPromiseTimerResult>,
55
+ // eslint-disable-next-line import/no-deprecated
50
56
  cancellationToken?: ISummaryCancellationToken,
51
57
  ): Promise<raceTimerResult<T>> {
52
58
  const promises: Promise<raceTimerResult<T>>[] = [
@@ -95,9 +101,13 @@ export type SummarizeReason =
95
101
  * stay connected long enough for summarizer client to catch up.
96
102
  */
97
103
  | "lastSummary"
98
- /** On-demand summary requested with specified reason. */
104
+ /**
105
+ * On-demand summary requested with specified reason.
106
+ */
99
107
  | `onDemand;${string}`
100
- /** Enqueue summarize attempt with specified reason. */
108
+ /**
109
+ * Enqueue summarize attempt with specified reason.
110
+ */
101
111
  | `enqueue;${string}`;
102
112
 
103
113
  const summarizeErrors = {
@@ -130,7 +140,7 @@ const summarizeErrors = {
130
140
  export type SummarizeErrorCode = keyof typeof summarizeErrors;
131
141
 
132
142
  // Helper functions to report failures and return.
133
- export const getFailMessage = (errorCode: SummarizeErrorCode) =>
143
+ export const getFailMessage = (errorCode: SummarizeErrorCode): string =>
134
144
  `${errorCode}: ${summarizeErrors[errorCode]}`;
135
145
 
136
146
  export class SummarizeResultBuilder {
@@ -155,7 +165,7 @@ export class SummarizeResultBuilder {
155
165
  error: IRetriableFailureError,
156
166
  submitFailureResult?: SubmitSummaryFailureData,
157
167
  nackSummaryResult?: INackSummaryResult,
158
- ) {
168
+ ): void {
159
169
  assert(
160
170
  !this.receivedSummaryAckOrNack.isCompleted,
161
171
  0x25e /* "no reason to call fail if all promises have been completed" */,
@@ -205,10 +215,12 @@ export class SummaryGenerator {
205
215
  private readonly pendingAckTimer: IPromiseTimer,
206
216
  private readonly heuristicData: ISummarizeHeuristicData,
207
217
  private readonly submitSummaryCallback: (
218
+ // eslint-disable-next-line import/no-deprecated
208
219
  options: ISubmitSummaryOptions,
209
220
  ) => Promise<SubmitSummaryResult>,
210
221
  private readonly successfulSummaryCallback: () => void,
211
222
  private readonly refreshLatestSummaryCallback: (
223
+ // eslint-disable-next-line import/no-deprecated
212
224
  options: IRefreshSummaryAckOptions,
213
225
  ) => Promise<void>,
214
226
  private readonly summaryWatcher: Pick<IClientSummaryWatcher, "watchSummary">,
@@ -226,19 +238,23 @@ export class SummaryGenerator {
226
238
  * @param resultsBuilder - optional, result builder to use to build pass or fail result.
227
239
  */
228
240
  public summarize(
241
+ // eslint-disable-next-line import/no-deprecated
229
242
  summaryOptions: ISubmitSummaryOptions,
230
243
  resultsBuilder = new SummarizeResultBuilder(),
231
244
  ): ISummarizeResults {
232
- this.summarizeCore(summaryOptions, resultsBuilder).catch((error) => {
233
- const message = "UnexpectedSummarizeError";
234
- summaryOptions.summaryLogger.sendErrorEvent({ eventName: message }, error);
235
- resultsBuilder.fail(message, error);
236
- });
245
+ this.summarizeCore(summaryOptions, resultsBuilder).catch(
246
+ (error: IRetriableFailureError) => {
247
+ const message = "UnexpectedSummarizeError";
248
+ summaryOptions.summaryLogger.sendErrorEvent({ eventName: message }, error);
249
+ resultsBuilder.fail(message, error);
250
+ },
251
+ );
237
252
 
238
253
  return resultsBuilder.build();
239
254
  }
240
255
 
241
256
  private async summarizeCore(
257
+ // eslint-disable-next-line import/no-deprecated
242
258
  submitSummaryOptions: ISubmitSummaryOptions,
243
259
  resultsBuilder: SummarizeResultBuilder,
244
260
  ): Promise<void> {
@@ -278,7 +294,7 @@ export class SummaryGenerator {
278
294
  properties?: SummaryGeneratorTelemetry,
279
295
  submitFailureResult?: SubmitSummaryFailureData,
280
296
  nackSummaryResult?: INackSummaryResult,
281
- ) => {
297
+ ): void => {
282
298
  // Report any failure as an error unless it was due to cancellation (like "disconnected" error)
283
299
  // If failure happened on upload, we may not yet realized that socket disconnected, so check
284
300
  // offlineError too.
@@ -515,17 +531,19 @@ export class SummaryGenerator {
515
531
  initialProps: SummaryGeneratorTelemetry,
516
532
  ): SummaryGeneratorTelemetry {
517
533
  switch (summaryData.stage) {
518
- case "base":
534
+ case "base": {
519
535
  return initialProps;
536
+ }
520
537
 
521
- case "generate":
538
+ case "generate": {
522
539
  return {
523
540
  ...initialProps,
524
541
  ...summaryData.summaryStats,
525
542
  generateDuration: summaryData.generateDuration,
526
543
  };
544
+ }
527
545
 
528
- case "upload":
546
+ case "upload": {
529
547
  return {
530
548
  ...initialProps,
531
549
  ...summaryData.summaryStats,
@@ -533,8 +551,9 @@ export class SummaryGenerator {
533
551
  handle: summaryData.handle,
534
552
  uploadDuration: summaryData.uploadDuration,
535
553
  };
554
+ }
536
555
 
537
- case "submit":
556
+ case "submit": {
538
557
  return {
539
558
  ...initialProps,
540
559
  ...summaryData.summaryStats,
@@ -547,15 +566,17 @@ export class SummaryGenerator {
547
566
  nonRuntimeOpsSinceLastSummary: this.heuristicData.numNonRuntimeOps,
548
567
  runtimeOpsSinceLastSummary: this.heuristicData.numRuntimeOps,
549
568
  };
569
+ }
550
570
 
551
- default:
571
+ default: {
552
572
  assert(true, 0x397 /* Unexpected summary stage */);
573
+ }
553
574
  }
554
575
 
555
576
  return initialProps;
556
577
  }
557
578
 
558
- private summarizeTimerHandler(time: number, count: number) {
579
+ private summarizeTimerHandler(time: number, count: number): void {
559
580
  this.logger.sendPerformanceEvent({
560
581
  eventName: "SummarizeTimeout",
561
582
  timeoutTime: time,
@@ -570,7 +591,7 @@ export class SummaryGenerator {
570
591
  }
571
592
  }
572
593
 
573
- public dispose() {
594
+ public dispose(): void {
574
595
  this.summarizeTimer.clear();
575
596
  }
576
597
  }