@fluidframework/container-runtime 2.13.0 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (489) hide show
  1. package/.eslintrc.cjs +71 -5
  2. package/CHANGELOG.md +84 -0
  3. package/api-report/container-runtime.legacy.alpha.api.md +38 -232
  4. package/dist/batchTracker.d.ts +1 -2
  5. package/dist/batchTracker.d.ts.map +1 -1
  6. package/dist/batchTracker.js +1 -1
  7. package/dist/batchTracker.js.map +1 -1
  8. package/dist/blobManager/blobManager.d.ts +5 -1
  9. package/dist/blobManager/blobManager.d.ts.map +1 -1
  10. package/dist/blobManager/blobManager.js +30 -13
  11. package/dist/blobManager/blobManager.js.map +1 -1
  12. package/dist/blobManager/blobManagerSnapSum.d.ts +1 -0
  13. package/dist/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  14. package/dist/blobManager/blobManagerSnapSum.js +7 -5
  15. package/dist/blobManager/blobManagerSnapSum.js.map +1 -1
  16. package/dist/channelCollection.d.ts +23 -12
  17. package/dist/channelCollection.d.ts.map +1 -1
  18. package/dist/channelCollection.js +85 -53
  19. package/dist/channelCollection.js.map +1 -1
  20. package/dist/connectionTelemetry.d.ts +2 -2
  21. package/dist/connectionTelemetry.d.ts.map +1 -1
  22. package/dist/connectionTelemetry.js +10 -6
  23. package/dist/connectionTelemetry.js.map +1 -1
  24. package/dist/containerHandleContext.d.ts +1 -1
  25. package/dist/containerHandleContext.d.ts.map +1 -1
  26. package/dist/containerHandleContext.js.map +1 -1
  27. package/dist/containerRuntime.d.ts +87 -94
  28. package/dist/containerRuntime.d.ts.map +1 -1
  29. package/dist/containerRuntime.js +312 -226
  30. package/dist/containerRuntime.js.map +1 -1
  31. package/dist/dataStore.d.ts +7 -3
  32. package/dist/dataStore.d.ts.map +1 -1
  33. package/dist/dataStore.js +8 -4
  34. package/dist/dataStore.js.map +1 -1
  35. package/dist/dataStoreContext.d.ts +41 -25
  36. package/dist/dataStoreContext.d.ts.map +1 -1
  37. package/dist/dataStoreContext.js +47 -29
  38. package/dist/dataStoreContext.js.map +1 -1
  39. package/dist/dataStoreContexts.d.ts +6 -2
  40. package/dist/dataStoreContexts.d.ts.map +1 -1
  41. package/dist/dataStoreContexts.js +7 -2
  42. package/dist/dataStoreContexts.js.map +1 -1
  43. package/dist/dataStoreRegistry.d.ts +1 -1
  44. package/dist/dataStoreRegistry.d.ts.map +1 -1
  45. package/dist/dataStoreRegistry.js.map +1 -1
  46. package/dist/deltaManagerProxies.d.ts +1 -17
  47. package/dist/deltaManagerProxies.d.ts.map +1 -1
  48. package/dist/deltaManagerProxies.js.map +1 -1
  49. package/dist/deltaScheduler.d.ts +9 -6
  50. package/dist/deltaScheduler.d.ts.map +1 -1
  51. package/dist/deltaScheduler.js +95 -89
  52. package/dist/deltaScheduler.js.map +1 -1
  53. package/dist/gc/garbageCollection.d.ts +21 -7
  54. package/dist/gc/garbageCollection.d.ts.map +1 -1
  55. package/dist/gc/garbageCollection.js +48 -19
  56. package/dist/gc/garbageCollection.js.map +1 -1
  57. package/dist/gc/gcConfigs.d.ts +11 -0
  58. package/dist/gc/gcConfigs.d.ts.map +1 -1
  59. package/dist/gc/gcConfigs.js +5 -2
  60. package/dist/gc/gcConfigs.js.map +1 -1
  61. package/dist/gc/gcDefinitions.d.ts +218 -70
  62. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  63. package/dist/gc/gcDefinitions.js +40 -13
  64. package/dist/gc/gcDefinitions.js.map +1 -1
  65. package/dist/gc/gcHelpers.d.ts +6 -2
  66. package/dist/gc/gcHelpers.d.ts.map +1 -1
  67. package/dist/gc/gcHelpers.js +14 -7
  68. package/dist/gc/gcHelpers.js.map +1 -1
  69. package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  70. package/dist/gc/gcSummaryDefinitions.d.ts +18 -6
  71. package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -1
  72. package/dist/gc/gcSummaryDefinitions.js.map +1 -1
  73. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  74. package/dist/gc/gcSummaryStateTracker.js +2 -1
  75. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  76. package/dist/gc/gcTelemetry.d.ts +33 -11
  77. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  78. package/dist/gc/gcTelemetry.js +35 -17
  79. package/dist/gc/gcTelemetry.js.map +1 -1
  80. package/dist/gc/gcUnreferencedStateTracker.d.ts +42 -13
  81. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  82. package/dist/gc/gcUnreferencedStateTracker.js +27 -9
  83. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  84. package/dist/gc/index.d.ts +1 -0
  85. package/dist/gc/index.d.ts.map +1 -1
  86. package/dist/gc/index.js +3 -1
  87. package/dist/gc/index.js.map +1 -1
  88. package/dist/inboundBatchAggregator.d.ts +34 -0
  89. package/dist/inboundBatchAggregator.d.ts.map +1 -0
  90. package/dist/inboundBatchAggregator.js +185 -0
  91. package/dist/inboundBatchAggregator.js.map +1 -0
  92. package/dist/index.d.ts +1 -1
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js.map +1 -1
  95. package/dist/layerCompatState.d.ts +19 -0
  96. package/dist/layerCompatState.d.ts.map +1 -0
  97. package/dist/layerCompatState.js +64 -0
  98. package/dist/layerCompatState.js.map +1 -0
  99. package/dist/legacy.d.ts +0 -4
  100. package/dist/messageTypes.d.ts +14 -5
  101. package/dist/messageTypes.d.ts.map +1 -1
  102. package/dist/messageTypes.js.map +1 -1
  103. package/dist/metadata.d.ts +12 -4
  104. package/dist/metadata.d.ts.map +1 -1
  105. package/dist/metadata.js +6 -2
  106. package/dist/metadata.js.map +1 -1
  107. package/dist/opLifecycle/batchManager.d.ts +9 -3
  108. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  109. package/dist/opLifecycle/batchManager.js +3 -1
  110. package/dist/opLifecycle/batchManager.js.map +1 -1
  111. package/dist/opLifecycle/duplicateBatchDetector.d.ts +9 -3
  112. package/dist/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
  113. package/dist/opLifecycle/duplicateBatchDetector.js +11 -5
  114. package/dist/opLifecycle/duplicateBatchDetector.js.map +1 -1
  115. package/dist/opLifecycle/opCompressor.d.ts +3 -2
  116. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  117. package/dist/opLifecycle/opCompressor.js +13 -19
  118. package/dist/opLifecycle/opCompressor.js.map +1 -1
  119. package/dist/opLifecycle/opDecompressor.d.ts +6 -1
  120. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  121. package/dist/opLifecycle/opDecompressor.js +16 -8
  122. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  123. package/dist/opLifecycle/opGroupingManager.d.ts +1 -2
  124. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  125. package/dist/opLifecycle/opGroupingManager.js +9 -6
  126. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  127. package/dist/opLifecycle/opSplitter.d.ts +13 -10
  128. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  129. package/dist/opLifecycle/opSplitter.js +16 -11
  130. package/dist/opLifecycle/opSplitter.js.map +1 -1
  131. package/dist/opLifecycle/outbox.d.ts +4 -4
  132. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  133. package/dist/opLifecycle/outbox.js +17 -16
  134. package/dist/opLifecycle/outbox.js.map +1 -1
  135. package/dist/opLifecycle/remoteMessageProcessor.d.ts +9 -3
  136. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  137. package/dist/opLifecycle/remoteMessageProcessor.js +3 -1
  138. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  139. package/dist/package.json +2 -1
  140. package/dist/packageVersion.d.ts +1 -1
  141. package/dist/packageVersion.js +1 -1
  142. package/dist/packageVersion.js.map +1 -1
  143. package/dist/pendingStateManager.d.ts +22 -11
  144. package/dist/pendingStateManager.d.ts.map +1 -1
  145. package/dist/pendingStateManager.js +24 -15
  146. package/dist/pendingStateManager.js.map +1 -1
  147. package/dist/summary/documentSchema.d.ts +7 -0
  148. package/dist/summary/documentSchema.d.ts.map +1 -1
  149. package/dist/summary/documentSchema.js +8 -4
  150. package/dist/summary/documentSchema.js.map +1 -1
  151. package/dist/summary/index.d.ts +1 -1
  152. package/dist/summary/index.d.ts.map +1 -1
  153. package/dist/summary/index.js.map +1 -1
  154. package/dist/summary/orderedClientElection.d.ts +94 -31
  155. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  156. package/dist/summary/orderedClientElection.js +28 -16
  157. package/dist/summary/orderedClientElection.js.map +1 -1
  158. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -0
  159. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  160. package/dist/summary/runWhileConnectedCoordinator.js +7 -2
  161. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  162. package/dist/summary/runningSummarizer.d.ts +17 -6
  163. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  164. package/dist/summary/runningSummarizer.js +48 -19
  165. package/dist/summary/runningSummarizer.js.map +1 -1
  166. package/dist/summary/summarizer.d.ts +10 -5
  167. package/dist/summary/summarizer.d.ts.map +1 -1
  168. package/dist/summary/summarizer.js +26 -11
  169. package/dist/summary/summarizer.js.map +1 -1
  170. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  171. package/dist/summary/summarizerClientElection.js +1 -0
  172. package/dist/summary/summarizerClientElection.js.map +1 -1
  173. package/dist/summary/summarizerHeuristics.d.ts +6 -2
  174. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  175. package/dist/summary/summarizerHeuristics.js +13 -5
  176. package/dist/summary/summarizerHeuristics.js.map +1 -1
  177. package/dist/summary/summarizerNode/index.d.ts.map +1 -1
  178. package/dist/summary/summarizerNode/index.js.map +1 -1
  179. package/dist/summary/summarizerNode/summarizerNode.d.ts +24 -8
  180. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  181. package/dist/summary/summarizerNode/summarizerNode.js +45 -36
  182. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  183. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
  184. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  185. package/dist/summary/summarizerNode/summarizerNodeUtils.js +3 -1
  186. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  187. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +13 -5
  188. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  189. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +15 -7
  190. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  191. package/dist/summary/summarizerTypes.d.ts +253 -135
  192. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  193. package/dist/summary/summarizerTypes.js.map +1 -1
  194. package/dist/summary/summaryCollection.d.ts +3 -4
  195. package/dist/summary/summaryCollection.d.ts.map +1 -1
  196. package/dist/summary/summaryCollection.js +10 -8
  197. package/dist/summary/summaryCollection.js.map +1 -1
  198. package/dist/summary/summaryFormat.d.ts +28 -9
  199. package/dist/summary/summaryFormat.d.ts.map +1 -1
  200. package/dist/summary/summaryFormat.js +3 -2
  201. package/dist/summary/summaryFormat.js.map +1 -1
  202. package/dist/summary/summaryGenerator.d.ts +9 -3
  203. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  204. package/dist/summary/summaryGenerator.js +22 -9
  205. package/dist/summary/summaryGenerator.js.map +1 -1
  206. package/dist/summary/summaryManager.d.ts +8 -4
  207. package/dist/summary/summaryManager.d.ts.map +1 -1
  208. package/dist/summary/summaryManager.js +20 -9
  209. package/dist/summary/summaryManager.js.map +1 -1
  210. package/dist/throttler.d.ts +26 -10
  211. package/dist/throttler.d.ts.map +1 -1
  212. package/dist/throttler.js +12 -4
  213. package/dist/throttler.js.map +1 -1
  214. package/lib/batchTracker.d.ts +1 -2
  215. package/lib/batchTracker.d.ts.map +1 -1
  216. package/lib/batchTracker.js +2 -2
  217. package/lib/batchTracker.js.map +1 -1
  218. package/lib/blobManager/blobManager.d.ts +5 -1
  219. package/lib/blobManager/blobManager.d.ts.map +1 -1
  220. package/lib/blobManager/blobManager.js +30 -13
  221. package/lib/blobManager/blobManager.js.map +1 -1
  222. package/lib/blobManager/blobManagerSnapSum.d.ts +1 -0
  223. package/lib/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  224. package/lib/blobManager/blobManagerSnapSum.js +7 -5
  225. package/lib/blobManager/blobManagerSnapSum.js.map +1 -1
  226. package/lib/channelCollection.d.ts +23 -12
  227. package/lib/channelCollection.d.ts.map +1 -1
  228. package/lib/channelCollection.js +88 -54
  229. package/lib/channelCollection.js.map +1 -1
  230. package/lib/connectionTelemetry.d.ts +2 -2
  231. package/lib/connectionTelemetry.d.ts.map +1 -1
  232. package/lib/connectionTelemetry.js +11 -7
  233. package/lib/connectionTelemetry.js.map +1 -1
  234. package/lib/containerHandleContext.d.ts +1 -1
  235. package/lib/containerHandleContext.d.ts.map +1 -1
  236. package/lib/containerHandleContext.js.map +1 -1
  237. package/lib/containerRuntime.d.ts +87 -94
  238. package/lib/containerRuntime.d.ts.map +1 -1
  239. package/lib/containerRuntime.js +319 -228
  240. package/lib/containerRuntime.js.map +1 -1
  241. package/lib/dataStore.d.ts +7 -3
  242. package/lib/dataStore.d.ts.map +1 -1
  243. package/lib/dataStore.js +8 -4
  244. package/lib/dataStore.js.map +1 -1
  245. package/lib/dataStoreContext.d.ts +41 -25
  246. package/lib/dataStoreContext.d.ts.map +1 -1
  247. package/lib/dataStoreContext.js +47 -29
  248. package/lib/dataStoreContext.js.map +1 -1
  249. package/lib/dataStoreContexts.d.ts +6 -2
  250. package/lib/dataStoreContexts.d.ts.map +1 -1
  251. package/lib/dataStoreContexts.js +7 -2
  252. package/lib/dataStoreContexts.js.map +1 -1
  253. package/lib/dataStoreRegistry.d.ts +1 -1
  254. package/lib/dataStoreRegistry.d.ts.map +1 -1
  255. package/lib/dataStoreRegistry.js.map +1 -1
  256. package/lib/deltaManagerProxies.d.ts +1 -17
  257. package/lib/deltaManagerProxies.d.ts.map +1 -1
  258. package/lib/deltaManagerProxies.js.map +1 -1
  259. package/lib/deltaScheduler.d.ts +9 -6
  260. package/lib/deltaScheduler.d.ts.map +1 -1
  261. package/lib/deltaScheduler.js +96 -90
  262. package/lib/deltaScheduler.js.map +1 -1
  263. package/lib/gc/garbageCollection.d.ts +21 -7
  264. package/lib/gc/garbageCollection.d.ts.map +1 -1
  265. package/lib/gc/garbageCollection.js +51 -20
  266. package/lib/gc/garbageCollection.js.map +1 -1
  267. package/lib/gc/gcConfigs.d.ts +11 -0
  268. package/lib/gc/gcConfigs.d.ts.map +1 -1
  269. package/lib/gc/gcConfigs.js +4 -2
  270. package/lib/gc/gcConfigs.js.map +1 -1
  271. package/lib/gc/gcDefinitions.d.ts +218 -70
  272. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  273. package/lib/gc/gcDefinitions.js +40 -13
  274. package/lib/gc/gcDefinitions.js.map +1 -1
  275. package/lib/gc/gcHelpers.d.ts +6 -2
  276. package/lib/gc/gcHelpers.d.ts.map +1 -1
  277. package/lib/gc/gcHelpers.js +14 -7
  278. package/lib/gc/gcHelpers.js.map +1 -1
  279. package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  280. package/lib/gc/gcSummaryDefinitions.d.ts +18 -6
  281. package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -1
  282. package/lib/gc/gcSummaryDefinitions.js.map +1 -1
  283. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  284. package/lib/gc/gcSummaryStateTracker.js +2 -1
  285. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  286. package/lib/gc/gcTelemetry.d.ts +33 -11
  287. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  288. package/lib/gc/gcTelemetry.js +38 -18
  289. package/lib/gc/gcTelemetry.js.map +1 -1
  290. package/lib/gc/gcUnreferencedStateTracker.d.ts +42 -13
  291. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  292. package/lib/gc/gcUnreferencedStateTracker.js +27 -9
  293. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
  294. package/lib/gc/index.d.ts +1 -0
  295. package/lib/gc/index.d.ts.map +1 -1
  296. package/lib/gc/index.js +1 -0
  297. package/lib/gc/index.js.map +1 -1
  298. package/lib/inboundBatchAggregator.d.ts +34 -0
  299. package/lib/inboundBatchAggregator.d.ts.map +1 -0
  300. package/lib/inboundBatchAggregator.js +181 -0
  301. package/lib/inboundBatchAggregator.js.map +1 -0
  302. package/lib/index.d.ts +1 -1
  303. package/lib/index.d.ts.map +1 -1
  304. package/lib/index.js.map +1 -1
  305. package/lib/layerCompatState.d.ts +19 -0
  306. package/lib/layerCompatState.d.ts.map +1 -0
  307. package/lib/layerCompatState.js +60 -0
  308. package/lib/layerCompatState.js.map +1 -0
  309. package/lib/legacy.d.ts +0 -4
  310. package/lib/messageTypes.d.ts +14 -5
  311. package/lib/messageTypes.d.ts.map +1 -1
  312. package/lib/messageTypes.js.map +1 -1
  313. package/lib/metadata.d.ts +12 -4
  314. package/lib/metadata.d.ts.map +1 -1
  315. package/lib/metadata.js +6 -2
  316. package/lib/metadata.js.map +1 -1
  317. package/lib/opLifecycle/batchManager.d.ts +9 -3
  318. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  319. package/lib/opLifecycle/batchManager.js +3 -1
  320. package/lib/opLifecycle/batchManager.js.map +1 -1
  321. package/lib/opLifecycle/duplicateBatchDetector.d.ts +9 -3
  322. package/lib/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
  323. package/lib/opLifecycle/duplicateBatchDetector.js +11 -5
  324. package/lib/opLifecycle/duplicateBatchDetector.js.map +1 -1
  325. package/lib/opLifecycle/opCompressor.d.ts +3 -2
  326. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  327. package/lib/opLifecycle/opCompressor.js +14 -20
  328. package/lib/opLifecycle/opCompressor.js.map +1 -1
  329. package/lib/opLifecycle/opDecompressor.d.ts +6 -1
  330. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  331. package/lib/opLifecycle/opDecompressor.js +17 -9
  332. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  333. package/lib/opLifecycle/opGroupingManager.d.ts +1 -2
  334. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  335. package/lib/opLifecycle/opGroupingManager.js +10 -7
  336. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  337. package/lib/opLifecycle/opSplitter.d.ts +13 -10
  338. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  339. package/lib/opLifecycle/opSplitter.js +16 -11
  340. package/lib/opLifecycle/opSplitter.js.map +1 -1
  341. package/lib/opLifecycle/outbox.d.ts +4 -4
  342. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  343. package/lib/opLifecycle/outbox.js +17 -16
  344. package/lib/opLifecycle/outbox.js.map +1 -1
  345. package/lib/opLifecycle/remoteMessageProcessor.d.ts +9 -3
  346. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  347. package/lib/opLifecycle/remoteMessageProcessor.js +3 -1
  348. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  349. package/lib/packageVersion.d.ts +1 -1
  350. package/lib/packageVersion.js +1 -1
  351. package/lib/packageVersion.js.map +1 -1
  352. package/lib/pendingStateManager.d.ts +22 -11
  353. package/lib/pendingStateManager.d.ts.map +1 -1
  354. package/lib/pendingStateManager.js +25 -16
  355. package/lib/pendingStateManager.js.map +1 -1
  356. package/lib/summary/documentSchema.d.ts +7 -0
  357. package/lib/summary/documentSchema.d.ts.map +1 -1
  358. package/lib/summary/documentSchema.js +8 -4
  359. package/lib/summary/documentSchema.js.map +1 -1
  360. package/lib/summary/index.d.ts +1 -1
  361. package/lib/summary/index.d.ts.map +1 -1
  362. package/lib/summary/index.js.map +1 -1
  363. package/lib/summary/orderedClientElection.d.ts +94 -31
  364. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  365. package/lib/summary/orderedClientElection.js +28 -16
  366. package/lib/summary/orderedClientElection.js.map +1 -1
  367. package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -0
  368. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  369. package/lib/summary/runWhileConnectedCoordinator.js +7 -2
  370. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  371. package/lib/summary/runningSummarizer.d.ts +17 -6
  372. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  373. package/lib/summary/runningSummarizer.js +48 -19
  374. package/lib/summary/runningSummarizer.js.map +1 -1
  375. package/lib/summary/summarizer.d.ts +10 -5
  376. package/lib/summary/summarizer.d.ts.map +1 -1
  377. package/lib/summary/summarizer.js +26 -11
  378. package/lib/summary/summarizer.js.map +1 -1
  379. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  380. package/lib/summary/summarizerClientElection.js +1 -0
  381. package/lib/summary/summarizerClientElection.js.map +1 -1
  382. package/lib/summary/summarizerHeuristics.d.ts +6 -2
  383. package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
  384. package/lib/summary/summarizerHeuristics.js +13 -5
  385. package/lib/summary/summarizerHeuristics.js.map +1 -1
  386. package/lib/summary/summarizerNode/index.d.ts.map +1 -1
  387. package/lib/summary/summarizerNode/index.js.map +1 -1
  388. package/lib/summary/summarizerNode/summarizerNode.d.ts +24 -8
  389. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  390. package/lib/summary/summarizerNode/summarizerNode.js +45 -36
  391. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  392. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
  393. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  394. package/lib/summary/summarizerNode/summarizerNodeUtils.js +3 -1
  395. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  396. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +13 -5
  397. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  398. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +15 -7
  399. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  400. package/lib/summary/summarizerTypes.d.ts +253 -135
  401. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  402. package/lib/summary/summarizerTypes.js.map +1 -1
  403. package/lib/summary/summaryCollection.d.ts +3 -4
  404. package/lib/summary/summaryCollection.d.ts.map +1 -1
  405. package/lib/summary/summaryCollection.js +10 -8
  406. package/lib/summary/summaryCollection.js.map +1 -1
  407. package/lib/summary/summaryFormat.d.ts +28 -9
  408. package/lib/summary/summaryFormat.d.ts.map +1 -1
  409. package/lib/summary/summaryFormat.js +2 -2
  410. package/lib/summary/summaryFormat.js.map +1 -1
  411. package/lib/summary/summaryGenerator.d.ts +9 -3
  412. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  413. package/lib/summary/summaryGenerator.js +22 -9
  414. package/lib/summary/summaryGenerator.js.map +1 -1
  415. package/lib/summary/summaryManager.d.ts +8 -4
  416. package/lib/summary/summaryManager.d.ts.map +1 -1
  417. package/lib/summary/summaryManager.js +20 -9
  418. package/lib/summary/summaryManager.js.map +1 -1
  419. package/lib/throttler.d.ts +26 -10
  420. package/lib/throttler.d.ts.map +1 -1
  421. package/lib/throttler.js +12 -4
  422. package/lib/throttler.js.map +1 -1
  423. package/package.json +22 -31
  424. package/src/batchTracker.ts +34 -36
  425. package/src/blobManager/blobManager.ts +54 -33
  426. package/src/blobManager/blobManagerSnapSum.ts +10 -10
  427. package/src/channelCollection.ts +108 -82
  428. package/src/connectionTelemetry.ts +43 -19
  429. package/src/containerHandleContext.ts +2 -2
  430. package/src/containerRuntime.ts +492 -364
  431. package/src/dataStore.ts +17 -9
  432. package/src/dataStoreContext.ts +94 -73
  433. package/src/dataStoreContexts.ts +17 -12
  434. package/src/dataStoreRegistry.ts +1 -1
  435. package/src/deltaManagerProxies.ts +5 -5
  436. package/src/deltaScheduler.ts +24 -18
  437. package/src/gc/garbageCollection.ts +89 -40
  438. package/src/gc/gcConfigs.ts +13 -5
  439. package/src/gc/gcDefinitions.ts +224 -70
  440. package/src/gc/gcHelpers.ts +22 -11
  441. package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
  442. package/src/gc/gcSummaryDefinitions.ts +18 -6
  443. package/src/gc/gcSummaryStateTracker.ts +7 -3
  444. package/src/gc/gcTelemetry.ts +73 -30
  445. package/src/gc/gcUnreferencedStateTracker.ts +40 -16
  446. package/src/gc/index.ts +1 -0
  447. package/src/{scheduleManager.ts → inboundBatchAggregator.ts} +55 -122
  448. package/src/index.ts +0 -3
  449. package/src/layerCompatState.ts +75 -0
  450. package/src/messageTypes.ts +16 -5
  451. package/src/metadata.ts +12 -4
  452. package/src/opLifecycle/README.md +43 -34
  453. package/src/opLifecycle/batchManager.ts +12 -6
  454. package/src/opLifecycle/duplicateBatchDetector.ts +12 -6
  455. package/src/opLifecycle/opCompressor.ts +22 -25
  456. package/src/opLifecycle/opDecompressor.ts +23 -11
  457. package/src/opLifecycle/opGroupingManager.ts +16 -11
  458. package/src/opLifecycle/opSplitter.ts +24 -18
  459. package/src/opLifecycle/outbox.ts +35 -33
  460. package/src/opLifecycle/remoteMessageProcessor.ts +13 -5
  461. package/src/packageVersion.ts +1 -1
  462. package/src/pendingStateManager.ts +49 -26
  463. package/src/summary/documentSchema.ts +41 -22
  464. package/src/summary/index.ts +0 -3
  465. package/src/summary/orderedClientElection.ts +114 -49
  466. package/src/summary/runWhileConnectedCoordinator.ts +12 -3
  467. package/src/summary/runningSummarizer.ts +79 -36
  468. package/src/summary/summarizer.ts +51 -25
  469. package/src/summary/summarizerClientElection.ts +4 -2
  470. package/src/summary/summarizerHeuristics.ts +23 -12
  471. package/src/summary/summarizerNode/index.ts +1 -0
  472. package/src/summary/summarizerNode/summarizerNode.ts +54 -43
  473. package/src/summary/summarizerNode/summarizerNodeUtils.ts +48 -16
  474. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +25 -15
  475. package/src/summary/summarizerTypes.ts +253 -139
  476. package/src/summary/summaryCollection.ts +41 -31
  477. package/src/summary/summaryFormat.ts +34 -13
  478. package/src/summary/summaryGenerator.ts +39 -18
  479. package/src/summary/summaryManager.ts +36 -24
  480. package/src/throttler.ts +23 -11
  481. package/container-runtime.test-files.tar +0 -0
  482. package/dist/scheduleManager.d.ts +0 -28
  483. package/dist/scheduleManager.d.ts.map +0 -1
  484. package/dist/scheduleManager.js +0 -233
  485. package/dist/scheduleManager.js.map +0 -1
  486. package/lib/scheduleManager.d.ts +0 -28
  487. package/lib/scheduleManager.d.ts.map +0 -1
  488. package/lib/scheduleManager.js +0 -229
  489. package/lib/scheduleManager.js.map +0 -1
