@fluidframework/container-runtime 2.31.0 → 2.32.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 (299) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/container-runtime.test-files.tar +0 -0
  3. package/dist/channelCollection.d.ts +0 -14
  4. package/dist/channelCollection.d.ts.map +1 -1
  5. package/dist/channelCollection.js +10 -25
  6. package/dist/channelCollection.js.map +1 -1
  7. package/dist/containerRuntime.d.ts +16 -9
  8. package/dist/containerRuntime.d.ts.map +1 -1
  9. package/dist/containerRuntime.js +137 -103
  10. package/dist/containerRuntime.js.map +1 -1
  11. package/dist/dataStoreContext.d.ts +1 -5
  12. package/dist/dataStoreContext.d.ts.map +1 -1
  13. package/dist/dataStoreContext.js +0 -8
  14. package/dist/dataStoreContext.js.map +1 -1
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1 -2
  18. package/dist/index.js.map +1 -1
  19. package/dist/messageTypes.d.ts +3 -7
  20. package/dist/messageTypes.d.ts.map +1 -1
  21. package/dist/messageTypes.js.map +1 -1
  22. package/dist/opLifecycle/batchManager.d.ts +4 -4
  23. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  24. package/dist/opLifecycle/batchManager.js +4 -4
  25. package/dist/opLifecycle/batchManager.js.map +1 -1
  26. package/dist/opLifecycle/definitions.d.ts +40 -6
  27. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  28. package/dist/opLifecycle/definitions.js.map +1 -1
  29. package/dist/opLifecycle/index.d.ts +4 -3
  30. package/dist/opLifecycle/index.d.ts.map +1 -1
  31. package/dist/opLifecycle/index.js +4 -3
  32. package/dist/opLifecycle/index.js.map +1 -1
  33. package/dist/opLifecycle/opCompressor.d.ts +10 -11
  34. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  35. package/dist/opLifecycle/opCompressor.js +19 -18
  36. package/dist/opLifecycle/opCompressor.js.map +1 -1
  37. package/dist/opLifecycle/opGroupingManager.d.ts +9 -5
  38. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  39. package/dist/opLifecycle/opGroupingManager.js +18 -22
  40. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  41. package/dist/opLifecycle/opSerialization.d.ts +20 -0
  42. package/dist/opLifecycle/opSerialization.d.ts.map +1 -0
  43. package/dist/opLifecycle/opSerialization.js +40 -0
  44. package/dist/opLifecycle/opSerialization.js.map +1 -0
  45. package/dist/opLifecycle/opSplitter.d.ts +12 -13
  46. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  47. package/dist/opLifecycle/opSplitter.js +13 -13
  48. package/dist/opLifecycle/opSplitter.js.map +1 -1
  49. package/dist/opLifecycle/outbox.d.ts +16 -18
  50. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  51. package/dist/opLifecycle/outbox.js +57 -43
  52. package/dist/opLifecycle/outbox.js.map +1 -1
  53. package/dist/opLifecycle/remoteMessageProcessor.d.ts +0 -7
  54. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  55. package/dist/opLifecycle/remoteMessageProcessor.js +1 -15
  56. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  57. package/dist/packageVersion.d.ts +1 -1
  58. package/dist/packageVersion.js +1 -1
  59. package/dist/packageVersion.js.map +1 -1
  60. package/dist/pendingStateManager.d.ts +2 -2
  61. package/dist/pendingStateManager.d.ts.map +1 -1
  62. package/dist/pendingStateManager.js +1 -1
  63. package/dist/pendingStateManager.js.map +1 -1
  64. package/dist/runtimeLayerCompatState.d.ts.map +1 -1
  65. package/dist/runtimeLayerCompatState.js +6 -5
  66. package/dist/runtimeLayerCompatState.js.map +1 -1
  67. package/dist/summary/index.d.ts +5 -8
  68. package/dist/summary/index.d.ts.map +1 -1
  69. package/dist/summary/index.js +20 -21
  70. package/dist/summary/index.js.map +1 -1
  71. package/dist/summary/orderedClientElection.js +9 -9
  72. package/dist/summary/orderedClientElection.js.map +1 -1
  73. package/dist/summary/summarizerClientElection.d.ts +0 -1
  74. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  75. package/dist/summary/summarizerClientElection.js +3 -3
  76. package/dist/summary/summarizerClientElection.js.map +1 -1
  77. package/dist/summary/summarizerTypes.d.ts +3 -75
  78. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  79. package/dist/summary/summarizerTypes.js +2 -0
  80. package/dist/summary/summarizerTypes.js.map +1 -1
  81. package/{lib/summary/summaryGenerator.d.ts → dist/summary/summarizerUtils.d.ts} +12 -43
  82. package/dist/summary/summarizerUtils.d.ts.map +1 -0
  83. package/dist/summary/summarizerUtils.js +71 -0
  84. package/dist/summary/summarizerUtils.js.map +1 -0
  85. package/dist/summary/summaryDelayLoadedModule/index.d.ts +10 -0
  86. package/dist/summary/summaryDelayLoadedModule/index.d.ts.map +1 -0
  87. package/dist/summary/summaryDelayLoadedModule/index.js +20 -0
  88. package/dist/summary/summaryDelayLoadedModule/index.js.map +1 -0
  89. package/dist/summary/{runWhileConnectedCoordinator.d.ts → summaryDelayLoadedModule/runWhileConnectedCoordinator.d.ts} +1 -1
  90. package/dist/summary/summaryDelayLoadedModule/runWhileConnectedCoordinator.d.ts.map +1 -0
  91. package/dist/summary/summaryDelayLoadedModule/runWhileConnectedCoordinator.js.map +1 -0
  92. package/dist/summary/{runningSummarizer.d.ts → summaryDelayLoadedModule/runningSummarizer.d.ts} +4 -13
  93. package/dist/summary/summaryDelayLoadedModule/runningSummarizer.d.ts.map +1 -0
  94. package/dist/summary/{runningSummarizer.js → summaryDelayLoadedModule/runningSummarizer.js} +17 -24
  95. package/dist/summary/summaryDelayLoadedModule/runningSummarizer.js.map +1 -0
  96. package/dist/summary/{summarizer.d.ts → summaryDelayLoadedModule/summarizer.d.ts} +13 -2
  97. package/dist/summary/summaryDelayLoadedModule/summarizer.d.ts.map +1 -0
  98. package/dist/summary/{summarizer.js → summaryDelayLoadedModule/summarizer.js} +13 -3
  99. package/dist/summary/summaryDelayLoadedModule/summarizer.js.map +1 -0
  100. package/{lib/summary → dist/summary/summaryDelayLoadedModule}/summarizerHeuristics.d.ts +3 -3
  101. package/dist/summary/summaryDelayLoadedModule/summarizerHeuristics.d.ts.map +1 -0
  102. package/dist/summary/summaryDelayLoadedModule/summarizerHeuristics.js.map +1 -0
  103. package/dist/summary/summaryDelayLoadedModule/summaryGenerator.d.ts +36 -0
  104. package/dist/summary/summaryDelayLoadedModule/summaryGenerator.d.ts.map +1 -0
  105. package/dist/summary/{summaryGenerator.js → summaryDelayLoadedModule/summaryGenerator.js} +14 -99
  106. package/dist/summary/summaryDelayLoadedModule/summaryGenerator.js.map +1 -0
  107. package/dist/summary/summaryDelayLoadedModule/summaryResultBuilder.d.ts +21 -0
  108. package/dist/summary/summaryDelayLoadedModule/summaryResultBuilder.d.ts.map +1 -0
  109. package/dist/summary/summaryDelayLoadedModule/summaryResultBuilder.js +44 -0
  110. package/dist/summary/summaryDelayLoadedModule/summaryResultBuilder.js.map +1 -0
  111. package/dist/summary/summaryDelayLoadedModule/summaryResultTypes.d.ts +80 -0
  112. package/dist/summary/summaryDelayLoadedModule/summaryResultTypes.d.ts.map +1 -0
  113. package/dist/summary/summaryDelayLoadedModule/summaryResultTypes.js +7 -0
  114. package/dist/summary/summaryDelayLoadedModule/summaryResultTypes.js.map +1 -0
  115. package/dist/summary/summaryHelpers.d.ts +1 -1
  116. package/dist/summary/summaryHelpers.d.ts.map +1 -1
  117. package/dist/summary/summaryHelpers.js +2 -2
  118. package/dist/summary/summaryHelpers.js.map +1 -1
  119. package/dist/summary/summaryManager.d.ts +4 -3
  120. package/dist/summary/summaryManager.d.ts.map +1 -1
  121. package/dist/summary/summaryManager.js +2 -2
  122. package/dist/summary/summaryManager.js.map +1 -1
  123. package/lib/channelCollection.d.ts +0 -14
  124. package/lib/channelCollection.d.ts.map +1 -1
  125. package/lib/channelCollection.js +6 -21
  126. package/lib/channelCollection.js.map +1 -1
  127. package/lib/containerRuntime.d.ts +16 -9
  128. package/lib/containerRuntime.d.ts.map +1 -1
  129. package/lib/containerRuntime.js +140 -106
  130. package/lib/containerRuntime.js.map +1 -1
  131. package/lib/dataStoreContext.d.ts +1 -5
  132. package/lib/dataStoreContext.d.ts.map +1 -1
  133. package/lib/dataStoreContext.js +0 -8
  134. package/lib/dataStoreContext.js.map +1 -1
  135. package/lib/index.d.ts +1 -1
  136. package/lib/index.d.ts.map +1 -1
  137. package/lib/index.js +1 -1
  138. package/lib/index.js.map +1 -1
  139. package/lib/messageTypes.d.ts +3 -7
  140. package/lib/messageTypes.d.ts.map +1 -1
  141. package/lib/messageTypes.js.map +1 -1
  142. package/lib/opLifecycle/batchManager.d.ts +4 -4
  143. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  144. package/lib/opLifecycle/batchManager.js +4 -4
  145. package/lib/opLifecycle/batchManager.js.map +1 -1
  146. package/lib/opLifecycle/definitions.d.ts +40 -6
  147. package/lib/opLifecycle/definitions.d.ts.map +1 -1
  148. package/lib/opLifecycle/definitions.js.map +1 -1
  149. package/lib/opLifecycle/index.d.ts +4 -3
  150. package/lib/opLifecycle/index.d.ts.map +1 -1
  151. package/lib/opLifecycle/index.js +3 -2
  152. package/lib/opLifecycle/index.js.map +1 -1
  153. package/lib/opLifecycle/opCompressor.d.ts +10 -11
  154. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  155. package/lib/opLifecycle/opCompressor.js +20 -19
  156. package/lib/opLifecycle/opCompressor.js.map +1 -1
  157. package/lib/opLifecycle/opGroupingManager.d.ts +9 -5
  158. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  159. package/lib/opLifecycle/opGroupingManager.js +18 -22
  160. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  161. package/lib/opLifecycle/opSerialization.d.ts +20 -0
  162. package/lib/opLifecycle/opSerialization.d.ts.map +1 -0
  163. package/lib/opLifecycle/opSerialization.js +35 -0
  164. package/lib/opLifecycle/opSerialization.js.map +1 -0
  165. package/lib/opLifecycle/opSplitter.d.ts +12 -13
  166. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  167. package/lib/opLifecycle/opSplitter.js +13 -13
  168. package/lib/opLifecycle/opSplitter.js.map +1 -1
  169. package/lib/opLifecycle/outbox.d.ts +16 -18
  170. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  171. package/lib/opLifecycle/outbox.js +56 -41
  172. package/lib/opLifecycle/outbox.js.map +1 -1
  173. package/lib/opLifecycle/remoteMessageProcessor.d.ts +0 -7
  174. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  175. package/lib/opLifecycle/remoteMessageProcessor.js +0 -13
  176. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  177. package/lib/packageVersion.d.ts +1 -1
  178. package/lib/packageVersion.js +1 -1
  179. package/lib/packageVersion.js.map +1 -1
  180. package/lib/pendingStateManager.d.ts +2 -2
  181. package/lib/pendingStateManager.d.ts.map +1 -1
  182. package/lib/pendingStateManager.js +1 -1
  183. package/lib/pendingStateManager.js.map +1 -1
  184. package/lib/runtimeLayerCompatState.d.ts.map +1 -1
  185. package/lib/runtimeLayerCompatState.js +3 -2
  186. package/lib/runtimeLayerCompatState.js.map +1 -1
  187. package/lib/summary/index.d.ts +5 -8
  188. package/lib/summary/index.d.ts.map +1 -1
  189. package/lib/summary/index.js +5 -7
  190. package/lib/summary/index.js.map +1 -1
  191. package/lib/summary/orderedClientElection.js +1 -1
  192. package/lib/summary/orderedClientElection.js.map +1 -1
  193. package/lib/summary/summarizerClientElection.d.ts +0 -1
  194. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  195. package/lib/summary/summarizerClientElection.js +1 -1
  196. package/lib/summary/summarizerClientElection.js.map +1 -1
  197. package/lib/summary/summarizerTypes.d.ts +3 -75
  198. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  199. package/lib/summary/summarizerTypes.js +1 -1
  200. package/lib/summary/summarizerTypes.js.map +1 -1
  201. package/{dist/summary/summaryGenerator.d.ts → lib/summary/summarizerUtils.d.ts} +12 -43
  202. package/lib/summary/summarizerUtils.d.ts.map +1 -0
  203. package/lib/summary/summarizerUtils.js +64 -0
  204. package/lib/summary/summarizerUtils.js.map +1 -0
  205. package/lib/summary/summaryDelayLoadedModule/index.d.ts +10 -0
  206. package/lib/summary/summaryDelayLoadedModule/index.d.ts.map +1 -0
  207. package/lib/summary/summaryDelayLoadedModule/index.js +9 -0
  208. package/lib/summary/summaryDelayLoadedModule/index.js.map +1 -0
  209. package/lib/summary/{runWhileConnectedCoordinator.d.ts → summaryDelayLoadedModule/runWhileConnectedCoordinator.d.ts} +1 -1
  210. package/lib/summary/summaryDelayLoadedModule/runWhileConnectedCoordinator.d.ts.map +1 -0
  211. package/lib/summary/summaryDelayLoadedModule/runWhileConnectedCoordinator.js.map +1 -0
  212. package/lib/summary/{runningSummarizer.d.ts → summaryDelayLoadedModule/runningSummarizer.d.ts} +4 -13
  213. package/lib/summary/summaryDelayLoadedModule/runningSummarizer.d.ts.map +1 -0
  214. package/lib/summary/{runningSummarizer.js → summaryDelayLoadedModule/runningSummarizer.js} +5 -12
  215. package/lib/summary/summaryDelayLoadedModule/runningSummarizer.js.map +1 -0
  216. package/lib/summary/{summarizer.d.ts → summaryDelayLoadedModule/summarizer.d.ts} +13 -2
  217. package/lib/summary/summaryDelayLoadedModule/summarizer.d.ts.map +1 -0
  218. package/lib/summary/{summarizer.js → summaryDelayLoadedModule/summarizer.js} +11 -1
  219. package/lib/summary/summaryDelayLoadedModule/summarizer.js.map +1 -0
  220. package/{dist/summary → lib/summary/summaryDelayLoadedModule}/summarizerHeuristics.d.ts +3 -3
  221. package/lib/summary/summaryDelayLoadedModule/summarizerHeuristics.d.ts.map +1 -0
  222. package/lib/summary/summaryDelayLoadedModule/summarizerHeuristics.js.map +1 -0
  223. package/lib/summary/summaryDelayLoadedModule/summaryGenerator.d.ts +36 -0
  224. package/lib/summary/summaryDelayLoadedModule/summaryGenerator.d.ts.map +1 -0
  225. package/lib/summary/{summaryGenerator.js → summaryDelayLoadedModule/summaryGenerator.js} +4 -85
  226. package/lib/summary/summaryDelayLoadedModule/summaryGenerator.js.map +1 -0
  227. package/lib/summary/summaryDelayLoadedModule/summaryResultBuilder.d.ts +21 -0
  228. package/lib/summary/summaryDelayLoadedModule/summaryResultBuilder.d.ts.map +1 -0
  229. package/lib/summary/summaryDelayLoadedModule/summaryResultBuilder.js +40 -0
  230. package/lib/summary/summaryDelayLoadedModule/summaryResultBuilder.js.map +1 -0
  231. package/lib/summary/summaryDelayLoadedModule/summaryResultTypes.d.ts +80 -0
  232. package/lib/summary/summaryDelayLoadedModule/summaryResultTypes.d.ts.map +1 -0
  233. package/lib/summary/summaryDelayLoadedModule/summaryResultTypes.js +6 -0
  234. package/lib/summary/summaryDelayLoadedModule/summaryResultTypes.js.map +1 -0
  235. package/lib/summary/summaryHelpers.d.ts +1 -1
  236. package/lib/summary/summaryHelpers.d.ts.map +1 -1
  237. package/lib/summary/summaryHelpers.js +1 -1
  238. package/lib/summary/summaryHelpers.js.map +1 -1
  239. package/lib/summary/summaryManager.d.ts +4 -3
  240. package/lib/summary/summaryManager.d.ts.map +1 -1
  241. package/lib/summary/summaryManager.js +2 -2
  242. package/lib/summary/summaryManager.js.map +1 -1
  243. package/package.json +21 -20
  244. package/src/channelCollection.ts +5 -20
  245. package/src/containerRuntime.ts +220 -178
  246. package/src/dataStoreContext.ts +0 -11
  247. package/src/index.ts +0 -1
  248. package/src/messageTypes.ts +5 -19
  249. package/src/opLifecycle/batchManager.ts +19 -12
  250. package/src/opLifecycle/definitions.ts +45 -6
  251. package/src/opLifecycle/index.ts +14 -3
  252. package/src/opLifecycle/opCompressor.ts +25 -24
  253. package/src/opLifecycle/opGroupingManager.ts +27 -26
  254. package/src/opLifecycle/opSerialization.ts +46 -0
  255. package/src/opLifecycle/opSplitter.ts +20 -16
  256. package/src/opLifecycle/outbox.ts +101 -66
  257. package/src/opLifecycle/remoteMessageProcessor.ts +0 -17
  258. package/src/packageVersion.ts +1 -1
  259. package/src/pendingStateManager.ts +3 -3
  260. package/src/runtimeLayerCompatState.ts +3 -2
  261. package/src/summary/index.ts +35 -31
  262. package/src/summary/orderedClientElection.ts +1 -1
  263. package/src/summary/summarizerClientElection.ts +1 -2
  264. package/src/summary/summarizerTypes.ts +7 -91
  265. package/src/summary/summarizerUtils.ts +132 -0
  266. package/src/summary/summaryDelayLoadedModule/index.ts +28 -0
  267. package/src/summary/{runWhileConnectedCoordinator.ts → summaryDelayLoadedModule/runWhileConnectedCoordinator.ts} +1 -1
  268. package/src/summary/{runningSummarizer.ts → summaryDelayLoadedModule/runningSummarizer.ts} +13 -28
  269. package/src/summary/{summarizer.ts → summaryDelayLoadedModule/summarizer.ts} +19 -8
  270. package/src/summary/{summarizerHeuristics.ts → summaryDelayLoadedModule/summarizerHeuristics.ts} +3 -3
  271. package/src/summary/{summaryGenerator.ts → summaryDelayLoadedModule/summaryGenerator.ts} +13 -179
  272. package/src/summary/summaryDelayLoadedModule/summaryResultBuilder.ts +70 -0
  273. package/src/summary/summaryDelayLoadedModule/summaryResultTypes.ts +100 -0
  274. package/src/summary/summaryHelpers.ts +6 -6
  275. package/src/summary/summaryManager.ts +8 -6
  276. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +0 -1
  277. package/dist/summary/runWhileConnectedCoordinator.js.map +0 -1
  278. package/dist/summary/runningSummarizer.d.ts.map +0 -1
  279. package/dist/summary/runningSummarizer.js.map +0 -1
  280. package/dist/summary/summarizer.d.ts.map +0 -1
  281. package/dist/summary/summarizer.js.map +0 -1
  282. package/dist/summary/summarizerHeuristics.d.ts.map +0 -1
  283. package/dist/summary/summarizerHeuristics.js.map +0 -1
  284. package/dist/summary/summaryGenerator.d.ts.map +0 -1
  285. package/dist/summary/summaryGenerator.js.map +0 -1
  286. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +0 -1
  287. package/lib/summary/runWhileConnectedCoordinator.js.map +0 -1
  288. package/lib/summary/runningSummarizer.d.ts.map +0 -1
  289. package/lib/summary/runningSummarizer.js.map +0 -1
  290. package/lib/summary/summarizer.d.ts.map +0 -1
  291. package/lib/summary/summarizer.js.map +0 -1
  292. package/lib/summary/summarizerHeuristics.d.ts.map +0 -1
  293. package/lib/summary/summarizerHeuristics.js.map +0 -1
  294. package/lib/summary/summaryGenerator.d.ts.map +0 -1
  295. package/lib/summary/summaryGenerator.js.map +0 -1
  296. /package/dist/summary/{runWhileConnectedCoordinator.js → summaryDelayLoadedModule/runWhileConnectedCoordinator.js} +0 -0
  297. /package/dist/summary/{summarizerHeuristics.js → summaryDelayLoadedModule/summarizerHeuristics.js} +0 -0
  298. /package/lib/summary/{runWhileConnectedCoordinator.js → summaryDelayLoadedModule/runWhileConnectedCoordinator.js} +0 -0
  299. /package/lib/summary/{summarizerHeuristics.js → summaryDelayLoadedModule/summarizerHeuristics.js} +0 -0
