@fluidframework/container-runtime 2.31.1 → 2.33.0-333010

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 (301) 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 +3 -15
  23. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  24. package/dist/opLifecycle/batchManager.js +3 -40
  25. package/dist/opLifecycle/batchManager.js.map +1 -1
  26. package/dist/opLifecycle/definitions.d.ts +42 -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 +5 -4
  30. package/dist/opLifecycle/index.d.ts.map +1 -1
  31. package/dist/opLifecycle/index.js +6 -4
  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 +21 -20
  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 +15 -15
  48. package/dist/opLifecycle/opSplitter.js.map +1 -1
  49. package/dist/opLifecycle/outbox.d.ts +35 -18
  50. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  51. package/dist/opLifecycle/outbox.js +111 -72
  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.d.ts.map +1 -1
  59. package/dist/packageVersion.js +1 -1
  60. package/dist/packageVersion.js.map +1 -1
  61. package/dist/pendingStateManager.d.ts +2 -2
  62. package/dist/pendingStateManager.d.ts.map +1 -1
  63. package/dist/pendingStateManager.js +1 -1
  64. package/dist/pendingStateManager.js.map +1 -1
  65. package/dist/runtimeLayerCompatState.d.ts.map +1 -1
  66. package/dist/runtimeLayerCompatState.js +6 -5
  67. package/dist/runtimeLayerCompatState.js.map +1 -1
  68. package/dist/summary/index.d.ts +5 -8
  69. package/dist/summary/index.d.ts.map +1 -1
  70. package/dist/summary/index.js +20 -21
  71. package/dist/summary/index.js.map +1 -1
  72. package/dist/summary/orderedClientElection.js +9 -9
  73. package/dist/summary/orderedClientElection.js.map +1 -1
  74. package/dist/summary/summarizerClientElection.d.ts +0 -1
  75. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  76. package/dist/summary/summarizerClientElection.js +3 -3
  77. package/dist/summary/summarizerClientElection.js.map +1 -1
  78. package/dist/summary/summarizerTypes.d.ts +3 -75
  79. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  80. package/dist/summary/summarizerTypes.js +2 -0
  81. package/dist/summary/summarizerTypes.js.map +1 -1
  82. package/{lib/summary/summaryGenerator.d.ts → dist/summary/summarizerUtils.d.ts} +12 -43
  83. package/dist/summary/summarizerUtils.d.ts.map +1 -0
  84. package/dist/summary/summarizerUtils.js +71 -0
  85. package/dist/summary/summarizerUtils.js.map +1 -0
  86. package/dist/summary/summaryDelayLoadedModule/index.d.ts +10 -0
  87. package/dist/summary/summaryDelayLoadedModule/index.d.ts.map +1 -0
  88. package/dist/summary/summaryDelayLoadedModule/index.js +20 -0
  89. package/dist/summary/summaryDelayLoadedModule/index.js.map +1 -0
  90. package/dist/summary/{runWhileConnectedCoordinator.d.ts → summaryDelayLoadedModule/runWhileConnectedCoordinator.d.ts} +1 -1
  91. package/dist/summary/summaryDelayLoadedModule/runWhileConnectedCoordinator.d.ts.map +1 -0
  92. package/dist/summary/summaryDelayLoadedModule/runWhileConnectedCoordinator.js.map +1 -0
  93. package/dist/summary/{runningSummarizer.d.ts → summaryDelayLoadedModule/runningSummarizer.d.ts} +4 -13
  94. package/dist/summary/summaryDelayLoadedModule/runningSummarizer.d.ts.map +1 -0
  95. package/dist/summary/{runningSummarizer.js → summaryDelayLoadedModule/runningSummarizer.js} +17 -24
  96. package/dist/summary/summaryDelayLoadedModule/runningSummarizer.js.map +1 -0
  97. package/dist/summary/{summarizer.d.ts → summaryDelayLoadedModule/summarizer.d.ts} +13 -2
  98. package/dist/summary/summaryDelayLoadedModule/summarizer.d.ts.map +1 -0
  99. package/dist/summary/{summarizer.js → summaryDelayLoadedModule/summarizer.js} +13 -3
  100. package/dist/summary/summaryDelayLoadedModule/summarizer.js.map +1 -0
  101. package/{lib/summary → dist/summary/summaryDelayLoadedModule}/summarizerHeuristics.d.ts +3 -3
  102. package/dist/summary/summaryDelayLoadedModule/summarizerHeuristics.d.ts.map +1 -0
  103. package/dist/summary/summaryDelayLoadedModule/summarizerHeuristics.js.map +1 -0
  104. package/dist/summary/summaryDelayLoadedModule/summaryGenerator.d.ts +36 -0
  105. package/dist/summary/summaryDelayLoadedModule/summaryGenerator.d.ts.map +1 -0
  106. package/dist/summary/{summaryGenerator.js → summaryDelayLoadedModule/summaryGenerator.js} +14 -99
  107. package/dist/summary/summaryDelayLoadedModule/summaryGenerator.js.map +1 -0
  108. package/dist/summary/summaryDelayLoadedModule/summaryResultBuilder.d.ts +21 -0
  109. package/dist/summary/summaryDelayLoadedModule/summaryResultBuilder.d.ts.map +1 -0
  110. package/dist/summary/summaryDelayLoadedModule/summaryResultBuilder.js +44 -0
  111. package/dist/summary/summaryDelayLoadedModule/summaryResultBuilder.js.map +1 -0
  112. package/dist/summary/summaryDelayLoadedModule/summaryResultTypes.d.ts +80 -0
  113. package/dist/summary/summaryDelayLoadedModule/summaryResultTypes.d.ts.map +1 -0
  114. package/dist/summary/summaryDelayLoadedModule/summaryResultTypes.js +7 -0
  115. package/dist/summary/summaryDelayLoadedModule/summaryResultTypes.js.map +1 -0
  116. package/dist/summary/summaryHelpers.d.ts +1 -1
  117. package/dist/summary/summaryHelpers.d.ts.map +1 -1
  118. package/dist/summary/summaryHelpers.js +2 -2
  119. package/dist/summary/summaryHelpers.js.map +1 -1
  120. package/dist/summary/summaryManager.d.ts +4 -3
  121. package/dist/summary/summaryManager.d.ts.map +1 -1
  122. package/dist/summary/summaryManager.js +2 -2
  123. package/dist/summary/summaryManager.js.map +1 -1
  124. package/lib/channelCollection.d.ts +0 -14
  125. package/lib/channelCollection.d.ts.map +1 -1
  126. package/lib/channelCollection.js +6 -21
  127. package/lib/channelCollection.js.map +1 -1
  128. package/lib/containerRuntime.d.ts +16 -9
  129. package/lib/containerRuntime.d.ts.map +1 -1
  130. package/lib/containerRuntime.js +140 -106
  131. package/lib/containerRuntime.js.map +1 -1
  132. package/lib/dataStoreContext.d.ts +1 -5
  133. package/lib/dataStoreContext.d.ts.map +1 -1
  134. package/lib/dataStoreContext.js +0 -8
  135. package/lib/dataStoreContext.js.map +1 -1
  136. package/lib/index.d.ts +1 -1
  137. package/lib/index.d.ts.map +1 -1
  138. package/lib/index.js +1 -1
  139. package/lib/index.js.map +1 -1
  140. package/lib/messageTypes.d.ts +3 -7
  141. package/lib/messageTypes.d.ts.map +1 -1
  142. package/lib/messageTypes.js.map +1 -1
  143. package/lib/opLifecycle/batchManager.d.ts +3 -15
  144. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  145. package/lib/opLifecycle/batchManager.js +2 -38
  146. package/lib/opLifecycle/batchManager.js.map +1 -1
  147. package/lib/opLifecycle/definitions.d.ts +42 -6
  148. package/lib/opLifecycle/definitions.d.ts.map +1 -1
  149. package/lib/opLifecycle/definitions.js.map +1 -1
  150. package/lib/opLifecycle/index.d.ts +5 -4
  151. package/lib/opLifecycle/index.d.ts.map +1 -1
  152. package/lib/opLifecycle/index.js +4 -3
  153. package/lib/opLifecycle/index.js.map +1 -1
  154. package/lib/opLifecycle/opCompressor.d.ts +10 -11
  155. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  156. package/lib/opLifecycle/opCompressor.js +21 -20
  157. package/lib/opLifecycle/opCompressor.js.map +1 -1
  158. package/lib/opLifecycle/opGroupingManager.d.ts +9 -5
  159. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  160. package/lib/opLifecycle/opGroupingManager.js +18 -22
  161. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  162. package/lib/opLifecycle/opSerialization.d.ts +20 -0
  163. package/lib/opLifecycle/opSerialization.d.ts.map +1 -0
  164. package/lib/opLifecycle/opSerialization.js +35 -0
  165. package/lib/opLifecycle/opSerialization.js.map +1 -0
  166. package/lib/opLifecycle/opSplitter.d.ts +12 -13
  167. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  168. package/lib/opLifecycle/opSplitter.js +14 -14
  169. package/lib/opLifecycle/opSplitter.js.map +1 -1
  170. package/lib/opLifecycle/outbox.d.ts +35 -18
  171. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  172. package/lib/opLifecycle/outbox.js +109 -71
  173. package/lib/opLifecycle/outbox.js.map +1 -1
  174. package/lib/opLifecycle/remoteMessageProcessor.d.ts +0 -7
  175. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  176. package/lib/opLifecycle/remoteMessageProcessor.js +0 -13
  177. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  178. package/lib/packageVersion.d.ts +1 -1
  179. package/lib/packageVersion.d.ts.map +1 -1
  180. package/lib/packageVersion.js +1 -1
  181. package/lib/packageVersion.js.map +1 -1
  182. package/lib/pendingStateManager.d.ts +2 -2
  183. package/lib/pendingStateManager.d.ts.map +1 -1
  184. package/lib/pendingStateManager.js +1 -1
  185. package/lib/pendingStateManager.js.map +1 -1
  186. package/lib/runtimeLayerCompatState.d.ts.map +1 -1
  187. package/lib/runtimeLayerCompatState.js +3 -2
  188. package/lib/runtimeLayerCompatState.js.map +1 -1
  189. package/lib/summary/index.d.ts +5 -8
  190. package/lib/summary/index.d.ts.map +1 -1
  191. package/lib/summary/index.js +5 -7
  192. package/lib/summary/index.js.map +1 -1
  193. package/lib/summary/orderedClientElection.js +1 -1
  194. package/lib/summary/orderedClientElection.js.map +1 -1
  195. package/lib/summary/summarizerClientElection.d.ts +0 -1
  196. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  197. package/lib/summary/summarizerClientElection.js +1 -1
  198. package/lib/summary/summarizerClientElection.js.map +1 -1
  199. package/lib/summary/summarizerTypes.d.ts +3 -75
  200. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  201. package/lib/summary/summarizerTypes.js +1 -1
  202. package/lib/summary/summarizerTypes.js.map +1 -1
  203. package/{dist/summary/summaryGenerator.d.ts → lib/summary/summarizerUtils.d.ts} +12 -43
  204. package/lib/summary/summarizerUtils.d.ts.map +1 -0
  205. package/lib/summary/summarizerUtils.js +64 -0
  206. package/lib/summary/summarizerUtils.js.map +1 -0
  207. package/lib/summary/summaryDelayLoadedModule/index.d.ts +10 -0
  208. package/lib/summary/summaryDelayLoadedModule/index.d.ts.map +1 -0
  209. package/lib/summary/summaryDelayLoadedModule/index.js +9 -0
  210. package/lib/summary/summaryDelayLoadedModule/index.js.map +1 -0
  211. package/lib/summary/{runWhileConnectedCoordinator.d.ts → summaryDelayLoadedModule/runWhileConnectedCoordinator.d.ts} +1 -1
  212. package/lib/summary/summaryDelayLoadedModule/runWhileConnectedCoordinator.d.ts.map +1 -0
  213. package/lib/summary/summaryDelayLoadedModule/runWhileConnectedCoordinator.js.map +1 -0
  214. package/lib/summary/{runningSummarizer.d.ts → summaryDelayLoadedModule/runningSummarizer.d.ts} +4 -13
  215. package/lib/summary/summaryDelayLoadedModule/runningSummarizer.d.ts.map +1 -0
  216. package/lib/summary/{runningSummarizer.js → summaryDelayLoadedModule/runningSummarizer.js} +5 -12
  217. package/lib/summary/summaryDelayLoadedModule/runningSummarizer.js.map +1 -0
  218. package/lib/summary/{summarizer.d.ts → summaryDelayLoadedModule/summarizer.d.ts} +13 -2
  219. package/lib/summary/summaryDelayLoadedModule/summarizer.d.ts.map +1 -0
  220. package/lib/summary/{summarizer.js → summaryDelayLoadedModule/summarizer.js} +11 -1
  221. package/lib/summary/summaryDelayLoadedModule/summarizer.js.map +1 -0
  222. package/{dist/summary → lib/summary/summaryDelayLoadedModule}/summarizerHeuristics.d.ts +3 -3
  223. package/lib/summary/summaryDelayLoadedModule/summarizerHeuristics.d.ts.map +1 -0
  224. package/lib/summary/summaryDelayLoadedModule/summarizerHeuristics.js.map +1 -0
  225. package/lib/summary/summaryDelayLoadedModule/summaryGenerator.d.ts +36 -0
  226. package/lib/summary/summaryDelayLoadedModule/summaryGenerator.d.ts.map +1 -0
  227. package/lib/summary/{summaryGenerator.js → summaryDelayLoadedModule/summaryGenerator.js} +4 -85
  228. package/lib/summary/summaryDelayLoadedModule/summaryGenerator.js.map +1 -0
  229. package/lib/summary/summaryDelayLoadedModule/summaryResultBuilder.d.ts +21 -0
  230. package/lib/summary/summaryDelayLoadedModule/summaryResultBuilder.d.ts.map +1 -0
  231. package/lib/summary/summaryDelayLoadedModule/summaryResultBuilder.js +40 -0
  232. package/lib/summary/summaryDelayLoadedModule/summaryResultBuilder.js.map +1 -0
  233. package/lib/summary/summaryDelayLoadedModule/summaryResultTypes.d.ts +80 -0
  234. package/lib/summary/summaryDelayLoadedModule/summaryResultTypes.d.ts.map +1 -0
  235. package/lib/summary/summaryDelayLoadedModule/summaryResultTypes.js +6 -0
  236. package/lib/summary/summaryDelayLoadedModule/summaryResultTypes.js.map +1 -0
  237. package/lib/summary/summaryHelpers.d.ts +1 -1
  238. package/lib/summary/summaryHelpers.d.ts.map +1 -1
  239. package/lib/summary/summaryHelpers.js +1 -1
  240. package/lib/summary/summaryHelpers.js.map +1 -1
  241. package/lib/summary/summaryManager.d.ts +4 -3
  242. package/lib/summary/summaryManager.d.ts.map +1 -1
  243. package/lib/summary/summaryManager.js +2 -2
  244. package/lib/summary/summaryManager.js.map +1 -1
  245. package/package.json +20 -19
  246. package/src/channelCollection.ts +5 -20
  247. package/src/containerRuntime.ts +220 -178
  248. package/src/dataStoreContext.ts +0 -11
  249. package/src/index.ts +0 -1
  250. package/src/messageTypes.ts +5 -19
  251. package/src/opLifecycle/batchManager.ts +12 -51
  252. package/src/opLifecycle/definitions.ts +49 -6
  253. package/src/opLifecycle/index.ts +19 -4
  254. package/src/opLifecycle/opCompressor.ts +26 -25
  255. package/src/opLifecycle/opGroupingManager.ts +27 -26
  256. package/src/opLifecycle/opSerialization.ts +46 -0
  257. package/src/opLifecycle/opSplitter.ts +21 -17
  258. package/src/opLifecycle/outbox.ts +168 -99
  259. package/src/opLifecycle/remoteMessageProcessor.ts +0 -17
  260. package/src/packageVersion.ts +1 -1
  261. package/src/pendingStateManager.ts +3 -3
  262. package/src/runtimeLayerCompatState.ts +3 -2
  263. package/src/summary/index.ts +35 -31
  264. package/src/summary/orderedClientElection.ts +1 -1
  265. package/src/summary/summarizerClientElection.ts +1 -2
  266. package/src/summary/summarizerTypes.ts +7 -91
  267. package/src/summary/summarizerUtils.ts +132 -0
  268. package/src/summary/summaryDelayLoadedModule/index.ts +28 -0
  269. package/src/summary/{runWhileConnectedCoordinator.ts → summaryDelayLoadedModule/runWhileConnectedCoordinator.ts} +1 -1
  270. package/src/summary/{runningSummarizer.ts → summaryDelayLoadedModule/runningSummarizer.ts} +13 -28
  271. package/src/summary/{summarizer.ts → summaryDelayLoadedModule/summarizer.ts} +19 -8
  272. package/src/summary/{summarizerHeuristics.ts → summaryDelayLoadedModule/summarizerHeuristics.ts} +3 -3
  273. package/src/summary/{summaryGenerator.ts → summaryDelayLoadedModule/summaryGenerator.ts} +13 -179
  274. package/src/summary/summaryDelayLoadedModule/summaryResultBuilder.ts +70 -0
  275. package/src/summary/summaryDelayLoadedModule/summaryResultTypes.ts +100 -0
  276. package/src/summary/summaryHelpers.ts +6 -6
  277. package/src/summary/summaryManager.ts +8 -6
  278. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +0 -1
  279. package/dist/summary/runWhileConnectedCoordinator.js.map +0 -1
  280. package/dist/summary/runningSummarizer.d.ts.map +0 -1
  281. package/dist/summary/runningSummarizer.js.map +0 -1
  282. package/dist/summary/summarizer.d.ts.map +0 -1
  283. package/dist/summary/summarizer.js.map +0 -1
  284. package/dist/summary/summarizerHeuristics.d.ts.map +0 -1
  285. package/dist/summary/summarizerHeuristics.js.map +0 -1
  286. package/dist/summary/summaryGenerator.d.ts.map +0 -1
  287. package/dist/summary/summaryGenerator.js.map +0 -1
  288. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +0 -1
  289. package/lib/summary/runWhileConnectedCoordinator.js.map +0 -1
  290. package/lib/summary/runningSummarizer.d.ts.map +0 -1
  291. package/lib/summary/runningSummarizer.js.map +0 -1
  292. package/lib/summary/summarizer.d.ts.map +0 -1
  293. package/lib/summary/summarizer.js.map +0 -1
  294. package/lib/summary/summarizerHeuristics.d.ts.map +0 -1
  295. package/lib/summary/summarizerHeuristics.js.map +0 -1
  296. package/lib/summary/summaryGenerator.d.ts.map +0 -1
  297. package/lib/summary/summaryGenerator.js.map +0 -1
  298. /package/dist/summary/{runWhileConnectedCoordinator.js → summaryDelayLoadedModule/runWhileConnectedCoordinator.js} +0 -0
  299. /package/dist/summary/{summarizerHeuristics.js → summaryDelayLoadedModule/summarizerHeuristics.js} +0 -0
  300. /package/lib/summary/{runWhileConnectedCoordinator.js → summaryDelayLoadedModule/runWhileConnectedCoordinator.js} +0 -0
  301. /package/lib/summary/{summarizerHeuristics.js → summaryDelayLoadedModule/summarizerHeuristics.js} +0 -0