@@ -3,8 +3,8 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  import { IDeltaManager, ContainerWarning } from "@fluidframework/container-definitions/internal";
6
- import type { ISummarizerEvents as NewISummarizerEvents, SummarizerStopReason as NewSummarizerStopReason } from "@fluidframework/container-runtime-definitions/internal";
7
- import { IEvent, IEventProvider, ITelemetryBaseProperties, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
6
+ import type { ISummarizerEvents, SummarizerStopReason } from "@fluidframework/container-runtime-definitions/internal";
7
+ import { IEventProvider, ITelemetryBaseProperties, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
8
8
  import { ISummaryTree } from "@fluidframework/driver-definitions";
9
9
  import { IDocumentMessage, ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
10
10
  import { ISummaryStats } from "@fluidframework/runtime-definitions/internal";
@@ -17,9 +17,12 @@ import { SummarizeReason } from "./summaryGenerator.js";
17
17
  * @param T - cancellation reason type
18
18
  * @legacy
19
19
  * @alpha
20
+ * @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
20
21
  */
21
22
  export interface ICancellationToken<T> {
22
- /** Tells if this cancellable token is cancelled */
23
+ /**
24
+ * Tells if this cancellable token is cancelled
25
+ */
23
26
  readonly cancelled: boolean;
24
27
  /**
25
28
  * Promise that gets fulfilled when this cancellable token is cancelled
@@ -31,31 +34,46 @@ export interface ICancellationToken<T> {
31
34
  * Similar to AbortSignal, but using promise instead of events
32
35
  * @legacy
33
36
  * @alpha
37
+ * @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
34
38
  */
35
- export type ISummaryCancellationToken = ICancellationToken<NewSummarizerStopReason>;
39
+ export type ISummaryCancellationToken = ICancellationToken<SummarizerStopReason>;
36
40
  /**
37
41
  * Data required to update internal tracking state after receiving a Summary Ack.
38
42
  * @legacy
39
43
  * @alpha
44
+ * @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
40
45
  */
41
46
  export interface IRefreshSummaryAckOptions {
42
- /** Handle from the ack's summary op. */
47
+ /**
48
+ * Handle from the ack's summary op.
49
+ */
43
50
  readonly proposalHandle: string | undefined;
44
- /** Handle from the summary ack just received */
51
+ /**
52
+ * Handle from the summary ack just received
53
+ */
45
54
  readonly ackHandle: string;
46
- /** Reference sequence number from the ack's summary op */
55
+ /**
56
+ * Reference sequence number from the ack's summary op
57
+ */
47
58
  readonly summaryRefSeq: number;
48
- /** Telemetry logger to which telemetry events will be forwarded. */
59
+ /**
60
+ * Telemetry logger to which telemetry events will be forwarded.
61
+ */
49
62
  readonly summaryLogger: ITelemetryLoggerExt;
50
63
  }
51
64
  /**
52
65
  * @legacy
53
66
  * @alpha
67
+ * @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
54
68
  */
55
69
  export interface ISummarizerInternalsProvider {
56
- /** Encapsulates the work to walk the internals of the running container to generate a summary */
70
+ /**
71
+ * Encapsulates the work to walk the internals of the running container to generate a summary
72
+ */
57
73
  submitSummary(options: ISubmitSummaryOptions): Promise<SubmitSummaryResult>;
58
- /** Callback whenever a new SummaryAck is received, to update internal tracking state */
74
+ /**
75
+ * Callback whenever a new SummaryAck is received, to update internal tracking state
76
+ */
59
77
  refreshLatestSummaryAck(options: IRefreshSummaryAckOptions): Promise<void>;
60
78
  }
61
79
  /**
@@ -68,6 +86,7 @@ export interface ISummarizingWarning extends ContainerWarning {
68
86
  /**
69
87
  * @legacy
70
88
  * @alpha
89
+ * @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
71
90
  */
72
91
  export interface IConnectableRuntime {
73
92
  readonly disposed: boolean;
@@ -78,10 +97,13 @@ export interface IConnectableRuntime {
78
97
  /**
79
98
  * @legacy
80
99
  * @alpha
100
+ * @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
81
101
  */
82
102
  export interface ISummarizerRuntime extends IConnectableRuntime {
83
103
  readonly baseLogger: ITelemetryBaseLogger;
84
- /** clientId of parent (non-summarizing) container that owns summarizer container */
104
+ /**
105
+ * clientId of parent (non-summarizing) container that owns summarizer container
106
+ */
85
107
  readonly summarizerClientId: string | undefined;
86
108
  readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
87
109
  disposeFn(): void;
@@ -95,21 +117,32 @@ export interface ISummarizerRuntime extends IConnectableRuntime {
95
117
  * @alpha
96
118
  */
97
119
  export interface ISummarizeOptions {
98
- /** True to generate the full tree with no handle reuse optimizations; defaults to false */
120
+ /**
121
+ * True to generate the full tree with no handle reuse optimizations; defaults to false
122
+ */
99
123
  readonly fullTree?: boolean;
100
124
  }
101
125
  /**
102
126
  * @legacy
103
127
  * @alpha
128
+ * @deprecated This type will be moved to internal in 2.30. External usage is not necessary or supported.
104
129
  */
105
130
  export interface ISubmitSummaryOptions extends ISummarizeOptions {
106
- /** Logger to use for correlated summary events */
131
+ /**
132
+ * Logger to use for correlated summary events
133
+ */
107
134
  readonly summaryLogger: ITelemetryLoggerExt;
108
- /** Tells when summary process should be cancelled */
135
+ /**
136
+ * Tells when summary process should be cancelled
137
+ */
109
138
  readonly cancellationToken: ISummaryCancellationToken;
110
- /** Summarization may be attempted multiple times. This tells whether this is the final summarization attempt. */
139
+ /**
140
+ * Summarization may be attempted multiple times. This tells whether this is the final summarization attempt.
141
+ */
111
142
  readonly finalAttempt?: boolean;
112
- /** The sequence number of the latest summary used to validate if summary state is correct before summarizing */
143
+ /**
144
+ * The sequence number of the latest summary used to validate if summary state is correct before summarizing
145
+ */
113
146
  readonly latestSummaryRefSeqNum: number;
114
147
  }
115
148
  /**
@@ -117,9 +150,13 @@ export interface ISubmitSummaryOptions extends ISummarizeOptions {
117
150
  * @alpha
118
151
  */
119
152
  export interface IOnDemandSummarizeOptions extends ISummarizeOptions {
120
- /** Reason for generating summary. */
153
+ /**
154
+ * Reason for generating summary.
155
+ */
121
156
  readonly reason: string;
122
- /** In case of a failure, will attempt to retry based on if the failure is retriable. */
157
+ /**
158
+ * In case of a failure, will attempt to retry based on if the failure is retriable.
159
+ */
123
160
  readonly retryOnFailure?: boolean;
124
161
  }
125
162
  /**
@@ -128,7 +165,9 @@ export interface IOnDemandSummarizeOptions extends ISummarizeOptions {
128
165
  * @alpha
129
166
  */
130
167
  export interface IEnqueueSummarizeOptions extends IOnDemandSummarizeOptions {
131
- /** If specified, The summarize attempt will not occur until after this sequence number. */
168
+ /**
169
+ * If specified, The summarize attempt will not occur until after this sequence number.
170
+ */
132
171
  readonly afterSequenceNumber?: number;
133
172
  /**
134
173
  * True to override the existing enqueued summarize attempt if there is one.
@@ -145,17 +184,29 @@ export interface IEnqueueSummarizeOptions extends IOnDemandSummarizeOptions {
145
184
  * @alpha
146
185
  */
147
186
  export interface IGeneratedSummaryStats extends ISummaryStats {
148
- /** The total number of data stores in the container. */
187
+ /**
188
+ * The total number of data stores in the container.
189
+ */
149
190
  readonly dataStoreCount: number;
150
- /** The number of data stores that were summarized in this summary. */
191
+ /**
192
+ * The number of data stores that were summarized in this summary.
193
+ */
151
194
  readonly summarizedDataStoreCount: number;
152
- /** The number of data stores whose GC reference state was updated in this summary. */
195
+ /**
196
+ * The number of data stores whose GC reference state was updated in this summary.
197
+ */
153
198
  readonly gcStateUpdatedDataStoreCount?: number;
154
- /** The size of the gc blobs in this summary. */
199
+ /**
200
+ * The size of the gc blobs in this summary.
201
+ */
155
202
  readonly gcTotalBlobsSize?: number;
156
- /** The number of gc blobs in this summary. */
203
+ /**
204
+ * The number of gc blobs in this summary.
205
+ */
157
206
  readonly gcBlobNodeCount?: number;
158
- /** The summary number for a container's summary. Incremented on summaries throughout its lifetime. */
207
+ /**
208
+ * The summary number for a container's summary. Incremented on summaries throughout its lifetime.
209
+ */
159
210
  readonly summaryNumber: number;
160
211
  }
161
212
  /**
@@ -173,9 +224,13 @@ export interface IRetriableFailureError extends Error {
173
224
  */
174
225
  export interface IBaseSummarizeResult {
175
226
  readonly stage: "base";
176
- /** Retriable error object related to failed summarize attempt. */
227
+ /**
228
+ * Retriable error object related to failed summarize attempt.
229
+ */
177
230
  readonly error: IRetriableFailureError | undefined;
178
- /** Reference sequence number as of the generate summary attempt. */
231
+ /**
232
+ * Reference sequence number as of the generate summary attempt.
233
+ */
179
234
  readonly referenceSequenceNumber: number;
180
235
  readonly minimumSequenceNumber: number;
181
236
  }
@@ -186,11 +241,17 @@ export interface IBaseSummarizeResult {
186
241
  */
187
242
  export interface IGenerateSummaryTreeResult extends Omit<IBaseSummarizeResult, "stage"> {
188
243
  readonly stage: "generate";
189
- /** Generated summary tree. */
244
+ /**
245
+ * Generated summary tree.
246
+ */
190
247
  readonly summaryTree: ISummaryTree;
191
- /** Stats for generated summary tree. */
248
+ /**
249
+ * Stats for generated summary tree.
250
+ */
192
251
  readonly summaryStats: IGeneratedSummaryStats;
193
- /** Time it took to generate the summary tree and stats. */
252
+ /**
253
+ * Time it took to generate the summary tree and stats.
254
+ */
194
255
  readonly generateDuration: number;
195
256
  }
196
257
  /**
@@ -200,9 +261,13 @@ export interface IGenerateSummaryTreeResult extends Omit<IBaseSummarizeResult, "
200
261
  */
201
262
  export interface IUploadSummaryResult extends Omit<IGenerateSummaryTreeResult, "stage"> {
202
263
  readonly stage: "upload";
203
- /** The handle returned by storage pointing to the uploaded summary tree. */
264
+ /**
265
+ * The handle returned by storage pointing to the uploaded summary tree.
266
+ */
204
267
  readonly handle: string;
205
- /** Time it took to upload the summary tree to storage. */
268
+ /**
269
+ * Time it took to upload the summary tree to storage.
270
+ */
206
271
  readonly uploadDuration: number;
207
272
  }
208
273
  /**
@@ -212,9 +277,13 @@ export interface IUploadSummaryResult extends Omit<IGenerateSummaryTreeResult, "
212
277
  */
213
278
  export interface ISubmitSummaryOpResult extends Omit<IUploadSummaryResult, "stage" | "error"> {
214
279
  readonly stage: "submit";
215
- /** The client sequence number of the summarize op submitted for the summary. */
280
+ /**
281
+ * The client sequence number of the summarize op submitted for the summary.
282
+ */
216
283
  readonly clientSequenceNumber: number;
217
- /** Time it took to submit the summarize op to the broadcasting service. */
284
+ /**
285
+ * Time it took to submit the summarize op to the broadcasting service.
286
+ */
218
287
  readonly submitOpDuration: number;
219
288
  }
220
289
  /**
@@ -292,11 +361,17 @@ export type SummarizeResultPart<TSuccess, TFailure = undefined> = {
292
361
  * @alpha
293
362
  */
294
363
  export interface ISummarizeResults {
295
- /** Resolves when we generate, upload, and submit the summary. */
364
+ /**
365
+ * Resolves when we generate, upload, and submit the summary.
366
+ */
296
367
  readonly summarySubmitted: Promise<SummarizeResultPart<SubmitSummaryResult, SubmitSummaryFailureData>>;
297
- /** Resolves when we observe our summarize op broadcast. */
368
+ /**
369
+ * Resolves when we observe our summarize op broadcast.
370
+ */
298
371
  readonly summaryOpBroadcasted: Promise<SummarizeResultPart<IBroadcastSummaryResult>>;
299
- /** Resolves when we receive a summaryAck or summaryNack. */
372
+ /**
373
+ * Resolves when we receive a summaryAck or summaryNack.
374
+ */
300
375
  readonly receivedSummaryAckOrNack: Promise<SummarizeResultPart<IAckSummaryResult, INackSummaryResult>>;
301
376
  }
302
377
  /**
@@ -310,7 +385,9 @@ export type EnqueueSummarizeResult = (ISummarizeResults & {
310
385
  */
311
386
  readonly alreadyEnqueued?: undefined;
312
387
  }) | (ISummarizeResults & {
313
- /** Indicates that another summarize attempt was already enqueued. */
388
+ /**
389
+ * Indicates that another summarize attempt was already enqueued.
390
+ */
314
391
  readonly alreadyEnqueued: true;
315
392
  /**
316
393
  * Indicates that the other enqueued summarize attempt was abandoned,
@@ -318,7 +395,9 @@ export type EnqueueSummarizeResult = (ISummarizeResults & {
318
395
  */
319
396
  readonly overridden: true;
320
397
  }) | {
321
- /** Indicates that another summarize attempt was already enqueued. */
398
+ /**
399
+ * Indicates that another summarize attempt was already enqueued.
400
+ */
322
401
  readonly alreadyEnqueued: true;
323
402
  /**
324
403
  * Indicates that the other enqueued summarize attempt remains enqueued,
@@ -326,67 +405,18 @@ export type EnqueueSummarizeResult = (ISummarizeResults & {
326
405
  */
327
406
  readonly overridden?: undefined;
328
407
  };
329
- /**
330
- * @legacy
331
- * @alpha
332
- * @deprecated Use SummarizerStopReason from the "\@fluidframework/container-runtime-definitions" package
333
- */
334
- export type SummarizerStopReason =
335
- /** Summarizer client failed to summarize in all attempts. */
336
- "failToSummarize"
337
- /** Parent client reported that it is no longer connected. */
338
- | "parentNotConnected"
339
- /**
340
- * Parent client reported that it is no longer elected the summarizer.
341
- * This is the normal flow; a disconnect will always trigger the parent
342
- * client to no longer be elected as responsible for summaries. Then it
343
- * tries to stop its spawned summarizer client.
344
- */
345
- | "notElectedParent"
346
- /**
347
- * We are not already running the summarizer and we are not the current elected client id.
348
- */
349
- | "notElectedClient"
350
- /** Summarizer client was disconnected */
351
- | "summarizerClientDisconnected"
352
- /** running summarizer threw an exception */
353
- | "summarizerException"
354
- /**
355
- * The previous summary state on the summarizer is not the most recently acked summary. this also happens when the
356
- * first submitSummary attempt fails for any reason and there's a 2nd summary attempt without an ack
357
- */
358
- | "latestSummaryStateStale";
359
- /**
360
- * @legacy
361
- * @alpha
362
- * @deprecated Use ISummarizeEventProps from the "\@fluidframework/container-runtime-definitions" package
363
- */
364
- export interface ISummarizeEventProps {
365
- result: "success" | "failure" | "canceled";
366
- currentAttempt: number;
367
- maxAttempts: number;
368
- error?: any;
369
- }
370
- /**
371
- * @legacy
372
- * @alpha
373
- * @deprecated Use ISummarizerEvents from the "\@fluidframework/container-runtime-definitions" package
374
- */
375
- export interface ISummarizerEvents extends IEvent {
376
- (event: "summarize", listener: (props: ISummarizeEventProps) => void): any;
377
- }
378
408
  /**
379
409
  * @legacy
380
410
  * @alpha
381
411
  */
382
- export interface ISummarizer extends IEventProvider<NewISummarizerEvents> {
412
+ export interface ISummarizer extends IEventProvider<ISummarizerEvents> {
383
413
  /**
384
414
  * Allows {@link ISummarizer} to be used with our {@link @fluidframework/core-interfaces#FluidObject} pattern.
385
415
  */
386
416
  readonly ISummarizer?: ISummarizer;
387
- stop(reason: NewSummarizerStopReason): void;
417
+ stop(reason: SummarizerStopReason): void;
388
418
  close(): void;
389
- run(onBehalfOf: string): Promise<NewSummarizerStopReason>;
419
+ run(onBehalfOf: string): Promise<SummarizerStopReason>;
390
420
  /**
391
421
  * Attempts to generate a summary on demand. If already running, takes no action.
392
422
  * @param options - options controlling the summarize attempt
@@ -411,30 +441,54 @@ export interface ISummarizer extends IEventProvider<NewISummarizerEvents> {
411
441
  */
412
442
  enqueueSummarize(options: IEnqueueSummarizeOptions): EnqueueSummarizeResult;
413
443
  }
414
- /** Data about an attempt to summarize used for heuristics. */
444
+ /**
445
+ * Data about an attempt to summarize used for heuristics.
446
+ */
415
447
  export interface ISummarizeAttempt {
416
- /** Reference sequence number when summary was generated or attempted */
448
+ /**
449
+ * Reference sequence number when summary was generated or attempted
450
+ */
417
451
  readonly refSequenceNumber: number;
418
- /** Time of summary attempt after it was sent or attempted */
452
+ /**
453
+ * Time of summary attempt after it was sent or attempted
454
+ */
419
455
  readonly summaryTime: number;
420
- /** Sequence number of summary op */
456
+ /**
457
+ * Sequence number of summary op
458
+ */
421
459
  summarySequenceNumber?: number;
422
460
  }
423
- /** Data relevant for summary heuristics. */
461
+ /**
462
+ * Data relevant for summary heuristics.
463
+ */
424
464
  export interface ISummarizeHeuristicData {
425
- /** Latest received op sequence number */
465
+ /**
466
+ * Latest received op sequence number
467
+ */
426
468
  lastOpSequenceNumber: number;
427
- /** Most recent summary attempt from this client */
469
+ /**
470
+ * Most recent summary attempt from this client
471
+ */
428
472
  readonly lastAttempt: ISummarizeAttempt;
429
- /** Most recent summary that received an ack */
473
+ /**
474
+ * Most recent summary that received an ack
475
+ */
430
476
  readonly lastSuccessfulSummary: Readonly<ISummarizeAttempt>;
431
- /** Number of runtime ops since last summary */
477
+ /**
478
+ * Number of runtime ops since last summary
479
+ */
432
480
  numRuntimeOps: number;
433
- /** Number of non-runtime ops since last summary */
481
+ /**
482
+ * Number of non-runtime ops since last summary
483
+ */
434
484
  numNonRuntimeOps: number;
435
- /** Cumulative size in bytes of all the ops since the last summary */
485
+ /**
486
+ * Cumulative size in bytes of all the ops since the last summary
487
+ */
436
488
  totalOpsSize: number;
437
- /** Wether or not this instance contains adjusted metrics due to missing op data */
489
+ /**
490
+ * Wether or not this instance contains adjusted metrics due to missing op data
491
+ */
438
492
  hasMissingOpData: boolean;
439
493
  /**
440
494
  * Updates lastAttempt and lastSuccessfulAttempt based on the last summary.
@@ -448,33 +502,55 @@ export interface ISummarizeHeuristicData {
448
502
  * @param referenceSequenceNumber - reference sequence number of sent summary
449
503
  */
450
504
  recordAttempt(referenceSequenceNumber?: number): void;
451
- /** Mark that the last sent summary attempt has received an ack */
505
+ /**
506
+ * Mark that the last sent summary attempt has received an ack
507
+ */
452
508
  markLastAttemptAsSuccessful(): void;
453
509
  opsSinceLastSummary: number;
454
510
  }
455
- /** Responsible for running heuristics determining when to summarize. */
511
+ /**
512
+ * Responsible for running heuristics determining when to summarize.
513
+ */
456
514
  export interface ISummarizeHeuristicRunner {
457
- /** Start specific heuristic trackers (ex: idle timer) */
515
+ /**
516
+ * Start specific heuristic trackers (ex: idle timer)
517
+ */
458
518
  start(): void;
459
- /** Runs the heuristics to determine if it should try to summarize */
519
+ /**
520
+ * Runs the heuristics to determine if it should try to summarize
521
+ */
460
522
  run(): void;
461
- /** Runs a different heuristic to check if it should summarize before closing */
523
+ /**
524
+ * Runs a different heuristic to check if it should summarize before closing
525
+ */
462
526
  shouldRunLastSummary(): boolean;
463
- /** Disposes of resources */
527
+ /**
528
+ * Disposes of resources
529
+ */
464
530
  dispose(): void;
465
531
  }
466
532
  type ISummarizeTelemetryRequiredProperties =
467
- /** Reason code for attempting to summarize */
533
+ /**
534
+ * Reason code for attempting to summarize
535
+ */
468
536
  "summarizeReason";
469
537
  type ISummarizeTelemetryOptionalProperties =
470
- /** Number of attempts within the last time window, used for calculating the throttle delay. */
538
+ /**
539
+ * Number of attempts within the last time window, used for calculating the throttle delay.
540
+ */
471
541
  "summaryAttempts"
472
- /** Summarization may be attempted multiple times. This tells whether this is the final summarization attempt */
542
+ /**
543
+ * Summarization may be attempted multiple times. This tells whether this is the final summarization attempt
544
+ */
473
545
  | "finalAttempt" | keyof ISummarizeOptions;
474
546
  export type ISummarizeTelemetryProperties = Pick<ITelemetryBaseProperties, ISummarizeTelemetryRequiredProperties> & Partial<Pick<ITelemetryBaseProperties, ISummarizeTelemetryOptionalProperties>>;
475
- /** Strategy used to heuristically determine when we should run a summary */
547
+ /**
548
+ * Strategy used to heuristically determine when we should run a summary
549
+ */
476
550
  export interface ISummaryHeuristicStrategy {
477
- /** Summarize reason for this summarize heuristic strategy (ex: "maxTime") */
551
+ /**
552
+ * Summarize reason for this summarize heuristic strategy (ex: "maxTime")
553
+ */
478
554
  summarizeReason: Readonly<SummarizeReason>;
479
555
  /**
480
556
  * Determines if this strategy's summarize criteria been met
@@ -484,55 +560,97 @@ export interface ISummaryHeuristicStrategy {
484
560
  shouldRunSummary(configuration: ISummaryConfigurationHeuristics, heuristicData: ISummarizeHeuristicData): boolean;
485
561
  }
486
562
  type SummaryGeneratorRequiredTelemetryProperties =
487
- /** True to generate the full tree with no handle reuse optimizations */
563
+ /**
564
+ * True to generate the full tree with no handle reuse optimizations
565
+ */
488
566
  "fullTree"
489
- /** Time since we last attempted to generate a summary */
567
+ /**
568
+ * Time since we last attempted to generate a summary
569
+ */
490
570
  | "timeSinceLastAttempt"
491
- /** Time since we last successfully generated a summary */
571
+ /**
572
+ * Time since we last successfully generated a summary
573
+ */
492
574
  | "timeSinceLastSummary";
493
575
  type SummaryGeneratorOptionalTelemetryProperties =
494
- /** Reference sequence number as of the generate summary attempt. */
576
+ /**
577
+ * Reference sequence number as of the generate summary attempt.
578
+ */
495
579
  "referenceSequenceNumber"
496
- /** minimum sequence number (at the reference sequence number) */
580
+ /**
581
+ * minimum sequence number (at the reference sequence number)
582
+ */
497
583
  | "minimumSequenceNumber"
498
- /** Delta between the current reference sequence number and the reference sequence number of the last attempt */
584
+ /**
585
+ * Delta between the current reference sequence number and the reference sequence number of the last attempt
586
+ */
499
587
  | "opsSinceLastAttempt"
500
- /** Delta between the current reference sequence number and the reference sequence number of the last summary */
588
+ /**
589
+ * Delta between the current reference sequence number and the reference sequence number of the last summary
590
+ */
501
591
  | "opsSinceLastSummary"
502
592
  /**
503
593
  * Delta in sum of op sizes between the current reference sequence number and the reference
504
594
  * sequence number of the last summary
505
595
  */
506
596
  | "opsSizesSinceLastSummary"
507
- /** Delta between the number of non-runtime ops since the last summary */
597
+ /**
598
+ * Delta between the number of non-runtime ops since the last summary
599
+ */
508
600
  | "nonRuntimeOpsSinceLastSummary"
509
- /** Delta between the number of runtime ops since the last summary */
601
+ /**
602
+ * Delta between the number of runtime ops since the last summary
603
+ */
510
604
  | "runtimeOpsSinceLastSummary"
511
- /** Wether or not this instance contains adjusted metrics due to missing op data */
605
+ /**
606
+ * Wether or not this instance contains adjusted metrics due to missing op data
607
+ */
512
608
  | "hasMissingOpData"
513
- /** Time it took to generate the summary tree and stats. */
609
+ /**
610
+ * Time it took to generate the summary tree and stats.
611
+ */
514
612
  | "generateDuration"
515
- /** The handle returned by storage pointing to the uploaded summary tree. */
613
+ /**
614
+ * The handle returned by storage pointing to the uploaded summary tree.
615
+ */
516
616
  | "handle"
517
- /** Time it took to upload the summary tree to storage. */
617
+ /**
618
+ * Time it took to upload the summary tree to storage.
619
+ */
518
620
  | "uploadDuration"
519
- /** The client sequence number of the summarize op submitted for the summary. */
621
+ /**
622
+ * The client sequence number of the summarize op submitted for the summary.
623
+ */
520
624
  | "clientSequenceNumber"
521
- /** Time it took for this summary to be acked after it was generated */
625
+ /**
626
+ * Time it took for this summary to be acked after it was generated
627
+ */
522
628
  | "ackWaitDuration"
523
- /** Reference sequence number of the ack/nack message */
629
+ /**
630
+ * Reference sequence number of the ack/nack message
631
+ */
524
632
  | "ackNackSequenceNumber"
525
- /** Actual sequence number of the summary op proposal. */
633
+ /**
634
+ * Actual sequence number of the summary op proposal.
635
+ */
526
636
  | "summarySequenceNumber"
527
- /** Optional Retry-After time in seconds. If specified, the client should wait this many seconds before retrying. */
637
+ /**
638
+ * Optional Retry-After time in seconds. If specified, the client should wait this many seconds before retrying.
639
+ */
528
640
  | "nackRetryAfter"
529
- /** The stage at which the submit summary method failed at. This can help determine what type of failure we have */
641
+ /**
642
+ * The stage at which the submit summary method failed at. This can help determine what type of failure we have
643
+ */
530
644
  | "stage";
531
645
  export type SummaryGeneratorTelemetry = Pick<ITelemetryBaseProperties, SummaryGeneratorRequiredTelemetryProperties> & Partial<Pick<ITelemetryBaseProperties, SummaryGeneratorOptionalTelemetryProperties>>;
532
646
  export interface ISummarizeRunnerTelemetry extends ITelemetryLoggerPropertyBag {
533
- /** Number of times the summarizer run. */
647
+ /**
648
+ * Number of times the summarizer run.
649
+ */
534
650
  summarizeCount: () => number;
535
- /** Number of successful attempts to summarize. */
651
+ /**
652
+ * Number of successful attempts to summarize.
653
+ */
536
654
  summarizerSuccessfulAttempts: () => number;
537
655
  }
538
656
  export {};