@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
@@ -55,14 +55,21 @@ export class SummarizingWarning
55
55
  super(errorMessage);
56
56
  }
57
57
 
58
- static wrap(error: any, logged: boolean = false, logger: ITelemetryLoggerExt) {
59
- const newErrorFn = (errMsg: string) => new SummarizingWarning(errMsg, logged);
58
+ static wrap(
59
+ error: unknown,
60
+ logged: boolean = false,
61
+ logger: ITelemetryLoggerExt,
62
+ ): SummarizingWarning {
63
+ const newErrorFn = (errMsg: string): SummarizingWarning =>
64
+ new SummarizingWarning(errMsg, logged);
60
65
  return wrapErrorAndLog<SummarizingWarning>(error, newErrorFn, logger);
61
66
  }
62
67
  }
63
68
 
64
- export const createSummarizingWarning = (errorMessage: string, logged: boolean) =>
65
- new SummarizingWarning(errorMessage, logged);
69
+ export const createSummarizingWarning = (
70
+ errorMessage: string,
71
+ logged: boolean,
72
+ ): SummarizingWarning => new SummarizingWarning(errorMessage, logged);
66
73
 
67
74
  /**
68
75
  * Summarizer is responsible for coordinating when to generate and send summaries.
@@ -72,7 +79,7 @@ export const createSummarizingWarning = (errorMessage: string, logged: boolean)
72
79
  * @alpha
73
80
  */
