@fluidframework/container-runtime 2.12.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 (440) hide show
  1. package/.eslintrc.cjs +36 -0
  2. package/CHANGELOG.md +50 -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 +2 -1
  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/gcSummaryDefinitions.d.ts +18 -6
  66. package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -1
  67. package/dist/gc/gcSummaryDefinitions.js.map +1 -1
  68. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  69. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  70. package/dist/gc/gcTelemetry.d.ts +33 -11
  71. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  72. package/dist/gc/gcTelemetry.js +6 -2
  73. package/dist/gc/gcTelemetry.js.map +1 -1
  74. package/dist/gc/gcUnreferencedStateTracker.d.ts +42 -13
  75. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  76. package/dist/gc/gcUnreferencedStateTracker.js +27 -9
  77. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  78. package/dist/gc/index.d.ts +1 -0
  79. package/dist/gc/index.d.ts.map +1 -1
  80. package/dist/gc/index.js +3 -1
  81. package/dist/gc/index.js.map +1 -1
  82. package/dist/inboundBatchAggregator.d.ts +34 -0
  83. package/dist/inboundBatchAggregator.d.ts.map +1 -0
  84. package/dist/inboundBatchAggregator.js +185 -0
  85. package/dist/inboundBatchAggregator.js.map +1 -0
  86. package/dist/index.d.ts +1 -1
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js.map +1 -1
  89. package/dist/legacy.d.ts +0 -4
  90. package/dist/messageTypes.d.ts +14 -5
  91. package/dist/messageTypes.d.ts.map +1 -1
  92. package/dist/messageTypes.js.map +1 -1
  93. package/dist/metadata.d.ts +12 -4
  94. package/dist/metadata.d.ts.map +1 -1
  95. package/dist/metadata.js +6 -2
  96. package/dist/metadata.js.map +1 -1
  97. package/dist/opLifecycle/batchManager.d.ts +9 -3
  98. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  99. package/dist/opLifecycle/batchManager.js +3 -1
  100. package/dist/opLifecycle/batchManager.js.map +1 -1
  101. package/dist/opLifecycle/duplicateBatchDetector.d.ts +9 -3
  102. package/dist/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
  103. package/dist/opLifecycle/duplicateBatchDetector.js +9 -3
  104. package/dist/opLifecycle/duplicateBatchDetector.js.map +1 -1
  105. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  106. package/dist/opLifecycle/opCompressor.js.map +1 -1
  107. package/dist/opLifecycle/opDecompressor.d.ts +3 -1
  108. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  109. package/dist/opLifecycle/opDecompressor.js +12 -8
  110. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  111. package/dist/opLifecycle/opGroupingManager.d.ts +0 -1
  112. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  113. package/dist/opLifecycle/opGroupingManager.js +5 -4
  114. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  115. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  116. package/dist/opLifecycle/opSplitter.js +2 -1
  117. package/dist/opLifecycle/opSplitter.js.map +1 -1
  118. package/dist/opLifecycle/outbox.d.ts +1 -1
  119. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  120. package/dist/opLifecycle/outbox.js +6 -1
  121. package/dist/opLifecycle/outbox.js.map +1 -1
  122. package/dist/opLifecycle/remoteMessageProcessor.d.ts +9 -3
  123. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  124. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  125. package/dist/package.json +2 -1
  126. package/dist/packageVersion.d.ts +1 -1
  127. package/dist/packageVersion.js +1 -1
  128. package/dist/packageVersion.js.map +1 -1
  129. package/dist/pendingStateManager.d.ts +22 -6
  130. package/dist/pendingStateManager.d.ts.map +1 -1
  131. package/dist/pendingStateManager.js +43 -5
  132. package/dist/pendingStateManager.js.map +1 -1
  133. package/dist/summary/documentSchema.d.ts.map +1 -1
  134. package/dist/summary/documentSchema.js +2 -0
  135. package/dist/summary/documentSchema.js.map +1 -1
  136. package/dist/summary/index.d.ts +1 -1
  137. package/dist/summary/index.d.ts.map +1 -1
  138. package/dist/summary/index.js.map +1 -1
  139. package/dist/summary/orderedClientElection.d.ts +93 -31
  140. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  141. package/dist/summary/orderedClientElection.js +15 -5
  142. package/dist/summary/orderedClientElection.js.map +1 -1
  143. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  144. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  145. package/dist/summary/runningSummarizer.d.ts +17 -6
  146. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  147. package/dist/summary/runningSummarizer.js +12 -4
  148. package/dist/summary/runningSummarizer.js.map +1 -1
  149. package/dist/summary/summarizer.d.ts +9 -5
  150. package/dist/summary/summarizer.d.ts.map +1 -1
  151. package/dist/summary/summarizer.js +9 -3
  152. package/dist/summary/summarizer.js.map +1 -1
  153. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  154. package/dist/summary/summarizerClientElection.js.map +1 -1
  155. package/dist/summary/summarizerHeuristics.d.ts +6 -2
  156. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  157. package/dist/summary/summarizerHeuristics.js +12 -4
  158. package/dist/summary/summarizerHeuristics.js.map +1 -1
  159. package/dist/summary/summarizerNode/summarizerNode.d.ts +24 -8
  160. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  161. package/dist/summary/summarizerNode/summarizerNode.js +15 -5
  162. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  163. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
  164. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  165. package/dist/summary/summarizerNode/summarizerNodeUtils.js +3 -1
  166. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  167. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +12 -4
  168. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  169. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +12 -4
  170. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  171. package/dist/summary/summarizerTypes.d.ts +246 -135
  172. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  173. package/dist/summary/summarizerTypes.js.map +1 -1
  174. package/dist/summary/summaryCollection.d.ts.map +1 -1
  175. package/dist/summary/summaryCollection.js +1 -4
  176. package/dist/summary/summaryCollection.js.map +1 -1
  177. package/dist/summary/summaryFormat.d.ts +24 -8
  178. package/dist/summary/summaryFormat.d.ts.map +1 -1
  179. package/dist/summary/summaryFormat.js.map +1 -1
  180. package/dist/summary/summaryGenerator.d.ts +9 -3
  181. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  182. package/dist/summary/summaryGenerator.js +3 -1
  183. package/dist/summary/summaryGenerator.js.map +1 -1
  184. package/dist/summary/summaryManager.d.ts +8 -4
  185. package/dist/summary/summaryManager.d.ts.map +1 -1
  186. package/dist/summary/summaryManager.js +12 -4
  187. package/dist/summary/summaryManager.js.map +1 -1
  188. package/dist/throttler.d.ts +26 -10
  189. package/dist/throttler.d.ts.map +1 -1
  190. package/dist/throttler.js +12 -4
  191. package/dist/throttler.js.map +1 -1
  192. package/lib/batchTracker.d.ts.map +1 -1
  193. package/lib/batchTracker.js.map +1 -1
  194. package/lib/blobManager/blobManager.d.ts +5 -1
  195. package/lib/blobManager/blobManager.d.ts.map +1 -1
  196. package/lib/blobManager/blobManager.js +16 -2
  197. package/lib/blobManager/blobManager.js.map +1 -1
  198. package/lib/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  199. package/lib/blobManager/blobManagerSnapSum.js.map +1 -1
  200. package/lib/channelCollection.d.ts +23 -12
  201. package/lib/channelCollection.d.ts.map +1 -1
  202. package/lib/channelCollection.js +22 -12
  203. package/lib/channelCollection.js.map +1 -1
  204. package/lib/connectionTelemetry.d.ts.map +1 -1
  205. package/lib/connectionTelemetry.js +6 -2
  206. package/lib/connectionTelemetry.js.map +1 -1
  207. package/lib/containerHandleContext.d.ts +1 -1
  208. package/lib/containerHandleContext.d.ts.map +1 -1
  209. package/lib/containerHandleContext.js.map +1 -1
  210. package/lib/containerRuntime.d.ts +74 -65
  211. package/lib/containerRuntime.d.ts.map +1 -1
  212. package/lib/containerRuntime.js +53 -37
  213. package/lib/containerRuntime.js.map +1 -1
  214. package/lib/dataStore.d.ts +7 -3
  215. package/lib/dataStore.d.ts.map +1 -1
  216. package/lib/dataStore.js +2 -1
  217. package/lib/dataStore.js.map +1 -1
  218. package/lib/dataStoreContext.d.ts +41 -25
  219. package/lib/dataStoreContext.d.ts.map +1 -1
  220. package/lib/dataStoreContext.js +31 -18
  221. package/lib/dataStoreContext.js.map +1 -1
  222. package/lib/dataStoreContexts.d.ts +6 -2
  223. package/lib/dataStoreContexts.d.ts.map +1 -1
  224. package/lib/dataStoreContexts.js +6 -2
  225. package/lib/dataStoreContexts.js.map +1 -1
  226. package/lib/dataStoreRegistry.d.ts +1 -1
  227. package/lib/dataStoreRegistry.d.ts.map +1 -1
  228. package/lib/dataStoreRegistry.js.map +1 -1
  229. package/lib/deltaManagerProxies.d.ts +1 -17
  230. package/lib/deltaManagerProxies.d.ts.map +1 -1
  231. package/lib/deltaManagerProxies.js.map +1 -1
  232. package/lib/deltaScheduler.d.ts +9 -6
  233. package/lib/deltaScheduler.d.ts.map +1 -1
  234. package/lib/deltaScheduler.js +95 -89
  235. package/lib/deltaScheduler.js.map +1 -1
  236. package/lib/gc/garbageCollection.d.ts +21 -7
  237. package/lib/gc/garbageCollection.d.ts.map +1 -1
  238. package/lib/gc/garbageCollection.js +12 -5
  239. package/lib/gc/garbageCollection.js.map +1 -1
  240. package/lib/gc/gcConfigs.d.ts +11 -0
  241. package/lib/gc/gcConfigs.d.ts.map +1 -1
  242. package/lib/gc/gcConfigs.js +1 -1
  243. package/lib/gc/gcConfigs.js.map +1 -1
  244. package/lib/gc/gcDefinitions.d.ts +210 -70
  245. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  246. package/lib/gc/gcDefinitions.js +39 -13
  247. package/lib/gc/gcDefinitions.js.map +1 -1
  248. package/lib/gc/gcHelpers.d.ts +6 -2
  249. package/lib/gc/gcHelpers.d.ts.map +1 -1
  250. package/lib/gc/gcHelpers.js +6 -2
  251. package/lib/gc/gcHelpers.js.map +1 -1
  252. package/lib/gc/gcSummaryDefinitions.d.ts +18 -6
  253. package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -1
  254. package/lib/gc/gcSummaryDefinitions.js.map +1 -1
  255. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  256. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  257. package/lib/gc/gcTelemetry.d.ts +33 -11
  258. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  259. package/lib/gc/gcTelemetry.js +6 -2
  260. package/lib/gc/gcTelemetry.js.map +1 -1
  261. package/lib/gc/gcUnreferencedStateTracker.d.ts +42 -13
  262. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  263. package/lib/gc/gcUnreferencedStateTracker.js +27 -9
  264. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
  265. package/lib/gc/index.d.ts +1 -0
  266. package/lib/gc/index.d.ts.map +1 -1
  267. package/lib/gc/index.js +1 -0
  268. package/lib/gc/index.js.map +1 -1
  269. package/lib/inboundBatchAggregator.d.ts +34 -0
  270. package/lib/inboundBatchAggregator.d.ts.map +1 -0
  271. package/lib/inboundBatchAggregator.js +181 -0
  272. package/lib/inboundBatchAggregator.js.map +1 -0
  273. package/lib/index.d.ts +1 -1
  274. package/lib/index.d.ts.map +1 -1
  275. package/lib/index.js.map +1 -1
  276. package/lib/legacy.d.ts +0 -4
  277. package/lib/messageTypes.d.ts +14 -5
  278. package/lib/messageTypes.d.ts.map +1 -1
  279. package/lib/messageTypes.js.map +1 -1
  280. package/lib/metadata.d.ts +12 -4
  281. package/lib/metadata.d.ts.map +1 -1
  282. package/lib/metadata.js +6 -2
  283. package/lib/metadata.js.map +1 -1
  284. package/lib/opLifecycle/batchManager.d.ts +9 -3
  285. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  286. package/lib/opLifecycle/batchManager.js +3 -1
  287. package/lib/opLifecycle/batchManager.js.map +1 -1
  288. package/lib/opLifecycle/duplicateBatchDetector.d.ts +9 -3
  289. package/lib/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
  290. package/lib/opLifecycle/duplicateBatchDetector.js +9 -3
  291. package/lib/opLifecycle/duplicateBatchDetector.js.map +1 -1
  292. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  293. package/lib/opLifecycle/opCompressor.js +1 -1
  294. package/lib/opLifecycle/opCompressor.js.map +1 -1
  295. package/lib/opLifecycle/opDecompressor.d.ts +3 -1
  296. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  297. package/lib/opLifecycle/opDecompressor.js +13 -9
  298. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  299. package/lib/opLifecycle/opGroupingManager.d.ts +0 -1
  300. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  301. package/lib/opLifecycle/opGroupingManager.js +6 -5
  302. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  303. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  304. package/lib/opLifecycle/opSplitter.js +2 -1
  305. package/lib/opLifecycle/opSplitter.js.map +1 -1
  306. package/lib/opLifecycle/outbox.d.ts +1 -1
  307. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  308. package/lib/opLifecycle/outbox.js +6 -1
  309. package/lib/opLifecycle/outbox.js.map +1 -1
  310. package/lib/opLifecycle/remoteMessageProcessor.d.ts +9 -3
  311. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  312. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  313. package/lib/packageVersion.d.ts +1 -1
  314. package/lib/packageVersion.js +1 -1
  315. package/lib/packageVersion.js.map +1 -1
  316. package/lib/pendingStateManager.d.ts +22 -6
  317. package/lib/pendingStateManager.d.ts.map +1 -1
  318. package/lib/pendingStateManager.js +41 -4
  319. package/lib/pendingStateManager.js.map +1 -1
  320. package/lib/summary/documentSchema.d.ts.map +1 -1
  321. package/lib/summary/documentSchema.js +2 -0
  322. package/lib/summary/documentSchema.js.map +1 -1
  323. package/lib/summary/index.d.ts +1 -1
  324. package/lib/summary/index.d.ts.map +1 -1
  325. package/lib/summary/index.js.map +1 -1
  326. package/lib/summary/orderedClientElection.d.ts +93 -31
  327. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  328. package/lib/summary/orderedClientElection.js +15 -5
  329. package/lib/summary/orderedClientElection.js.map +1 -1
  330. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  331. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  332. package/lib/summary/runningSummarizer.d.ts +17 -6
  333. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  334. package/lib/summary/runningSummarizer.js +12 -4
  335. package/lib/summary/runningSummarizer.js.map +1 -1
  336. package/lib/summary/summarizer.d.ts +9 -5
  337. package/lib/summary/summarizer.d.ts.map +1 -1
  338. package/lib/summary/summarizer.js +9 -3
  339. package/lib/summary/summarizer.js.map +1 -1
  340. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  341. package/lib/summary/summarizerClientElection.js.map +1 -1
  342. package/lib/summary/summarizerHeuristics.d.ts +6 -2
  343. package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
  344. package/lib/summary/summarizerHeuristics.js +12 -4
  345. package/lib/summary/summarizerHeuristics.js.map +1 -1
  346. package/lib/summary/summarizerNode/summarizerNode.d.ts +24 -8
  347. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  348. package/lib/summary/summarizerNode/summarizerNode.js +15 -5
  349. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  350. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
  351. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  352. package/lib/summary/summarizerNode/summarizerNodeUtils.js +3 -1
  353. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  354. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +12 -4
  355. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  356. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +12 -4
  357. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  358. package/lib/summary/summarizerTypes.d.ts +246 -135
  359. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  360. package/lib/summary/summarizerTypes.js.map +1 -1
  361. package/lib/summary/summaryCollection.d.ts.map +1 -1
  362. package/lib/summary/summaryCollection.js +1 -4
  363. package/lib/summary/summaryCollection.js.map +1 -1
  364. package/lib/summary/summaryFormat.d.ts +24 -8
  365. package/lib/summary/summaryFormat.d.ts.map +1 -1
  366. package/lib/summary/summaryFormat.js.map +1 -1
  367. package/lib/summary/summaryGenerator.d.ts +9 -3
  368. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  369. package/lib/summary/summaryGenerator.js +3 -1
  370. package/lib/summary/summaryGenerator.js.map +1 -1
  371. package/lib/summary/summaryManager.d.ts +8 -4
  372. package/lib/summary/summaryManager.d.ts.map +1 -1
  373. package/lib/summary/summaryManager.js +12 -4
  374. package/lib/summary/summaryManager.js.map +1 -1
  375. package/lib/throttler.d.ts +26 -10
  376. package/lib/throttler.d.ts.map +1 -1
  377. package/lib/throttler.js +12 -4
  378. package/lib/throttler.js.map +1 -1
  379. package/package.json +44 -31
  380. package/src/batchTracker.ts +31 -33
  381. package/src/blobManager/blobManager.ts +38 -19
  382. package/src/blobManager/blobManagerSnapSum.ts +1 -1
  383. package/src/channelCollection.ts +44 -37
  384. package/src/connectionTelemetry.ts +31 -13
  385. package/src/containerHandleContext.ts +2 -2
  386. package/src/containerRuntime.ts +198 -140
  387. package/src/dataStore.ts +11 -6
  388. package/src/dataStoreContext.ts +80 -59
  389. package/src/dataStoreContexts.ts +16 -12
  390. package/src/dataStoreRegistry.ts +1 -1
  391. package/src/deltaManagerProxies.ts +5 -5
  392. package/src/deltaScheduler.ts +19 -13
  393. package/src/gc/garbageCollection.ts +41 -18
  394. package/src/gc/gcConfigs.ts +4 -4
  395. package/src/gc/gcDefinitions.ts +212 -70
  396. package/src/gc/gcHelpers.ts +11 -5
  397. package/src/gc/gcSummaryDefinitions.ts +18 -6
  398. package/src/gc/gcSummaryStateTracker.ts +4 -2
  399. package/src/gc/gcTelemetry.ts +47 -19
  400. package/src/gc/gcUnreferencedStateTracker.ts +40 -16
  401. package/src/gc/index.ts +1 -0
  402. package/src/{scheduleManager.ts → inboundBatchAggregator.ts} +54 -121
  403. package/src/index.ts +0 -3
  404. package/src/messageTypes.ts +14 -5
  405. package/src/metadata.ts +12 -4
  406. package/src/opLifecycle/batchManager.ts +12 -6
  407. package/src/opLifecycle/duplicateBatchDetector.ts +10 -4
  408. package/src/opLifecycle/opCompressor.ts +8 -4
  409. package/src/opLifecycle/opDecompressor.ts +20 -11
  410. package/src/opLifecycle/opGroupingManager.ts +12 -8
  411. package/src/opLifecycle/opSplitter.ts +11 -8
  412. package/src/opLifecycle/outbox.ts +22 -13
  413. package/src/opLifecycle/remoteMessageProcessor.ts +10 -4
  414. package/src/packageVersion.ts +1 -1
  415. package/src/pendingStateManager.ts +71 -15
  416. package/src/summary/documentSchema.ts +30 -18
  417. package/src/summary/index.ts +0 -3
  418. package/src/summary/orderedClientElection.ts +100 -38
  419. package/src/summary/runWhileConnectedCoordinator.ts +6 -3
  420. package/src/summary/runningSummarizer.ts +38 -19
  421. package/src/summary/summarizer.ts +29 -16
  422. package/src/summary/summarizerClientElection.ts +2 -2
  423. package/src/summary/summarizerHeuristics.ts +22 -11
  424. package/src/summary/summarizerNode/summarizerNode.ts +22 -12
  425. package/src/summary/summarizerNode/summarizerNodeUtils.ts +48 -16
  426. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +21 -11
  427. package/src/summary/summarizerTypes.ts +246 -139
  428. package/src/summary/summaryCollection.ts +24 -25
  429. package/src/summary/summaryFormat.ts +24 -8
  430. package/src/summary/summaryGenerator.ts +14 -8
  431. package/src/summary/summaryManager.ts +28 -18
  432. package/src/throttler.ts +23 -11
  433. package/dist/scheduleManager.d.ts +0 -28
  434. package/dist/scheduleManager.d.ts.map +0 -1
  435. package/dist/scheduleManager.js +0 -235
  436. package/dist/scheduleManager.js.map +0 -1
  437. package/lib/scheduleManager.d.ts +0 -28
  438. package/lib/scheduleManager.d.ts.map +0 -1
  439. package/lib/scheduleManager.js +0 -231
  440. package/lib/scheduleManager.js.map +0 -1
