@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
@@ -31,50 +31,72 @@ export type Immutable<T> = T extends ImmutablePrimitives
31
31
  ? ReadonlySet<Immutable<V>>
32
32
  : { readonly [K in keyof T]: Immutable<T[K]> };
33
33
 
34
- /** Minimum information for a client tracked for election consideration. */
34
+ /**
35
+ * Minimum information for a client tracked for election consideration.
36
+ */
35
37
  export interface ITrackedClient {
36
38
  readonly clientId: string;
37
39
  readonly sequenceNumber: number;
38
40
  readonly client: Immutable<IClient>;
39
41
  }
40
42
 
41
- /** Common contract for link nodes within an OrderedClientCollection. */
43
+ /**
44
+ * Common contract for link nodes within an OrderedClientCollection.
45
+ */
42
46
  export interface ILinkNode {
43
47
  readonly sequenceNumber: number;
44
48
  youngerClient: ILinkedClient | undefined;
45
49
  }
46
50
 
47
- /** Placeholder root node within an OrderedClientCollection; does not represent a client. */
51
+ /**
52
+ * Placeholder root node within an OrderedClientCollection; does not represent a client.
53
+ */
48
54
  export interface IRootLinkNode extends ILinkNode {
49
55
  readonly sequenceNumber: -1;
50
56
  readonly olderClient: undefined;
51
57
  }
52
58
 
53
- /** Additional information required to keep track of the client within the doubly-linked list. */
59
+ /**
60
+ * Additional information required to keep track of the client within the doubly-linked list.
61
+ */
54
62
  export interface ILinkedClient extends ILinkNode, ITrackedClient {
55
63
  olderClient: LinkNode;
56
64
  }
57
65
 
58
- /** Any link node within OrderedClientCollection including the placeholder root node. */
66
+ /**
67
+ * Any link node within OrderedClientCollection including the placeholder root node.
68
+ */
59
69
  export type LinkNode = IRootLinkNode | ILinkedClient;
60
70
 
61
- /** Events raised by an OrderedClientCollection. */
71
+ /**
72
+ * Events raised by an OrderedClientCollection.
73
+ */
62
74
  export interface IOrderedClientCollectionEvents extends IEvent {
63
- /** Event fires when client is being added. */
75
+ /**
76
+ * Event fires when client is being added.
77
+ */
64
78
  (
65
79
  event: "addClient" | "removeClient",
66
80
  listener: (client: ILinkedClient, sequenceNumber: number) => void,
67
81
  );
68
82
  }
69
83
 
70
- /** Contract for a sorted collection of all clients in the quorum. */
84
+ /**
85
+ * Contract for a sorted collection of all clients in the quorum.
86
+ */
71
87
  export interface IOrderedClientCollection
72
88
  extends IEventProvider<IOrderedClientCollectionEvents> {
73
- /** Count of clients in the collection. */
89
+ /**
90
+ * Count of clients in the collection.
91
+ */
74
92
  readonly count: number;
75
- /** Pointer to the oldest client in the collection. */
93
+ /**
94
+ * Pointer to the oldest client in the collection.
95
+ */
76
96
  readonly oldestClient: ILinkedClient | undefined;
77
- /** Returns a sorted array of all the clients in the collection. */
97
+ /**
98
+ * Returns a sorted array of all the clients in the collection.
99
+ */
78
100
  getAllClients(): ILinkedClient[];
79
101
  }
80
102
 
@@ -89,22 +111,28 @@ export class OrderedClientCollection
89
111
  extends TypedEventEmitter<IOrderedClientCollectionEvents>
90
112
  implements IOrderedClientCollection