@@ -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
@@ -0,0 +1,132 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ import type { SummarizerStopReason } from "@fluidframework/container-runtime-definitions/internal";
7
+ import { ITelemetryBaseProperties } from "@fluidframework/core-interfaces";
8
+ import { IPromiseTimerResult } from "@fluidframework/core-utils/internal";
9
+ import { LoggingError } from "@fluidframework/telemetry-utils/internal";
10
+
11
+ import { ISummaryCancellationToken, type IRetriableFailureError } from "./summarizerTypes.js";
12
+
13
+ export type raceTimerResult<T> =
14
+ | { result: "done"; value: T }
15
+ | { result: IPromiseTimerResult["timerResult"] }
16
+ | { result: "cancelled" };
17
+
18
+ /**
19
+ * Wait for a promise or PromiseTimer to elapse.
20
+ */
21
+ export async function raceTimer<T>(
22
+ promise: Promise<T>,
23
+ timer: Promise<IPromiseTimerResult>,
24
+
25
+ cancellationToken?: ISummaryCancellationToken,
26
+ ): Promise<raceTimerResult<T>> {
27
+ const promises: Promise<raceTimerResult<T>>[] = [
28
+ promise.then((value) => ({ result: "done", value }) as const),
29
+ timer.then(({ timerResult: result }) => ({ result }) as const),
30
+ ];
31
+ if (cancellationToken !== undefined) {
32
+ promises.push(
33
+ cancellationToken.waitCancelled.then(() => ({ result: "cancelled" }) as const),
34
+ );
35
+ }
36
+ return Promise.race(promises);
37
+ }
38
+
39
+ /**
40
+ * Should we try to run a last summary for the given stop reason?
41
+ * Currently only allows "parentNotConnected"
42
+ * @param stopReason - SummarizerStopReason
43
+ * @returns `true` if the stop reason can run a last summary, otherwise `false`.
44
+ */
45
+ export function stopReasonCanRunLastSummary(stopReason: SummarizerStopReason): boolean {
46
+ return stopReason === "parentNotConnected";
47
+ }
48
+
49
+ export type SummarizeReason =
50
+ /**
51
+ * Attempt to summarize after idle timeout has elapsed.
52
+ * Idle timer restarts whenever an op is received. So this
53
+ * triggers only after some amount of time has passed with
54
+ * no ops being received.
55
+ */
56
+ | "idle"
57
+ /**
58
+ * Attempt to summarize after a maximum time since last
59
+ * successful summary has passed. This measures time since
60
+ * last summary ack op was processed.
61
+ */
62
+ | "maxTime"
63
+ /**
64
+ * Attempt to summarize after a maximum number of ops have
65
+ * passed since the last successful summary. This compares
66
+ * op sequence numbers with the reference sequence number
67
+ * of the summarize op corresponding to the last summary
68
+ * ack op.
69
+ */
70
+ | "maxOps"
71
+ /**
72
+ * Special case to attempt to summarize one last time before the
73
+ * summarizer client closes itself. This is to prevent cases where
74
+ * the summarizer client never gets a chance to summarize, because
75
+ * there are too many outstanding ops and/or parent client cannot
76
+ * stay connected long enough for summarizer client to catch up.
77
+ */
78
+ | "lastSummary"
79
+ /**
80
+ * On-demand summary requested with specified reason.
81
+ */
82
+ | `onDemand;${string}`
83
+ /**
84
+ * Enqueue summarize attempt with specified reason.
85
+ */
86
+ | `enqueue;${string}`;
87
+
88
+ const summarizeErrors = {
89
+ /**
90
+ * Error encountered while generating the summary tree, uploading
91
+ * it to storage, or submitting the op. It could be a result of
92
+ * the client becoming disconnected while generating or an actual error.
93
+ */
94
+ submitSummaryFailure: "Error while generating, uploading, or submitting summary",
95
+ /**
96
+ * The summaryAckWaitTimeout time has elapsed before receiving the summarize op
97
+ * sent by this summarize attempt. It is expected to be broadcast quickly.
98
+ */
99
+ summaryOpWaitTimeout: "Timeout while waiting for summarize op broadcast",
100
+ /**
101
+ * The summaryAckWaitTimeout time has elapsed before receiving either a
102
+ * summaryAck or summaryNack op from the server in response to this
103
+ * summarize attempt. It is expected that the server should respond.
104
+ */
105
+ summaryAckWaitTimeout: "Timeout while waiting for summaryAck/summaryNack op",
106
+ /**
107
+ * The server responded with a summaryNack op, thus rejecting this
108
+ * summarize attempt.
109
+ */
110
+ summaryNack: "Server rejected summary via summaryNack op",
111
+
112
+ disconnect: "Summary cancelled due to summarizer or main client disconnect",
113
+ } as const;
114
+
115
+ export type SummarizeErrorCode = keyof typeof summarizeErrors;
116
+
117
+ // Helper functions to report failures and return.
118
+ export const getFailMessage = (errorCode: SummarizeErrorCode): string =>
119
+ `${errorCode}: ${summarizeErrors[errorCode]}`;
120
+
121
+ /**
122
+ * Errors type for errors hit during summary that may be retriable.
123
+ */
124
+ export class RetriableSummaryError extends LoggingError implements IRetriableFailureError {
125
+ constructor(
126
+ message: string,
127
+ public readonly retryAfterSeconds?: number,
128
+ props?: ITelemetryBaseProperties,
129
+ ) {
130
+ super(message, props);
131
+ }
132
+ }
@@ -0,0 +1,28 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ export {
7
+ defaultMaxAttempts,
8
+ defaultMaxAttemptsForSubmitFailures,
9
+ Summarizer,
10
+ } from "./summarizer.js";
11
+ export {
12
+ ICancellableSummarizerController,
13
+ neverCancelledSummaryToken,
14
+ RunWhileConnectedCoordinator,
15
+ } from "./runWhileConnectedCoordinator.js";
16
+
17
+ export {
18
+ EnqueueSummarizeResult,
19
+ IAckSummaryResult,
20
+ INackSummaryResult,
21
+ IBroadcastSummaryResult,
22
+ ISummarizeResults,
23
+ } from "./summaryResultTypes.js";
24
+ export { RunningSummarizer } from "./runningSummarizer.js";
25
+ export {
26
+ SummarizeHeuristicData,
27
+ SummarizeHeuristicRunner,
28
+ } from "./summarizerHeuristics.js";
@@ -6,7 +6,7 @@
6
6
  import type { SummarizerStopReason } from "@fluidframework/container-runtime-definitions/internal";
