@fluidframework/container-runtime 2.0.0-dev-rc.5.0.0.265721 → 2.0.0-dev-rc.5.0.0.267932

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 (287) hide show
  1. package/api-report/container-runtime.api.md +12 -13
  2. package/dist/batchTracker.js.map +1 -1
  3. package/dist/blobManager.d.ts +2 -2
  4. package/dist/blobManager.d.ts.map +1 -1
  5. package/dist/blobManager.js.map +1 -1
  6. package/dist/channelCollection.d.ts +3 -3
  7. package/dist/channelCollection.d.ts.map +1 -1
  8. package/dist/channelCollection.js.map +1 -1
  9. package/dist/connectionTelemetry.d.ts +2 -1
  10. package/dist/connectionTelemetry.d.ts.map +1 -1
  11. package/dist/connectionTelemetry.js +14 -14
  12. package/dist/connectionTelemetry.js.map +1 -1
  13. package/dist/containerRuntime.d.ts +2 -2
  14. package/dist/containerRuntime.d.ts.map +1 -1
  15. package/dist/containerRuntime.js +12 -16
  16. package/dist/containerRuntime.js.map +1 -1
  17. package/dist/dataStoreContext.d.ts +3 -4
  18. package/dist/dataStoreContext.d.ts.map +1 -1
  19. package/dist/dataStoreContext.js.map +1 -1
  20. package/dist/deltaManagerProxies.d.ts +4 -3
  21. package/dist/deltaManagerProxies.d.ts.map +1 -1
  22. package/dist/deltaManagerProxies.js.map +1 -1
  23. package/dist/deltaScheduler.d.ts +2 -1
  24. package/dist/deltaScheduler.d.ts.map +1 -1
  25. package/dist/deltaScheduler.js.map +1 -1
  26. package/dist/gc/garbageCollection.d.ts +0 -1
  27. package/dist/gc/garbageCollection.d.ts.map +1 -1
  28. package/dist/gc/garbageCollection.js +17 -20
  29. package/dist/gc/garbageCollection.js.map +1 -1
  30. package/dist/gc/gcConfigs.d.ts.map +1 -1
  31. package/dist/gc/gcConfigs.js +5 -19
  32. package/dist/gc/gcConfigs.js.map +1 -1
  33. package/dist/gc/gcDefinitions.d.ts +1 -10
  34. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  35. package/dist/gc/gcDefinitions.js +1 -3
  36. package/dist/gc/gcDefinitions.js.map +1 -1
  37. package/dist/gc/gcHelpers.d.ts +1 -1
  38. package/dist/gc/gcHelpers.d.ts.map +1 -1
  39. package/dist/gc/gcHelpers.js.map +1 -1
  40. package/dist/gc/gcSummaryStateTracker.d.ts +1 -34
  41. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  42. package/dist/gc/gcSummaryStateTracker.js +9 -62
  43. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  44. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  45. package/dist/gc/gcTelemetry.js.map +1 -1
  46. package/dist/gc/index.d.ts +1 -1
  47. package/dist/gc/index.d.ts.map +1 -1
  48. package/dist/gc/index.js +1 -2
  49. package/dist/gc/index.js.map +1 -1
  50. package/dist/messageTypes.d.ts +1 -1
  51. package/dist/messageTypes.d.ts.map +1 -1
  52. package/dist/messageTypes.js.map +1 -1
  53. package/dist/opLifecycle/definitions.d.ts +2 -2
  54. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  55. package/dist/opLifecycle/definitions.js.map +1 -1
  56. package/dist/opLifecycle/opCompressor.d.ts +11 -1
  57. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  58. package/dist/opLifecycle/opCompressor.js +13 -2
  59. package/dist/opLifecycle/opCompressor.js.map +1 -1
  60. package/dist/opLifecycle/opDecompressor.d.ts +1 -1
  61. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  62. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  63. package/dist/opLifecycle/opGroupingManager.d.ts +10 -3
  64. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  65. package/dist/opLifecycle/opGroupingManager.js +7 -0
  66. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  67. package/dist/opLifecycle/opSplitter.d.ts +4 -2
  68. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  69. package/dist/opLifecycle/opSplitter.js +12 -7
  70. package/dist/opLifecycle/opSplitter.js.map +1 -1
  71. package/dist/opLifecycle/outbox.d.ts +9 -0
  72. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  73. package/dist/opLifecycle/outbox.js +10 -1
  74. package/dist/opLifecycle/outbox.js.map +1 -1
  75. package/dist/opLifecycle/remoteMessageProcessor.d.ts +1 -1
  76. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  77. package/dist/opLifecycle/remoteMessageProcessor.js +2 -2
  78. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  79. package/dist/opProperties.d.ts +1 -1
  80. package/dist/opProperties.d.ts.map +1 -1
  81. package/dist/opProperties.js.map +1 -1
  82. package/dist/packageVersion.d.ts +1 -1
  83. package/dist/packageVersion.js +1 -1
  84. package/dist/packageVersion.js.map +1 -1
  85. package/dist/pendingStateManager.js.map +1 -1
  86. package/dist/scheduleManager.d.ts +2 -1
  87. package/dist/scheduleManager.d.ts.map +1 -1
  88. package/dist/scheduleManager.js.map +1 -1
  89. package/dist/summary/orderedClientElection.d.ts +1 -1
  90. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  91. package/dist/summary/orderedClientElection.js.map +1 -1
  92. package/dist/summary/runningSummarizer.d.ts +1 -1
  93. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  94. package/dist/summary/runningSummarizer.js +3 -4
  95. package/dist/summary/runningSummarizer.js.map +1 -1
  96. package/dist/summary/summarizerClientElection.d.ts +1 -1
  97. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  98. package/dist/summary/summarizerClientElection.js +2 -2
  99. package/dist/summary/summarizerClientElection.js.map +1 -1
  100. package/dist/summary/summarizerNode/summarizerNode.d.ts +2 -1
  101. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  102. package/dist/summary/summarizerNode/summarizerNode.js +16 -16
  103. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  104. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
  105. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  106. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  107. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +1 -1
  108. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  109. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +1 -1
  110. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  111. package/dist/summary/summarizerTypes.d.ts +2 -3
  112. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  113. package/dist/summary/summarizerTypes.js.map +1 -1
  114. package/dist/summary/summaryCollection.d.ts +2 -1
  115. package/dist/summary/summaryCollection.d.ts.map +1 -1
  116. package/dist/summary/summaryCollection.js +9 -9
  117. package/dist/summary/summaryCollection.js.map +1 -1
  118. package/dist/summary/summaryFormat.d.ts +2 -2
  119. package/dist/summary/summaryFormat.d.ts.map +1 -1
  120. package/dist/summary/summaryFormat.js +2 -2
  121. package/dist/summary/summaryFormat.js.map +1 -1
  122. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  123. package/dist/summary/summaryGenerator.js +3 -4
  124. package/dist/summary/summaryGenerator.js.map +1 -1
  125. package/lib/batchTracker.js.map +1 -1
  126. package/lib/blobManager.d.ts +2 -2
  127. package/lib/blobManager.d.ts.map +1 -1
  128. package/lib/blobManager.js.map +1 -1
  129. package/lib/channelCollection.d.ts +3 -3
  130. package/lib/channelCollection.d.ts.map +1 -1
  131. package/lib/channelCollection.js.map +1 -1
  132. package/lib/connectionTelemetry.d.ts +2 -1
  133. package/lib/connectionTelemetry.d.ts.map +1 -1
  134. package/lib/connectionTelemetry.js +2 -2
  135. package/lib/connectionTelemetry.js.map +1 -1
  136. package/lib/containerRuntime.d.ts +2 -2
  137. package/lib/containerRuntime.d.ts.map +1 -1
  138. package/lib/containerRuntime.js +6 -10
  139. package/lib/containerRuntime.js.map +1 -1
  140. package/lib/dataStoreContext.d.ts +3 -4
  141. package/lib/dataStoreContext.d.ts.map +1 -1
  142. package/lib/dataStoreContext.js.map +1 -1
  143. package/lib/deltaManagerProxies.d.ts +4 -3
  144. package/lib/deltaManagerProxies.d.ts.map +1 -1
  145. package/lib/deltaManagerProxies.js.map +1 -1
  146. package/lib/deltaScheduler.d.ts +2 -1
  147. package/lib/deltaScheduler.d.ts.map +1 -1
  148. package/lib/deltaScheduler.js.map +1 -1
  149. package/lib/gc/garbageCollection.d.ts +0 -1
  150. package/lib/gc/garbageCollection.d.ts.map +1 -1
  151. package/lib/gc/garbageCollection.js +17 -20
  152. package/lib/gc/garbageCollection.js.map +1 -1
  153. package/lib/gc/gcConfigs.d.ts.map +1 -1
  154. package/lib/gc/gcConfigs.js +6 -20
  155. package/lib/gc/gcConfigs.js.map +1 -1
  156. package/lib/gc/gcDefinitions.d.ts +1 -10
  157. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  158. package/lib/gc/gcDefinitions.js +0 -2
  159. package/lib/gc/gcDefinitions.js.map +1 -1
  160. package/lib/gc/gcHelpers.d.ts +1 -1
  161. package/lib/gc/gcHelpers.d.ts.map +1 -1
  162. package/lib/gc/gcHelpers.js.map +1 -1
  163. package/lib/gc/gcSummaryStateTracker.d.ts +1 -34
  164. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  165. package/lib/gc/gcSummaryStateTracker.js +4 -57
  166. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  167. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  168. package/lib/gc/gcTelemetry.js.map +1 -1
  169. package/lib/gc/index.d.ts +1 -1
  170. package/lib/gc/index.d.ts.map +1 -1
  171. package/lib/gc/index.js +1 -1
  172. package/lib/gc/index.js.map +1 -1
  173. package/lib/messageTypes.d.ts +1 -1
  174. package/lib/messageTypes.d.ts.map +1 -1
  175. package/lib/messageTypes.js.map +1 -1
  176. package/lib/opLifecycle/definitions.d.ts +2 -2
  177. package/lib/opLifecycle/definitions.d.ts.map +1 -1
  178. package/lib/opLifecycle/definitions.js.map +1 -1
  179. package/lib/opLifecycle/opCompressor.d.ts +11 -1
  180. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  181. package/lib/opLifecycle/opCompressor.js +13 -2
  182. package/lib/opLifecycle/opCompressor.js.map +1 -1
  183. package/lib/opLifecycle/opDecompressor.d.ts +1 -1
  184. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  185. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  186. package/lib/opLifecycle/opGroupingManager.d.ts +10 -3
  187. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  188. package/lib/opLifecycle/opGroupingManager.js +7 -0
  189. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  190. package/lib/opLifecycle/opSplitter.d.ts +4 -2
  191. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  192. package/lib/opLifecycle/opSplitter.js +12 -7
  193. package/lib/opLifecycle/opSplitter.js.map +1 -1
  194. package/lib/opLifecycle/outbox.d.ts +9 -0
  195. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  196. package/lib/opLifecycle/outbox.js +10 -1
  197. package/lib/opLifecycle/outbox.js.map +1 -1
  198. package/lib/opLifecycle/remoteMessageProcessor.d.ts +1 -1
  199. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  200. package/lib/opLifecycle/remoteMessageProcessor.js +1 -1
  201. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  202. package/lib/opProperties.d.ts +1 -1
  203. package/lib/opProperties.d.ts.map +1 -1
  204. package/lib/opProperties.js.map +1 -1
  205. package/lib/packageVersion.d.ts +1 -1
  206. package/lib/packageVersion.js +1 -1
  207. package/lib/packageVersion.js.map +1 -1
  208. package/lib/pendingStateManager.js.map +1 -1
  209. package/lib/scheduleManager.d.ts +2 -1
  210. package/lib/scheduleManager.d.ts.map +1 -1
  211. package/lib/scheduleManager.js.map +1 -1
  212. package/lib/summary/orderedClientElection.d.ts +1 -1
  213. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  214. package/lib/summary/orderedClientElection.js.map +1 -1
  215. package/lib/summary/runningSummarizer.d.ts +1 -1
  216. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  217. package/lib/summary/runningSummarizer.js +1 -2
  218. package/lib/summary/runningSummarizer.js.map +1 -1
  219. package/lib/summary/summarizerClientElection.d.ts +1 -1
  220. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  221. package/lib/summary/summarizerClientElection.js +1 -1
  222. package/lib/summary/summarizerClientElection.js.map +1 -1
  223. package/lib/summary/summarizerNode/summarizerNode.d.ts +2 -1
  224. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  225. package/lib/summary/summarizerNode/summarizerNode.js +14 -14
  226. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  227. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
  228. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  229. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  230. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +1 -1
  231. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  232. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +1 -1
  233. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  234. package/lib/summary/summarizerTypes.d.ts +2 -3
  235. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  236. package/lib/summary/summarizerTypes.js.map +1 -1
  237. package/lib/summary/summaryCollection.d.ts +2 -1
  238. package/lib/summary/summaryCollection.d.ts.map +1 -1
  239. package/lib/summary/summaryCollection.js +1 -1
  240. package/lib/summary/summaryCollection.js.map +1 -1
  241. package/lib/summary/summaryFormat.d.ts +2 -2
  242. package/lib/summary/summaryFormat.d.ts.map +1 -1
  243. package/lib/summary/summaryFormat.js +1 -1
  244. package/lib/summary/summaryFormat.js.map +1 -1
  245. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  246. package/lib/summary/summaryGenerator.js +2 -3
  247. package/lib/summary/summaryGenerator.js.map +1 -1
  248. package/lib/tsdoc-metadata.json +1 -1
  249. package/package.json +31 -20
  250. package/src/batchTracker.ts +1 -1
  251. package/src/blobManager.ts +4 -4
  252. package/src/channelCollection.ts +4 -3
  253. package/src/connectionTelemetry.ts +14 -6
  254. package/src/containerRuntime.ts +17 -21
  255. package/src/dataStoreContext.ts +10 -10
  256. package/src/deltaManagerProxies.ts +7 -5
  257. package/src/deltaScheduler.ts +2 -1
  258. package/src/gc/garbageCollection.ts +18 -24
  259. package/src/gc/gcConfigs.ts +5 -24
  260. package/src/gc/gcDefinitions.ts +1 -10
  261. package/src/gc/gcHelpers.ts +1 -1
  262. package/src/gc/gcSummaryStateTracker.ts +6 -72
  263. package/src/gc/gcTelemetry.ts +1 -1
  264. package/src/gc/index.ts +0 -1
  265. package/src/messageTypes.ts +1 -1
  266. package/src/opLifecycle/README.md +120 -160
  267. package/src/opLifecycle/definitions.ts +2 -2
  268. package/src/opLifecycle/opCompressor.ts +13 -2
  269. package/src/opLifecycle/opDecompressor.ts +1 -1
  270. package/src/opLifecycle/opGroupingManager.ts +11 -4
  271. package/src/opLifecycle/opSplitter.ts +13 -8
  272. package/src/opLifecycle/outbox.ts +10 -1
  273. package/src/opLifecycle/remoteMessageProcessor.ts +2 -1
  274. package/src/opProperties.ts +2 -4
  275. package/src/packageVersion.ts +1 -1
  276. package/src/pendingStateManager.ts +1 -1
  277. package/src/scheduleManager.ts +2 -1
  278. package/src/summary/orderedClientElection.ts +1 -1
  279. package/src/summary/runningSummarizer.ts +2 -2
  280. package/src/summary/summarizerClientElection.ts +2 -1
  281. package/src/summary/summarizerNode/summarizerNode.ts +19 -29
  282. package/src/summary/summarizerNode/summarizerNodeUtils.ts +2 -1
  283. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +3 -5
  284. package/src/summary/summarizerTypes.ts +2 -7
  285. package/src/summary/summaryCollection.ts +2 -2
  286. package/src/summary/summaryFormat.ts +5 -6
  287. package/src/summary/summaryGenerator.ts +2 -3
