@fluidframework/container-runtime 2.1.0-274160 → 2.1.0-276326

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 (136) hide show
  1. package/README.md +9 -0
  2. package/container-runtime.test-files.tar +0 -0
  3. package/dist/blobManager.d.ts +1 -0
  4. package/dist/blobManager.d.ts.map +1 -1
  5. package/dist/blobManager.js.map +1 -1
  6. package/dist/channelCollection.d.ts +1 -0
  7. package/dist/channelCollection.d.ts.map +1 -1
  8. package/dist/channelCollection.js +23 -13
  9. package/dist/channelCollection.js.map +1 -1
  10. package/dist/containerRuntime.d.ts +19 -2
  11. package/dist/containerRuntime.d.ts.map +1 -1
  12. package/dist/containerRuntime.js +14 -2
  13. package/dist/containerRuntime.js.map +1 -1
  14. package/dist/gc/gcDefinitions.d.ts +9 -0
  15. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  16. package/dist/gc/gcDefinitions.js +1 -0
  17. package/dist/gc/gcDefinitions.js.map +1 -1
  18. package/dist/legacy.d.ts +1 -1
  19. package/dist/messageTypes.d.ts +1 -0
  20. package/dist/messageTypes.d.ts.map +1 -1
  21. package/dist/messageTypes.js +1 -0
  22. package/dist/messageTypes.js.map +1 -1
  23. package/dist/opLifecycle/batchManager.d.ts +4 -0
  24. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  25. package/dist/opLifecycle/batchManager.js.map +1 -1
  26. package/dist/opLifecycle/outbox.d.ts +8 -4
  27. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  28. package/dist/opLifecycle/outbox.js +18 -16
  29. package/dist/opLifecycle/outbox.js.map +1 -1
  30. package/dist/packageVersion.d.ts +1 -1
  31. package/dist/packageVersion.js +1 -1
  32. package/dist/packageVersion.js.map +1 -1
  33. package/dist/pendingStateManager.d.ts +8 -6
  34. package/dist/pendingStateManager.d.ts.map +1 -1
  35. package/dist/pendingStateManager.js +18 -14
  36. package/dist/pendingStateManager.js.map +1 -1
  37. package/dist/summary/documentSchema.d.ts +8 -0
  38. package/dist/summary/documentSchema.d.ts.map +1 -1
  39. package/dist/summary/documentSchema.js +2 -0
  40. package/dist/summary/documentSchema.js.map +1 -1
  41. package/dist/summary/orderedClientElection.d.ts +1 -0
  42. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  43. package/dist/summary/orderedClientElection.js.map +1 -1
  44. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -0
  45. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  46. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  47. package/dist/summary/summarizer.d.ts +1 -0
  48. package/dist/summary/summarizer.d.ts.map +1 -1
  49. package/dist/summary/summarizer.js +1 -0
  50. package/dist/summary/summarizer.js.map +1 -1
  51. package/dist/summary/summarizerTypes.d.ts +29 -0
  52. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  53. package/dist/summary/summarizerTypes.js.map +1 -1
  54. package/dist/summary/summaryCollection.d.ts +10 -0
  55. package/dist/summary/summaryCollection.d.ts.map +1 -1
  56. package/dist/summary/summaryCollection.js +1 -0
  57. package/dist/summary/summaryCollection.js.map +1 -1
  58. package/dist/summary/summaryFormat.d.ts +8 -0
  59. package/dist/summary/summaryFormat.d.ts.map +1 -1
  60. package/dist/summary/summaryFormat.js.map +1 -1
  61. package/lib/blobManager.d.ts +1 -0
  62. package/lib/blobManager.d.ts.map +1 -1
  63. package/lib/blobManager.js.map +1 -1
  64. package/lib/channelCollection.d.ts +1 -0
  65. package/lib/channelCollection.d.ts.map +1 -1
  66. package/lib/channelCollection.js +23 -13
  67. package/lib/channelCollection.js.map +1 -1
  68. package/lib/containerRuntime.d.ts +19 -2
  69. package/lib/containerRuntime.d.ts.map +1 -1
  70. package/lib/containerRuntime.js +14 -2
  71. package/lib/containerRuntime.js.map +1 -1
  72. package/lib/gc/gcDefinitions.d.ts +9 -0
  73. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  74. package/lib/gc/gcDefinitions.js +1 -0
  75. package/lib/gc/gcDefinitions.js.map +1 -1
  76. package/lib/legacy.d.ts +1 -1
  77. package/lib/messageTypes.d.ts +1 -0
  78. package/lib/messageTypes.d.ts.map +1 -1
  79. package/lib/messageTypes.js +1 -0
  80. package/lib/messageTypes.js.map +1 -1
  81. package/lib/opLifecycle/batchManager.d.ts +4 -0
  82. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  83. package/lib/opLifecycle/batchManager.js.map +1 -1
  84. package/lib/opLifecycle/outbox.d.ts +8 -4
  85. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  86. package/lib/opLifecycle/outbox.js +18 -16
  87. package/lib/opLifecycle/outbox.js.map +1 -1
  88. package/lib/packageVersion.d.ts +1 -1
  89. package/lib/packageVersion.js +1 -1
  90. package/lib/packageVersion.js.map +1 -1
  91. package/lib/pendingStateManager.d.ts +8 -6
  92. package/lib/pendingStateManager.d.ts.map +1 -1
  93. package/lib/pendingStateManager.js +18 -14
  94. package/lib/pendingStateManager.js.map +1 -1
  95. package/lib/summary/documentSchema.d.ts +8 -0
  96. package/lib/summary/documentSchema.d.ts.map +1 -1
  97. package/lib/summary/documentSchema.js +2 -0
  98. package/lib/summary/documentSchema.js.map +1 -1
  99. package/lib/summary/orderedClientElection.d.ts +1 -0
  100. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  101. package/lib/summary/orderedClientElection.js.map +1 -1
  102. package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -0
  103. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  104. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  105. package/lib/summary/summarizer.d.ts +1 -0
  106. package/lib/summary/summarizer.d.ts.map +1 -1
  107. package/lib/summary/summarizer.js +1 -0
  108. package/lib/summary/summarizer.js.map +1 -1
  109. package/lib/summary/summarizerTypes.d.ts +29 -0
  110. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  111. package/lib/summary/summarizerTypes.js.map +1 -1
  112. package/lib/summary/summaryCollection.d.ts +10 -0
  113. package/lib/summary/summaryCollection.d.ts.map +1 -1
  114. package/lib/summary/summaryCollection.js +1 -0
  115. package/lib/summary/summaryCollection.js.map +1 -1
  116. package/lib/summary/summaryFormat.d.ts +8 -0
  117. package/lib/summary/summaryFormat.d.ts.map +1 -1
  118. package/lib/summary/summaryFormat.js.map +1 -1
  119. package/package.json +19 -19
  120. package/src/blobManager.ts +1 -0
  121. package/src/channelCollection.ts +23 -13
  122. package/src/containerRuntime.ts +23 -2
  123. package/src/gc/gcDefinitions.ts +9 -0
  124. package/src/messageTypes.ts +1 -0
  125. package/src/opLifecycle/batchManager.ts +4 -0
  126. package/src/opLifecycle/outbox.ts +19 -21
  127. package/src/packageVersion.ts +1 -1
  128. package/src/pendingStateManager.ts +25 -20
  129. package/src/summary/documentSchema.ts +8 -0
  130. package/src/summary/orderedClientElection.ts +1 -0
  131. package/src/summary/runWhileConnectedCoordinator.ts +1 -0
  132. package/src/summary/summarizer.ts +1 -0
  133. package/src/summary/summarizerTypes.ts +29 -0
  134. package/src/summary/summaryCollection.ts +10 -0
  135. package/src/summary/summaryFormat.ts +8 -0
  136. /package/api-report/{container-runtime.alpha.api.md → container-runtime.legacy.alpha.api.md} +0 -0
