@fluidframework/container-runtime 2.13.0 → 2.20.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 (443) hide show
  1. package/.eslintrc.cjs +36 -0
  2. package/CHANGELOG.md +46 -0
  3. package/api-report/container-runtime.legacy.alpha.api.md +9 -203
  4. package/container-runtime.test-files.tar +0 -0
  5. package/dist/batchTracker.d.ts.map +1 -1
  6. package/dist/batchTracker.js.map +1 -1
  7. package/dist/blobManager/blobManager.d.ts +5 -1
  8. package/dist/blobManager/blobManager.d.ts.map +1 -1
  9. package/dist/blobManager/blobManager.js +16 -2
  10. package/dist/blobManager/blobManager.js.map +1 -1
  11. package/dist/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  12. package/dist/blobManager/blobManagerSnapSum.js.map +1 -1
  13. package/dist/channelCollection.d.ts +23 -12
  14. package/dist/channelCollection.d.ts.map +1 -1
  15. package/dist/channelCollection.js +22 -12
  16. package/dist/channelCollection.js.map +1 -1
  17. package/dist/connectionTelemetry.d.ts.map +1 -1
  18. package/dist/connectionTelemetry.js +6 -2
  19. package/dist/connectionTelemetry.js.map +1 -1
  20. package/dist/containerHandleContext.d.ts +1 -1
  21. package/dist/containerHandleContext.d.ts.map +1 -1
  22. package/dist/containerHandleContext.js.map +1 -1
  23. package/dist/containerRuntime.d.ts +74 -65
  24. package/dist/containerRuntime.d.ts.map +1 -1
  25. package/dist/containerRuntime.js +53 -37
  26. package/dist/containerRuntime.js.map +1 -1
  27. package/dist/dataStore.d.ts +7 -3
  28. package/dist/dataStore.d.ts.map +1 -1
  29. package/dist/dataStore.js +2 -1
  30. package/dist/dataStore.js.map +1 -1
  31. package/dist/dataStoreContext.d.ts +41 -25
  32. package/dist/dataStoreContext.d.ts.map +1 -1
  33. package/dist/dataStoreContext.js +31 -18
  34. package/dist/dataStoreContext.js.map +1 -1
  35. package/dist/dataStoreContexts.d.ts +6 -2
  36. package/dist/dataStoreContexts.d.ts.map +1 -1
  37. package/dist/dataStoreContexts.js +6 -2
  38. package/dist/dataStoreContexts.js.map +1 -1
  39. package/dist/dataStoreRegistry.d.ts +1 -1
  40. package/dist/dataStoreRegistry.d.ts.map +1 -1
  41. package/dist/dataStoreRegistry.js.map +1 -1
  42. package/dist/deltaManagerProxies.d.ts +1 -17
  43. package/dist/deltaManagerProxies.d.ts.map +1 -1
  44. package/dist/deltaManagerProxies.js.map +1 -1
  45. package/dist/deltaScheduler.d.ts +9 -6
  46. package/dist/deltaScheduler.d.ts.map +1 -1
  47. package/dist/deltaScheduler.js +95 -89
  48. package/dist/deltaScheduler.js.map +1 -1
  49. package/dist/gc/garbageCollection.d.ts +21 -7
  50. package/dist/gc/garbageCollection.d.ts.map +1 -1
  51. package/dist/gc/garbageCollection.js +12 -5
  52. package/dist/gc/garbageCollection.js.map +1 -1
  53. package/dist/gc/gcConfigs.d.ts +11 -0
  54. package/dist/gc/gcConfigs.d.ts.map +1 -1
  55. package/dist/gc/gcConfigs.js +3 -2
  56. package/dist/gc/gcConfigs.js.map +1 -1
  57. package/dist/gc/gcDefinitions.d.ts +210 -70
  58. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  59. package/dist/gc/gcDefinitions.js +39 -13
  60. package/dist/gc/gcDefinitions.js.map +1 -1
  61. package/dist/gc/gcHelpers.d.ts +6 -2
  62. package/dist/gc/gcHelpers.d.ts.map +1 -1
  63. package/dist/gc/gcHelpers.js +6 -2
  64. package/dist/gc/gcHelpers.js.map +1 -1
  65. package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  66. package/dist/gc/gcSummaryDefinitions.d.ts +18 -6
  67. package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -1
  68. package/dist/gc/gcSummaryDefinitions.js.map +1 -1
  69. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  70. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  71. package/dist/gc/gcTelemetry.d.ts +33 -11
  72. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  73. package/dist/gc/gcTelemetry.js +6 -2
  74. package/dist/gc/gcTelemetry.js.map +1 -1
  75. package/dist/gc/gcUnreferencedStateTracker.d.ts +42 -13
  76. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  77. package/dist/gc/gcUnreferencedStateTracker.js +27 -9
  78. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  79. package/dist/gc/index.d.ts +1 -0
  80. package/dist/gc/index.d.ts.map +1 -1
  81. package/dist/gc/index.js +3 -1
  82. package/dist/gc/index.js.map +1 -1
  83. package/dist/inboundBatchAggregator.d.ts +34 -0
  84. package/dist/inboundBatchAggregator.d.ts.map +1 -0
  85. package/dist/inboundBatchAggregator.js +185 -0
  86. package/dist/inboundBatchAggregator.js.map +1 -0
  87. package/dist/index.d.ts +1 -1
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js.map +1 -1
  90. package/dist/legacy.d.ts +0 -4
  91. package/dist/messageTypes.d.ts +14 -5
  92. package/dist/messageTypes.d.ts.map +1 -1
  93. package/dist/messageTypes.js.map +1 -1
  94. package/dist/metadata.d.ts +12 -4
  95. package/dist/metadata.d.ts.map +1 -1
  96. package/dist/metadata.js +6 -2
  97. package/dist/metadata.js.map +1 -1
  98. package/dist/opLifecycle/batchManager.d.ts +9 -3
  99. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  100. package/dist/opLifecycle/batchManager.js +3 -1
  101. package/dist/opLifecycle/batchManager.js.map +1 -1
  102. package/dist/opLifecycle/duplicateBatchDetector.d.ts +9 -3
  103. package/dist/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
  104. package/dist/opLifecycle/duplicateBatchDetector.js +9 -3
  105. package/dist/opLifecycle/duplicateBatchDetector.js.map +1 -1
  106. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  107. package/dist/opLifecycle/opCompressor.js.map +1 -1
  108. package/dist/opLifecycle/opDecompressor.d.ts +3 -1
  109. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  110. package/dist/opLifecycle/opDecompressor.js +12 -7
  111. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  112. package/dist/opLifecycle/opGroupingManager.d.ts +0 -1
  113. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  114. package/dist/opLifecycle/opGroupingManager.js +5 -4
  115. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  116. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  117. package/dist/opLifecycle/opSplitter.js +2 -0
  118. package/dist/opLifecycle/opSplitter.js.map +1 -1
  119. package/dist/opLifecycle/outbox.d.ts +1 -1
  120. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  121. package/dist/opLifecycle/outbox.js +6 -1
  122. package/dist/opLifecycle/outbox.js.map +1 -1
  123. package/dist/opLifecycle/remoteMessageProcessor.d.ts +9 -3
  124. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  125. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  126. package/dist/package.json +2 -1
  127. package/dist/packageVersion.d.ts +1 -1
  128. package/dist/packageVersion.js +1 -1
  129. package/dist/packageVersion.js.map +1 -1
  130. package/dist/pendingStateManager.d.ts +19 -7
  131. package/dist/pendingStateManager.d.ts.map +1 -1
  132. package/dist/pendingStateManager.js +13 -5
  133. package/dist/pendingStateManager.js.map +1 -1
  134. package/dist/summary/documentSchema.d.ts.map +1 -1
  135. package/dist/summary/documentSchema.js +2 -0
  136. package/dist/summary/documentSchema.js.map +1 -1
  137. package/dist/summary/index.d.ts +1 -1
  138. package/dist/summary/index.d.ts.map +1 -1
  139. package/dist/summary/index.js.map +1 -1
  140. package/dist/summary/orderedClientElection.d.ts +93 -31
  141. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  142. package/dist/summary/orderedClientElection.js +15 -5
  143. package/dist/summary/orderedClientElection.js.map +1 -1
  144. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  145. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  146. package/dist/summary/runningSummarizer.d.ts +17 -6
  147. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  148. package/dist/summary/runningSummarizer.js +12 -4
  149. package/dist/summary/runningSummarizer.js.map +1 -1
  150. package/dist/summary/summarizer.d.ts +9 -5
  151. package/dist/summary/summarizer.d.ts.map +1 -1
  152. package/dist/summary/summarizer.js +9 -3
  153. package/dist/summary/summarizer.js.map +1 -1
  154. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  155. package/dist/summary/summarizerClientElection.js.map +1 -1
  156. package/dist/summary/summarizerHeuristics.d.ts +6 -2
  157. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  158. package/dist/summary/summarizerHeuristics.js +12 -4
  159. package/dist/summary/summarizerHeuristics.js.map +1 -1
  160. package/dist/summary/summarizerNode/summarizerNode.d.ts +24 -8
  161. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  162. package/dist/summary/summarizerNode/summarizerNode.js +15 -5
  163. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  164. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
  165. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  166. package/dist/summary/summarizerNode/summarizerNodeUtils.js +3 -1
  167. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  168. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +12 -4
  169. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  170. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +12 -4
  171. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  172. package/dist/summary/summarizerTypes.d.ts +246 -135
  173. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  174. package/dist/summary/summarizerTypes.js.map +1 -1
  175. package/dist/summary/summaryCollection.d.ts.map +1 -1
  176. package/dist/summary/summaryCollection.js +1 -2
  177. package/dist/summary/summaryCollection.js.map +1 -1
  178. package/dist/summary/summaryFormat.d.ts +24 -8
  179. package/dist/summary/summaryFormat.d.ts.map +1 -1
  180. package/dist/summary/summaryFormat.js.map +1 -1
  181. package/dist/summary/summaryGenerator.d.ts +9 -3
  182. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  183. package/dist/summary/summaryGenerator.js +3 -1
  184. package/dist/summary/summaryGenerator.js.map +1 -1
  185. package/dist/summary/summaryManager.d.ts +8 -4
  186. package/dist/summary/summaryManager.d.ts.map +1 -1
  187. package/dist/summary/summaryManager.js +12 -4
  188. package/dist/summary/summaryManager.js.map +1 -1
  189. package/dist/throttler.d.ts +26 -10
  190. package/dist/throttler.d.ts.map +1 -1
  191. package/dist/throttler.js +12 -4
  192. package/dist/throttler.js.map +1 -1
  193. package/lib/batchTracker.d.ts.map +1 -1
  194. package/lib/batchTracker.js.map +1 -1
  195. package/lib/blobManager/blobManager.d.ts +5 -1
  196. package/lib/blobManager/blobManager.d.ts.map +1 -1
  197. package/lib/blobManager/blobManager.js +16 -2
  198. package/lib/blobManager/blobManager.js.map +1 -1
  199. package/lib/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  200. package/lib/blobManager/blobManagerSnapSum.js.map +1 -1
  201. package/lib/channelCollection.d.ts +23 -12
  202. package/lib/channelCollection.d.ts.map +1 -1
  203. package/lib/channelCollection.js +22 -12
  204. package/lib/channelCollection.js.map +1 -1
  205. package/lib/connectionTelemetry.d.ts.map +1 -1
  206. package/lib/connectionTelemetry.js +6 -2
  207. package/lib/connectionTelemetry.js.map +1 -1
  208. package/lib/containerHandleContext.d.ts +1 -1
  209. package/lib/containerHandleContext.d.ts.map +1 -1
  210. package/lib/containerHandleContext.js.map +1 -1
  211. package/lib/containerRuntime.d.ts +74 -65
  212. package/lib/containerRuntime.d.ts.map +1 -1
  213. package/lib/containerRuntime.js +53 -37
  214. package/lib/containerRuntime.js.map +1 -1
  215. package/lib/dataStore.d.ts +7 -3
  216. package/lib/dataStore.d.ts.map +1 -1
  217. package/lib/dataStore.js +2 -1
  218. package/lib/dataStore.js.map +1 -1
  219. package/lib/dataStoreContext.d.ts +41 -25
  220. package/lib/dataStoreContext.d.ts.map +1 -1
  221. package/lib/dataStoreContext.js +31 -18
  222. package/lib/dataStoreContext.js.map +1 -1
  223. package/lib/dataStoreContexts.d.ts +6 -2
  224. package/lib/dataStoreContexts.d.ts.map +1 -1
  225. package/lib/dataStoreContexts.js +6 -2
  226. package/lib/dataStoreContexts.js.map +1 -1
  227. package/lib/dataStoreRegistry.d.ts +1 -1
  228. package/lib/dataStoreRegistry.d.ts.map +1 -1
  229. package/lib/dataStoreRegistry.js.map +1 -1
  230. package/lib/deltaManagerProxies.d.ts +1 -17
  231. package/lib/deltaManagerProxies.d.ts.map +1 -1
  232. package/lib/deltaManagerProxies.js.map +1 -1
  233. package/lib/deltaScheduler.d.ts +9 -6
  234. package/lib/deltaScheduler.d.ts.map +1 -1
  235. package/lib/deltaScheduler.js +95 -89
  236. package/lib/deltaScheduler.js.map +1 -1
  237. package/lib/gc/garbageCollection.d.ts +21 -7
  238. package/lib/gc/garbageCollection.d.ts.map +1 -1
  239. package/lib/gc/garbageCollection.js +12 -5
  240. package/lib/gc/garbageCollection.js.map +1 -1
  241. package/lib/gc/gcConfigs.d.ts +11 -0
  242. package/lib/gc/gcConfigs.d.ts.map +1 -1
  243. package/lib/gc/gcConfigs.js +2 -2
  244. package/lib/gc/gcConfigs.js.map +1 -1
  245. package/lib/gc/gcDefinitions.d.ts +210 -70
  246. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  247. package/lib/gc/gcDefinitions.js +39 -13
  248. package/lib/gc/gcDefinitions.js.map +1 -1
  249. package/lib/gc/gcHelpers.d.ts +6 -2
  250. package/lib/gc/gcHelpers.d.ts.map +1 -1
  251. package/lib/gc/gcHelpers.js +6 -2
  252. package/lib/gc/gcHelpers.js.map +1 -1
  253. package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  254. package/lib/gc/gcSummaryDefinitions.d.ts +18 -6
  255. package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -1
  256. package/lib/gc/gcSummaryDefinitions.js.map +1 -1
  257. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  258. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  259. package/lib/gc/gcTelemetry.d.ts +33 -11
  260. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  261. package/lib/gc/gcTelemetry.js +6 -2
  262. package/lib/gc/gcTelemetry.js.map +1 -1
  263. package/lib/gc/gcUnreferencedStateTracker.d.ts +42 -13
  264. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  265. package/lib/gc/gcUnreferencedStateTracker.js +27 -9
  266. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
  267. package/lib/gc/index.d.ts +1 -0
  268. package/lib/gc/index.d.ts.map +1 -1
  269. package/lib/gc/index.js +1 -0
  270. package/lib/gc/index.js.map +1 -1
  271. package/lib/inboundBatchAggregator.d.ts +34 -0
  272. package/lib/inboundBatchAggregator.d.ts.map +1 -0
  273. package/lib/inboundBatchAggregator.js +181 -0
  274. package/lib/inboundBatchAggregator.js.map +1 -0
  275. package/lib/index.d.ts +1 -1
  276. package/lib/index.d.ts.map +1 -1
  277. package/lib/index.js.map +1 -1
  278. package/lib/legacy.d.ts +0 -4
  279. package/lib/messageTypes.d.ts +14 -5
  280. package/lib/messageTypes.d.ts.map +1 -1
  281. package/lib/messageTypes.js.map +1 -1
  282. package/lib/metadata.d.ts +12 -4
  283. package/lib/metadata.d.ts.map +1 -1
  284. package/lib/metadata.js +6 -2
  285. package/lib/metadata.js.map +1 -1
  286. package/lib/opLifecycle/batchManager.d.ts +9 -3
  287. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  288. package/lib/opLifecycle/batchManager.js +3 -1
  289. package/lib/opLifecycle/batchManager.js.map +1 -1
  290. package/lib/opLifecycle/duplicateBatchDetector.d.ts +9 -3
  291. package/lib/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
  292. package/lib/opLifecycle/duplicateBatchDetector.js +9 -3
  293. package/lib/opLifecycle/duplicateBatchDetector.js.map +1 -1
  294. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  295. package/lib/opLifecycle/opCompressor.js +1 -1
  296. package/lib/opLifecycle/opCompressor.js.map +1 -1
  297. package/lib/opLifecycle/opDecompressor.d.ts +3 -1
  298. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  299. package/lib/opLifecycle/opDecompressor.js +13 -8
  300. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  301. package/lib/opLifecycle/opGroupingManager.d.ts +0 -1
  302. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  303. package/lib/opLifecycle/opGroupingManager.js +6 -5
  304. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  305. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  306. package/lib/opLifecycle/opSplitter.js +2 -0
  307. package/lib/opLifecycle/opSplitter.js.map +1 -1
  308. package/lib/opLifecycle/outbox.d.ts +1 -1
  309. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  310. package/lib/opLifecycle/outbox.js +6 -1
  311. package/lib/opLifecycle/outbox.js.map +1 -1
  312. package/lib/opLifecycle/remoteMessageProcessor.d.ts +9 -3
  313. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  314. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  315. package/lib/packageVersion.d.ts +1 -1
  316. package/lib/packageVersion.js +1 -1
  317. package/lib/packageVersion.js.map +1 -1
  318. package/lib/pendingStateManager.d.ts +19 -7
  319. package/lib/pendingStateManager.d.ts.map +1 -1
  320. package/lib/pendingStateManager.js +13 -5
  321. package/lib/pendingStateManager.js.map +1 -1
  322. package/lib/summary/documentSchema.d.ts.map +1 -1
  323. package/lib/summary/documentSchema.js +2 -0
  324. package/lib/summary/documentSchema.js.map +1 -1
  325. package/lib/summary/index.d.ts +1 -1
  326. package/lib/summary/index.d.ts.map +1 -1
  327. package/lib/summary/index.js.map +1 -1
  328. package/lib/summary/orderedClientElection.d.ts +93 -31
  329. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  330. package/lib/summary/orderedClientElection.js +15 -5
  331. package/lib/summary/orderedClientElection.js.map +1 -1
  332. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  333. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  334. package/lib/summary/runningSummarizer.d.ts +17 -6
  335. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  336. package/lib/summary/runningSummarizer.js +12 -4
  337. package/lib/summary/runningSummarizer.js.map +1 -1
  338. package/lib/summary/summarizer.d.ts +9 -5
  339. package/lib/summary/summarizer.d.ts.map +1 -1
  340. package/lib/summary/summarizer.js +9 -3
  341. package/lib/summary/summarizer.js.map +1 -1
  342. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  343. package/lib/summary/summarizerClientElection.js.map +1 -1
  344. package/lib/summary/summarizerHeuristics.d.ts +6 -2
  345. package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
  346. package/lib/summary/summarizerHeuristics.js +12 -4
  347. package/lib/summary/summarizerHeuristics.js.map +1 -1
  348. package/lib/summary/summarizerNode/summarizerNode.d.ts +24 -8
  349. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  350. package/lib/summary/summarizerNode/summarizerNode.js +15 -5
  351. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  352. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
  353. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  354. package/lib/summary/summarizerNode/summarizerNodeUtils.js +3 -1
  355. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  356. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +12 -4
  357. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  358. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +12 -4
  359. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  360. package/lib/summary/summarizerTypes.d.ts +246 -135
  361. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  362. package/lib/summary/summarizerTypes.js.map +1 -1
  363. package/lib/summary/summaryCollection.d.ts.map +1 -1
  364. package/lib/summary/summaryCollection.js +1 -2
  365. package/lib/summary/summaryCollection.js.map +1 -1
  366. package/lib/summary/summaryFormat.d.ts +24 -8
  367. package/lib/summary/summaryFormat.d.ts.map +1 -1
  368. package/lib/summary/summaryFormat.js.map +1 -1
  369. package/lib/summary/summaryGenerator.d.ts +9 -3
  370. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  371. package/lib/summary/summaryGenerator.js +3 -1
  372. package/lib/summary/summaryGenerator.js.map +1 -1
  373. package/lib/summary/summaryManager.d.ts +8 -4
  374. package/lib/summary/summaryManager.d.ts.map +1 -1
  375. package/lib/summary/summaryManager.js +12 -4
  376. package/lib/summary/summaryManager.js.map +1 -1
  377. package/lib/throttler.d.ts +26 -10
  378. package/lib/throttler.d.ts.map +1 -1
  379. package/lib/throttler.js +12 -4
  380. package/lib/throttler.js.map +1 -1
  381. package/package.json +43 -30
  382. package/src/batchTracker.ts +31 -33
  383. package/src/blobManager/blobManager.ts +38 -19
  384. package/src/blobManager/blobManagerSnapSum.ts +2 -2
  385. package/src/channelCollection.ts +45 -38
  386. package/src/connectionTelemetry.ts +31 -13
  387. package/src/containerHandleContext.ts +2 -2
  388. package/src/containerRuntime.ts +199 -142
  389. package/src/dataStore.ts +11 -6
  390. package/src/dataStoreContext.ts +80 -59
  391. package/src/dataStoreContexts.ts +16 -12
  392. package/src/dataStoreRegistry.ts +1 -1
  393. package/src/deltaManagerProxies.ts +5 -5
  394. package/src/deltaScheduler.ts +19 -13
  395. package/src/gc/garbageCollection.ts +42 -20
  396. package/src/gc/gcConfigs.ts +4 -4
  397. package/src/gc/gcDefinitions.ts +212 -70
  398. package/src/gc/gcHelpers.ts +13 -7
  399. package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
  400. package/src/gc/gcSummaryDefinitions.ts +18 -6
  401. package/src/gc/gcSummaryStateTracker.ts +4 -2
  402. package/src/gc/gcTelemetry.ts +47 -19
  403. package/src/gc/gcUnreferencedStateTracker.ts +40 -16
  404. package/src/gc/index.ts +1 -0
  405. package/src/{scheduleManager.ts → inboundBatchAggregator.ts} +53 -120
  406. package/src/index.ts +0 -3
  407. package/src/messageTypes.ts +14 -5
  408. package/src/metadata.ts +12 -4
  409. package/src/opLifecycle/batchManager.ts +12 -6
  410. package/src/opLifecycle/duplicateBatchDetector.ts +10 -4
  411. package/src/opLifecycle/opCompressor.ts +8 -4
  412. package/src/opLifecycle/opDecompressor.ts +19 -10
  413. package/src/opLifecycle/opGroupingManager.ts +12 -8
  414. package/src/opLifecycle/opSplitter.ts +10 -7
  415. package/src/opLifecycle/outbox.ts +22 -13
  416. package/src/opLifecycle/remoteMessageProcessor.ts +10 -4
  417. package/src/packageVersion.ts +1 -1
  418. package/src/pendingStateManager.ts +34 -16
  419. package/src/summary/documentSchema.ts +30 -18
  420. package/src/summary/index.ts +0 -3
  421. package/src/summary/orderedClientElection.ts +100 -38
  422. package/src/summary/runWhileConnectedCoordinator.ts +6 -3
  423. package/src/summary/runningSummarizer.ts +38 -19
  424. package/src/summary/summarizer.ts +29 -16
  425. package/src/summary/summarizerClientElection.ts +2 -2
  426. package/src/summary/summarizerHeuristics.ts +22 -11
  427. package/src/summary/summarizerNode/summarizerNode.ts +22 -12
  428. package/src/summary/summarizerNode/summarizerNodeUtils.ts +48 -16
  429. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +21 -11
  430. package/src/summary/summarizerTypes.ts +246 -139
  431. package/src/summary/summaryCollection.ts +22 -23
  432. package/src/summary/summaryFormat.ts +24 -8
  433. package/src/summary/summaryGenerator.ts +14 -8
  434. package/src/summary/summaryManager.ts +28 -18
  435. package/src/throttler.ts +23 -11
  436. package/dist/scheduleManager.d.ts +0 -28
  437. package/dist/scheduleManager.d.ts.map +0 -1
  438. package/dist/scheduleManager.js +0 -233
  439. package/dist/scheduleManager.js.map +0 -1
  440. package/lib/scheduleManager.d.ts +0 -28
  441. package/lib/scheduleManager.d.ts.map +0 -1
  442. package/lib/scheduleManager.js +0 -229
  443. package/lib/scheduleManager.js.map +0 -1