@@ -6,7 +6,7 @@
6
6
  import { IBatchMessage } from "@fluidframework/container-definitions/internal";
7
7
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
8
8
  import { assert } from "@fluidframework/core-utils/internal";
9
- import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
9
+ import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
10
10
  import {
11
11
  DataCorruptionError,
12
12
  createChildLogger,
@@ -111,8 +111,10 @@ export class OpSplitter {
111
111
  * To illustrate, if the input is `[largeOp, emptyOp, emptyOp]`, `largeOp` will be split into `[chunk1, chunk2, chunk3, chunk4]`.
112
112
  * `chunk1`, `chunk2` and `chunk3` will be sent individually and `[chunk4, emptyOp, emptyOp]` will be returned.
113
113
  *
114
+ * @remarks - A side effect here is that 1 or more chunks are queued immediately for sending in next JS turn.
115
+ *
114
116
  * @param batch - the compressed batch which needs to be processed
115
- * @returns A new adjusted batch which can be sent over the wire
117
+ * @returns A new adjusted batch (last chunk + empty placeholders) which can be sent over the wire
116
118
  */
117
119
  public splitFirstBatchMessage(batch: IBatch): IBatch {
118
120
  assert(this.isBatchChunkingEnabled, 0x513 /* Chunking needs to be enabled */);
@@ -203,16 +205,19 @@ export class OpSplitter {
203
205
  const serializedContent = this.chunkMap.get(clientId)!.join("");
204
206
  this.clearPartialChunks(clientId);
205
207
 
206
- const newMessage = { ...message };
207
- newMessage.contents = serializedContent === "" ? undefined : JSON.parse(serializedContent);
208
+ // The final/complete message will contain the data from all the chunks.
209
+ // It will have the sequenceNumber of the last chunk
210
+ const completeMessage = { ...message };
211
+ completeMessage.contents =
212
+ serializedContent === "" ? undefined : JSON.parse(serializedContent);
208
213
  // back-compat with 1.x builds
209
214
  // This is only required / present for non-compressed, chunked ops
210
215
  // For compressed ops, we have op grouping enabled, and type of each op is preserved within compressed content.
211
- newMessage.type = (chunkedContent as any).originalType;
212
- newMessage.metadata = chunkedContent.originalMetadata;
213
- newMessage.compression = chunkedContent.originalCompression;
216
+ completeMessage.type = (chunkedContent as any).originalType;
217
+ completeMessage.metadata = chunkedContent.originalMetadata;
218
+ completeMessage.compression = chunkedContent.originalCompression;
214
219
  return {
215
- message: newMessage,
220
+ message: completeMessage,
216
221
  isFinalChunk: true,
217
222
  };
218
223
  }
@@ -254,7 +254,7 @@ export class Outbox {
254
254
  return;
255
255
  }
256
256
 
257
- // Did we disconnect?
257
+ // Did we disconnect? (i.e. is shouldSend false?)
258
258
  // If so, do nothing, as pending state manager will resubmit it correctly on reconnect.
259
259
  // Because flush() is a task that executes async (on clean stack), we can get here in disconnected state.
260
260
  if (this.params.shouldSend()) {
@@ -307,6 +307,15 @@ export class Outbox {
307
307
  return this.params.opReentrancy() && !this.rebasing;
308
308
  }
309
309
 
310
+ /**
311
+ * As necessary and enabled, compresses and chunks the given batch.
312
+ *
313
+ * @remarks - If chunking happens, a side effect here is that 1 or more chunks are queued immediately for sending in next JS turn.
314
+ *
315
+ * @param batch - Raw or Grouped batch to consider for compression/chunking
316
+ * @returns Either (A) the original batch, (B) a compressed batch (same length as original),
317
+ * or (C) a batch containing the last chunk (plus empty placeholders from compression if applicable).
318
+ */
310
319
  private compressBatch(batch: IBatch): IBatch {
311
320
  if (
312
321
  batch.content.length === 0 ||
@@ -3,7 +3,8 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ISequencedDocumentMessage, MessageType } from "@fluidframework/protocol-definitions";
6
+ import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
7
+ import { MessageType } from "@fluidframework/driver-definitions/internal";
7
8
 
8
9
  import {
9
10
  ContainerMessageType,
@@ -3,10 +3,8 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import {
7
- ISequencedDocumentMessage,
8
- ISequencedDocumentSystemMessage,
9
- } from "@fluidframework/protocol-definitions";
6
+ import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
7
+ import { ISequencedDocumentSystemMessage } from "@fluidframework/driver-definitions/internal";
10
8
 
11
9
  export const opSize = (op: ISequencedDocumentMessage): number => {
12
10
  // Some messages may already have string contents,
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/container-runtime";
9
- export const pkgVersion = "2.0.0-dev-rc.5.0.0.265721";
9
+ export const pkgVersion = "2.0.0-dev-rc.5.0.0.267932";
@@ -6,7 +6,7 @@
6
6
  import { ICriticalContainerError } from "@fluidframework/container-definitions";
7
7
  import { IDisposable } from "@fluidframework/core-interfaces";
8
8
  import { assert, Lazy } from "@fluidframework/core-utils/internal";
9
- import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
9
+ import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
10
10
  import {
11
11
  ITelemetryLoggerExt,
12
12
  DataProcessingError,
@@ -7,8 +7,9 @@ import type { EventEmitter } from "@fluid-internal/client-utils";
7
7
  import { performance } from "@fluid-internal/client-utils";
8
8
  import { IDeltaManager } from "@fluidframework/container-definitions/internal";
9
9
  import { assert } from "@fluidframework/core-utils/internal";
10
+ import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
11
+ import { IDocumentMessage } from "@fluidframework/driver-definitions/internal";
10
12
  import { isRuntimeMessage } from "@fluidframework/driver-utils/internal";
11
- import { IDocumentMessage, ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
12
13
  import {
13
14
  ITelemetryLoggerExt,
14
15
  DataCorruptionError,
@@ -9,7 +9,7 @@ import { TypedEventEmitter } from "@fluid-internal/client-utils";
9
9
  import { IDeltaManager } from "@fluidframework/container-definitions/internal";
10
10
  import { IEvent, IEventProvider, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
11
11
  import { assert } from "@fluidframework/core-utils/internal";
12
- import { IClient, IQuorumClients, ISequencedClient } from "@fluidframework/protocol-definitions";
12
+ import { IClient, IQuorumClients, ISequencedClient } from "@fluidframework/driver-definitions";
13
13
  import {
14
14
  ITelemetryLoggerExt,
15
15
  UsageError,
@@ -6,8 +6,8 @@
6
6
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
7
7
  import { IDisposable, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
8
8
  import { assert, Deferred, PromiseTimer, delay } from "@fluidframework/core-utils/internal";
9
- import { DriverErrorTypes } from "@fluidframework/driver-definitions/internal";
10
- import { ISequencedDocumentMessage, MessageType } from "@fluidframework/protocol-definitions";
9
+ import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
10
+ import { DriverErrorTypes, MessageType } from "@fluidframework/driver-definitions/internal";
11
11
  import {
12
12
  MonitoringContext,
13
13
  UsageError,
@@ -5,7 +5,8 @@
5
5
 
6
6
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
7
7
  import { IEvent, IEventProvider } from "@fluidframework/core-interfaces";
8
- import { IClientDetails, MessageType } from "@fluidframework/protocol-definitions";
8
+ import { IClientDetails } from "@fluidframework/driver-definitions";
9
+ import { MessageType } from "@fluidframework/driver-definitions/internal";
9
10
  import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
10
11
 
11
12
  import {
@@ -5,11 +5,8 @@
5
5
 
6
6
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
7
7
  import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
8
- import {
9
- ISequencedDocumentMessage,
10
- ISnapshotTree,
11
- SummaryType,
12
- } from "@fluidframework/protocol-definitions";
8
+ import { ISequencedDocumentMessage, SummaryType } from "@fluidframework/driver-definitions";
9
+ import { ISnapshotTree } from "@fluidframework/driver-definitions/internal";
13
10
  import {
14
11
  IExperimentalIncrementalSummaryContext,
15
12
  ITelemetryContext,
@@ -165,15 +162,6 @@ export class SummarizerNode implements IRootSummarizerNode {
165
162
  trackState: boolean = true,
166
163
  telemetryContext?: ITelemetryContext,
167
164
  ): Promise<ISummarizeResult> {
168
- assert(
169
- this.isSummaryInProgress(),
170
- 0x1a1 /* "summarize should not be called when not tracking the summary" */,
171
- );
172
- assert(
173
- this.wipSummaryLogger !== undefined,
174
- 0x1a2 /* "wipSummaryLogger should have been set in startSummary or ctor" */,
175
- );
176
-
177
165
  // Try to reuse the tree if unchanged
178
166
  if (this.canReuseHandle && !fullTree && !this.hasChanged()) {
179
167
  const latestSummary = this._latestSummary;
@@ -196,21 +184,23 @@ export class SummarizerNode implements IRootSummarizerNode {
196
184
  }
197
185
  }
198
186
 
199
- // This assert is the same the other 0a1x1 assert `isSummaryInProgress`, the only difference is that typescript
200
- // complains if this assert isn't done this way
201
- assert(
202
- this.wipReferenceSequenceNumber !== undefined,
203
- 0x5df /* Summarize should not be called when not tracking the summary */,
204
- );
205
- const incrementalSummaryContext: IExperimentalIncrementalSummaryContext | undefined =
206
- this._latestSummary !== undefined
207
- ? {
208
- summarySequenceNumber: this.wipReferenceSequenceNumber,
209
- latestSummarySequenceNumber: this._latestSummary.referenceSequenceNumber,
210
- // TODO: remove summaryPath
211
- summaryPath: this._latestSummary.fullPath.path,
212
- }
213
- : undefined;
187
+ let incrementalSummaryContext: IExperimentalIncrementalSummaryContext | undefined;
188
+ if (!fullTree) {
189
+ assert(
190
+ this.wipReferenceSequenceNumber !== undefined,
191
+ 0x5df /* Summarize should not be called when not tracking the summary */,
192
+ );
193
+ incrementalSummaryContext =
194
+ this._latestSummary !== undefined
195
+ ? {
196
+ summarySequenceNumber: this.wipReferenceSequenceNumber,
197
+ latestSummarySequenceNumber:
198
+ this._latestSummary.referenceSequenceNumber,
199
+ // TODO: remove summaryPath
200
+ summaryPath: this._latestSummary.fullPath.path,
201
+ }
202
+ : undefined;
203
+ }
214
204
 
215
205
  const result = await this.summarizeInternalFn(
216
206
  fullTree,
@@ -3,7 +3,8 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ISnapshotTree, SummaryObject } from "@fluidframework/protocol-definitions";
6
+ import { SummaryObject } from "@fluidframework/driver-definitions";
7
+ import { ISnapshotTree } from "@fluidframework/driver-definitions/internal";
7
8
  import { channelsTreeName } from "@fluidframework/runtime-definitions/internal";
8
9
  import { ITelemetryLoggerExt, TelemetryDataTag } from "@fluidframework/telemetry-utils/internal";
9
10
 
@@ -76,15 +76,13 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
76
76
  private referenceUsedRoutes: string[] | undefined;
77
77
 
78
78
  // The base GC details of this node used to initialize the GC state.
79
- private readonly baseGCDetailsP: LazyPromise<IGarbageCollectionDetailsBase>;
79
+ private readonly baseGCDetailsP: Promise<IGarbageCollectionDetailsBase>;
80
80
 
81
81
  // Keeps track of whether we have loaded the base details to ensure that we only do it once.
82
82
  private baseGCDetailsLoaded: boolean = false;
83
83
 
84
84
  // The base GC details for the child nodes. This is passed to child nodes when creating them.
85
- private readonly childNodesBaseGCDetailsP: LazyPromise<
86
- Map<string, IGarbageCollectionDetailsBase>
87
- >;
85
+ private readonly childNodesBaseGCDetailsP: Promise<Map<string, IGarbageCollectionDetailsBase>>;
88
86
 
89
87
  private gcData: IGarbageCollectionData | undefined;
90
88
 
@@ -515,7 +513,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
515
513
  * was previously used and became unused (or vice versa), its used state has changed.
516
514
  */
517
515
  private hasUsedStateChanged(): boolean {
518
- // If GC is disabled, we are not tracking used state, return false.
516
+ // If GC is disabled, it should not affect summary state, return false.
519
517
  if (this.gcDisabled) {
520
518
  return false;
521
519
  }
@@ -10,11 +10,8 @@ import {
10
10
  ITelemetryBaseProperties,
11
11
  ITelemetryBaseLogger,
12
12
  } from "@fluidframework/core-interfaces";
13
- import {
14
- IDocumentMessage,
15
- ISequencedDocumentMessage,
16
- ISummaryTree,
17
- } from "@fluidframework/protocol-definitions";
13
+ import { ISequencedDocumentMessage, ISummaryTree } from "@fluidframework/driver-definitions";
14
+ import { IDocumentMessage } from "@fluidframework/driver-definitions/internal";
18
15
  import { ISummaryStats } from "@fluidframework/runtime-definitions/internal";
19
16
  import {
20
17
  ITelemetryLoggerExt,
@@ -214,8 +211,6 @@ export interface IGenerateSummaryTreeResult extends Omit<IBaseSummarizeResult, "
214
211
  readonly summaryStats: IGeneratedSummaryStats;
215
212
  /** Time it took to generate the summary tree and stats. */
216
213
  readonly generateDuration: number;
217
- /** True if the full tree regeneration with no handle reuse optimizations was forced. */
218
- readonly forcedFullTree: boolean;
219
214
  }
220
215
 
221
216
  /**
@@ -7,14 +7,14 @@ import { TypedEventEmitter } from "@fluid-internal/client-utils";
7
7
  import { IDeltaManager } from "@fluidframework/container-definitions/internal";
8
8
  import { IDisposable, IEvent } from "@fluidframework/core-interfaces";
9
9
  import { assert, Deferred } from "@fluidframework/core-utils/internal";
10
+ import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
10
11
  import {
11
12
  IDocumentMessage,
12
- ISequencedDocumentMessage,
13
13
  ISummaryAck,
14
14
  ISummaryContent,
15
15
  ISummaryNack,
16
16
  MessageType,
17
- } from "@fluidframework/protocol-definitions";
17
+ } from "@fluidframework/driver-definitions/internal";
18
18
  import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
19
19
 
20
20
  /**
@@ -4,16 +4,15 @@
4
4
  */
5
5
 
6
6
  import { assert } from "@fluidframework/core-utils/internal";
7
- import { IDocumentStorageService } from "@fluidframework/driver-definitions/internal";
7
+ import { ISequencedDocumentMessage, SummaryType } from "@fluidframework/driver-definitions";
8
+ import {
9
+ IDocumentStorageService,
10
+ ISnapshotTree,
11
+ } from "@fluidframework/driver-definitions/internal";
8
12
  import {
9
13
  blobHeadersBlobName as blobNameForBlobHeaders,
10
14
  readAndParse,
11
15
  } from "@fluidframework/driver-utils/internal";
12
- import {
13
- ISequencedDocumentMessage,
14
- ISnapshotTree,
15
- SummaryType,
16
- } from "@fluidframework/protocol-definitions";
17
16
  import {
18
17
  ISummaryTreeWithStats,
19
18
  channelsTreeName,
@@ -11,9 +11,8 @@ import {
11
11
  IPromiseTimerResult,
12
12
  Timer,
13
13
  } from "@fluidframework/core-utils/internal";
14
- import { DriverErrorTypes } from "@fluidframework/driver-definitions/internal";
14
+ import { DriverErrorTypes, MessageType } from "@fluidframework/driver-definitions/internal";
15
15
  import { getRetryDelaySecondsFromError } from "@fluidframework/driver-utils/internal";
16
- import { MessageType } from "@fluidframework/protocol-definitions";
17
16
  import {
18
17
  isFluidError,
19
18
  ITelemetryLoggerExt,
@@ -347,7 +346,7 @@ export class SummaryGenerator {
347
346
  * state change of multiple data stores. So, the total number of data stores that are summarized should not
348
347
  * exceed the number of ops since last summary + number of data store whose reference state changed.
349
348
  */
350
- if (!submitSummaryOptions.fullTree && !summaryData.forcedFullTree) {
349
+ if (!submitSummaryOptions.fullTree) {
351
350
  const { summarizedDataStoreCount, gcStateUpdatedDataStoreCount = 0 } =
352
351
  summaryData.summaryStats;
353
352
  if (