@@ -41,7 +41,7 @@ export interface IOutboxParameters {
41
41
  readonly submitBatchFn:
42
42
  | ((batch: IBatchMessage[], referenceSequenceNumber?: number) => number)
43
43
  | undefined;
44
- readonly legacySendBatchFn: (batch: IBatch) => void;
44
+ readonly legacySendBatchFn: (batch: IBatch) => number;
45
45
  readonly config: IOutboxConfig;
46
46
  readonly compressor: OpCompressor;
47
47
  readonly splitter: OpSplitter;
@@ -126,10 +126,14 @@ export class Outbox {
126
126
  }
127
127
 
128
128
  /**
129
- * If we detect that the reference sequence number of the incoming message does not match
130
- * what was already in the batch managers, this means that batching has been interrupted so
129
+ * Detect whether batching has been interrupted by an incoming message being processed. In this case,
131
130
  * we will flush the accumulated messages to account for that and create a new batch with the new
132
131
  * message as the first message.
132
+ *
133
+ * @remarks - To detect batch interruption, we compare both the reference sequence number
134
+ * (i.e. last message processed by DeltaManager) and the client sequence number of the
135
+ * last message processed by the ContainerRuntime. In the absence of op reentrancy, this
136
+ * pair will remain stable during a single JS turn during which the batch is being built up.
133
137
  */
134
138
  private maybeFlushPartialBatch() {
135
139
  const mainBatchSeqNums = this.mainBatch.sequenceNumbers;
@@ -254,6 +258,7 @@ export class Outbox {
254
258
  return;
255
259
  }
256
260
 
261
+ let clientSequenceNumber: number | undefined;
257
262
  // Did we disconnect? (i.e. is shouldSend false?)
258
263
  // If so, do nothing, as pending state manager will resubmit it correctly on reconnect.
259
264
  // Because flush() is a task that executes async (on clean stack), we can get here in disconnected state.
@@ -261,10 +266,10 @@ export class Outbox {
261
266
  const processedBatch = this.compressBatch(
262
267
  shouldGroup ? this.params.groupingManager.groupBatch(rawBatch) : rawBatch,
263
268
  );
264
- this.sendBatch(processedBatch);
269
+ clientSequenceNumber = this.sendBatch(processedBatch);
265
270
  }
266
271
 
267
- this.persistBatch(rawBatch.content);
272
+ this.params.pendingStateManager.onFlushBatch(rawBatch.content, clientSequenceNumber);
268
273
  }
269
274
 
270
275
  /**
@@ -355,11 +360,12 @@ export class Outbox {
355
360
  * Sends the batch object to the container context to be sent over the wire.
356
361
  *
357
362
  * @param batch - batch to be sent
363
+ * @returns the clientSequenceNumber of the start of the batch, or undefined if nothing was sent
358
364
  */
359
365
  private sendBatch(batch: IBatch) {
360
366
  const length = batch.content.length;
361
367
  if (length === 0) {
362
- return;
368
+ return undefined; // Nothing submitted
363
369
  }
364
370
 
365
371
  const socketSize = estimateSocketSize(batch);
@@ -372,6 +378,7 @@ export class Outbox {
372
378
  });
373
379
  }