74
81
  export class Summarizer extends TypedEventEmitter<ISummarizerEvents> implements ISummarizer {
75
- public get ISummarizer() {
82
+ public get ISummarizer(): this {
76
83
  return this;
77
84
  }
78
85
 
@@ -84,12 +91,14 @@ export class Summarizer extends TypedEventEmitter<ISummarizerEvents> implements
84
91
  private readonly stopDeferred = new Deferred<SummarizerStopReason>();
85
92
 
86
93
  constructor(
87
- /** Reference to runtime that created this object.
94
+ /**
95
+ * Reference to runtime that created this object.
88
96
  * i.e. runtime with clientType === "summarizer"
89
97
  */
90
98
  private readonly runtime: ISummarizerRuntime,
91
99
  private readonly configurationGetter: () => ISummaryConfiguration,
92
- /** Represents an object that can generate summary.
100
+ /**
101
+ * Represents an object that can generate summary.
93
102
  * In practical terms, it's same runtime (this.runtime) with clientType === "summarizer".
94
103
  */
95
104
  private readonly internalsProvider: ISummarizerInternalsProvider,
@@ -134,11 +143,11 @@ export class Summarizer extends TypedEventEmitter<ISummarizerEvents> implements
134
143
  * the run promise, and also close the container.
135
144
  * @param reason - reason code for stopping
136
145
  */
137
- public stop(reason: SummarizerStopReason) {
146
+ public stop(reason: SummarizerStopReason): void {
138
147
  this.stopDeferred.resolve(reason);
139
148
  }
140
149
 
141
- public close() {
150
+ public close(): void {
142
151
  // This will result in "summarizerClientDisconnected" stop reason recorded in telemetry,
143
152
  // unless stop() was called earlier
144
153
  this.dispose();
@@ -259,7 +268,9 @@ export class Summarizer extends TypedEventEmitter<ISummarizerEvents> implements
259
268
  this._heuristicData = new SummarizeHeuristicData(
260
269
  this.runtime.deltaManager.lastSequenceNumber,
261
270
  {
262
- /** summary attempt baseline for heuristics */
271
+ /**
272
+ * summary attempt baseline for heuristics
273
+ */
263
274
  refSequenceNumber: this.runtime.deltaManager.initialSequenceNumber,
264
275
  summaryTime: Date.now(),
265
276
  } as const,
@@ -289,7 +300,7 @@ export class Summarizer extends TypedEventEmitter<ISummarizerEvents> implements
289
300
  * properties.
290
301
  * Called by ContainerRuntime when it is disposed, as well as at the end the run().
291
302
  */
292
- public dispose() {
303
+ public dispose(): void {
293
304
  // Given that the call can come from own ContainerRuntime, ensure that we stop all the processes.
294
305
  this.stop("summarizerClientDisconnected");
295
306
 
@@ -372,23 +383,25 @@ export class Summarizer extends TypedEventEmitter<ISummarizerEvents> implements
372
383
  return this.runningSummarizer.enqueueSummarize(options);
373
384
  }
374
385
 
375
- public recordSummaryAttempt?(summaryRefSeqNum?: number) {
386
+ public recordSummaryAttempt?(summaryRefSeqNum?: number): void {
376
387
  this._heuristicData?.recordAttempt(summaryRefSeqNum);
377
388
  }
378
389
 
379
- private readonly forwardedEvents = new Map<any, () => void>();
390
+ private readonly forwardedEvents = new Map<string, () => void>();
380
391
 
381
- private setupForwardedEvents() {
392
+ private setupForwardedEvents(): void {
382
393
  ["summarize", "summarizeAllAttemptsFailed"].forEach((event) => {
383
- const listener = (...args: any[]) => {
394
+ const listener = (...args: any[]): void => {
384
395
  this.emit(event, ...args);
385
396
  };
397
+ // TODO: better typing here
398
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
386
399
  this.runningSummarizer?.on(event as any, listener);
387
400
  this.forwardedEvents.set(event, listener);
388
401
  });
389
402
  }
390
403
 
391
- private cleanupForwardedEvents() {
404
+ private cleanupForwardedEvents(): void {
392
405
  this.forwardedEvents.forEach((listener, event) =>
393
406
  this.runningSummarizer?.off(event, listener),
394
407
  );
@@ -51,10 +51,10 @@ export class SummarizerClientElection
51
51
  */
52
52
  private lastReportedSeq = 0;
53
53
 
54
- public get electedClientId() {
54
+ public get electedClientId(): string | undefined {
55
55
  return this.clientElection.electedClient?.clientId;
56
56
  }
57
- public get electedParentId() {
57
+ public get electedParentId(): string | undefined {
58
58
  return this.clientElection.electedParent?.clientId;
59
59
  }
60
60
 
@@ -16,7 +16,9 @@ import {
16
16
  } from "./summarizerTypes.js";
17
17
  import { SummarizeReason } from "./summaryGenerator.js";
18
18
 
19
- /** Simple implementation of class for tracking summarize heuristic data. */
19
+ /**
20
+ * Simple implementation of class for tracking summarize heuristic data.
21
+ */
20
22
  export class SummarizeHeuristicData implements ISummarizeHeuristicData {
21
23
  protected _lastAttempt: ISummarizeAttempt;
22
24
  public get lastAttempt(): ISummarizeAttempt {
@@ -57,19 +59,21 @@ export class SummarizeHeuristicData implements ISummarizeHeuristicData {
57
59
 
58
60
  constructor(
59
61
  public lastOpSequenceNumber: number,
60
- /** Baseline attempt data used for comparisons with subsequent attempts/calculations. */
62
+ /**
63
+ * Baseline attempt data used for comparisons with subsequent attempts/calculations.
64
+ */
61
65
  attemptBaseline: ISummarizeAttempt,
62
66
  ) {
63
67
  this._lastAttempt = attemptBaseline;
64
68
  this._lastSuccessfulSummary = { ...attemptBaseline };
65
69
  }
66
70
 
67
- public updateWithLastSummaryAckInfo(lastSummary: Readonly<ISummarizeAttempt>) {
71
+ public updateWithLastSummaryAckInfo(lastSummary: Readonly<ISummarizeAttempt>): void {
68
72
  this._lastAttempt = lastSummary;
69
73
  this._lastSuccessfulSummary = { ...lastSummary };
70
74
  }
71
75
 
72
- public recordAttempt(refSequenceNumber?: number) {
76
+ public recordAttempt(refSequenceNumber?: number): void {
73
77
  this._lastAttempt = {
74
78
  refSequenceNumber: refSequenceNumber ?? this.lastOpSequenceNumber,
75
79
  summaryTime: Date.now(),
@@ -80,7 +84,7 @@ export class SummarizeHeuristicData implements ISummarizeHeuristicData {
80
84
  this.totalOpsSizeBefore = this.totalOpsSize;
81
85
  }
82
86
 
83
- public markLastAttemptAsSuccessful() {
87
+ public markLastAttemptAsSuccessful(): void {
84
88
  this._lastSuccessfulSummary = { ...this.lastAttempt };
85
89
 
86
90
  this.numNonRuntimeOps -= this.numNonRuntimeOpsBefore;
@@ -147,11 +151,11 @@ export class SummarizeHeuristicRunner implements ISummarizeHeuristicRunner {
147
151
  );
148
152
  }
149
153
 
150
- public start() {
154
+ public start(): void {
151
155
  this.idleTimer?.start(this.idleTime);
152
156
  }
153
157
 
154
- public run() {
158
+ public run(): void {
155
159
  for (const strategy of this.summarizeStrategies) {
156
160
  if (strategy.shouldRunSummary(this.configuration, this.heuristicData)) {
157
161
  return this.runSummarize(strategy.summarizeReason);
@@ -179,12 +183,14 @@ export class SummarizeHeuristicRunner implements ISummarizeHeuristicRunner {
179
183
  return weightedOpsSinceLastAck >= minOpsForLastSummaryAttempt;
180
184
  }
181
185
 
182
- public dispose() {
186
+ public dispose(): void {
183
187
  this.idleTimer?.clear();
184
188
  }
185
189
  }
186
190
 
187
- /** Strategy used to run a summary when it's been a while since our last successful summary */
191
+ /**
192
+ * Strategy used to run a summary when it's been a while since our last successful summary
193
+ */
188
194
  class MaxTimeSummaryHeuristicStrategy implements ISummaryHeuristicStrategy {
189
195
  public readonly summarizeReason: Readonly<SummarizeReason> = "maxTime";
190
196
 
@@ -206,7 +212,9 @@ function getWeightedNumberOfOps(
206
212
  return runtimeOpWeight * runtimeOpCount + nonRuntimeOpWeight * nonRuntimeOpCount;
207
213
  }
208
214
 
209
- /** Strategy used to do a weighted analysis on the ops we've processed since the last successful summary */
215
+ /**
216
+ * Strategy used to do a weighted analysis on the ops we've processed since the last successful summary
217
+ */
210
218
  class WeightedOpsSummaryHeuristicStrategy implements ISummaryHeuristicStrategy {
211
219
  public readonly summarizeReason: Readonly<SummarizeReason> = "maxOps";
212
220
 
@@ -224,6 +232,9 @@ class WeightedOpsSummaryHeuristicStrategy implements ISummaryHeuristicStrategy {
224
232
  }
225
233
  }
226
234
 
227
- function getDefaultSummaryHeuristicStrategies() {
235
+ function getDefaultSummaryHeuristicStrategies(): (
236
+ | MaxTimeSummaryHeuristicStrategy
237
+ | WeightedOpsSummaryHeuristicStrategy
238
+ )[] {
228
239
  return [new MaxTimeSummaryHeuristicStrategy(), new WeightedOpsSummaryHeuristicStrategy()];
229
240
  }
@@ -61,7 +61,7 @@ export class SummarizerNode implements IRootSummarizerNode {
61
61
  * The reference sequence number of the most recent acked summary.
62
62
  * Returns 0 if there is not yet an acked summary.
63
63
  */
64
- public get referenceSequenceNumber() {
64
+ public get referenceSequenceNumber(): number {
65
65
  return this._lastSummaryReferenceSequenceNumber ?? 0;
66
66
  }
67
67
 
@@ -98,13 +98,19 @@ export class SummarizerNode implements IRootSummarizerNode {
98
98
  baseLogger: ITelemetryBaseLogger,
99
99
  private readonly summarizeInternalFn: SummarizeInternalFn,
100
100
  config: ISummarizerNodeConfig,
101
- /** Encoded handle or path to the node */
101
+ /**
102
+ * Encoded handle or path to the node
103
+ */
102
104
  private readonly _summaryHandleId: EscapedPath,
103
105
  private _changeSequenceNumber: number,
104
- /** Summary reference sequence number, i.e. last sequence number seen when last successful summary was created */
106
+ /**
107
+ * Summary reference sequence number, i.e. last sequence number seen when last successful summary was created
108
+ */
105
109
  private _lastSummaryReferenceSequenceNumber?: number,
106
110
  protected wipSummaryLogger?: ITelemetryBaseLogger,
107
- /** A unique id of this node to be logged when sending telemetry. */
111
+ /**
112
+ * A unique id of this node to be logged when sending telemetry.
113
+ */
108
114
  protected telemetryNodeId?: string,
109
115
  ) {
110
116
  this.canReuseHandle = config.canReuseHandle ?? true;
@@ -317,7 +323,7 @@ export class SummarizerNode implements IRootSummarizerNode {
317
323
  * queue. We track this until we get an ack from the server for this summary.
318
324
  * @param proposalHandle - The handle of the summary that was uploaded to the server.
319
325
  */
320
- public completeSummary(proposalHandle: string) {
326
+ public completeSummary(proposalHandle: string): void {
321
327
  this.completeSummaryCore(proposalHandle, false /* parentSkipRecursion */);
322
328
  }
323
329
 
@@ -329,7 +335,7 @@ export class SummarizerNode implements IRootSummarizerNode {
329
335
  * In that case, the children will not have work-in-progress state.
330
336
  * @param validate - true to validate that the in-progress summary is correct for all nodes.
331
337
  */
332
- protected completeSummaryCore(proposalHandle: string, parentSkipRecursion: boolean) {
338
+ protected completeSummaryCore(proposalHandle: string, parentSkipRecursion: boolean): void {
333
339
  assert(
334
340
  this.wipReferenceSequenceNumber !== undefined,
335
341
  0x1a4 /* "Not tracking a summary" */,
@@ -362,7 +368,7 @@ export class SummarizerNode implements IRootSummarizerNode {
362
368
  this.clearSummary();
363
369
  }
364
370
 
365
- public clearSummary() {
371
+ public clearSummary(): void {
366
372
  this.wipReferenceSequenceNumber = undefined;
367
373
  this.wipSummarizeCalled = false;
368
374
  this.wipSkipRecursion = false;
@@ -476,7 +482,7 @@ export class SummarizerNode implements IRootSummarizerNode {
476
482
  }
477
483
  }
478
484
 
479
- public updateBaseSummaryState(snapshot: ISnapshotTree) {
485
+ public updateBaseSummaryState(snapshot: ISnapshotTree): void {
480
486
  // Function deprecated. Empty declaration is kept around to compat failures.
481
487
  }
482
488
 
@@ -502,9 +508,13 @@ export class SummarizerNode implements IRootSummarizerNode {
502
508
  protected readonly canReuseHandle: boolean;
503
509
 
504
510
  public createChild(
505
- /** Summarize function */
511
+ /**
512
+ * Summarize function
513
+ */
506
514
  summarizeInternalFn: SummarizeInternalFn,
507
- /** Initial id or path part of this node */
515
+ /**
516
+ * Initial id or path part of this node
517
+ */
508
518
  id: string,
509
519
  /**
510
520
  * Information needed to create the node.
@@ -599,7 +609,7 @@ export class SummarizerNode implements IRootSummarizerNode {
599
609
  * @param id - Initial id or path part of this node
600
610
  *
601
611
  */
602
- protected maybeUpdateChildState(child: SummarizerNode, id: string) {
612
+ protected maybeUpdateChildState(child: SummarizerNode, id: string): void {
603
613
  // If a summary is in progress, this child was created after the summary started. So, we need to update the
604
614
  // child's summary state as well.
605
615
  if (this.isSummaryInProgress()) {
@@ -613,7 +623,7 @@ export class SummarizerNode implements IRootSummarizerNode {
613
623
  }
614
624
  }
615
625
 
616
- protected addPendingSummary(key: string, pendingSummaryInfo: PendingSummaryInfo) {
626
+ protected addPendingSummary(key: string, pendingSummaryInfo: PendingSummaryInfo): void {
617
627
  this.pendingSummaries.set(key, pendingSummaryInfo);
618
628
  }
619
629
 
@@ -12,18 +12,28 @@ import {
12
12
  } from "@fluidframework/telemetry-utils/internal";
13
13
 
14
14
  export interface IRefreshSummaryResult {
15
- /** Tells whether this summary is tracked by this client. */
15
+ /**
16
+ * Tells whether this summary is tracked by this client.
17
+ */
16
18
  isSummaryTracked: boolean;
17
- /** Tells whether this summary is newer than the latest one tracked by this client. */
19
+ /**
20
+ * Tells whether this summary is newer than the latest one tracked by this client.
21
+ */
18
22
  isSummaryNewer: boolean;
19
23
  }
20
24
 
21
25
  export interface IStartSummaryResult {
22
- /** The number of summarizerNodes at the start of the summary. */
26
+ /**
27
+ * The number of summarizerNodes at the start of the summary.
28
+ */
23
29
  nodes: number;
24
- /** The number of summarizerNodes in the wrong state. */
30
+ /**
31
+ * The number of summarizerNodes in the wrong state.
32
+ */
25
33
  invalidNodes: number;
26
- /** The invalid sequence numbers and their values. It should be in the format of validateSequenceNumber-nodeSequenceNumber */
34
+ /**
35
+ * The invalid sequence numbers and their values. It should be in the format of validateSequenceNumber-nodeSequenceNumber
36
+ */
27
37
  mismatchNumbers: Set<string>;
28
38
  }
29
39
 
@@ -38,14 +48,20 @@ export type ValidateSummaryResult =
38
48
  }
39
49
  | {
40
50
  success: false;
41
- /** The failure reason */
51
+ /**
52
+ * The failure reason
53
+ */
42
54
  reason: string;
43
- /** id of the node that failed during validation */
55
+ /**
56
+ * id of the node that failed during validation
57
+ */
44
58
  id: {
45
59
  tag: TelemetryDataTag.CodeArtifact;
46
60
  value: string | undefined;
47
61
  };
48
- /** If the error can be retried, time to wait before retrying */
62
+ /**
63
+ * If the error can be retried, time to wait before retrying
64
+ */
49
65
  retryAfterSeconds?: number;
50
66
  };
51
67
 
@@ -64,7 +80,9 @@ export interface ISummarizerNodeRootContract {
64
80
  ): Promise<IRefreshSummaryResult>;
65
81
  }
66
82
 
67
- /** Class to build paths for nodes in a tree with escaped special characters */
83
+ /**
84
+ * Class to build paths for nodes in a tree with escaped special characters
85
+ */
68
86
  export class EscapedPath {
69
87
  private constructor(public readonly path: string) {}
70
88
 
@@ -88,7 +106,9 @@ export class EscapedPath {
88
106
  }
89
107
  }
90
108
  export interface PendingSummaryInfo {
91
- /** The sequence number at which the summary was created. */
109
+ /**
110
+ * The sequence number at which the summary was created.
111
+ */
92
112
  referenceSequenceNumber: number;
93
113
  }
94
114
 
@@ -96,19 +116,31 @@ export interface PendingSummaryInfo {
96
116
  * Represents the details needed to create a child summarizer node.
97
117
  */
98
118
  export interface ICreateChildDetails {
99
- /** Sequence number of latest known change to the node */
119
+ /**
120
+ * Sequence number of latest known change to the node
121
+ */
100
122
  changeSequenceNumber: number;
101
- /** A unique id of this child to be logged when sending telemetry. */
123
+ /**
124
+ * A unique id of this child to be logged when sending telemetry.
125
+ */
102
126
  telemetryNodeId: string;
103
- /** Summary handle for child node */
127
+ /**
128
+ * Summary handle for child node
129
+ */
104
130
  summaryHandleId: EscapedPath;
105
- /** the reference sequence number of the last successful summary. */
131
+ /**
132
+ * the reference sequence number of the last successful summary.
133
+ */
106
134
  lastSummaryReferenceSequenceNumber: number | undefined;
107
135
  }
108
136
 
109
137
  export interface ISubtreeInfo<T extends ISnapshotTree | SummaryObject> {
110
- /** Tree to use to find children subtrees */
138
+ /**
139
+ * Tree to use to find children subtrees
140
+ */
111
141
  childrenTree: T;
112
- /** Additional path part where children are isolated */
142
+ /**
143
+ * Additional path part where children are isolated
144
+ */
113
145
  childrenPathPart: string | undefined;
114
146
  }
@@ -95,12 +95,16 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
95
95
  config: ISummarizerNodeConfigWithGC,
96
96
  _summaryHandleId: EscapedPath,
97
97
  changeSequenceNumber: number,
98
- /** Summary reference sequence number, i.e. last sequence number seen when it was created */
98
+ /**
99
+ * Summary reference sequence number, i.e. last sequence number seen when it was created
100
+ */
99
101
  lastSummaryReferenceSequenceNumber?: number,
100
102
  wipSummaryLogger?: ITelemetryBaseLogger,
101
103
  private readonly getGCDataFn?: (fullGC?: boolean) => Promise<IGarbageCollectionData>,
102
104
  getBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,
103
- /** A unique id of this node to be logged when sending telemetry. */
105
+ /**
106
+ * A unique id of this node to be logged when sending telemetry.
107
+ */
104
108
  telemetryId?: string,
105
109
  ) {
106
110
  super(
@@ -132,7 +136,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
132
136
  * - usedRoutes: This is used to figure out if the used state of this node changed since last summary.
133
137
  * - gcData: The garbage collection data of this node that is required for running GC.
134
138
  */
135
- private async loadBaseGCDetails() {
139
+ private async loadBaseGCDetails(): Promise<void> {
136
140
  if (this.baseGCDetailsLoaded) {
137
141
  return;
138
142
  }
@@ -263,7 +267,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
263
267
  * @param parentSkipRecursion - true if the parent of this node skipped recursing the child nodes when summarizing.
264
268
  * In that case, the children will not have work-in-progress state.
265
269
  */
266
- protected completeSummaryCore(proposalHandle: string, parentSkipRecursion: boolean) {
270
+ protected completeSummaryCore(proposalHandle: string, parentSkipRecursion: boolean): void {
267
271
  let wipSerializedUsedRoutes: string | undefined;
268
272
  // If GC is disabled, don't set wip used routes.
269
273
  if (!this.gcDisabled) {
@@ -288,7 +292,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
288
292
  /**
289
293
  * Clears the work-in-progress state.
290
294
  */
291
- public clearSummary() {
295
+ public clearSummary(): void {
292
296
  this.wipSerializedUsedRoutes = undefined;
293
297
  this.wipChildNodesUsedRoutes = undefined;
294
298
  super.clearSummary();
@@ -324,7 +328,9 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
324
328
  );
325
329
  throw error;
326
330
  }
327
- this.referenceUsedRoutes = JSON.parse(summaryNodeWithGC.serializedUsedRoutes);
331
+ this.referenceUsedRoutes = JSON.parse(
332
+ summaryNodeWithGC.serializedUsedRoutes,
333
+ ) as string[];
328
334
  }
329
335
  }
330
336
 
@@ -335,9 +341,13 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
335
341
  * Override the createChild method to return an instance of SummarizerNodeWithGC.
336
342
  */
337
343
  public createChild(
338
- /** Summarize function */
344
+ /**
345
+ * Summarize function
346
+ */
339
347
  summarizeInternalFn: SummarizeInternalFn,
340
- /** Initial id or path part of this node */
348
+ /**
349
+ * Initial id or path part of this node
350
+ */
341
351
  id: string,
342
352
  /**
343
353
  * Information needed to create the node.
@@ -355,7 +365,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
355
365
  * snapshot and the child node wasn't created then. If a child is created after that, its GC details should be
356
366
  * the one from the downloaded snapshot and not the base GC details.
357
367
  */
358
- const getChildBaseGCDetailsFn = async () => {
368
+ const getChildBaseGCDetailsFn = async (): Promise<IGarbageCollectionDetailsBase> => {
359
369
  const childNodesBaseGCDetails = await this.childNodesBaseGCDetailsP;
360
370
  return childNodesBaseGCDetails.get(id) ?? {};
361
371
  };
@@ -395,7 +405,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
395
405
  * @param child - The child node whose state is to be updated.
396
406
  * @param id - Initial id or path part of this node
397
407
  */
398
- protected maybeUpdateChildState(child: SummarizerNodeWithGC, id: string) {
408
+ protected maybeUpdateChildState(child: SummarizerNodeWithGC, id: string): void {
399
409
  super.maybeUpdateChildState(child, id);
400
410
 
401
411
  // If GC has run on this node and summarization isn't complete, this.wipSerializedUsedRoutes will be defined.
@@ -447,7 +457,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
447
457
  return this.usedRoutes.includes("") || this.usedRoutes.includes("/");
448
458
  }
449
459
 
450
- public updateUsedRoutes(usedRoutes: string[]) {
460
+ public updateUsedRoutes(usedRoutes: string[]): void {
451
461
  // Sort the given routes before updating. This will ensure that the routes compared in hasUsedStateChanged()
452
462
  // are in the same order.
453
463
  this.usedRoutes = usedRoutes.sort();