@@ -78,12 +78,12 @@ enum SummaryState {
78
78
  }
79
79
 
80
80
  class Summary implements ISummary {
81
- public static createLocal(clientId: string, clientSequenceNumber: number) {
81
+ public static createLocal(clientId: string, clientSequenceNumber: number): Summary {
82
82
  return new Summary(clientId, clientSequenceNumber);
83
83
  }
84
- public static createFromOp(op: ISummaryOpMessage) {
84
+ public static createFromOp(op: ISummaryOpMessage): Summary {
85
85
  // TODO: Verify whether this should be able to handle server-generated ops (with null clientId)
86
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
86
+
87
87
  const summary = new Summary(op.clientId as string, op.clientSequenceNumber);
88
88
  summary.broadcast(op);
89
89
  return summary;
@@ -97,10 +97,10 @@ class Summary implements ISummary {
97
97
  private readonly defSummaryOp = new Deferred<void>();
98
98
  private readonly defSummaryAck = new Deferred<void>();
99
99
 
100
- public get summaryOp() {
100
+ public get summaryOp(): ISummaryOpMessage | undefined {
101
101
  return this._summaryOp;
102
102
  }
103
- public get summaryAckNack() {
103
+ public get summaryAckNack(): ISummaryAckMessage | ISummaryNackMessage | undefined {
104
104
  return this._summaryAckNack;
105
105
  }
106
106
 
@@ -113,7 +113,7 @@ class Summary implements ISummary {
113
113
  return this.state === SummaryState.Acked;
114
114
  }
115
115
 
116
- public broadcast(op: ISummaryOpMessage) {
116
+ public broadcast(op: ISummaryOpMessage): boolean {
117
117
  assert(
118
118
  this.state === SummaryState.Local,
119
119
  0x175 /* "Can only broadcast if summarizer starts in local state" */,
@@ -124,7 +124,7 @@ class Summary implements ISummary {
124
124
  return true;
125
125
  }
126
126
 
127
- public ackNack(op: ISummaryAckMessage | ISummaryNackMessage) {
127
+ public ackNack(op: ISummaryAckMessage | ISummaryNackMessage): boolean {
128
128
  assert(
129
129
  this.state === SummaryState.Broadcast,
130
130
  0x176 /* "Can only ack/nack if summarizer is in broadcasting state" */,
@@ -167,7 +167,7 @@ class ClientSummaryWatcher implements IClientSummaryWatcher {
167
167
  private readonly localSummaries = new Map<number, Summary>();
168
168
  private _disposed = false;
169
169
 
170
- public get disposed() {
170
+ public get disposed(): boolean {
171
171
  return this._disposed;
172
172
  }
173
173
 
@@ -193,8 +193,7 @@ class ClientSummaryWatcher implements IClientSummaryWatcher {
193
193
  * Waits until all of the pending summaries in the underlying SummaryCollection
194
194
  * are acked/nacked.
195
195
  */
196
- // eslint-disable-next-line @typescript-eslint/promise-function-async
197
- public waitFlushed() {
196
+ public async waitFlushed(): Promise<IAckedSummary | undefined> {
198
197
  return this.summaryCollection.waitFlushed();
199
198
  }
200
199
 
@@ -202,7 +201,7 @@ class ClientSummaryWatcher implements IClientSummaryWatcher {
202
201
  * Gets a watched summary or returns undefined if not watched.
203
202
  * @param clientSequenceNumber - client sequence number of sent summary op
204
203
  */
205
- public tryGetSummary(clientSequenceNumber: number) {
204
+ public tryGetSummary(clientSequenceNumber: number): Summary | undefined {
206
205
  return this.localSummaries.get(clientSequenceNumber);
207
206
  }
208
207
 
@@ -210,11 +209,11 @@ class ClientSummaryWatcher implements IClientSummaryWatcher {
210
209
  * Starts watching a summary made by this client.
211
210
  * @param summary - summary to start watching
212
211
  */
213
- public setSummary(summary: Summary) {
212
+ public setSummary(summary: Summary): void {
214
213
  this.localSummaries.set(summary.clientSequenceNumber, summary);
215
214
  }
216
215
 
217
- public dispose() {
216
+ public dispose(): void {
218
217
  this.summaryCollection.removeWatcher(this.clientId);
219
218
  this._disposed = true;
220
219
  }
@@ -270,18 +269,18 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
270
269
  return super.emit(event, ...args);
271
270
  }
272
271
 
273
- public get opsSinceLastAck() {
272
+ public get opsSinceLastAck(): number {
274
273
  return (
275
274
  this.deltaManager.lastSequenceNumber -
276
275
  (this.lastAck?.summaryAck.sequenceNumber ?? this.deltaManager.initialSequenceNumber)
277
276
  );
278
277
  }
279
278
 
280
- public addOpListener(listener: () => void) {
279
+ public addOpListener(listener: () => void): void {
281
280
  this.deltaManager.on("op", listener);
282
281
  }
283
282
 
284
- public removeOpListener(listener: () => void) {
283
+ public removeOpListener(listener: () => void): void {
285
284
  this.deltaManager.off("op", listener);
286
285
  }
287
286
 
@@ -304,19 +303,19 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
304
303
  return watcher;
305
304
  }
306
305
 
307
- public removeWatcher(clientId: string) {
306
+ public removeWatcher(clientId: string): void {
308
307
  this.summaryWatchers.delete(clientId);
309
308
  }
310
309
 
311
310
  public setPendingAckTimerTimeoutCallback(
312
311
  maxAckWaitTime: number,
313
312
  timeoutCallback: () => void,
314
- ) {
313
+ ): void {
315
314
  this.maxAckWaitTime = maxAckWaitTime;
316
315
  this.pendingAckTimerTimeoutCallback = timeoutCallback;
317
316
  }
318
317
 
319
- public unsetPendingAckTimerTimeoutCallback() {
318
+ public unsetPendingAckTimerTimeoutCallback(): void {
320
319
  this.maxAckWaitTime = undefined;
321
320
  this.pendingAckTimerTimeoutCallback = undefined;
322
321
  }
@@ -352,7 +351,7 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
352
351
  return this.lastAck;
353
352
  }
354
353
 
355
- private parseContent(op: ISequencedDocumentMessage) {
354
+ private parseContent(op: ISequencedDocumentMessage): void {
356
355
  // This should become unconditional once (Loader LTS) reaches 2.4 or later
357
356
  // There will be a long time of needing both cases, until LTS catches up to the change.
358
357
  // That said, we may instead move to listen for "op" events from ContainerRuntime,
@@ -366,7 +365,7 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
366
365
  * Handler for ops; only handles ops relating to summaries.
367
366
  * @param op - op message to handle
368
367
  */
369
- private handleOp(opArg: ISequencedDocumentMessage) {
368
+ private handleOp(opArg: ISequencedDocumentMessage): void {
370
369
  const op = { ...opArg };
371
370
 
372
371
  switch (op.type) {
@@ -403,12 +402,12 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
403
402
  }
404
403
  }
405
404
 
406
- private handleSummaryOp(op: ISummaryOpMessage) {
405
+ private handleSummaryOp(op: ISummaryOpMessage): void {
407
406
  let summary: Summary | undefined;
408
407
 
409
408
  // Check if summary already being watched, broadcast if so
410
409
  // TODO: Verify whether this should be able to handle server-generated ops (with null clientId)
411
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
410
+
412
411
  const watcher = this.summaryWatchers.get(op.clientId as string);
413
412
  if (watcher) {
414
413
  summary = watcher.tryGetSummary(op.clientSequenceNumber);
@@ -429,7 +428,7 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
429
428
  this.emit(MessageType.Summarize, op);
430
429
  }
431
430
 
432
- private handleSummaryAck(op: ISummaryAckMessage) {
431
+ private handleSummaryAck(op: ISummaryAckMessage): void {
433
432
  const seq = op.contents.summaryProposal.summarySequenceNumber;
434
433
  const summary = this.pendingSummaries.get(seq);
435
434
  // eslint-disable-next-line @typescript-eslint/prefer-optional-chain -- optional chain is not logically equivalent
@@ -472,7 +471,7 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
472
471
  }
473
472
  }
474
473
 
475
- private handleSummaryNack(op: ISummaryNackMessage) {
474
+ private handleSummaryNack(op: ISummaryNackMessage): void {
476
475
  const seq = op.contents.summaryProposal.summarySequenceNumber;
477
476
  const summary = this.pendingSummaries.get(seq);
478
477
  if (summary) {
@@ -70,7 +70,9 @@ export interface IFluidDataStoreAttributes1
70
70
  */
71
71
  export interface IFluidDataStoreAttributes2
72
72
  extends OmitAttributesVersions<IFluidDataStoreAttributes1> {
73
- /** Switch from snapshotFormatVersion to summaryFormatVersion */
73
+ /**
74
+ * Switch from snapshotFormatVersion to summaryFormatVersion
75
+ */
74
76
  readonly snapshotFormatVersion?: undefined;
75
77
  readonly summaryFormatVersion: 2;
76
78
  /**
@@ -131,15 +133,25 @@ export function hasIsolatedChannels(attributes: ReadFluidDataStoreAttributes): b
131
133
  */
132
134
  export interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGCMetadata {
133
135
  readonly summaryFormatVersion: 1;
134
- /** @deprecated - used by old (prior to 2.0 RC3) runtimes */
136
+ /**
137
+ * @deprecated - used by old (prior to 2.0 RC3) runtimes
138
+ */
135
139
  readonly message?: ISummaryMetadataMessage;
136
- /** The last message processed at the time of summary. Only primitive property types are added to the summary. */
140
+ /**
141
+ * The last message processed at the time of summary. Only primitive property types are added to the summary.
142
+ */
137
143
  readonly lastMessage?: ISummaryMetadataMessage;
138
- /** True if channels are not isolated in .channels subtrees, otherwise isolated. */
144
+ /**
145
+ * True if channels are not isolated in .channels subtrees, otherwise isolated.
146
+ */
139
147
  readonly disableIsolatedChannels?: true;
140
- /** The summary number for a container's summary. Incremented on summaries throughout its lifetime. */
148
+ /**
149
+ * The summary number for a container's summary. Incremented on summaries throughout its lifetime.
150
+ */
141
151
  readonly summaryNumber?: number;
142
- /** GUID to identify a document in telemetry */
152
+ /**
153
+ * GUID to identify a document in telemetry
154
+ */
143
155
  readonly telemetryDocumentId?: string;
144
156
 
145
157
  readonly documentSchema?: IDocumentSchema;
@@ -150,9 +162,13 @@ export interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGC
150
162
  * @alpha
151
163
  */
152
164
  export interface ICreateContainerMetadata {
153
- /** Runtime version of the container when it was first created */
165
+ /**
166
+ * Runtime version of the container when it was first created
167
+ */
154
168
  createContainerRuntimeVersion?: string;
155
- /** Timestamp of the container when it was first created */
169
+ /**
170
+ * Timestamp of the container when it was first created
171
+ */
156
172
  createContainerTimestamp?: number;
157
173
  }
158
174
 
@@ -43,7 +43,9 @@ export type raceTimerResult<T> =
43
43
  | { result: IPromiseTimerResult["timerResult"] }
44
44
  | { result: "cancelled" };
45
45
 
46
- /** Helper function to wait for a promise or PromiseTimer to elapse. */
46
+ /**
47
+ * Wait for a promise or PromiseTimer to elapse.
48
+ */
47
49
  export async function raceTimer<T>(
48
50
  promise: Promise<T>,
49
51
  timer: Promise<IPromiseTimerResult>,
@@ -95,9 +97,13 @@ export type SummarizeReason =
95
97
  * stay connected long enough for summarizer client to catch up.
96
98
  */
97
99
  | "lastSummary"
98
- /** On-demand summary requested with specified reason. */
100
+ /**
101
+ * On-demand summary requested with specified reason.
102
+ */
99
103
  | `onDemand;${string}`
100
- /** Enqueue summarize attempt with specified reason. */
104
+ /**
105
+ * Enqueue summarize attempt with specified reason.
106
+ */
101
107
  | `enqueue;${string}`;
102
108
 
103
109
  const summarizeErrors = {
@@ -130,7 +136,7 @@ const summarizeErrors = {
130
136
  export type SummarizeErrorCode = keyof typeof summarizeErrors;
131
137
 
132
138
  // Helper functions to report failures and return.
133
- export const getFailMessage = (errorCode: SummarizeErrorCode) =>
139
+ export const getFailMessage = (errorCode: SummarizeErrorCode): string =>
134
140
  `${errorCode}: ${summarizeErrors[errorCode]}`;
135
141
 
136
142
  export class SummarizeResultBuilder {
@@ -155,7 +161,7 @@ export class SummarizeResultBuilder {
155
161
  error: IRetriableFailureError,
156
162
  submitFailureResult?: SubmitSummaryFailureData,
157
163
  nackSummaryResult?: INackSummaryResult,
158
- ) {
164
+ ): void {
159
165
  assert(
160
166
  !this.receivedSummaryAckOrNack.isCompleted,
161
167
  0x25e /* "no reason to call fail if all promises have been completed" */,
@@ -278,7 +284,7 @@ export class SummaryGenerator {
278
284
  properties?: SummaryGeneratorTelemetry,
279
285
  submitFailureResult?: SubmitSummaryFailureData,
280
286
  nackSummaryResult?: INackSummaryResult,
281
- ) => {
287
+ ): void => {
282
288
  // Report any failure as an error unless it was due to cancellation (like "disconnected" error)
283
289
  // If failure happened on upload, we may not yet realized that socket disconnected, so check
284
290
  // offlineError too.
@@ -555,7 +561,7 @@ export class SummaryGenerator {
555
561
  return initialProps;
556
562
  }
557
563
 
558
- private summarizeTimerHandler(time: number, count: number) {
564
+ private summarizeTimerHandler(time: number, count: number): void {
559
565
  this.logger.sendPerformanceEvent({
560
566
  eventName: "SummarizeTimeout",
561
567
  timeoutTime: time,
@@ -570,7 +576,7 @@ export class SummaryGenerator {
570
576
  }
571
577
  }
572
578
 
573
- public dispose() {
579
+ public dispose(): void {
574
580
  this.summarizeTimer.clear();
575
581
  }
576
582
  }
@@ -102,11 +102,11 @@ export class SummaryManager
102
102
  private summarizer?: ISummarizer;
103
103
  private _disposed = false;
104
104
 
105
- public get disposed() {
105
+ public get disposed(): boolean {
106
106
  return this._disposed;
107
107
  }
108
108
 
109
- public get currentState() {
109
+ public get currentState(): SummaryManagerState {
110
110
  return this.state;
111
111
  }
112
112
 
@@ -118,8 +118,10 @@ export class SummaryManager
118
118
  "opsSinceLastAck" | "addOpListener" | "removeOpListener"
119
119
  >,
120
120
  parentLogger: ITelemetryBaseLogger,
121
- /** Creates summarizer by asking interactive container to spawn summarizing container and
122
- * get back its Summarizer instance. */
121
+ /**
122
+ * Creates summarizer by asking interactive container to spawn summarizing container and
123
+ * get back its Summarizer instance.
124
+ */
123
125
  private readonly createSummarizerFn: () => Promise<ISummarizer>,
124
126
  private readonly startThrottler: IThrottler,
125
127
  {
@@ -154,7 +156,7 @@ export class SummaryManager
154
156
  this.refreshSummarizer();
155
157
  }
156
158
 
157
- private readonly handleConnected = (clientId: string) => {
159
+ private readonly handleConnected = (clientId: string): void => {
158
160
  this.latestClientId = clientId;
159
161
  // If we have a summarizer, it should have been either cancelled on disconnected by now.
160
162
  // But because of lastSummary process, it can still hang around, so there is not much we can
@@ -162,11 +164,13 @@ export class SummaryManager
162
164
  this.refreshSummarizer();
163
165
  };
164
166
 
165
- private readonly handleDisconnected = () => {
167
+ private readonly handleDisconnected = (): void => {
166
168
  this.refreshSummarizer();
167
169
  };
168
170
 
169
- private static readonly isStartingOrRunning = (state: SummaryManagerState) =>
171
+ private static readonly isStartingOrRunning = (
172
+ state: SummaryManagerState,
173
+ ): state is SummaryManagerState.Starting | SummaryManagerState.Running =>
170
174
  state === SummaryManagerState.Starting || state === SummaryManagerState.Running;
171
175
 
172
176
  private getShouldSummarizeState(): ShouldSummarizeState {
@@ -199,7 +203,7 @@ export class SummaryManager
199
203
  return { shouldSummarize: true };
200
204
  }
201
205
 
202
- private readonly refreshSummarizer = () => {
206
+ private readonly refreshSummarizer = (): void => {
203
207
  // Transition states depending on shouldSummarize, which is a calculated property
204
208
  // that is only true if this client is connected and is the elected summarizer.
205
209
  const shouldSummarizeState = this.getShouldSummarizeState();
@@ -232,7 +236,7 @@ export class SummaryManager
232
236
  }
233
237
  };
234
238
 
235
- private startSummarization() {
239
+ private startSummarization(): void {
236
240
  assert(this.state === SummaryManagerState.Off, 0x261 /* "Expected: off" */);
237
241
  this.state = SummaryManagerState.Starting;
238
242
 
@@ -328,6 +332,7 @@ export class SummaryManager
328
332
  // If failure happened on container load, we may not yet realized that socket disconnected, so check
329
333
  // offlineError.
330
334
  const category =
335
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
331
336
  error?.errorType === DriverErrorTypes.offlineError ? "generic" : "error";
332
337
  this.logger.sendTelemetryEvent(
333
338
  {
@@ -352,7 +357,7 @@ export class SummaryManager
352
357
  });
353
358
  }
354
359
 
355
- private stop(reason: SummarizerStopReason) {
360
+ private stop(reason: SummarizerStopReason): void {
356
361
  if (!SummaryManager.isStartingOrRunning(this.state)) {
357
362
  return;
358
363
  }
@@ -402,9 +407,9 @@ export class SummaryManager
402
407
 
403
408
  if (delayMs > 0) {
404
409
  let timer;
405
- let resolveOpPromiseFn;
410
+ let resolveOpPromiseFn: (value: void | PromiseLike<void>) => void;
406
411
  // Create a listener that will break the delay if we've exceeded the initial delay ops count.
407
- const opsListenerFn = () => {
412
+ const opsListenerFn = (): void => {
408
413
  if (this.summaryCollection.opsSinceLastAck >= this.opsToBypassInitialDelay) {
409
414
  clearTimeout(timer);
410
415
  resolveOpPromiseFn();
@@ -441,7 +446,7 @@ export class SummaryManager
441
446
  return this.summarizer.enqueueSummarize(options);
442
447
  }
443
448
 
444
- public dispose() {
449
+ public dispose(): void {
445
450
  this.clientElection.off("electedSummarizerChanged", this.refreshSummarizer);
446
451
  this.connectedState.off("connected", this.handleConnected);
447
452
  this.connectedState.off("disconnected", this.handleDisconnected);
@@ -449,9 +454,9 @@ export class SummaryManager
449
454
  this._disposed = true;
450
455
  }
451
456
 
452
- private readonly forwardedEvents = new Map<any, () => void>();
457
+ private readonly forwardedEvents = new Map<string, () => void>();
453
458
 
454
- private setupForwardedEvents() {
459
+ private setupForwardedEvents(): void {
455
460
  [
456
461
  "summarize",
457
462
  "summarizeAllAttemptsFailed",
@@ -459,16 +464,21 @@ export class SummaryManager
459
464
  "summarizerStart",
460
465
  "summarizerStartupFailed",
461
466
  ].forEach((event) => {
462
- const listener = (...args: any[]) => {
467
+ const listener = (...args: any[]): void => {
463
468
  this.emit(event, ...args);
464
469
  };
470
+ // TODO: better typing here
471
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
465
472
  this.summarizer?.on(event as any, listener);
466
473
  this.forwardedEvents.set(event, listener);
467
474
  });
468
475
  }
469
476
 
470
- private cleanupForwardedEvents() {
471
- this.forwardedEvents.forEach((listener, event) => this.summarizer?.off(event, listener));
477
+ private cleanupForwardedEvents(): void {
478
+ this.forwardedEvents.forEach((listener, event) =>
479
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
480
+ this.summarizer?.off(event as any, listener),
481
+ );
472
482
  this.forwardedEvents.clear();
473
483
  }
474
484
  }
package/src/throttler.ts CHANGED
@@ -16,9 +16,13 @@ export interface IThrottler {
16
16
  */
17
17
  readonly numAttempts: number;
18
18
 
19
- /** Width of sliding delay window in milliseconds. */
19
+ /**
20
+ * Width of sliding delay window in milliseconds.
21
+ */
20
22
  readonly delayWindowMs: number;
21
- /** Maximum delay allowed in milliseconds. */
23
+ /**
24
+ * Maximum delay allowed in milliseconds.
25
+ */
22
26
  readonly maxDelayMs: number;
23
27
  /**
24
28
  * Delay function used to calculate what the delay should be.
@@ -35,7 +39,7 @@ export interface IThrottler {
35
39
  export class Throttler implements IThrottler {
36
40
  private startTimes: number[] = [];
37
41
 
38
- public get numAttempts() {
42
+ public get numAttempts(): number {
39
43
  return this.startTimes.length;
40
44
  }
41
45
 
@@ -51,16 +55,20 @@ export class Throttler implements IThrottler {
51
55
  * Latest attempt time after compensating for the delay time itself
52
56
  * by adding the delay time to the actual time.
53
57
  */
54
- public get latestAttemptTime() {
58
+ public get latestAttemptTime(): number | undefined {
55
59
  return this.startTimes.length > 0
56
60
  ? this.startTimes[this.startTimes.length - 1]
57
61
  : undefined;
58
62
  }
59
63
 
60
64
  constructor(
61
- /** Width of sliding delay window in milliseconds. */
65
+ /**
66
+ * Width of sliding delay window in milliseconds.
67
+ */
62
68
  public readonly delayWindowMs: number,
63
- /** Maximum delay allowed in milliseconds. */
69
+ /**
70
+ * Maximum delay allowed in milliseconds.
71
+ */
64
72
  public readonly maxDelayMs: number,
65
73
  /**
66
74
  * Delay function used to calculate what the delay should be.
@@ -70,7 +78,7 @@ export class Throttler implements IThrottler {
70
78
  public readonly delayFn: (numAttempts: number) => number,
71
79
  ) {}
72
80
 
73
- public getDelay() {
81
+ public getDelay(): number {
74
82
  const now = Date.now();
75
83
 
76
84
  const latestAttemptTime = this.latestAttemptTime;
@@ -131,7 +139,9 @@ export const formExponentialFn =
131
139
  : coefficient * Math.pow(multiplier, numAttempts) + offset,
132
140
  );
133
141
 
134
- /** f(n) = C x (B^(n+A)) + F = (C x B^A) x B^n + F */
142
+ /**
143
+ * f(n) = C x (B^(n+A)) + F = (C x B^A) x B^n + F
144
+ */
135
145
  export const formExponentialFnWithAttemptOffset = (
136
146
  attemptOffset: number,
137
147
  {
@@ -140,7 +150,7 @@ export const formExponentialFnWithAttemptOffset = (
140
150
  offset = 0,
141
151
  initialDelay = undefined as number | undefined,
142
152
  } = {},
143
- ) =>
153
+ ): IThrottler["delayFn"] =>
144
154
  formExponentialFn({
145
155
  multiplier,
146
156
  coefficient: coefficient * Math.pow(multiplier, attemptOffset),
@@ -160,11 +170,13 @@ export const formLinearFn =
160
170
  (numAttempts) =>
161
171
  Math.max(0, coefficient * numAttempts + offset);
162
172
 
163
- /** f(n) = C x (n+A) + F = C x n + (C x A + F) */
173
+ /**
174
+ * f(n) = C x (n+A) + F = C x n + (C x A + F)
175
+ */
164
176
  export const formLinearFnWithAttemptOffset = (
165
177
  attemptOffset: number,
166
178
  { coefficient = 1, offset = 0 } = {},
167
- ) =>
179
+ ): IThrottler["delayFn"] =>
168
180
  formLinearFn({
169
181
  coefficient,
170
182
  offset: coefficient * attemptOffset + offset,
@@ -1,28 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import type { EventEmitter } from "@fluid-internal/client-utils";
6
- import { IDeltaManagerFull } from "@fluidframework/container-definitions/internal";
7
- import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
8
- import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
9
- /**
10
- * This class has the following responsibilities:
11
- *
12
- * 1. It tracks batches as we process ops and raises "batchBegin" and "batchEnd" events.
13
- * As part of it, it validates batch correctness (i.e. no system ops in the middle of batch)
14
- *
15
- * 2. It creates instance of ScheduleManagerCore that ensures we never start processing ops from batch
16
- * unless all ops of the batch are in.
17
- */
18
- export declare class ScheduleManager {
19
- private readonly deltaManager;
20
- private readonly emitter;
21
- readonly getClientId: () => string | undefined;
22
- private readonly logger;
23
- private readonly deltaScheduler;
24
- constructor(deltaManager: IDeltaManagerFull, emitter: EventEmitter, getClientId: () => string | undefined, logger: ITelemetryLoggerExt);
25
- batchBegin(message: ISequencedDocumentMessage): void;
26
- batchEnd(error: any | undefined, message: ISequencedDocumentMessage): void;
27
- }
28
- //# sourceMappingURL=scheduleManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scheduleManager.d.ts","sourceRoot":"","sources":["../src/scheduleManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAEnF,OAAO,EAEN,yBAAyB,EACzB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACN,mBAAmB,EAKnB,MAAM,0CAA0C,CAAC;AAYlD;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAI1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IANxB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBAG9B,YAAY,EAAE,iBAAiB,EAC/B,OAAO,EAAE,YAAY,EAC7B,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,mBAAmB;IAStC,UAAU,CAAC,OAAO,EAAE,yBAAyB;IAK7C,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS,EAAE,OAAO,EAAE,yBAAyB;CAI1E"}