7
7
  import { assert, Deferred } from "@fluidframework/core-utils/internal";
8
8
 
9
- import { IConnectableRuntime, ISummaryCancellationToken } from "./summarizerTypes.js";
9
+ import { IConnectableRuntime, ISummaryCancellationToken } from "../summarizerTypes.js";
10
10
 
11
11
  /**
12
12
  * Similar to AbortController, but using promise instead of events
@@ -26,52 +26,37 @@ import {
26
26
  type ITelemetryLoggerExt,
27
27
  } from "@fluidframework/telemetry-utils/internal";
28
28
 
29
- import { opSize } from "../opProperties.js";
30
-
31
- import { SummarizeHeuristicRunner } from "./summarizerHeuristics.js";
29
+ import { opSize } from "../../opProperties.js";
32
30
  import type {
33
- ISummaryConfiguration,
34
- EnqueueSummarizeResult,
35
31
  IEnqueueSummarizeOptions,
36
32
  IOnDemandSummarizeOptions,
37
33
  IRefreshSummaryAckOptions,
34
+ IRetriableFailureError,
38
35
  ISubmitSummaryOptions,
39
36
  ISummarizeHeuristicData,
40
37
  ISummarizeHeuristicRunner,
41
38
  ISummarizeOptions,
42
- ISummarizeResults,
39
+ ISummarizerRuntime,
43
40
  ISummarizeRunnerTelemetry,
44
41
  ISummarizeTelemetryProperties,
45
- ISummarizerRuntime,
46
42
  ISummaryCancellationToken,
43
+ ISummaryConfiguration,
47
44
  SubmitSummaryResult,
48
- IRetriableFailureError,
49
- } from "./summarizerTypes.js";
45
+ } from "../summarizerTypes.js";
46
+ import { raceTimer, RetriableSummaryError, type SummarizeReason } from "../summarizerUtils.js";
50
47
  import {
51
48
  IAckedSummary,
52
49
  IClientSummaryWatcher,
53
50
  SummaryCollection,
54
- } from "./summaryCollection.js";
55
- import {
56
- RetriableSummaryError,
57
- SummarizeReason,
58
- SummarizeResultBuilder,
59
- SummaryGenerator,
60
- raceTimer,
61
- } from "./summaryGenerator.js";
51
+ } from "../summaryCollection.js";
62
52
 
63
- const maxSummarizeAckWaitTime = 10 * 60 * 1000; // 10 minutes
53
+ import { defaultMaxAttempts, defaultMaxAttemptsForSubmitFailures } from "./summarizer.js";
54
+ import { SummarizeHeuristicRunner } from "./summarizerHeuristics.js";
55
+ import { SummaryGenerator } from "./summaryGenerator.js";
56
+ import { SummarizeResultBuilder } from "./summaryResultBuilder.js";
57
+ import type { EnqueueSummarizeResult, ISummarizeResults } from "./summaryResultTypes.js";
64
58
 
65
- /**
66
- * The maximum number of summarization attempts that will be done by default in case of failures
67
- * that can be retried.
68
- */
69
- export const defaultMaxAttempts = 2;
70
- /**
71
- * The default value for maximum number of summarization attempts that will be done for summarization failures where
72
- * submit fails and the failure can be retried.
73
- */
74
- export const defaultMaxAttemptsForSubmitFailures = 5;
59
+ const maxSummarizeAckWaitTime = 10 * 60 * 1000; // 10 minutes
75
60
 