91
113
  {
92
- /** Collection of ALL clients currently in the quorum, with client ids as keys. */
114
+ /**
115
+ * Collection of ALL clients currently in the quorum, with client ids as keys.
116
+ */
93
117
  private readonly clientMap = new Map<string, ILinkedClient>();
94
- /** Placeholder head node of linked list, for simplified null checking. */
118
+ /**
119
+ * Placeholder head node of linked list, for simplified null checking.
120
+ */
95
121
  private readonly rootNode: IRootLinkNode = {
96
122
  sequenceNumber: -1,
97
123
  olderClient: undefined,
98
124
  youngerClient: undefined,
99
125
  };
100
- /** Pointer to end of linked list, for optimized client adds. */
126
+ /**
127
+ * Pointer to end of linked list, for optimized client adds.
128
+ */
101
129
  private _youngestClient: LinkNode = this.rootNode;
102
130
  private readonly logger: ITelemetryLoggerExt;
103
131
 
104
- public get count() {
132
+ public get count(): number {
105
133
  return this.clientMap.size;
106
134
  }
107
- public get oldestClient() {
135
+ public get oldestClient(): ILinkedClient | undefined {
108
136
  return this.rootNode.youngerClient;
109
137
  }
110
138
 
@@ -201,7 +229,9 @@ export class OrderedClientCollection
201
229
  return removeClient;
202
230
  }
203
231
 
204
- /** Returns an array of all clients being tracked in order from oldest to newest. */
232
+ /**
233
+ * Returns an array of all clients being tracked in order from oldest to newest.
234
+ */
205
235
  public getAllClients(): ILinkedClient[] {
206
236
  const result: ILinkedClient[] = [];
207
237
  let currClient: LinkNode = this.rootNode;
@@ -213,17 +243,27 @@ export class OrderedClientCollection
213
243
  }
214
244
  }
215
245
 
216
- /** Events raised by an OrderedClientElection. */
246
+ /**
247
+ * Events raised by an OrderedClientElection.
248
+ */
217
249
  export interface IOrderedClientElectionEvents extends IEvent {
218
- /** Event fires when the currently elected client changes. */
250
+ /**
251
+ * Event fires when the currently elected client changes.
252
+ */
219
253
  (
220
254
  event: "election",
221
255
  listener: (
222
- /** Newly elected client. */
256
+ /**
257
+ * Newly elected client.
258
+ */
223
259
  client: ITrackedClient | undefined,
224
- /** Sequence number where election took place. */
260
+ /**
261
+ * Sequence number where election took place.
262
+ */
225
263
  sequenceNumber: number,
226
- /** Previously elected client. */
264
+ /**
265
+ * Previously elected client.
266
+ */
227
267
  prevClient: ITrackedClient | undefined,
228
268
  ) => void,
229
269
  );
@@ -233,9 +273,12 @@ export interface IOrderedClientElectionEvents extends IEvent {
233
273
  * Serialized state of IOrderedClientElection.
234
274
  * @legacy
235
275
  * @alpha
276
+ * @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
236
277
  */
237
278
  export interface ISerializedElection {
238
- /** Sequence number at the time of the latest election. */
279
+ /**
280
+ * Sequence number at the time of the latest election.
281
+ */
239
282
  readonly electionSequenceNumber: number;
240
283
 
241
284
  /**
@@ -248,13 +291,19 @@ export interface ISerializedElection {
248
291
  */
249
292
  readonly electedClientId: string | undefined;
250
293
 
251
- /** Most recently elected parent client id. This is always an interactive client. */
294
+ /**
295
+ * Most recently elected parent client id. This is always an interactive client.
296
+ */
252
297
  readonly electedParentId: string | undefined;
253
298
  }
254
299
 
255
- /** Contract for maintaining a deterministic client election based on eligibility. */
300
+ /**
301
+ * Contract for maintaining a deterministic client election based on eligibility.
302
+ */
256
303
  export interface IOrderedClientElection extends IEventProvider<IOrderedClientElectionEvents> {
257
- /** Count of eligible clients in the collection. */
304
+ /**
305
+ * Count of eligible clients in the collection.
306
+ */
258
307
  readonly eligibleCount: number;
259
308
 
260
309
  /**
@@ -266,17 +315,29 @@ export interface IOrderedClientElection extends IEventProvider<IOrderedClientEle
266
315
  * 2. the non-interactive summarizer client itself.
267
316
  */
268
317
  readonly electedClient: ITrackedClient | undefined;
269
- /** Currently elected parent client. This is always an interactive client. */
318
+ /**
319
+ * Currently elected parent client. This is always an interactive client.
320
+ */
270
321
  readonly electedParent: ITrackedClient | undefined;
271
- /** Sequence number of most recent election. */
322
+ /**
323
+ * Sequence number of most recent election.
324
+ */
272
325
  readonly electionSequenceNumber: number;
273
- /** Resets the currently elected client back to the oldest eligible client. */
326
+ /**
327
+ * Resets the currently elected client back to the oldest eligible client.
328
+ */
274
329
  resetElectedClient(sequenceNumber: number): void;
275
- /** Peeks at what the next elected client would be if incrementElectedClient were called. */
330
+ /**
331
+ * Peeks at what the next elected client would be if incrementElectedClient were called.
332
+ */
276
333
  peekNextElectedClient(): ITrackedClient | undefined;
277
- /** Returns a sorted array of all the eligible clients in the collection. */
334
+ /**
335
+ * Returns a sorted array of all the eligible clients in the collection.
336
+ */
278
337
  getAllEligibleClients(): ITrackedClient[];
279
- /** Serialize election data */
338
+ /**
339
+ * Serialize election data
340
+ */
280
341
  serialize(): ISerializedElection;
281
342
  }
282
343
 
@@ -295,10 +356,10 @@ export class OrderedClientElection
295
356
  private _electedParent: ILinkedClient | undefined;
296
357
  private _electionSequenceNumber: number;
297
358
 
298
- public get eligibleCount() {
359
+ public get eligibleCount(): number {
299
360
  return this._eligibleCount;
300
361
  }
301
- public get electionSequenceNumber() {
362
+ public get electionSequenceNumber(): number {
302
363
  return this._electionSequenceNumber;
303
364
  }
304
365
 
@@ -338,17 +399,19 @@ export class OrderedClientElection
338
399
  *
339
400
  * vii. SummaryManager running on B spawns a summarizer client, B'. electedParent === B, electedClient === B'
340
401
  */
341
- public get electedClient() {
402
+ public get electedClient(): ILinkedClient | undefined {
342
403
  return this._electedClient;
343
404
  }
344
- public get electedParent() {
405
+ public get electedParent(): ILinkedClient | undefined {
345
406
  return this._electedParent;
346
407
  }
347
408
 
348
409
  constructor(
349
410
  private readonly logger: ITelemetryLoggerExt,
350
411
  private readonly orderedClientCollection: IOrderedClientCollection,
351
- /** Serialized state from summary or current sequence number at time of load if new. */
412
+ /**
413
+ * Serialized state from summary or current sequence number at time of load if new.
414
+ */
352
415
  initialState: ISerializedElection | number,
353
416
  private readonly isEligibleFn: (c: ITrackedClient) => boolean,
354
417
  private readonly recordPerformanceEvents: boolean = false,
@@ -541,8 +604,15 @@ export class OrderedClientElection
541
604
  this._eligibleCount--;
542
605
  if (this._electedClient === client) {
543
606
  // Removing the _electedClient. There are 2 possible cases:
544
- if (this._electedParent !== client) {
545
- // 1. The _electedClient is a summarizer that we've been allowing to finish its work.
607
+ if (this._electedParent === client) {
608
+ // 1. The _electedClient is an interactive client that has left the quorum.
609
+ // Automatically shift to next oldest client.
610
+ const nextClient =
611
+ this.findFirstEligibleParent(this._electedParent?.youngerClient) ??
612
+ this.findFirstEligibleParent(this.orderedClientCollection.oldestClient);
613
+ this.tryElectingClient(nextClient, sequenceNumber, "RemoveClient");
614
+ } else {
615
+ // 2. The _electedClient is a summarizer that we've been allowing to finish its work.
546
616
  // Let the _electedParent become the _electedClient so that it can start its own summarizer.
547
617
  if (this._electedClient.client.details.type !== summarizerClientType) {
548
618
  throw new UsageError("Elected client should be a summarizer client 1");
@@ -552,13 +622,6 @@ export class OrderedClientElection
552
622
  sequenceNumber,
553
623
  "RemoveSummarizerClient",
554
624
  );
555
- } else {
556
- // 2. The _electedClient is an interactive client that has left the quorum.
557
- // Automatically shift to next oldest client.
558
- const nextClient =
559
- this.findFirstEligibleParent(this._electedParent?.youngerClient) ??
560
- this.findFirstEligibleParent(this.orderedClientCollection.oldestClient);
561
- this.tryElectingClient(nextClient, sequenceNumber, "RemoveClient");
562
625
  }
563
626
  } else if (this._electedParent === client) {
564
627
  // Removing the _electedParent (but not _electedClient).
@@ -576,7 +639,9 @@ export class OrderedClientElection
576
639
  }
577
640
 
578
641
  public getAllEligibleClients(): ITrackedClient[] {
579
- return this.orderedClientCollection.getAllClients().filter(this.isEligibleFn);
642
+ return this.orderedClientCollection
643
+ .getAllClients()
644
+ .filter((client) => this.isEligibleFn(client));
580
645
  }
581
646
 
582
647
  /**
@@ -617,7 +682,7 @@ export class OrderedClientElection
617
682
  sequenceNumber: number,
618
683
  forceSend: boolean = false,
619
684
  reason?: string,
620
- ) {
685
+ ): void {
621
686
  if (this.recordPerformanceEvents || forceSend) {
622
687
  this.logger.sendPerformanceEvent({
623
688
  eventName,
@@ -625,7 +690,7 @@ export class OrderedClientElection
625
690
  sequenceNumber,
626
691
  electedClientId: this.electedClient?.clientId,
627
692
  electedParentId: this.electedParent?.clientId,
628
- isEligible: client !== undefined ? this.isEligibleFn(client) : false,
693
+ isEligible: client === undefined ? false : this.isEligibleFn(client),
629
694
  isSummarizerClient: client?.client.details.type === summarizerClientType,
630
695
  reason,
631
696
  });
@@ -6,13 +6,16 @@
6
6
  import type { SummarizerStopReason } from "@fluidframework/container-runtime-definitions/internal";
7
7
  import { assert, Deferred } from "@fluidframework/core-utils/internal";
8
8
 
9
+ // eslint-disable-next-line import/no-deprecated
9
10
  import { IConnectableRuntime, ISummaryCancellationToken } from "./summarizerTypes.js";
10
11
 
11
12
  /**
12
13
  * Similar to AbortController, but using promise instead of events
13
14
  * @legacy
14
15
  * @alpha
16
+ * @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
15
17
  */
18
+ // eslint-disable-next-line import/no-deprecated
16
19
  export interface ICancellableSummarizerController extends ISummaryCancellationToken {
17
20
  stop(reason: SummarizerStopReason): void;
18
21
  }
@@ -22,6 +25,7 @@ export interface ICancellableSummarizerController extends ISummaryCancellationTo
22
25
  * This object implements ISummaryCancellationToken interface but cancellation is never leveraged.
23
26
  * @internal
24
27
  */
28
+ // eslint-disable-next-line import/no-deprecated
25
29
  export const neverCancelledSummaryToken: ISummaryCancellationToken = {
26
30
  cancelled: false,
27
31
  waitCancelled: new Promise(() => {}),
@@ -36,7 +40,7 @@ export class RunWhileConnectedCoordinator implements ICancellableSummarizerContr
36
40
  private _cancelled = false;
37
41
  private readonly stopDeferred = new Deferred<SummarizerStopReason>();
38
42
 
39
- public get cancelled() {
43
+ public get cancelled(): boolean {
40
44
  if (!this._cancelled) {
41
45
  assert(this.active(), 0x25d /* "We should never connect as 'read'" */);
42
46
 
@@ -63,13 +67,18 @@ export class RunWhileConnectedCoordinator implements ICancellableSummarizerContr
63
67
  return this.stopDeferred.promise;
64
68
  }
65
69
 
66
- public static async create(runtime: IConnectableRuntime, active: () => boolean) {
70
+ public static async create(
71
+ // eslint-disable-next-line import/no-deprecated
72
+ runtime: IConnectableRuntime,
73
+ active: () => boolean,
74
+ ): Promise<RunWhileConnectedCoordinator> {
67
75
  const obj = new RunWhileConnectedCoordinator(runtime, active);
68
76
  await obj.waitStart();
69
77
  return obj;
70
78
  }
71
79
 
72
80
  protected constructor(
81
+ // eslint-disable-next-line import/no-deprecated
73
82
  private readonly runtime: IConnectableRuntime,
74
83
  private readonly active: () => boolean,
75
84
  ) {}
@@ -87,7 +96,7 @@ export class RunWhileConnectedCoordinator implements ICancellableSummarizerContr
87
96
  * of non-summarized ops, where can make determination to continue with summary even if main
88
97
  * client is disconnected.
89
98
  */
90
- protected async waitStart() {
99
+ protected async waitStart(): Promise<void> {
91
100
  if (this.runtime.disposed) {
92
101
  this.stop("summarizerClientDisconnected");
93
102
  return;