@@ -3,7 +3,6 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ICriticalContainerError } from "@fluidframework/container-definitions";
7
6
  import { IBatchMessage } from "@fluidframework/container-definitions/internal";
8
7
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
9
8
  import { assert, Lazy } from "@fluidframework/core-utils/internal";
@@ -16,7 +15,6 @@ import {
16
15
  } from "@fluidframework/telemetry-utils/internal";
17
16
 
18
17
  import { ICompressionRuntimeOptions } from "../containerRuntime.js";
19
- import { OutboundContainerRuntimeMessage } from "../messageTypes.js";
20
18
  import { PendingMessageResubmitData, PendingStateManager } from "../pendingStateManager.js";
21
19
 
22
20
  import {
@@ -26,12 +24,17 @@ import {
26
24
  sequenceNumbersMatch,
27
25
  type BatchId,
28
26
  } from "./batchManager.js";
29
- import { BatchMessage, IBatch, IBatchCheckpoint } from "./definitions.js";
27
+ import {
28
+ LocalBatchMessage,
29
+ IBatchCheckpoint,
30
+ type OutboundBatchMessage,
31
+ type OutboundSingletonBatch,
32
+ type LocalBatch,
33
+ type OutboundBatch,
34
+ } from "./definitions.js";
30
35
  import { OpCompressor } from "./opCompressor.js";
31
36
  import { OpGroupingManager } from "./opGroupingManager.js";
32
37
  import { OpSplitter } from "./opSplitter.js";
33
- // eslint-disable-next-line unused-imports/no-unused-imports -- Used by "@link" comment annotation below
34
- import { ensureContentsDeserialized } from "./remoteMessageProcessor.js";
35
38
 
36
39
  export interface IOutboxConfig {
37
40
  readonly compressionOptions: ICompressionRuntimeOptions;
@@ -53,7 +56,7 @@ export interface IOutboxParameters {
53
56
  readonly submitBatchFn:
54
57
  | ((batch: IBatchMessage[], referenceSequenceNumber?: number) => number)
55
58
  | undefined;
56
- readonly legacySendBatchFn: (batch: IBatch) => number;
59
+ readonly legacySendBatchFn: (batch: OutboundBatch) => number;
57
60
  readonly config: IOutboxConfig;
58
61
  readonly compressor: OpCompressor;
59
62
  readonly splitter: OpSplitter;
@@ -62,15 +65,6 @@ export interface IOutboxParameters {
62
65
  readonly getCurrentSequenceNumbers: () => BatchSequenceNumbers;
63
66
  readonly reSubmit: (message: PendingMessageResubmitData) => void;
64
67
  readonly opReentrancy: () => boolean;
65
- readonly closeContainer: (error?: ICriticalContainerError) => void;
66
- }
67
-
68
- /**
69
- * Before submitting an op to the Outbox, its contents must be serialized using this function.
70
- * @remarks - The deserialization on process happens via the function {@link ensureContentsDeserialized}.
71
- */
72
- export function serializeOpContents(contents: OutboundContainerRuntimeMessage): string {
73
- return JSON.stringify(contents);
74
68
  }
75
69
 
76
70
  /**
@@ -258,25 +252,28 @@ export class Outbox {
258
252
  throw errorWrapper.value;
259
253
  }
260
254
 
261
- public submit(message: BatchMessage): void {
255
+ public submit(message: LocalBatchMessage): void {
262
256
  this.maybeFlushPartialBatch();
263
257
 
264
258
  this.addMessageToBatchManager(this.mainBatch, message);
265
259
  }
266
260
 
267
- public submitBlobAttach(message: BatchMessage): void {
261
+ public submitBlobAttach(message: LocalBatchMessage): void {
268
262
  this.maybeFlushPartialBatch();
269
263
 
270
264
  this.addMessageToBatchManager(this.blobAttachBatch, message);
271
265
  }
272
266
 
273
- public submitIdAllocation(message: BatchMessage): void {
267
+ public submitIdAllocation(message: LocalBatchMessage): void {
274
268
  this.maybeFlushPartialBatch();
275
269
 
276
270
  this.addMessageToBatchManager(this.idAllocationBatch, message);
277
271
  }
278
272
 
279
- private addMessageToBatchManager(batchManager: BatchManager, message: BatchMessage): void {
273
+ private addMessageToBatchManager(
274
+ batchManager: BatchManager,
275
+ message: LocalBatchMessage,
276
+ ): void {
280
277
  if (
281
278
  !batchManager.push(
282
279
  message,
@@ -285,7 +282,7 @@ export class Outbox {
285
282
  )
286
283
  ) {
287
284
  throw new GenericError("BatchTooLarge", /* error */ undefined, {
288
- opSize: message.contents?.length ?? 0,
285
+ opSize: message.serializedOp?.length ?? 0,
289
286
  batchSize: batchManager.contentSizeInBytes,
290
287
  count: batchManager.length,
291
288
  limit: batchManager.options.hardLimit,
@@ -296,15 +293,16 @@ export class Outbox {
296
293
  /**
297
294
  * Flush all the batches to the ordering service.
298
295
  * This method is expected to be called at the end of a batch.
296
+ *
297
+ * @throws If called from a reentrant context, or if the batch being flushed is too large.
299
298
  * @param resubmittingBatchId - If defined, indicates this is a resubmission of a batch
300
299
  * with the given Batch ID, which must be preserved
301
300
  */
302
301
  public flush(resubmittingBatchId?: BatchId): void {
303
- if (this.isContextReentrant()) {
304
- const error = new UsageError("Flushing is not supported inside DDS event handlers");
305
- this.params.closeContainer(error);
306
- throw error;
307
- }
302
+ assert(
303
+ !this.isContextReentrant(),
304
+ 0xb7b /* Flushing must not happen while incoming changes are being processed */,
305
+ );
308
306
 
309
307
  this.flushAll(resubmittingBatchId);
310
308
  }
@@ -346,16 +344,19 @@ export class Outbox {
346
344
  referenceSequenceNumber !== undefined,
347
345
  0xa01 /* reference sequence number should be defined */,
348
346
  );
349
- const emptyGroupedBatch = this.params.groupingManager.createEmptyGroupedBatch(
350
- resubmittingBatchId,
351
- referenceSequenceNumber,
352
- );
347
+ const { outboundBatch, placeholderMessage } =
348
+ this.params.groupingManager.createEmptyGroupedBatch(
349
+ resubmittingBatchId,
350
+ referenceSequenceNumber,
351
+ );
353
352
  let clientSequenceNumber: number | undefined;
354
353
  if (this.params.shouldSend()) {
355
- clientSequenceNumber = this.sendBatch(emptyGroupedBatch);
354
+ clientSequenceNumber = this.sendBatch(outboundBatch);
356
355
  }
356
+
357
+ // Push the empty batch placeholder to the PendingStateManager
357
358
  this.params.pendingStateManager.onFlushBatch(
358
- emptyGroupedBatch.messages, // This is the single empty Grouped Batch message
359
+ [{ ...placeholderMessage, serializedOp: "", contents: undefined }], // placeholder message - serializedOp will never be used
359
360
  clientSequenceNumber,
360
361
  );
361
362
  return;
@@ -371,9 +372,16 @@ export class Outbox {
371
372
  }
372
373
 
373
374
  const rawBatch = batchManager.popBatch(resubmittingBatchId);
374
- const shouldGroup =
375
- !disableGroupedBatching && this.params.groupingManager.shouldGroup(rawBatch);
376
- if (batchManager.options.canRebase && rawBatch.hasReentrantOps === true && shouldGroup) {
375
+ const groupingEnabled =
376
+ !disableGroupedBatching && this.params.groupingManager.groupedBatchingEnabled();
377
+ if (
378
+ batchManager.options.canRebase &&
379
+ rawBatch.hasReentrantOps === true &&
380
+ // NOTE: This is too restrictive. We should rebase for any reentrant op, not just if it's going to be a grouped batch
381
+ // However there is some test that is depending on this behavior so we haven't removed these conditions yet. See AB#33427
382
+ groupingEnabled &&
383
+ rawBatch.messages.length > 1
384
+ ) {
377
385
  assert(!this.rebasing, 0x6fa /* A rebased batch should never have reentrant ops */);
378
386
  // If a batch contains reentrant ops (ops created as a result from processing another op)
379
387
  // it needs to be rebased so that we can ensure consistent reference sequence numbers
@@ -387,12 +395,9 @@ export class Outbox {
387
395
  // If so, do nothing, as pending state manager will resubmit it correctly on reconnect.
388
396
  // Because flush() is a task that executes async (on clean stack), we can get here in disconnected state.
389
397
  if (this.params.shouldSend()) {
390
- const processedBatch = disableGroupedBatching
391
- ? rawBatch
392
- : this.compressAndChunkBatch(
393
- shouldGroup ? this.params.groupingManager.groupBatch(rawBatch) : rawBatch,
394
- );
395
- clientSequenceNumber = this.sendBatch(processedBatch);
398
+ const virtualizedBatch = this.virtualizeBatch(rawBatch, groupingEnabled);
399
+
400
+ clientSequenceNumber = this.sendBatch(virtualizedBatch);
396
401
  assert(
397
402
  clientSequenceNumber === undefined || clientSequenceNumber >= 0,
398
403
  0x9d2 /* unexpected negative clientSequenceNumber (empty batch should yield undefined) */,
@@ -412,15 +417,14 @@ export class Outbox {
412
417
  *
413
418
  * @param rawBatch - the batch to be rebased
414
419
  */
415
- private rebase(rawBatch: IBatch, batchManager: BatchManager): void {
420
+ private rebase(rawBatch: LocalBatch, batchManager: BatchManager): void {
416
421
  assert(!this.rebasing, 0x6fb /* Reentrancy */);
417
422
  assert(batchManager.options.canRebase, 0x9a7 /* BatchManager does not support rebase */);
418
423
 
419
424
  this.rebasing = true;
420
425
  for (const message of rawBatch.messages) {
421
426
  this.params.reSubmit({
422
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
423
- content: message.contents!,
427
+ content: message.serializedOp,
424
428
  localOpMetadata: message.localOpMetadata,
425
429
  opMetadata: message.metadata,
426
430
  });
@@ -447,45 +451,76 @@ export class Outbox {
447
451
  }
448
452
 
449
453
  /**
450
- * As necessary and enabled, compresses and chunks the given batch.
454
+ * As necessary and enabled, groups / compresses / chunks the given batch.
451
455
  *
452
456
  * @remarks - If chunking happens, a side effect here is that 1 or more chunks are queued immediately for sending in next JS turn.
453
457
  *
454
- * @param batch - Raw or Grouped batch to consider for compression/chunking
455
- * @returns Either (A) the original batch, (B) a compressed batch (same length as original)
456
- * or (C) a batch containing the last chunk.
458
+ * @param localBatch - Local Batch to be virtualized - i.e. transformed into an Outbound Batch
459
+ * @param groupingEnabled - If true, Grouped batching is enabled.
460
+ * @returns One of the following:
461
+ * - (A) The original batch (Based on what's enabled)
462
+ * - (B) A grouped batch (it's a singleton batch)
463
+ * - (C) A compressed singleton batch
464
+ * - (D) A singleton batch containing the last chunk.
457
465
  */
458
- private compressAndChunkBatch(batch: IBatch): IBatch {
466
+ private virtualizeBatch(localBatch: LocalBatch, groupingEnabled: boolean): OutboundBatch {
467
+ // Shallow copy the local batch, updating the messages to be outbound messages
468
+ const originalBatch: OutboundBatch = {
469
+ ...localBatch,
470
+ messages: localBatch.messages.map<OutboundBatchMessage>(
471
+ ({ serializedOp, ...message }) => ({
472
+ contents: serializedOp,
473
+ ...message,
474
+ }),
475
+ ),
476
+ };
477
+
478
+ const originalOrGroupedBatch = groupingEnabled
479
+ ? this.params.groupingManager.groupBatch(originalBatch)
480
+ : originalBatch;
481
+
482
+ if (originalOrGroupedBatch.messages.length !== 1) {
483
+ // Compression requires a single message, so return early otherwise.
484
+ return originalOrGroupedBatch;
485
+ }
486
+
487
+ // Regardless of whether we grouped or not, we now have a batch with a single message.
488
+ // Now proceed to compress/chunk it if necessary.
489
+ const singletonBatch = originalOrGroupedBatch as OutboundSingletonBatch;
490
+
459
491
  if (
460
- batch.messages.length === 0 ||
461
492
  this.params.config.compressionOptions === undefined ||
462
493
  this.params.config.compressionOptions.minimumBatchSizeInBytes >
463
- batch.contentSizeInBytes ||
464
- this.params.submitBatchFn === undefined ||
465
- !this.params.groupingManager.groupedBatchingEnabled()
494
+ singletonBatch.contentSizeInBytes ||
495
+ this.params.submitBatchFn === undefined
466
496
  ) {
467
- // Nothing to do if the batch is empty or if compression is disabled or not supported, or if we don't need to compress
468
- return batch;
497
+ // Nothing to do if compression is disabled, unnecessary or unsupported.
498
+ return singletonBatch;
469
499
  }
470
500
 
471
- const compressedBatch = this.params.compressor.compressBatch(batch);
501
+ const compressedBatch = this.params.compressor.compressBatch(singletonBatch);
472
502
 
473
503
  if (this.params.splitter.isBatchChunkingEnabled) {
474
504
  return compressedBatch.contentSizeInBytes <= this.params.splitter.chunkSizeInBytes
475
505
  ? compressedBatch
476
- : this.params.splitter.splitFirstBatchMessage(compressedBatch);
506
+ : this.params.splitter.splitSingletonBatchMessage(compressedBatch);
477
507
  }
478
508
 
479
509
  if (compressedBatch.contentSizeInBytes >= this.params.config.maxBatchSizeInBytes) {
480
- throw new GenericError("BatchTooLarge", /* error */ undefined, {
481
- batchSize: batch.contentSizeInBytes,
482
- compressedBatchSize: compressedBatch.contentSizeInBytes,
483
- count: compressedBatch.messages.length,
484
- limit: this.params.config.maxBatchSizeInBytes,
485
- chunkingEnabled: this.params.splitter.isBatchChunkingEnabled,
486
- compressionOptions: JSON.stringify(this.params.config.compressionOptions),
487
- socketSize: estimateSocketSize(batch),
488
- });
510
+ throw DataProcessingError.create(
511
+ "BatchTooLarge",
512
+ "compressionInsufficient",
513
+ /* sequencedMessage */ undefined,
514
+ {
515
+ batchSize: singletonBatch.contentSizeInBytes,
516
+ compressedBatchSize: compressedBatch.contentSizeInBytes,
517
+ count: compressedBatch.messages.length,
518
+ limit: this.params.config.maxBatchSizeInBytes,
519
+ chunkingEnabled: this.params.splitter.isBatchChunkingEnabled,
520
+ compressionOptions: JSON.stringify(this.params.config.compressionOptions),
521
+ socketSize: estimateSocketSize(singletonBatch),
522
+ },
523
+ );
489
524
  }
490
525
 
491
526
  return compressedBatch;
@@ -497,7 +532,7 @@ export class Outbox {
497
532
  * @param batch - batch to be sent
498
533
  * @returns the clientSequenceNumber of the start of the batch, or undefined if nothing was sent
499
534
  */
500
- private sendBatch(batch: IBatch): number | undefined {
535
+ private sendBatch(batch: OutboundBatch): number | undefined {
501
536
  const length = batch.messages.length;
502
537
  if (length === 0) {
503
538
  return undefined; // Nothing submitted
@@ -19,9 +19,6 @@ import { asBatchMetadata } from "../metadata.js";
19
19
  import { OpDecompressor } from "./opDecompressor.js";
20
20
  import { OpGroupingManager, isGroupedBatch } from "./opGroupingManager.js";
21
21
  import { OpSplitter, isChunkedMessage } from "./opSplitter.js";
22
- // eslint-disable-next-line unused-imports/no-unused-imports -- Used by "@link" comment annotation below
23
- import { serializeOpContents } from "./outbox.js";
24
-
25
22
  /**
26
23
  * Info about the batch we learn when we process the first message
27
24
  */
@@ -247,20 +244,6 @@ export class RemoteMessageProcessor {
247
244
  }
248
245
  }
249
246
 
250
- /**
251
- * Takes an incoming runtime message JSON.parse's its contents in place, if needed (old Loader does this for us).
252
- * Only to be used for runtine messages.
253
- * @remarks - Serialization during submit happens via {@link serializeOpContents}
254
- * @param mutableMessage - op message received
255
- */
256
- export function ensureContentsDeserialized(mutableMessage: ISequencedDocumentMessage): void {
257
- // This should become unconditional once Loader LTS reaches 2.4 or later.
258
- // There will be a long time of needing both cases, until LTS advances to that point.
259
- if (typeof mutableMessage.contents === "string" && mutableMessage.contents !== "") {
260
- mutableMessage.contents = JSON.parse(mutableMessage.contents);
261
- }
262
- }
263
-
264
247
  /**
265
248
  * For a given message, it moves the nested InboundContainerRuntimeMessage props one level up.
266
249
  *
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/container-runtime";
9
- export const pkgVersion = "2.31.0";
9
+ export const pkgVersion = "2.32.0";
@@ -23,7 +23,7 @@ import {
23
23
  import { asBatchMetadata, asEmptyBatchLocalOpMetadata } from "./metadata.js";
24
24
  import {
25
25
  BatchId,
26
- BatchMessage,
26
+ LocalBatchMessage,
27
27
  getEffectiveBatchId,
28
28
  BatchStartInfo,
29
29
  InboundMessageResult,
@@ -305,7 +305,7 @@ export class PendingStateManager implements IDisposable {
305
305
  * @param ignoreBatchId - Whether to ignore the batchId in the batchStartInfo
306
306
  */
307
307
  public onFlushBatch(
308
- batch: BatchMessage[],
308
+ batch: LocalBatchMessage[],
309
309
  clientSequenceNumber: number | undefined,
310
310
  ignoreBatchId?: boolean,
311
311
  ): void {
@@ -325,7 +325,7 @@ export class PendingStateManager implements IDisposable {
325
325
 
326
326
  for (const message of batch) {
327
327
  const {
328
- contents: content = "",
328
+ serializedOp: content,
329
329
  referenceSequenceNumber,
330
330
  localOpMetadata,
331
331
  metadata: opMetadata,
@@ -9,6 +9,7 @@ import {
9
9
  type ILayerCompatSupportRequirements,
10
10
  } from "@fluid-internal/client-utils";
11
11
  import type { ICriticalContainerError } from "@fluidframework/container-definitions";
12
+ import { encodeHandlesInContainerRuntime } from "@fluidframework/runtime-definitions/internal";
12
13
  import { UsageError } from "@fluidframework/telemetry-utils/internal";
13
14
 
14
15
  import { pkgVersion } from "./packageVersion.js";
@@ -63,9 +64,9 @@ export const loaderSupportRequirements: ILayerCompatSupportRequirements = {
63
64
  export const runtimeCompatDetailsForDataStore: ILayerCompatDetails = {
64
65
  ...runtimeCoreCompatDetails,
65
66
  /**
66
- * The features supported by the Runtime layer across the Runtime / Loader boundary.
67
+ * The features supported by the Runtime layer across the Runtime / DataStore boundary.
67
68
  */
68
- supportedFeatures: new Set<string>(),
69
+ supportedFeatures: new Set<string>([encodeHandlesInContainerRuntime]),
69
70
  };
70
71
 
71
72
  /**
@@ -3,31 +3,6 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- export {
7
- IOrderedClientCollection,
8
- IOrderedClientElection,
9
- ISerializedElection,
10
- ITrackedClient,
11
- OrderedClientCollection,
12
- OrderedClientElection,
13
- } from "./orderedClientElection.js";
14
- export {
15
- defaultMaxAttemptsForSubmitFailures,
16
- RunningSummarizer,
17
- } from "./runningSummarizer.js";
18
- export {
19
- ICancellableSummarizerController,
20
- neverCancelledSummaryToken,
21
- RunWhileConnectedCoordinator,
22
- } from "./runWhileConnectedCoordinator.js";
23
- export { Summarizer } from "./summarizer.js";
24
- export {
25
- ISummarizerClientElection,
26
- ISummarizerClientElectionEvents,
27
- SummarizerClientElection,
28
- summarizerClientType,
29
- } from "./summarizerClientElection.js";
30
- export { SummarizeHeuristicData, SummarizeHeuristicRunner } from "./summarizerHeuristics.js";
31
6
  export {
32
7
  createRootSummarizerNode,
33
8
  createRootSummarizerNodeWithGC,
@@ -36,6 +11,7 @@ export {
36
11
  IRootSummarizerNodeWithGC,
37
12
  } from "./summarizerNode/index.js";
38
13
  export {
14
+ summarizerClientType,
39
15
  IConnectableRuntime,
40
16
  IGeneratedSummaryStats,
41
17
  IRefreshSummaryAckOptions,
@@ -43,19 +19,14 @@ export {
43
19
  ISummarizeAttempt,
44
20
  ISummarizeHeuristicData,
45
21
  ISummarizer,
46
- ISummarizeResults,
47
22
  ISummarizerInternalsProvider,
48
23
  ISummarizerRuntime,
49
24
  ISummaryCancellationToken,
50
25
  SubmitSummaryResult,
51
- EnqueueSummarizeResult,
52
- IAckSummaryResult,
53
26
  IBaseSummarizeResult,
54
- IBroadcastSummaryResult,
55
27
  ICancellationToken,
56
28
  IEnqueueSummarizeOptions,
57
29
  IGenerateSummaryTreeResult,
58
- INackSummaryResult,
59
30
  IOnDemandSummarizeOptions,
60
31
  ISubmitSummaryOpResult,
61
32
  ISummarizeOptions,
@@ -71,6 +42,14 @@ export {
71
42
  type ISummaryConfigurationHeuristics,
72
43
  type ISummaryBaseConfiguration,
73
44
  } from "./summarizerTypes.js";
45
+ export {
46
+ IOrderedClientCollection,
47
+ IOrderedClientElection,
48
+ ISerializedElection,
49
+ ITrackedClient,
50
+ OrderedClientCollection,
51
+ OrderedClientElection,
52
+ } from "./orderedClientElection.js";
74
53
  export {
75
54
  IAckedSummary,
76
55
  ISummaryCollectionOpEvents,
@@ -83,6 +62,11 @@ export {
83
62
  OpActionEventListener,
84
63
  OpActionEventName,
85
64
  } from "./summaryCollection.js";
65
+ export {
66
+ ISummarizerClientElection,
67
+ ISummarizerClientElectionEvents,
68
+ SummarizerClientElection,
69
+ } from "./summarizerClientElection.js";
86
70
  export {
87
71
  aliasBlobName,
88
72
  chunksBlobName,
@@ -125,7 +109,11 @@ export {
125
109
  IDocumentSchemaChangeMessage,
126
110
  IDocumentSchemaFeatures,
127
111
  } from "./documentSchema.js";
128
- export { getFailMessage, RetriableSummaryError, SummarizeReason } from "./summaryGenerator.js";
112
+ export {
113
+ getFailMessage,
114
+ RetriableSummaryError,
115
+ SummarizeReason,
116
+ } from "./summarizerUtils.js";
129
117
  export {
130
118
  IConnectedEvents,
131
119
  IConnectedState,
@@ -133,3 +121,19 @@ export {
133
121
  SummaryManager,
134
122
  SummaryManagerState,
135
123
  } from "./summaryManager.js";
124
+ export {
125
+ defaultMaxAttempts,
126
+ defaultMaxAttemptsForSubmitFailures,
127
+ ICancellableSummarizerController,
128
+ neverCancelledSummaryToken,
129
+ RunWhileConnectedCoordinator,
130
+ Summarizer,
131
+ IBroadcastSummaryResult,
132
+ ISummarizeResults,
133
+ EnqueueSummarizeResult,
134
+ IAckSummaryResult,
135
+ INackSummaryResult,
136
+ RunningSummarizer,
137
+ SummarizeHeuristicData,
138
+ SummarizeHeuristicRunner,
139
+ } from "./summaryDelayLoadedModule/index.js";
@@ -16,7 +16,7 @@ import {
16
16
  createChildLogger,
17
17
  } from "@fluidframework/telemetry-utils/internal";
18
18
 
19
- import { summarizerClientType } from "./summarizerClientElection.js";
19
+ import { summarizerClientType } from "./index.js";
20
20
 
21
21
  // helper types for recursive readonly.
22
22
  // eslint-disable-next-line @typescript-eslint/ban-types
@@ -14,10 +14,9 @@ import {
14
14
  ISerializedElection,
15
15
  ITrackedClient,
16
16
  } from "./orderedClientElection.js";
17
+ import { summarizerClientType } from "./summarizerTypes.js";
17
18
  import { ISummaryCollectionOpEvents } from "./summaryCollection.js";
18
19
 
19
- export const summarizerClientType = "summarizer";
20
-
21
20
  export interface ISummarizerClientElectionEvents extends IEvent {
22
21
  (event: "electedSummarizerChanged", handler: () => void): void;
23
22
  }
@@ -27,12 +27,13 @@ import {
27
27
  ITelemetryLoggerPropertyBag,
28
28
  } from "@fluidframework/telemetry-utils/internal";
29
29
 
30
- import {
31
- ISummaryAckMessage,
32
- ISummaryNackMessage,
33
- ISummaryOpMessage,
34
- } from "./summaryCollection.js";
35
- import { SummarizeReason } from "./summaryGenerator.js";
30
+ import type { SummarizeReason } from "./summarizerUtils.js";
31
+ import type {
32
+ EnqueueSummarizeResult,
33
+ ISummarizeResults,
34
+ } from "./summaryDelayLoadedModule/index.js";
35
+
36
+ export const summarizerClientType = "summarizer";
36
37
 
37
38
  /**
38
39
  * Similar to AbortSignal, but using promise instead of events
@@ -359,33 +360,6 @@ export interface SubmitSummaryFailureData {
359
360
  stage: SummaryStage;
360
361
  }
361
362
 
362
- /**
363
- * @legacy
364
- * @alpha
365
- */
366
- export interface IBroadcastSummaryResult {
367
- readonly summarizeOp: ISummaryOpMessage;
368
- readonly broadcastDuration: number;
369
- }
370
-
371
- /**
372
- * @legacy
373
- * @alpha
374
- */
375
- export interface IAckSummaryResult {
376
- readonly summaryAckOp: ISummaryAckMessage;
377
- readonly ackNackDuration: number;
378
- }
379
-
380
- /**
381
- * @legacy
382
- * @alpha
383
- */
384
- export interface INackSummaryResult {
385
- readonly summaryNackOp: ISummaryNackMessage;
386
- readonly ackNackDuration: number;
387
- }
388
-
389
363
  /**
390
364
  * @legacy
391
365
  * @alpha
@@ -402,64 +376,6 @@ export type SummarizeResultPart<TSuccess, TFailure = undefined> =
402
376
  error: IRetriableFailureError;
403
377
  };
404
378
 
405
- /**
406
- * @legacy
407
- * @alpha
408
- */
409
- export interface ISummarizeResults {
410
- /**
411
- * Resolves when we generate, upload, and submit the summary.
412
- */
413
- readonly summarySubmitted: Promise<
414
- SummarizeResultPart<SubmitSummaryResult, SubmitSummaryFailureData>
415
- >;
416
- /**
417
- * Resolves when we observe our summarize op broadcast.
418
- */
419
- readonly summaryOpBroadcasted: Promise<SummarizeResultPart<IBroadcastSummaryResult>>;
420
- /**
421
- * Resolves when we receive a summaryAck or summaryNack.
422
- */
423
- readonly receivedSummaryAckOrNack: Promise<
424
- SummarizeResultPart<IAckSummaryResult, INackSummaryResult>
425
- >;
426
- }
427
-
428
- /**
429
- * @legacy
430
- * @alpha
431
- */
432
- export type EnqueueSummarizeResult =
433
- | (ISummarizeResults & {
434
- /**
435
- * Indicates that another summarize attempt is not already enqueued,
436
- * and this attempt has been enqueued.
437
- */
438
- readonly alreadyEnqueued?: undefined;
439
- })
440
- | (ISummarizeResults & {
441
- /**
442
- * Indicates that another summarize attempt was already enqueued.
443
- */
444
- readonly alreadyEnqueued: true;
445
- /**
446
- * Indicates that the other enqueued summarize attempt was abandoned,
447
- * and this attempt has been enqueued enqueued.
448
- */
449
- readonly overridden: true;
450
- })
451
- | {
452
- /**
453
- * Indicates that another summarize attempt was already enqueued.
454
- */
455
- readonly alreadyEnqueued: true;
456
- /**
457
- * Indicates that the other enqueued summarize attempt remains enqueued,
458
- * and this attempt has not been enqueued.
459
- */
460
- readonly overridden?: undefined;
461
- };
462
-
463
379
  /**
464
380
  * @legacy
465
381
  * @alpha