76
61
  /**
77
62
  * An instance of RunningSummarizer manages the heuristics for summarizing.
@@ -19,25 +19,36 @@ import {
19
19
  wrapErrorAndLog,
20
20
  } from "@fluidframework/telemetry-utils/internal";
21
21
 
22
- import { ICancellableSummarizerController } from "./runWhileConnectedCoordinator.js";
23
- import { RunningSummarizer } from "./runningSummarizer.js";
24
- import { SummarizeHeuristicData } from "./summarizerHeuristics.js";
25
22
  import {
26
- EnqueueSummarizeResult,
27
23
  IConnectableRuntime,
28
24
  IEnqueueSummarizeOptions,
29
25
  IOnDemandSummarizeOptions,
30
26
  ISummarizeHeuristicData,
31
- ISummarizeResults,
32
27
  ISummarizer,
33
28
  ISummarizerInternalsProvider,
34
29
  ISummarizerRuntime,
35
30
  ISummarizingWarning,
36
31
  type IRetriableFailureError,
37
32
  type ISummaryConfiguration,
38
- } from "./summarizerTypes.js";
39
- import { SummaryCollection } from "./summaryCollection.js";
40
- import { SummarizeResultBuilder } from "./summaryGenerator.js";
33
+ } from "../summarizerTypes.js";
34
+ import { SummaryCollection } from "../summaryCollection.js";
35
+
36
+ import { ICancellableSummarizerController } from "./runWhileConnectedCoordinator.js";
37
+ import { RunningSummarizer } from "./runningSummarizer.js";
38
+ import { SummarizeHeuristicData } from "./summarizerHeuristics.js";
39
+ import { SummarizeResultBuilder } from "./summaryResultBuilder.js";
40
+ import type { EnqueueSummarizeResult, ISummarizeResults } from "./summaryResultTypes.js";
41
+
42
+ /**
43
+ * The maximum number of summarization attempts that will be done by default in case of failures
44
+ * that can be retried.
45
+ */
46
+ export const defaultMaxAttempts = 2;
47
+ /**
48
+ * The default value for maximum number of summarization attempts that will be done for summarization failures where
49
+ * submit fails and the failure can be retried.
50
+ */
51
+ export const defaultMaxAttemptsForSubmitFailures = 5;
41
52
 
42
53
  export class SummarizingWarning
43
54
  extends LoggingError
@@ -6,14 +6,14 @@
6
6
  import { Timer } from "@fluidframework/core-utils/internal";
7
7
  import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
8
8
 
9
- import type { ISummaryConfigurationHeuristics } from "./summarizerTypes.js";
9
+ import type { ISummaryConfigurationHeuristics } from "../summarizerTypes.js";
10
10
  import {
11
11
  ISummarizeAttempt,
12
12
  ISummarizeHeuristicData,
13
13
  ISummarizeHeuristicRunner,
14
14
  ISummaryHeuristicStrategy,
15
- } from "./summarizerTypes.js";
16
- import { SummarizeReason } from "./summaryGenerator.js";
15
+ } from "../summarizerTypes.js";
16
+ import { SummarizeReason } from "../summarizerUtils.js";
17
17
 
18
18
  /**
19
19
  * Simple implementation of class for tracking summarize heuristic data.