374
380
 
381
+ let clientSequenceNumber: number;
375
382
  if (this.params.submitBatchFn === undefined) {
376
383
  // Legacy path - supporting old loader versions. Can be removed only when LTS moves above
377
384
  // version that has support for batches (submitBatchFn)
@@ -380,10 +387,10 @@ export class Outbox {
380
387
  0x5a6 /* Compression should not have happened if the loader does not support it */,
381
388
  );
382
389
 
383
- this.params.legacySendBatchFn(batch);
390
+ clientSequenceNumber = this.params.legacySendBatchFn(batch);
384
391
  } else {
385
392
  assert(batch.referenceSequenceNumber !== undefined, 0x58e /* Batch must not be empty */);
386
- this.params.submitBatchFn(
393
+ clientSequenceNumber = this.params.submitBatchFn(
387
394
  batch.content.map((message) => ({
388
395
  contents: message.contents,
389
396
  metadata: message.metadata,
@@ -393,20 +400,11 @@ export class Outbox {
393
400
  batch.referenceSequenceNumber,
394
401
  );
395
402
  }
396
- }
397
403
 
398
- private persistBatch(batch: BatchMessage[]) {
399
- // Let the PendingStateManager know that a message was submitted.
400
- // In future, need to shift toward keeping batch as a whole!
401
- for (const message of batch) {
402
- this.params.pendingStateManager.onSubmitMessage(
403
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
404
- message.contents!,
405
- message.referenceSequenceNumber,
406
- message.localOpMetadata,
407
- message.metadata,
408
- );
409
- }
404
+ // Convert from clientSequenceNumber of last message in the batch to clientSequenceNumber of first message.
405
+ clientSequenceNumber -= length - 1;
406
+ assert(clientSequenceNumber >= 0, 0x3d0 /* clientSequenceNumber can't be negative */);
407
+ return clientSequenceNumber;
410
408
  }
411
409
 
412
410
  public checkpoint() {
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/container-runtime";
9
- export const pkgVersion = "2.1.0-274160";
9
+ export const pkgVersion = "2.1.0-276326";
@@ -16,6 +16,7 @@ import Deque from "double-ended-queue";
16
16
 
17
17
  import { InboundSequencedContainerRuntimeMessage } from "./messageTypes.js";
18
18
  import { IBatchMetadata } from "./metadata.js";
19
+ import type { BatchMessage } from "./opLifecycle/index.js";
19
20
  import { pkgVersion } from "./packageVersion.js";
20
21
 
21
22
  /**
@@ -29,6 +30,7 @@ export interface IPendingMessage {
29
30
  localOpMetadata: unknown;
30
31
  opMetadata: Record<string, unknown> | undefined;
31
32
  sequenceNumber?: number;
33
+ batchStartCsn?: number;
32
34
  }
33
35
 
34
36
  export interface IPendingLocalState {
@@ -187,27 +189,30 @@ export class PendingStateManager implements IDisposable {
187
189
  public readonly dispose = () => this.disposeOnce.value;
188
190
 
189
191
  /**
190
- * Called when a message is submitted locally. Adds the message and the associated details to the pending state
191
- * queue.
192
- * @param type - The container message type.
193
- * @param content - The message content.
194
- * @param localOpMetadata - The local metadata associated with the message.
192
+ * The given batch has been flushed, and needs to be tracked locally until the corresponding
193
+ * acks are processed, to ensure it is successfully sent.
194
+ * @param batch - The batch that was flushed
195
+ * @param clientSequenceNumber - The CSN of the first message in the batch,
196
+ * or undefined if the batch was not yet sent (e.g. by the time we flushed we lost the connection)
195
197
  */
196
- public onSubmitMessage(
197
- content: string,
198
- referenceSequenceNumber: number,
199
- localOpMetadata: unknown,
200
- opMetadata: Record<string, unknown> | undefined,
201
- ) {
202
- const pendingMessage: IPendingMessage = {
203
- type: "message",
204
- referenceSequenceNumber,
205
- content,
206
- localOpMetadata,
207
- opMetadata,
208
- };
209
-
210
- this.pendingMessages.push(pendingMessage);
198
+ public onFlushBatch(batch: BatchMessage[], clientSequenceNumber: number | undefined) {
199
+ for (const message of batch) {
200
+ const {
201
+ contents: content = "",
202
+ referenceSequenceNumber,
203
+ localOpMetadata,
204
+ metadata: opMetadata,
205
+ } = message;
206
+ const pendingMessage: IPendingMessage = {
207
+ type: "message",
208
+ referenceSequenceNumber,
209
+ content,
210
+ localOpMetadata,
211
+ opMetadata,
212
+ batchStartCsn: clientSequenceNumber,
213
+ };
214
+ this.pendingMessages.push(pendingMessage);
215
+ }
211
216
  }
212
217
 
213
218
  /**
@@ -13,6 +13,7 @@ import { pkgVersion } from "../packageVersion.js";
13
13
  * Please note that for all property types we should use undefined to indicate that particular capability is off.
14
14
  * Using false, or some string value (like "off") will result in clients who do not understand that property failing, whereas
15
15
  * we want them to continue to collaborate alongside clients who support that capability, but such capability is shipping dark for now.
16
+ * @legacy
16
17
  * @alpha
17
18
  */
18
19
  export type DocumentSchemaValueType = string | string[] | true | number | undefined;
@@ -27,6 +28,7 @@ export type DocumentSchemaValueType = string | string[] | true | number | undefi
27
28
  * undefined - ID compressor is not loaded.
28
29
  * While IContainerRuntime.generateDocumentUniqueId() is available, it will produce long IDs that are do not compress well.
29
30
  *
31
+ * @legacy
30
32
  * @alpha
31
33
  */
32
34
  export type IdCompressorMode = "on" | "delayed" | undefined;
@@ -55,6 +57,7 @@ export type IdCompressorMode = "on" | "delayed" | undefined;
55
57
  *
56
58
  * For now we are limiting it to just plain properties, and only really simple types, but that can be changed in the future.
57
59
  *
60
+ * @legacy
58
61
  * @alpha
59
62
  */
60
63
  export interface IDocumentSchema {
@@ -75,6 +78,7 @@ export interface IDocumentSchema {
75
78
  * ContainerMessageType.DocumentSchemaChange messages use CAS (Compare-and-swap) semantics, and convey
76
79
  * regSeq of last known schema change (known to a client proposing schema change).
77
80
  * @see ContainerRuntimeDocumentSchemaMessage
81
+ * @legacy
78
82
  * @alpha
79
83
  */
80
84
  export type IDocumentSchemaChangeMessage = IDocumentSchema;
@@ -85,6 +89,7 @@ export type IDocumentSchemaChangeMessage = IDocumentSchema;
85
89
  * WARNING: This type is used to infer IDocumentSchemaCurrent type!
86
90
  * Any changes here (including renaming of properties) are potentially changing document format and should be considered carefully!
87
91
  *
92
+ * @legacy
88
93
  * @alpha
89
94
  */
90
95
  export interface IDocumentSchemaFeatures {
@@ -114,12 +119,14 @@ export interface IDocumentSchemaFeatures {
114
119
  * This must be bumped whenever the format of document schema or protocol for changing the current document schema changes.
115
120
  * Ex: adding a new configuration property (under IDocumentSchema.runtime) does not require changing this version.
116
121
  * Ex: Changing the 'document schema acceptance' mechanism from convert-and-swap to one requiring consensus does require changing this version.
122
+ * @legacy
117
123
  * @alpha
118
124
  */
119
125
  export const currentDocumentVersionSchema = 1;
120
126
 
121
127
  /**
122
128
  * Current document schema.
129
+ * @legacy
123
130
  * @alpha
124
131
  */
125
132
  // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
@@ -420,6 +427,7 @@ function arrayToProp(arr: string[]) {
420
427
  * Clients can retry, but current implementation is simply - they will not (and will rely on next session / reload to do
421
428
  * recalc and decide if schema needs to be changed or not).
422
429
  *
430
+ * @legacy
423
431
  * @alpha
424
432
  */
425
433
  export class DocumentsSchemaController {
@@ -231,6 +231,7 @@ export interface IOrderedClientElectionEvents extends IEvent {
231
231
 
232
232
  /**
233
233
  * Serialized state of IOrderedClientElection.
234
+ * @legacy
234
235
  * @alpha
235
236
  */
236
237
  export interface ISerializedElection {
@@ -13,6 +13,7 @@ import {
13
13
 
14
14
  /**
15
15
  * Similar to AbortController, but using promise instead of events
16
+ * @legacy
16
17
  * @alpha
17
18
  */
18
19
  export interface ICancellableSummarizerController extends ISummaryCancellationToken {
@@ -67,6 +67,7 @@ export const createSummarizingWarning = (errorMessage: string, logged: boolean)
67
67
  * Summarizer is responsible for coordinating when to generate and send summaries.
68
68
  * It is the main entry point for summary work.
69
69
  * It is created only by summarizing container (i.e. one with clientType === "summarizer")
70
+ * @legacy
70
71
  * @alpha
71
72
  */
72
73
  export class Summarizer extends TypedEventEmitter<ISummarizerEvents> implements ISummarizer {
@@ -36,6 +36,7 @@ import { SummarizeReason } from "./summaryGenerator.js";
36
36
  /**
37
37
  * Similar to AbortSignal, but using promise instead of events
38
38
  * @param T - cancellation reason type
39
+ * @legacy
39
40
  * @alpha
40
41
  */
41
42
  export interface ICancellationToken<T> {
@@ -50,12 +51,14 @@ export interface ICancellationToken<T> {
50
51
 
51
52
  /**
52
53
  * Similar to AbortSignal, but using promise instead of events
54
+ * @legacy
53
55
  * @alpha
54
56
  */
55
57
  export type ISummaryCancellationToken = ICancellationToken<SummarizerStopReason>;
56
58
 
57
59
  /**
58
60
  * Data required to update internal tracking state after receiving a Summary Ack.
61
+ * @legacy
59
62
  * @alpha
60
63
  */
61
64
  export interface IRefreshSummaryAckOptions {
@@ -70,6 +73,7 @@ export interface IRefreshSummaryAckOptions {
70
73
  }
71
74
 
72
75
  /**
76
+ * @legacy
73
77
  * @alpha
74
78
  */
75
79
  export interface ISummarizerInternalsProvider {
@@ -89,6 +93,7 @@ export interface ISummarizingWarning extends ContainerWarning {
89
93
  }
90
94
 
91
95
  /**
96
+ * @legacy
92
97
  * @alpha
93
98
  */
94
99
  export interface IConnectableRuntime {
@@ -99,6 +104,7 @@ export interface IConnectableRuntime {
99
104
  }
100
105
 
101
106
  /**
107
+ * @legacy
102
108
  * @alpha
103
109
  */
104
110
  export interface ISummarizerRuntime extends IConnectableRuntime {
@@ -120,6 +126,7 @@ export interface ISummarizerRuntime extends IConnectableRuntime {
120
126
 
121
127
  /**
122
128
  * Options affecting summarize behavior.
129
+ * @legacy
123
130
  * @alpha
124
131
  */
125
132
  export interface ISummarizeOptions {
@@ -128,6 +135,7 @@ export interface ISummarizeOptions {
128
135
  }
129
136
 
130
137
  /**
138
+ * @legacy
131
139
  * @alpha
132
140
  */
133
141
  export interface ISubmitSummaryOptions extends ISummarizeOptions {
@@ -142,6 +150,7 @@ export interface ISubmitSummaryOptions extends ISummarizeOptions {
142
150
  }
143
151
 
144
152
  /**
153
+ * @legacy
145
154
  * @alpha
146
155
  */
147
156
  export interface IOnDemandSummarizeOptions extends ISummarizeOptions {
@@ -153,6 +162,7 @@ export interface IOnDemandSummarizeOptions extends ISummarizeOptions {
153
162
 
154
163
  /**
155
164
  * Options to use when enqueueing a summarize attempt.
165
+ * @legacy
156
166
  * @alpha
157
167
  */
158
168
  export interface IEnqueueSummarizeOptions extends IOnDemandSummarizeOptions {
@@ -171,6 +181,7 @@ export interface IEnqueueSummarizeOptions extends IOnDemandSummarizeOptions {
171
181
  /**
172
182
  * In addition to the normal summary tree + stats, this contains additional stats
173
183
  * only relevant at the root of the tree.
184
+ * @legacy
174
185
  * @alpha
175
186
  */
176
187
  export interface IGeneratedSummaryStats extends ISummaryStats {
@@ -190,6 +201,7 @@ export interface IGeneratedSummaryStats extends ISummaryStats {
190
201
 
191
202
  /**
192
203
  * Type for summarization failures that are retriable.
204
+ * @legacy
193
205
  * @alpha
194
206
  */
195
207
  export interface IRetriableFailureError extends Error {
@@ -198,6 +210,7 @@ export interface IRetriableFailureError extends Error {
198
210
 
199
211
  /**
200
212
  * Base results for all submitSummary attempts.
213
+ * @legacy
201
214
  * @alpha
202
215
  */
203
216
  export interface IBaseSummarizeResult {
@@ -211,6 +224,7 @@ export interface IBaseSummarizeResult {
211
224
 
212
225
  /**
213
226
  * Results of submitSummary after generating the summary tree.
227
+ * @legacy
214
228
  * @alpha
215
229
  */
216
230
  export interface IGenerateSummaryTreeResult extends Omit<IBaseSummarizeResult, "stage"> {
@@ -225,6 +239,7 @@ export interface IGenerateSummaryTreeResult extends Omit<IBaseSummarizeResult, "
225
239
 
226
240
  /**
227
241
  * Results of submitSummary after uploading the tree to storage.
242
+ * @legacy
228
243
  * @alpha
229
244
  */
230
245
  export interface IUploadSummaryResult extends Omit<IGenerateSummaryTreeResult, "stage"> {
@@ -237,6 +252,7 @@ export interface IUploadSummaryResult extends Omit<IGenerateSummaryTreeResult, "
237
252
 
238
253
  /**
239
254
  * Results of submitSummary after submitting the summarize op.
255
+ * @legacy
240
256
  * @alpha
241
257
  */
242
258
  export interface ISubmitSummaryOpResult extends Omit<IUploadSummaryResult, "stage" | "error"> {
@@ -262,6 +278,7 @@ export interface ISubmitSummaryOpResult extends Omit<IUploadSummaryResult, "stag
262
278
  * 3. "upload" - the summary was uploaded to storage, and the result contains the server-provided handle
263
279
  *
264
280
  * 4. "submit" - the summarize op was submitted, and the result contains the op client sequence number.
281
+ * @legacy
265
282
  * @alpha
266
283
  */
267
284
  export type SubmitSummaryResult =
@@ -272,12 +289,14 @@ export type SubmitSummaryResult =
272
289
 
273
290
  /**
274
291
  * The stages of Summarize, used to describe how far progress succeeded in case of a failure at a later stage.
292
+ * @legacy
275
293
  * @alpha
276
294
  */
277
295
  export type SummaryStage = SubmitSummaryResult["stage"] | "unknown";
278
296
 
279
297
  /**
280
298
  * The data in summarizer result when submit summary stage fails.
299
+ * @legacy
281
300
  * @alpha
282
301
  */
283
302
  export interface SubmitSummaryFailureData {
@@ -285,6 +304,7 @@ export interface SubmitSummaryFailureData {
285
304
  }
286
305
 
287
306
  /**
307
+ * @legacy
288
308
  * @alpha
289
309
  */
290
310
  export interface IBroadcastSummaryResult {
@@ -293,6 +313,7 @@ export interface IBroadcastSummaryResult {
293
313
  }
294
314
 
295
315
  /**
316
+ * @legacy
296
317
  * @alpha
297
318
  */
298
319
  export interface IAckSummaryResult {
@@ -301,6 +322,7 @@ export interface IAckSummaryResult {
301
322
  }
302
323
 
303
324
  /**
325
+ * @legacy
304
326
  * @alpha
305
327
  */
306
328
  export interface INackSummaryResult {
@@ -309,6 +331,7 @@ export interface INackSummaryResult {
309
331
  }
310
332
 
311
333
  /**
334
+ * @legacy
312
335
  * @alpha
313
336
  */
314
337
  export type SummarizeResultPart<TSuccess, TFailure = undefined> =
@@ -324,6 +347,7 @@ export type SummarizeResultPart<TSuccess, TFailure = undefined> =
324
347
  };
325
348
 
326
349
  /**
350
+ * @legacy
327
351
  * @alpha
328
352
  */
329
353
  export interface ISummarizeResults {
@@ -340,6 +364,7 @@ export interface ISummarizeResults {
340
364
  }
341
365
 
342
366
  /**
367
+ * @legacy
343
368
  * @alpha
344
369
  */
345
370
  export type EnqueueSummarizeResult =
@@ -370,6 +395,7 @@ export type EnqueueSummarizeResult =
370
395
  };
371
396
 
372
397
  /**
398
+ * @legacy
373
399
  * @alpha
374
400
  */
375
401
  export type SummarizerStopReason =
@@ -399,6 +425,7 @@ export type SummarizerStopReason =
399
425
  | "latestSummaryStateStale";
400
426
 
401
427
  /**
428
+ * @legacy
402
429
  * @alpha
403
430
  */
404
431
  export interface ISummarizeEventProps {
@@ -409,6 +436,7 @@ export interface ISummarizeEventProps {
409
436
  }
410
437
 
411
438
  /**
439
+ * @legacy
412
440
  * @alpha
413
441
  */
414
442
  export interface ISummarizerEvents extends IEvent {
@@ -416,6 +444,7 @@ export interface ISummarizerEvents extends IEvent {
416
444
  }
417
445
 
418
446
  /**
447
+ * @legacy
419
448
  * @alpha
420
449
  */
421
450
  export interface ISummarizer extends IEventProvider<ISummarizerEvents> {
@@ -19,6 +19,7 @@ import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
19
19
 
20
20
  /**
21
21
  * Interface for summary op messages with typed contents.
22
+ * @legacy
22
23
  * @alpha
23
24
  */
24
25
  export interface ISummaryOpMessage extends ISequencedDocumentMessage {
@@ -28,6 +29,7 @@ export interface ISummaryOpMessage extends ISequencedDocumentMessage {
28
29
 
29
30
  /**
30
31
  * Interface for summary ack messages with typed contents.
32
+ * @legacy
31
33
  * @alpha
32
34
  */
33
35
  export interface ISummaryAckMessage extends ISequencedDocumentMessage {
@@ -37,6 +39,7 @@ export interface ISummaryAckMessage extends ISequencedDocumentMessage {
37
39
 
38
40
  /**
39
41
  * Interface for summary nack messages with typed contents.
42
+ * @legacy
40
43
  * @alpha
41
44
  */
42
45
  export interface ISummaryNackMessage extends ISequencedDocumentMessage {
@@ -47,6 +50,7 @@ export interface ISummaryNackMessage extends ISequencedDocumentMessage {
47
50
  /**
48
51
  * A single summary which can be tracked as it goes through its life cycle.
49
52
  * The life cycle is: Local to Broadcast to Acked/Nacked.
53
+ * @legacy
50
54
  * @alpha
51
55
  */
52
56
  export interface ISummary {
@@ -58,6 +62,7 @@ export interface ISummary {
58
62
 
59
63
  /**
60
64
  * A single summary which has already been acked by the server.
65
+ * @legacy
61
66
  * @alpha
62
67
  */
63
68
  export interface IAckedSummary {
@@ -145,6 +150,7 @@ class Summary implements ISummary {
145
150
 
146
151
  /**
147
152
  * Watches summaries created by a specific client.
153
+ * @legacy
148
154
  * @alpha
149
155
  */
150
156
  export interface IClientSummaryWatcher extends IDisposable {
@@ -214,6 +220,7 @@ class ClientSummaryWatcher implements IClientSummaryWatcher {
214
220
  }
215
221
  }
216
222
  /**
223
+ * @legacy
217
224
  * @alpha
218
225
  */
219
226
  export type OpActionEventName =
@@ -223,11 +230,13 @@ export type OpActionEventName =
223
230
  | "default";
224
231
 
225
232
  /**
233
+ * @legacy
226
234
  * @alpha
227
235
  */
228
236
  export type OpActionEventListener = (op: ISequencedDocumentMessage) => void;
229
237
 
230
238
  /**
239
+ * @legacy
231
240
  * @alpha
232
241
  */
233
242
  export interface ISummaryCollectionOpEvents extends IEvent {
@@ -238,6 +247,7 @@ export interface ISummaryCollectionOpEvents extends IEvent {
238
247
  * Data structure that looks at the op stream to track summaries as they
239
248
  * are broadcast, acked and nacked.
240
249
  * It provides functionality for watching specific summaries.
250
+ * @legacy
241
251
  * @alpha
242
252
  */
243
253
  export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEvents> {
@@ -26,6 +26,7 @@ import { IDocumentSchema } from "./documentSchema.js";
26
26
 
27
27
  /**
28
28
  * @deprecated - This interface will no longer be exported in the future(AB#8004).
29
+ * @legacy
29
30
  * @alpha
30
31
  */
31
32
  export type OmitAttributesVersions<T> = Omit<
@@ -35,6 +36,7 @@ export type OmitAttributesVersions<T> = Omit<
35
36
 
36
37
  /**
37
38
  * @deprecated - This interface will no longer be exported in the future(AB#8004).
39
+ * @legacy
38
40
  * @alpha
39
41
  */
40
42
  export interface IFluidDataStoreAttributes0 {
@@ -51,6 +53,7 @@ export interface IFluidDataStoreAttributes0 {
51
53
 
52
54
  /**
53
55
  * @deprecated - This interface will no longer be exported in the future(AB#8004).
56
+ * @legacy
54
57
  * @alpha
55
58
  */
56
59
  export interface IFluidDataStoreAttributes1
@@ -61,6 +64,7 @@ export interface IFluidDataStoreAttributes1
61
64
 
62
65
  /**
63
66
  * @deprecated - This interface will no longer be exported in the future(AB#8004).
67
+ * @legacy
64
68
  * @alpha
65
69
  */
66
70
  export interface IFluidDataStoreAttributes2
@@ -83,6 +87,7 @@ export interface IFluidDataStoreAttributes2
83
87
  *
84
88
  * @deprecated - This interface will no longer be exported in the future(AB#8004).
85
89
  *
90
+ * @legacy
86
91
  * @alpha
87
92
  *
88
93
  */
@@ -120,6 +125,7 @@ export function hasIsolatedChannels(attributes: ReadFluidDataStoreAttributes): b
120
125
  }
121
126
 
122
127
  /**
128
+ * @legacy
123
129
  * @alpha
124
130
  */
125
131
  export interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGCMetadata {
@@ -139,6 +145,7 @@ export interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGC
139
145
  }
140
146
 
141
147
  /**
148
+ * @legacy
142
149
  * @alpha
143
150
  */
144
151
  export interface ICreateContainerMetadata {
@@ -150,6 +157,7 @@ export interface ICreateContainerMetadata {
150
157
 
151
158
  /**
152
159
  * The properties of an ISequencedDocumentMessage to be stored in the metadata blob in summary.
160
+ * @legacy
153
161
  * @alpha
154
162
  */
155
163
  export type ISummaryMetadataMessage = Pick<