@@ -148,21 +148,21 @@ interface IProperty<T = unknown> {
148
148
  }
149
149
 
150
150
  class TrueOrUndefined implements IProperty<true | undefined> {
151
- public and(currentDocSchema?: true, desiredDocSchema?: true) {
151
+ public and(currentDocSchema?: true, desiredDocSchema?: true): true | undefined {
152
152
  return currentDocSchema === true && desiredDocSchema === true ? true : undefined;
153
153
  }
154
154
 
155
- public or(currentDocSchema?: true, desiredDocSchema?: true) {
155
+ public or(currentDocSchema?: true, desiredDocSchema?: true): true | undefined {
156
156
  return currentDocSchema === true || desiredDocSchema === true ? true : undefined;
157
157
  }
158
158
 
159
- public validate(t: unknown) {
159
+ public validate(t: unknown): t is true | undefined {
160
160
  return t === undefined || t === true;
161
161
  }
162
162
  }
163
163
 
164
164
  class TrueOrUndefinedMax extends TrueOrUndefined {
165
- public and(currentDocSchema?: true, desiredDocSchema?: true) {
165
+ public and(currentDocSchema?: true, desiredDocSchema?: true): true | undefined {
166
166
  return this.or(currentDocSchema, desiredDocSchema);
167
167
  }
168
168
  }
@@ -170,7 +170,7 @@ class TrueOrUndefinedMax extends TrueOrUndefined {
170
170
  class MultiChoice implements IProperty<string | undefined> {
171
171
  constructor(private readonly choices: string[]) {}
172
172
 
173
- public and(currentDocSchema?: string, desiredDocSchema?: string) {
173
+ public and(currentDocSchema?: string, desiredDocSchema?: string): string | undefined {
174
174
  if (currentDocSchema === undefined || desiredDocSchema === undefined) {
175
175
  return undefined;
176
176
  }
@@ -179,7 +179,7 @@ class MultiChoice implements IProperty<string | undefined> {
179
179
  ];
180
180
  }
181
181
 
182
- public or(currentDocSchema?: string, desiredDocSchema?: string) {
182
+ public or(currentDocSchema?: string, desiredDocSchema?: string): string | undefined {
183
183
  if (currentDocSchema === undefined) {
184
184
  return desiredDocSchema;
185
185
  }
@@ -191,30 +191,36 @@ class MultiChoice implements IProperty<string | undefined> {
191
191
  ];
192
192
  }
193
193
 
194
- public validate(t: unknown) {
194
+ public validate(t: unknown): boolean {
195
195
  return t === undefined || (typeof t === "string" && this.choices.includes(t));
196
196
  }
197
197
  }
198
198
 
199
199
  class IdCompressorProperty extends MultiChoice {
200
200
  // document schema always wins!
201
- public and(currentDocSchema?: string, desiredDocSchema?: string) {
201
+ public and(currentDocSchema?: string, desiredDocSchema?: string): string | undefined {
202
202
  return currentDocSchema;
203
203
  }
204
204
  }
205
205
 
206
206
  class CheckVersions implements IProperty<string[] | undefined> {
207
- public or(currentDocSchema: string[] = [], desiredDocSchema: string[] = []) {
207
+ public or(
208
+ currentDocSchema: string[] = [],
209
+ desiredDocSchema: string[] = [],
210
+ ): string[] | undefined {
208
211
  const set = new Set<string>([...currentDocSchema, ...desiredDocSchema]);
209
212
  return arrayToProp([...set.values()]);
210
213
  }
211
214
 
212
215
  // Once version is there, it stays there forever.
213
- public and(currentDocSchema: string[] = [], desiredDocSchema: string[] = []) {
216
+ public and(
217
+ currentDocSchema: string[] = [],
218
+ desiredDocSchema: string[] = [],
219
+ ): string[] | undefined {
214
220
  return this.or(currentDocSchema, desiredDocSchema);
215
221
  }
216
222
 
217
- public validate(t: unknown) {
223
+ public validate(t: unknown): boolean {
218
224
  return t === undefined || (Array.isArray(t) && !t.includes(pkgVersion));
219
225
  }
220
226
  }
@@ -238,7 +244,7 @@ const documentSchemaSupportedConfigs = {
238
244
  function checkRuntimeCompatibility(
239
245
  documentSchema: IDocumentSchema | undefined,
240
246
  schemaName: string,
241
- ) {
247
+ ): void {
242
248
  // Back-compat - we can't do anything about legacy documents.
243
249
  // There is no way to validate them, so we are taking a guess that safe deployment processes used by a given app
244
250
  // do not run into compat problems.
@@ -278,6 +284,7 @@ function checkRuntimeCompatibility(
278
284
  }
279
285
 
280
286
  if (unknownProperty !== undefined) {
287
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
281
288
  const value = documentSchema[unknownProperty];
282
289
  throw DataProcessingError.create(
283
290
  msg,
@@ -286,6 +293,7 @@ function checkRuntimeCompatibility(
286
293
  {
287
294
  codeVersion: currentDocumentVersionSchema,
288
295
  property: unknownProperty,
296
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
289
297
  value,
290
298
  schemaName,
291
299
  },
@@ -354,11 +362,11 @@ function same(
354
362
  return true;
355
363
  }
356
364
 
357
- function boolToProp(b: boolean) {
365
+ function boolToProp(b: boolean): true | undefined {
358
366
  return b ? true : undefined;
359
367
  }
360
368
 
361
- function arrayToProp(arr: string[]) {
369
+ function arrayToProp(arr: string[]): string[] | undefined {
362
370
  return arr.length === 0 ? undefined : arr;
363
371
  }
364
372
 
@@ -580,7 +588,11 @@ export class DocumentsSchemaController {
580
588
  }
581
589
  }
582
590
 
583
- private validateSeqNumber(schemaSeqNumber: number, lastKnowSeqNumber, message: string) {
591
+ private validateSeqNumber(
592
+ schemaSeqNumber: number,
593
+ lastKnowSeqNumber: number,
594
+ message: string,
595
+ ): void {
584
596
  if (!Number.isInteger(schemaSeqNumber) || !(schemaSeqNumber <= lastKnowSeqNumber)) {
585
597
  throw DataProcessingError.create(
586
598
  "DocSchema: Incorrect sequence number",
@@ -608,7 +620,7 @@ export class DocumentsSchemaController {
608
620
  content: IDocumentSchemaChangeMessage,
609
621
  local: boolean,
610
622
  sequenceNumber: number,
611
- ) {
623
+ ): boolean {
612
624
  return this.processDocumentSchemaMessages([content], local, sequenceNumber);
613
625
  }
614
626
 
@@ -624,7 +636,7 @@ export class DocumentsSchemaController {
624
636
  contents: IDocumentSchemaChangeMessage[],
625
637
  local: boolean,
626
638
  sequenceNumber: number,
627
- ) {
639
+ ): boolean {
628
640
  for (const content of contents) {
629
641
  this.validateSeqNumber(content.refSeq, this.documentSchema.refSeq, "content.refSeq");
630
642
  this.validateSeqNumber(this.documentSchema.refSeq, sequenceNumber, "refSeq");
@@ -672,7 +684,7 @@ export class DocumentsSchemaController {
672
684
  return true;
673
685
  }
674
686
 
675
- public onDisconnect() {
687
+ public onDisconnect(): void {
676
688
  this.sendOp = true;
677
689
  }
678
690
  }
@@ -44,12 +44,10 @@ export {
44
44
  ISummarizeHeuristicData,
45
45
  ISummarizer,
46
46
  ISummarizeResults,
47
- ISummarizerEvents,
48
47
  ISummarizerInternalsProvider,
49
48
  ISummarizerRuntime,
50
49
  ISummaryCancellationToken,
51
50
  SubmitSummaryResult,
52
- SummarizerStopReason,
53
51
  EnqueueSummarizeResult,
54
52
  IAckSummaryResult,
55
53
  IBaseSummarizeResult,
@@ -67,7 +65,6 @@ export {
67
65
  SubmitSummaryFailureData,
68
66
  SummaryStage,
69
67
  IRetriableFailureError,
70
- ISummarizeEventProps,
71
68
  } from "./summarizerTypes.js";
72
69
  export {
73
70
  IAckedSummary,
@@ -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
  );
@@ -235,7 +275,9 @@ export interface IOrderedClientElectionEvents extends IEvent {
235
275
  * @alpha
236
276
  */
237
277
  export interface ISerializedElection {
238
- /** Sequence number at the time of the latest election. */
278
+ /**
279
+ * Sequence number at the time of the latest election.
280
+ */
239
281
  readonly electionSequenceNumber: number;
240
282
 
241
283
  /**
@@ -248,13 +290,19 @@ export interface ISerializedElection {
248
290
  */
249
291
  readonly electedClientId: string | undefined;
250
292
 
251
- /** Most recently elected parent client id. This is always an interactive client. */
293
+ /**
294
+ * Most recently elected parent client id. This is always an interactive client.
295
+ */
252
296
  readonly electedParentId: string | undefined;
253
297
  }
254
298
 
255
- /** Contract for maintaining a deterministic client election based on eligibility. */
299
+ /**
300
+ * Contract for maintaining a deterministic client election based on eligibility.
301
+ */
256
302
  export interface IOrderedClientElection extends IEventProvider<IOrderedClientElectionEvents> {
257
- /** Count of eligible clients in the collection. */
303
+ /**
304
+ * Count of eligible clients in the collection.
305
+ */
258
306
  readonly eligibleCount: number;
259
307
 
260
308
  /**
@@ -266,17 +314,29 @@ export interface IOrderedClientElection extends IEventProvider<IOrderedClientEle
266
314
  * 2. the non-interactive summarizer client itself.
267
315
  */
268
316
  readonly electedClient: ITrackedClient | undefined;
269
- /** Currently elected parent client. This is always an interactive client. */
317
+ /**
318
+ * Currently elected parent client. This is always an interactive client.
319
+ */
270
320
  readonly electedParent: ITrackedClient | undefined;
271
- /** Sequence number of most recent election. */
321
+ /**
322
+ * Sequence number of most recent election.
323
+ */
272
324
  readonly electionSequenceNumber: number;
273
- /** Resets the currently elected client back to the oldest eligible client. */
325
+ /**
326
+ * Resets the currently elected client back to the oldest eligible client.
327
+ */
274
328
  resetElectedClient(sequenceNumber: number): void;
275
- /** Peeks at what the next elected client would be if incrementElectedClient were called. */
329
+ /**
330
+ * Peeks at what the next elected client would be if incrementElectedClient were called.
331
+ */
276
332
  peekNextElectedClient(): ITrackedClient | undefined;
277
- /** Returns a sorted array of all the eligible clients in the collection. */
333
+ /**
334
+ * Returns a sorted array of all the eligible clients in the collection.
335
+ */
278
336
  getAllEligibleClients(): ITrackedClient[];
279
- /** Serialize election data */
337
+ /**
338
+ * Serialize election data
339
+ */
280
340
  serialize(): ISerializedElection;
281
341
  }
282
342
 
@@ -295,10 +355,10 @@ export class OrderedClientElection
295
355
  private _electedParent: ILinkedClient | undefined;
296
356
  private _electionSequenceNumber: number;
297
357
 
298
- public get eligibleCount() {
358
+ public get eligibleCount(): number {
299
359
  return this._eligibleCount;
300
360
  }
301
- public get electionSequenceNumber() {
361
+ public get electionSequenceNumber(): number {
302
362
  return this._electionSequenceNumber;
303
363
  }
304
364
 
@@ -338,17 +398,19 @@ export class OrderedClientElection
338
398
  *
339
399
  * vii. SummaryManager running on B spawns a summarizer client, B'. electedParent === B, electedClient === B'
340
400
  */
341
- public get electedClient() {
401
+ public get electedClient(): ILinkedClient | undefined {
342
402
  return this._electedClient;
343
403
  }
344
- public get electedParent() {
404
+ public get electedParent(): ILinkedClient | undefined {
345
405
  return this._electedParent;
346
406
  }
347
407
 
348
408
  constructor(
349
409
  private readonly logger: ITelemetryLoggerExt,
350
410
  private readonly orderedClientCollection: IOrderedClientCollection,
351
- /** Serialized state from summary or current sequence number at time of load if new. */
411
+ /**
412
+ * Serialized state from summary or current sequence number at time of load if new.
413
+ */
352
414
  initialState: ISerializedElection | number,
353
415
  private readonly isEligibleFn: (c: ITrackedClient) => boolean,
354
416
  private readonly recordPerformanceEvents: boolean = false,
@@ -617,7 +679,7 @@ export class OrderedClientElection
617
679
  sequenceNumber: number,
618
680
  forceSend: boolean = false,
619
681
  reason?: string,
620
- ) {
682
+ ): void {
621
683
  if (this.recordPerformanceEvents || forceSend) {
622
684
  this.logger.sendPerformanceEvent({
623
685
  eventName,
@@ -36,7 +36,7 @@ export class RunWhileConnectedCoordinator implements ICancellableSummarizerContr
36
36
  private _cancelled = false;
37
37
  private readonly stopDeferred = new Deferred<SummarizerStopReason>();
38
38
 
39
- public get cancelled() {
39
+ public get cancelled(): boolean {
40
40
  if (!this._cancelled) {
41
41
  assert(this.active(), 0x25d /* "We should never connect as 'read'" */);
42
42
 
@@ -63,7 +63,10 @@ export class RunWhileConnectedCoordinator implements ICancellableSummarizerContr
63
63
  return this.stopDeferred.promise;
64
64
  }
65
65
 
66
- public static async create(runtime: IConnectableRuntime, active: () => boolean) {
66
+ public static async create(
67
+ runtime: IConnectableRuntime,
68
+ active: () => boolean,
69
+ ): Promise<RunWhileConnectedCoordinator> {
67
70
  const obj = new RunWhileConnectedCoordinator(runtime, active);
68
71
  await obj.waitStart();
69
72
  return obj;
@@ -87,7 +90,7 @@ export class RunWhileConnectedCoordinator implements ICancellableSummarizerContr
87
90
  * of non-summarized ops, where can make determination to continue with summary even if main
88
91
  * client is disconnected.
89
92
  */
90
- protected async waitStart() {
93
+ protected async waitStart(): Promise<void> {
91
94
  if (this.runtime.disposed) {
92
95
  this.stop("summarizerClientDisconnected");
93
96
  return;
@@ -23,6 +23,7 @@ import {
23
23
  createChildLogger,
24
24
  createChildMonitoringContext,
25
25
  isFluidError,
26
+ type ITelemetryLoggerExt,
26
27
  } from "@fluidframework/telemetry-utils/internal";
27
28
 
28
29
  import { ISummaryConfiguration } from "../containerRuntime.js";
@@ -163,7 +164,7 @@ export class RunningSummarizer
163
164
  return summarizer;
164
165
  }
165
166
 
166
- public get disposed() {
167
+ public get disposed(): boolean {
167
168
  return this._disposed;
168
169
  }
169
170
  private stopping = false;
@@ -189,7 +190,9 @@ export class RunningSummarizer
189
190
 
190
191
  private readonly runtimeListener;
191
192
 
192
- /** The maximum number of summary attempts to do when submit summary fails. */
193
+ /**
194
+ * The maximum number of summary attempts to do when submit summary fails.
195
+ */
193
196
  private readonly maxAttemptsForSubmitFailures: number;
194
197
 
195
198
  /**
@@ -317,7 +320,7 @@ export class RunningSummarizer
317
320
  : defaultMaxAttemptsForSubmitFailures;
318
321
  }
319
322
 
320
- private async handleSummaryAck(ack: IAckedSummary) {
323
+ private async handleSummaryAck(ack: IAckedSummary): Promise<void> {
321
324
  const refSequenceNumber = ack.summaryOp.referenceSequenceNumber;
322
325
  const summaryLogger = this.tryGetCorrelatedLogger(refSequenceNumber) ?? this.mc.logger;
323
326
  const summaryOpHandle = ack.summaryOp.contents.handle;
@@ -352,7 +355,7 @@ export class RunningSummarizer
352
355
 
353
356
  private readonly refreshLatestSummaryAckAndHandleError = async (
354
357
  options: IRefreshSummaryAckOptions,
355
- ) => {
358
+ ): Promise<void> => {
356
359
  return this.refreshLatestSummaryAckCallback(options).catch(async (error) => {
357
360
  // If the error is 404, so maybe the fetched version no longer exists on server. We just
358
361
  // ignore this error in that case, as that means we will have another summaryAck for the
@@ -387,7 +390,7 @@ export class RunningSummarizer
387
390
  * @param referenceSequenceNumber - The referenceSequenceNumber of the summary from which to start processing
388
391
  * acks.
389
392
  */
390
- private async processIncomingSummaryAcks(referenceSequenceNumber: number) {
393
+ private async processIncomingSummaryAcks(referenceSequenceNumber: number): Promise<void> {
391
394
  // Start waiting for acks that are for summaries newer that the one this client loaded from.
392
395
  let nextReferenceSequenceNumber = referenceSequenceNumber;
393
396
  while (!this.disposed) {
@@ -417,15 +420,19 @@ export class RunningSummarizer
417
420
  * but only if they're logging about that same summary.
418
421
  * @param summaryOpRefSeq - RefSeq number of the summary op, to ensure the log correlation will be correct
419
422
  */
420
- public tryGetCorrelatedLogger = (summaryOpRefSeq) =>
423
+ public tryGetCorrelatedLogger = (
424
+ summaryOpRefSeq: number,
425
+ ): ITelemetryLoggerExt | undefined =>
421
426
  this.heuristicData.lastAttempt.refSequenceNumber === summaryOpRefSeq
422
427
  ? this.mc.logger
423
428
  : undefined;
424
429
 
425
- /** We only want a single heuristic runner micro-task (will provide better optimized grouping of ops) */
430
+ /**
431
+ * We only want a single heuristic runner micro-task (will provide better optimized grouping of ops)
432
+ */
426
433
  private heuristicRunnerMicroTaskExists = false;
427
434
 
428
- public handleOp(op: ISequencedDocumentMessage, runtimeMessage: boolean) {
435
+ public handleOp(op: ISequencedDocumentMessage, runtimeMessage: boolean): void {
429
436
  this.heuristicData.lastOpSequenceNumber = op.sequenceNumber;
430
437
 
431
438
  if (runtimeMessage) {
@@ -525,7 +532,7 @@ export class RunningSummarizer
525
532
  this.lastSummarizeFailureEventProps = undefined;
526
533
  }
527
534
 
528
- private async waitStart() {
535
+ private async waitStart(): Promise<void> {
529
536
  // Wait no longer than ack timeout for all pending
530
537
  const waitStartResult = await raceTimer(
531
538
  this.summaryWatcher.waitFlushed(),
@@ -548,11 +555,11 @@ export class RunningSummarizer
548
555
  this.initialized = true;
549
556
  }
550
557
 
551
- private beforeSummaryAction() {
558
+ private beforeSummaryAction(): void {
552
559
  this.summarizeCount++;
553
560
  }
554
561
 
555
- private afterSummaryAction() {
562
+ private afterSummaryAction(): void {
556
563
  const retry = this.tryWhileSummarizing;
557
564
  this.tryWhileSummarizing = false;
558
565
 
@@ -576,7 +583,7 @@ export class RunningSummarizer
576
583
  before: () => void,
577
584
  action: () => Promise<T>,
578
585
  after: () => void,
579
- ) {
586
+ ): Promise<T> {
580
587
  assert(
581
588
  this.summarizingLock === undefined,
582
589
  0x25b /* "Caller is responsible for checking lock" */,
@@ -680,7 +687,9 @@ export class RunningSummarizer
680
687
  return resultsBuilder.build();
681
688
  }
682
689
 
683
- /** Heuristics summarize attempt. */
690
+ /**
691
+ * Heuristics summarize attempt.
692
+ */
684
693
  private trySummarize(reason: SummarizeReason): void {
685
694
  if (this.summarizingLock !== undefined) {
686
695
  // lockedSummaryAction() will retry heuristic-based summary at the end of current attempt
@@ -712,7 +721,13 @@ export class RunningSummarizer
712
721
  reason: SummarizeReason,
713
722
  ): Promise<ISummarizeResults | undefined> {
714
723
  // Helper to set summarize options, telemetry properties and call summarize.
715
- const attemptSummarize = (attemptNumber: number, finalAttempt: boolean) => {
724
+ const attemptSummarize = (
725
+ attemptNumber: number,
726
+ finalAttempt: boolean,
727
+ ): {
728
+ summarizeProps: ISummarizeTelemetryProperties;
729
+ summarizeResult: ISummarizeResults;
730
+ } => {
716
731
  const summarizeOptions: ISummarizeOptions = {
717
732
  fullTree: false,
718
733
  };
@@ -878,7 +893,7 @@ export class RunningSummarizer
878
893
  private async summarizeOnDemandWithRetries(
879
894
  reason: SummarizeReason,
880
895
  resultsBuilder: SummarizeResultBuilder,
881
- ) {
896
+ ): Promise<ISummarizeResults> {
882
897
  const results = await this.trySummarizeWithRetries(reason);
883
898
  if (results === undefined) {
884
899
  resultsBuilder.fail(
@@ -896,7 +911,9 @@ export class RunningSummarizer
896
911
  return resultsBuilder.build();
897
912
  }
898
913
 
899
- /** {@inheritdoc (ISummarizer:interface).summarizeOnDemand} */
914
+ /**
915
+ * {@inheritdoc (ISummarizer:interface).summarizeOnDemand}
916
+ */
900
917
  public summarizeOnDemand(
901
918
  options: IOnDemandSummarizeOptions,
902
919
  resultsBuilder: SummarizeResultBuilder = new SummarizeResultBuilder(),
@@ -932,7 +949,9 @@ export class RunningSummarizer
932
949
  return resultsBuilder.build();
933
950
  }
934
951
 
935
- /** {@inheritdoc (ISummarizer:interface).enqueueSummarize} */
952
+ /**
953
+ * {@inheritdoc (ISummarizer:interface).enqueueSummarize}
954
+ */
936
955
  public enqueueSummarize(options: IEnqueueSummarizeOptions): EnqueueSummarizeResult {
937
956
  const { reason, afterSequenceNumber = 0, override = false, ...summarizeOptions } = options;
938
957
  let overridden = false;
@@ -968,7 +987,7 @@ export class RunningSummarizer
968
987
  : results;
969
988
  }
970
989
 
971
- private tryRunEnqueuedSummary() {
990
+ private tryRunEnqueuedSummary(): boolean {
972
991
  if (this.stopping) {
973
992
  this.disposeEnqueuedSummary();
974
993
  return false;
@@ -992,7 +1011,7 @@ export class RunningSummarizer
992
1011
  return true;
993
1012
  }
994
1013
 
995
- private disposeEnqueuedSummary() {
1014
+ private disposeEnqueuedSummary(): void {
996
1015
  if (this.enqueuedSummary !== undefined) {
997
1016
  this.enqueuedSummary.resultsBuilder.fail(
998
1017
  "RunningSummarizer stopped or disposed",