@fluidframework/container-definitions 2.0.0-internal.2.1.2 → 2.0.0-internal.2.2.1

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.
package/src/deltas.ts CHANGED
@@ -16,7 +16,7 @@ import {
16
16
  } from "@fluidframework/protocol-definitions";
17
17
 
18
18
  /**
19
- * Contract representing the result of a newly established connection to the server for syncing deltas
19
+ * Contract representing the result of a newly established connection to the server for syncing deltas.
20
20
  */
21
21
  export interface IConnectionDetails {
22
22
  clientId: string;
@@ -26,9 +26,13 @@ export interface IConnectionDetails {
26
26
  version: string;
27
27
  initialClients: ISignalClient[];
28
28
  serviceConfiguration: IClientConfiguration;
29
+
29
30
  /**
30
- * Last known sequence number to ordering service at the time of connection
31
- * It may lap actual last sequence number (quite a bit, if container is very active).
31
+ * Last known sequence number to ordering service at the time of connection.
32
+ *
33
+ * @remarks
34
+ *
35
+ * It may lap actual last sequence number (quite a bit, if container is very active).
32
36
  * But it's the best information for client to figure out how far it is behind, at least
33
37
  * for "read" connections. "write" connections may use own "join" op to similar information,
34
38
  * that is likely to be more up-to-date.
@@ -61,21 +65,88 @@ export interface IDeltaSender {
61
65
  flush(): void;
62
66
  }
63
67
 
64
- /** Events emitted by the Delta Manager */
68
+ /**
69
+ * Events emitted by {@link IDeltaManager}.
70
+ */
71
+ /* eslint-disable @typescript-eslint/unified-signatures */
65
72
  export interface IDeltaManagerEvents extends IEvent {
73
+ /**
74
+ * @deprecated No replacement API recommended.
75
+ */
66
76
  (event: "prepareSend", listener: (messageBuffer: any[]) => void);
77
+
78
+ /**
79
+ * @deprecated No replacement API recommended.
80
+ */
67
81
  (event: "submitOp", listener: (message: IDocumentMessage) => void);
82
+
83
+ /**
84
+ * Emitted immediately after processing an incoming operation (op).
85
+ *
86
+ * @remarks
87
+ *
88
+ * Note: this event is not intended for general use.
89
+ * Prefer to listen to events on the appropriate ultimate recipients of the ops, rather than listening to the
90
+ * ops directly on the {@link IDeltaManager}.
91
+ *
92
+ * Listener parameters:
93
+ *
94
+ * - `message`: The op that was processed.
95
+ *
96
+ * - `processingTime`: The amount of time it took to process the inbound operation (op), expressed in milliseconds.
97
+ */
68
98
  (event: "op", listener: (message: ISequencedDocumentMessage, processingTime: number) => void);
99
+
100
+ /**
101
+ * @deprecated No replacement API recommended.
102
+ */
69
103
  (event: "allSentOpsAckd", listener: () => void);
70
- (event: "pong" | "processTime", listener: (latency: number) => void);
104
+
105
+ /**
106
+ * @deprecated No replacement API recommended.
107
+ */
108
+ (event: "pong", listener: (latency: number) => void);
109
+
71
110
  /**
72
- * The connect event fires once we've received the connect_document_success message from the
73
- * server. This happens prior to the client's join message (if there is a join message).
111
+ * @deprecated No replacement API recommended.
112
+ */
113
+ (event: "processTime", listener: (latency: number) => void);
114
+
115
+ /**
116
+ * Emitted when the {@link IDeltaManager} completes connecting to the Fluid service.
117
+ *
118
+ * @remarks
119
+ * This occurs once we've received the connect_document_success message from the server,
120
+ * and happens prior to the client's join message (if there is a join message).
121
+ *
122
+ * Listener parameters:
123
+ *
124
+ * - `details`: Connection metadata.
125
+ *
126
+ * - `opsBehind`: An estimate of far behind the client is relative to the service in terms of ops.
127
+ * Will not be specified if an estimate cannot be determined.
74
128
  */
75
129
  (event: "connect", listener: (details: IConnectionDetails, opsBehind?: number) => void);
130
+
131
+ /**
132
+ * Emitted when the {@link IDeltaManager} becomes disconnected from the Fluid service.
133
+ *
134
+ * @remarks Listener parameters:
135
+ *
136
+ * - `reason`: Describes the reason for which the delta manager was disconnected.
137
+ */
76
138
  (event: "disconnect", listener: (reason: string) => void);
139
+
140
+ /**
141
+ * Emitted when read/write permissions change.
142
+ *
143
+ * @remarks Listener parameters:
144
+ *
145
+ * - `readonly`: Whether or not the delta manager is now read-only.
146
+ */
77
147
  (event: "readonly", listener: (readonly: boolean) => void);
78
148
  }
149
+ /* eslint-enable @typescript-eslint/unified-signatures */
79
150
 
80
151
  /**
81
152
  * Manages the transmission of ops between the runtime and storage.
@@ -132,15 +203,49 @@ export interface IDeltaManager<T, U> extends IEventProvider<IDeltaManagerEvents>
132
203
  submitSignal(content: any): void;
133
204
  }
134
205
 
135
- /** Events emitted by a Delta Queue */
206
+ /**
207
+ * Events emitted by {@link IDeltaQueue}.
208
+ */
209
+ /* eslint-disable @typescript-eslint/unified-signatures */
136
210
  export interface IDeltaQueueEvents<T> extends IErrorEvent {
137
- (event: "push" | "op", listener: (task: T) => void);
138
211
  /**
139
- * @param count - number of events (T) processed before becoming idle
140
- * @param duration - amount of time it took to process elements (milliseconds).
212
+ * Emitted when a task is enqueued.
213
+ *
214
+ * @remarks Listener parameters:
215
+ *
216
+ * - `task`: The task being enqueued.
217
+ */
218
+ (event: "push", listener: (task: T) => void);
219
+
220
+ /**
221
+ * Emitted immediately after processing an enqueued task and removing it from the queue.
222
+ *
223
+ * @remarks
224
+ *
225
+ * Note: this event is not intended for general use.
226
+ * Prefer to listen to events on the appropriate ultimate recipients of the ops, rather than listening to the
227
+ * ops directly on the {@link IDeltaQueue}.
228
+ *
229
+ * Listener parameters:
230
+ *
231
+ * - `task`: The task that was processed.
232
+ */
233
+ (event: "op", listener: (task: T) => void);
234
+
235
+ /**
236
+ * Emitted when the queue of tasks to process is emptied.
237
+ *
238
+ * @remarks Listener parameters:
239
+ *
240
+ * - `count`: The number of events (`T`) processed before becoming idle.
241
+ *
242
+ * - `duration`: The amount of time it took to process elements (in milliseconds).
243
+ *
244
+ * @see {@link IDeltaQueue.idle}
141
245
  */
142
246
  (event: "idle", listener: (count: number, duration: number) => void);
143
247
  }
248
+ /* eslint-enable @typescript-eslint/unified-signatures */
144
249
 
145
250
  /**
146
251
  * Queue of ops to be sent to or processed from storage
@@ -157,12 +262,14 @@ export interface IDeltaQueue<T> extends IEventProvider<IDeltaQueueEvents<T>>, ID
157
262
  length: number;
158
263
 
159
264
  /**
160
- * Flag indicating whether or not the queue is idle
265
+ * Flag indicating whether or not the queue is idle.
266
+ * I.e. there are no remaining messages to processes.
161
267
  */
162
268
  idle: boolean;
163
269
 
164
270
  /**
165
- * Pauses processing on the queue
271
+ * Pauses processing on the queue.
272
+ *
166
273
  * @returns A promise which resolves when processing has been paused.
167
274
  */
168
275
  pause(): Promise<void>;
package/src/error.ts CHANGED
@@ -76,7 +76,8 @@ export interface IErrorBase extends Partial<Error> {
76
76
  export interface ContainerWarning extends IErrorBase {
77
77
  /**
78
78
  * Whether this error has already been logged. Used to avoid logging errors twice.
79
- * Default is false.
79
+ *
80
+ * @defaultValue `false`
80
81
  */
81
82
  logged?: boolean;
82
83
  }
package/src/loader.ts CHANGED
@@ -54,7 +54,7 @@ export interface IFluidModuleWithDetails {
54
54
  export interface ICodeDetailsLoader
55
55
  extends Partial<IProvideFluidCodeDetailsComparer> {
56
56
  /**
57
- * Load the code module (package) that is capable to interact with the document.
57
+ * Load the code module (package) that can interact with the document.
58
58
  *
59
59
  * @param source - Code proposal that articulates the current schema the document is written in.
60
60
  * @returns - Code module entry point along with the code details associated with it.
@@ -63,7 +63,7 @@ export interface ICodeDetailsLoader
63
63
  }
64
64
 
65
65
  /**
66
- * The interface returned from a IFluidCodeResolver which represents IFluidCodeDetails
66
+ * The interface returned from a IFluidCodeResolver which represents IFluidCodeDetails
67
67
  * that have been resolved and are ready to load
68
68
  */
69
69
  export interface IResolvedFluidCodeDetails extends IFluidCodeDetails {
@@ -102,23 +102,147 @@ export interface ICodeAllowList {
102
102
  }
103
103
 
104
104
  /**
105
- * Events emitted by the Container "upwards" to the Loader and Host
105
+ * Events emitted by the {@link IContainer} "upwards" to the Loader and Host.
106
106
  */
107
+ /* eslint-disable @typescript-eslint/unified-signatures */
107
108
  export interface IContainerEvents extends IEvent {
109
+ /**
110
+ * Emitted when the readonly state of the container changes.
111
+ *
112
+ * @remarks Listener parameters:
113
+ *
114
+ * - `readonly`: Whether or not the container is now in a readonly state.
115
+ *
116
+ * @see {@link IContainer.readOnlyInfo}
117
+ */
108
118
  (event: "readonly", listener: (readonly: boolean) => void): void;
119
+
120
+ /**
121
+ * Emitted when the {@link IContainer} completes connecting to the Fluid service.
122
+ *
123
+ * @remarks Reflects connection state changes against the (delta) service acknowledging ops/edits.
124
+ *
125
+ * @see
126
+ *
127
+ * - {@link IContainer.connectionState}
128
+ *
129
+ * - {@link IContainer.connect}
130
+ */
109
131
  (event: "connected", listener: (clientId: string) => void);
132
+
133
+ /**
134
+ * Fires when new container code details have been proposed, prior to acceptance.
135
+ *
136
+ * @remarks Listener parameters:
137
+ *
138
+ * - `codeDetails`: The code details being proposed.
139
+ *
140
+ * - `proposal`: NOT RECOMMENDED FOR USE.
141
+ *
142
+ * @see {@link IContainer.proposeCodeDetails}
143
+ */
110
144
  (event: "codeDetailsProposed", listener: (codeDetails: IFluidCodeDetails, proposal: ISequencedProposal) => void);
145
+
146
+ /**
147
+ * @deprecated No replacement API recommended.
148
+ */
111
149
  (event: "contextChanged", listener: (codeDetails: IFluidCodeDetails) => void);
112
- (event: "disconnected" | "attached", listener: () => void);
150
+
151
+ /**
152
+ * Emitted when the {@link IContainer} becomes disconnected from the Fluid service.
153
+ *
154
+ * @remarks Reflects connection state changes against the (delta) service acknowledging ops/edits.
155
+ *
156
+ * @see
157
+ *
158
+ * - {@link IContainer.connectionState}
159
+ *
160
+ * - {@link IContainer.disconnect}
161
+ */
162
+ (event: "disconnected", listener: () => void);
163
+
164
+ /**
165
+ * Emitted when a {@link AttachState.Detached | detached} container is
166
+ * {@link AttachState.Attached | attached} to the Fluid service.
167
+ *
168
+ * @see
169
+ *
170
+ * - {@link IContainer.attachState}
171
+ *
172
+ * - {@link IContainer.attach}
173
+ */
174
+ (event: "attached", listener: () => void);
175
+
176
+ /**
177
+ * Emitted when the {@link IContainer} is closed, which permanently disables it.
178
+ *
179
+ * @remarks Listener parameters:
180
+ *
181
+ * - `error`: If the container was closed due to error, this will contain details about the error that caused it.
182
+ *
183
+ * @see {@link IContainer.close}
184
+ */
113
185
  (event: "closed", listener: (error?: ICriticalContainerError) => void);
186
+
187
+ /**
188
+ * Emitted when the container encounters a state which may lead to errors, which may be actionable by the consumer.
189
+ *
190
+ * @remarks
191
+ *
192
+ * Note: this event is not intended for general use.
193
+ * The longer-term intention is to surface warnings more directly on the APIs that produce them.
194
+ * For now, use of this should be avoided when possible.
195
+ *
196
+ * Listener parameters:
197
+ *
198
+ * - `error`: The warning describing the encountered state.
199
+ */
114
200
  (event: "warning", listener: (error: ContainerWarning) => void);
201
+
202
+ /**
203
+ * Emitted immediately after processing an incoming operation (op).
204
+ *
205
+ * @remarks
206
+ *
207
+ * Note: this event is not intended for general use.
208
+ * Prefer to listen to events on the appropriate ultimate recipients of the ops, rather than listening to the
209
+ * ops directly on the {@link IContainer}.
210
+ *
211
+ * Listener parameters:
212
+ *
213
+ * - `message`: The op that was processed.
214
+ */
115
215
  (event: "op", listener: (message: ISequencedDocumentMessage) => void);
116
- (event: "dirty" | "saved", listener: (dirty: boolean) => void);
216
+
217
+ /**
218
+ * Emitted upon the first local change while the Container is in the "saved" state.
219
+ * That is, when {@link IContainer.isDirty} transitions from `true` to `false`.
220
+ *
221
+ * @remarks Listener parameters:
222
+ *
223
+ * - `dirty`: DEPRECATED. This parameter will be removed in a future release.
224
+ *
225
+ * @see {@link IContainer.isDirty}
226
+ */
227
+ (event: "dirty", listener: (dirty: boolean) => void);
228
+
229
+ /**
230
+ * Emitted when all local changes/edits have been acknowledged by the service.
231
+ * I.e., when {@link IContainer.isDirty} transitions from `false` to `true`.
232
+ *
233
+ * @remarks Listener parameters:
234
+ *
235
+ * - `dirty`: DEPRECATED. This parameter will be removed in a future release.
236
+ *
237
+ * @see {@link IContainer.isDirty}
238
+ */
239
+ (event: "saved", listener: (dirty: boolean) => void);
117
240
  }
241
+ /* eslint-enable @typescript-eslint/unified-signatures */
118
242
 
119
243
  /**
120
- * Namespace for the different connection states a container can be in
121
- * PLEASE NOTE: The sequence of the numerical values does no correspond to the typical connection state progression
244
+ * Namespace for the different connection states a container can be in.
245
+ * PLEASE NOTE: The sequence of the numerical values does no correspond to the typical connection state progression.
122
246
  */
123
247
  // eslint-disable-next-line @typescript-eslint/no-namespace
124
248
  export namespace ConnectionState {
@@ -147,7 +271,7 @@ export namespace ConnectionState {
147
271
  }
148
272
 
149
273
  /**
150
- * Type defining the different states of connectivity a container can be in.
274
+ * Type defining the different states of connectivity a Container can be in.
151
275
  */
152
276
  export type ConnectionState =
153
277
  | ConnectionState.Disconnected
@@ -156,7 +280,7 @@ export type ConnectionState =
156
280
  | ConnectionState.Connected;
157
281
 
158
282
  /**
159
- * The Host's view of the Container and its connection to storage
283
+ * The Host's view of a Container and its connection to storage
160
284
  */
161
285
  export interface IContainer extends IEventProvider<IContainerEvents>, IFluidRouter {
162
286
 
@@ -172,7 +296,7 @@ export interface IContainer extends IEventProvider<IContainerEvents>, IFluidRout
172
296
  getQuorum(): IQuorumClients;
173
297
 
174
298
  /**
175
- * Represents the resolved url to the Container
299
+ * Represents the resolved url to the Container.
176
300
  * Will be undefined only when the container is in the {@link AttachState.Detached | detatched} state.
177
301
  */
178
302
  resolvedUrl: IResolvedUrl | undefined;
@@ -196,54 +320,57 @@ export interface IContainer extends IEventProvider<IContainerEvents>, IFluidRout
196
320
  getLoadedCodeDetails(): IFluidCodeDetails | undefined;
197
321
 
198
322
  /**
199
- * Returns true if the container has been closed, otherwise false
323
+ * Returns true if the container has been closed, otherwise false.
200
324
  */
201
325
  readonly closed: boolean;
202
326
 
203
327
  /**
204
- * Returns true if the container is dirty, i.e. there are user changes that has not been saved
205
- * Closing container in this state results in data loss for user.
206
- * Container usually gets into this situation due to loss of connectivity.
328
+ * Whether or not there are any local changes that have not been saved.
207
329
  */
208
330
  readonly isDirty: boolean;
209
331
 
210
332
  /**
211
- * Closes the container
333
+ * Closes the container.
334
+ *
335
+ * @param error - If the container is being closed due to error, this provides details about the error that
336
+ * resulted in closing it.
212
337
  */
213
338
  close(error?: ICriticalContainerError): void;
214
339
 
215
340
  /**
216
341
  * Closes the container and returns serialized local state intended to be
217
- * given to a newly loaded container
342
+ * given to a newly loaded container.
218
343
  */
219
344
  closeAndGetPendingLocalState(): string;
220
345
 
221
346
  /**
222
- * Propose new code details that define the code to be loaded
223
- * for this container's runtime. The returned promise will
224
- * be true when the proposal is accepted, and false if
225
- * the proposal is rejected.
347
+ * Propose new code details that define the code to be loaded for this container's runtime.
348
+ *
349
+ * The returned promise will be true when the proposal is accepted, and false if the proposal is rejected.
226
350
  */
227
351
  proposeCodeDetails(codeDetails: IFluidCodeDetails): Promise<boolean>;
228
352
 
229
353
  /**
230
354
  * Attaches the Container to the Container specified by the given Request.
231
355
  *
232
- * TODO - in the case of failure options should give a retry policy. Or some continuation function
233
- * that allows attachment to a secondary document.
356
+ * @privateRemarks
357
+ *
358
+ * TODO - in the case of failure options should give a retry policy.
359
+ * Or some continuation function that allows attachment to a secondary document.
234
360
  */
235
361
  attach(request: IRequest): Promise<void>;
236
362
 
237
363
  /**
238
- * Extract the snapshot from the detached container.
364
+ * Extract a snapshot of the container as long as it is in detached state. Calling this on an attached container
365
+ * is an error.
239
366
  */
240
367
  serialize(): string;
241
368
 
242
369
  /**
243
- * Get an absolute url for a provided container-relative request url.
370
+ * Get an absolute URL for a provided container-relative request URL.
244
371
  * If the container is not attached, this will return undefined.
245
372
  *
246
- * @param relativeUrl - A container-relative request URL
373
+ * @param relativeUrl - A container-relative request URL.
247
374
  */
248
375
  getAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;
249
376
 
@@ -254,34 +381,50 @@ export interface IContainer extends IEventProvider<IContainerEvents>, IFluidRout
254
381
  request(request: IRequest): Promise<IResponse>;
255
382
 
256
383
  /**
257
- * Provides the current state of the container's connection to the ordering service
384
+ * Provides the current state of the container's connection to the ordering service.
385
+ *
386
+ * @remarks Consumers can listen for state changes via the "connected" and "disconnected" events.
258
387
  */
259
388
  readonly connectionState: ConnectionState;
260
389
 
261
390
  /**
262
- * Attempts to connect the container to the delta stream and process ops
391
+ * Attempts to connect the container to the delta stream and process ops.
392
+ *
393
+ * @remarks
394
+ *
395
+ * {@link IContainer.connectionState} will be set to {@link (ConnectionState:namespace).Connected}, and the
396
+ * "connected" event will be fired if/when connection succeeds.
263
397
  */
264
398
  connect(): void;
265
399
 
266
400
  /**
267
- * Disconnects the container from the delta stream and stops processing ops
401
+ * Disconnects the container from the delta stream and stops processing ops.
402
+ *
403
+ * @remarks
404
+ *
405
+ * {@link IContainer.connectionState} will be set to {@link (ConnectionState:namespace).Disconnected}, and the
406
+ * "disconnected" event will be fired when disconnection completes.
268
407
  */
269
408
  disconnect(): void;
270
409
 
271
410
  /**
272
- * The audience information for all clients currently associated with the document in the current session
411
+ * The audience information for all clients currently associated with the document in the current session.
273
412
  */
274
413
  readonly audience: IAudience;
275
414
 
276
415
  /**
277
416
  * The server provided ID of the client.
278
- * Set once this.connectionState === ConnectionState.Connected is true, otherwise undefined
279
- * @alpha
417
+ *
418
+ * Set once {@link IContainer.connectionState} is {@link (ConnectionState:namespace).Connected},
419
+ * otherwise will be `undefined`.
280
420
  */
281
421
  readonly clientId?: string | undefined;
282
422
 
283
423
  /**
284
424
  * Tells if container is in read-only mode.
425
+ *
426
+ * @remarks
427
+ *
285
428
  * Data stores should listen for "readonly" notifications and disallow user making changes to data stores.
286
429
  * Readonly state can be because of no storage write permission,
287
430
  * or due to host forcing readonly mode for container.
@@ -310,6 +453,8 @@ export interface ILoader extends IFluidRouter, Partial<IProvideLoader> {
310
453
  * Resolves the resource specified by the URL + headers contained in the request object
311
454
  * to the underlying container that will resolve the request.
312
455
  *
456
+ * @remarks
457
+ *
313
458
  * An analogy for this is resolve is a DNS resolve of a Fluid container. Request then executes
314
459
  * a request against the server found from the resolve step.
315
460
  */
@@ -337,27 +482,27 @@ export type ILoaderOptions = {
337
482
  [key in string | number]: any;
338
483
  } & {
339
484
  /**
340
- * Set caching behavior for the loader. If true, we will load a container from cache if one
485
+ * Set caching behavior for the loader. If true, we will load a container from cache if one
341
486
  * with the same id/version exists or create a new container and cache it if it does not. If
342
487
  * false, always load a new container and don't cache it. If the container has already been
343
- * closed, it will not be cached. A cache option in the LoaderHeader for an individual
488
+ * closed, it will not be cached. A cache option in the LoaderHeader for an individual
344
489
  * request will override the Loader's value.
345
490
  * Defaults to true.
346
491
  */
347
492
  cache?: boolean;
348
493
 
349
494
  /**
350
- * Provide the current Loader through the scope object when creating Containers. It is added
495
+ * Provide the current Loader through the scope object when creating Containers. It is added
351
496
  * as the `ILoader` property, and will overwrite an existing property of the same name on the
352
- * scope. Useful for when the host wants to provide the current Loader's functionality to
497
+ * scope. Useful for when the host wants to provide the current Loader's functionality to
353
498
  * individual Data Stores, which is typically expected when creating with a Loader.
354
499
  * Defaults to true.
355
500
  */
356
501
  provideScopeLoader?: boolean;
357
502
 
358
503
  /**
359
- * Max time(in ms) container will wait for a leave message of a disconnected client.
360
- */
504
+ * Max time (in ms) container will wait for a leave message of a disconnected client.
505
+ */
361
506
  maxClientLeaveWaitTime?: number;
362
507
  };
363
508
 
@@ -409,6 +554,7 @@ export interface IContainerLoadMode {
409
554
  * recommended to have some progress UX / cancellation built into loading flow when using this option.
410
555
  */
411
556
  | "all";
557
+
412
558
  deltaConnection?:
413
559
  /*
414
560
  * Connection to delta stream is made only when Container.connect() call is made. Op processing
@@ -449,7 +595,7 @@ export interface IProvideLoader {
449
595
  /**
450
596
  * @deprecated 0.48, This API will be removed in 0.50
451
597
  * No replacement since it is not expected anyone will depend on this outside container-loader
452
- * See https://github.com/microsoft/FluidFramework/issues/9711 for context
598
+ * See {@link https://github.com/microsoft/FluidFramework/issues/9711} for context.
453
599
  */
454
600
  export interface IPendingLocalState {
455
601
  url: string;
@@ -458,8 +604,9 @@ export interface IPendingLocalState {
458
604
 
459
605
  /**
460
606
  * This is used when we rehydrate a container from the snapshot. Here we put the blob contents
461
- * in separate property: blobContents. This is used as the ContainerContext's base snapshot
462
- * when attaching.
607
+ * in separate property: {@link ISnapshotTreeWithBlobContents.blobsContents}.
608
+ *
609
+ * @remarks This is used as the `ContainerContext`'s base snapshot when attaching.
463
610
  */
464
611
  export interface ISnapshotTreeWithBlobContents extends ISnapshotTree {
465
612
  blobsContents: { [path: string]: ArrayBufferLike; };
package/src/runtime.ts CHANGED
@@ -108,8 +108,9 @@ export interface IRuntime extends IDisposable {
108
108
  * Payload type for IContainerContext.submitBatchFn()
109
109
  */
110
110
  export interface IBatchMessage {
111
- contents: string;
111
+ contents?: string;
112
112
  metadata: Record<string, unknown> | undefined;
113
+ compression?: string;
113
114
  }
114
115
 
115
116
  /**