@fluidframework/runtime-definitions 1.4.0-115997 → 2.0.0-dev-rc.1.0.0.224419

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 (55) hide show
  1. package/.eslintrc.cjs +12 -0
  2. package/CHANGELOG.md +330 -0
  3. package/README.md +43 -7
  4. package/api-extractor-lint.json +4 -0
  5. package/api-extractor.json +2 -2
  6. package/api-report/runtime-definitions.api.md +474 -0
  7. package/dist/attribution.d.ts +71 -0
  8. package/dist/attribution.d.ts.map +1 -0
  9. package/dist/attribution.js +7 -0
  10. package/dist/attribution.js.map +1 -0
  11. package/dist/dataStoreContext.d.ts +114 -61
  12. package/dist/dataStoreContext.d.ts.map +1 -1
  13. package/dist/dataStoreContext.js +27 -5
  14. package/dist/dataStoreContext.js.map +1 -1
  15. package/dist/dataStoreFactory.d.ts +7 -0
  16. package/dist/dataStoreFactory.d.ts.map +1 -1
  17. package/dist/dataStoreFactory.js +3 -0
  18. package/dist/dataStoreFactory.js.map +1 -1
  19. package/dist/dataStoreRegistry.d.ts +14 -4
  20. package/dist/dataStoreRegistry.d.ts.map +1 -1
  21. package/dist/dataStoreRegistry.js +3 -0
  22. package/dist/dataStoreRegistry.js.map +1 -1
  23. package/dist/garbageCollection.d.ts +35 -10
  24. package/dist/garbageCollection.d.ts.map +1 -1
  25. package/dist/garbageCollection.js +25 -3
  26. package/dist/garbageCollection.js.map +1 -1
  27. package/dist/index.d.ts +52 -6
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +26 -16
  30. package/dist/index.js.map +1 -1
  31. package/dist/protocol.d.ts +10 -3
  32. package/dist/protocol.d.ts.map +1 -1
  33. package/dist/protocol.js.map +1 -1
  34. package/dist/runtime-definitions-alpha.d.ts +993 -0
  35. package/dist/runtime-definitions-beta.d.ts +264 -0
  36. package/dist/runtime-definitions-public.d.ts +264 -0
  37. package/dist/runtime-definitions-untrimmed.d.ts +1068 -0
  38. package/dist/summary.d.ts +138 -70
  39. package/dist/summary.d.ts.map +1 -1
  40. package/dist/summary.js +13 -1
  41. package/dist/summary.js.map +1 -1
  42. package/dist/tsdoc-metadata.json +11 -0
  43. package/package.json +96 -42
  44. package/prettier.config.cjs +8 -0
  45. package/src/aliasing.md +42 -0
  46. package/src/attribution.ts +78 -0
  47. package/src/dataStoreContext.ts +432 -388
  48. package/src/dataStoreFactory.ts +21 -11
  49. package/src/dataStoreRegistry.ts +18 -6
  50. package/src/garbageCollection.ts +38 -15
  51. package/src/index.ts +111 -6
  52. package/src/protocol.ts +46 -38
  53. package/src/summary.ts +298 -225
  54. package/tsconfig.json +10 -12
  55. package/.eslintrc.js +0 -13
@@ -2,18 +2,19 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { ITelemetryBaseLogger, IDisposable, IEvent, IEventProvider } from "@fluidframework/common-definitions";
6
- import { IFluidRouter, IProvideFluidHandleContext, IFluidHandle, IRequest, IResponse, FluidObject } from "@fluidframework/core-interfaces";
5
+ import { IEvent, IEventProvider, ITelemetryBaseLogger, IDisposable, IProvideFluidHandleContext, IFluidHandle, IRequest, IResponse, FluidObject } from "@fluidframework/core-interfaces";
7
6
  import { IAudience, IDeltaManager, AttachState, ILoaderOptions } from "@fluidframework/container-definitions";
8
7
  import { IDocumentStorageService } from "@fluidframework/driver-definitions";
9
8
  import { IClientDetails, IDocumentMessage, IQuorumClients, ISequencedDocumentMessage, ISnapshotTree } from "@fluidframework/protocol-definitions";
9
+ import { IIdCompressor } from "@fluidframework/id-compressor";
10
10
  import { IProvideFluidDataStoreFactory } from "./dataStoreFactory";
11
11
  import { IProvideFluidDataStoreRegistry } from "./dataStoreRegistry";
12
- import { IGarbageCollectionData, IGarbageCollectionDetailsBase, IGarbageCollectionSummaryDetails } from "./garbageCollection";
12
+ import { IGarbageCollectionData, IGarbageCollectionDetailsBase } from "./garbageCollection";
13
13
  import { IInboundSignalMessage } from "./protocol";
14
14
  import { CreateChildSummarizerNodeParam, ISummarizerNodeWithGC, ISummaryTreeWithStats, ITelemetryContext, SummarizeInternalFn } from "./summary";
15
15
  /**
16
16
  * Runtime flush mode handling
17
+ * @alpha
17
18
  */
18
19
  export declare enum FlushMode {
19
20
  /**
@@ -26,12 +27,30 @@ export declare enum FlushMode {
26
27
  */
27
28
  TurnBased = 1
28
29
  }
30
+ /**
31
+ * @internal
32
+ */
33
+ export declare enum FlushModeExperimental {
34
+ /**
35
+ * When in Async flush mode, the runtime will accumulate all operations across JS turns and send them as a single
36
+ * batch when all micro-tasks are complete.
37
+ *
38
+ * This feature requires a version of the loader which supports reference sequence numbers. If an older version of
39
+ * the loader is used, the runtime will fall back on FlushMode.TurnBased.
40
+ *
41
+ * @experimental - Not ready for use
42
+ */
43
+ Async = 2
44
+ }
29
45
  /**
30
46
  * This tells the visibility state of a Fluid object. It basically tracks whether the object is not visible, visible
31
47
  * locally within the container only or visible globally to all clients.
48
+ * @alpha
32
49
  */
33
50
  export declare const VisibilityState: {
34
- /** Indicates that the object is not visible. This is the state when an object is first created. */
51
+ /**
52
+ * Indicates that the object is not visible. This is the state when an object is first created.
53
+ */
35
54
  NotVisible: string;
36
55
  /**
37
56
  * Indicates that the object is visible locally within the container. This is the state when an object is attached
@@ -41,16 +60,29 @@ export declare const VisibilityState: {
41
60
  LocallyVisible: string;
42
61
  /**
43
62
  * Indicates that the object is visible globally to all clients. This is the state of an object in 2 scenarios:
63
+ *
44
64
  * 1. It is attached to the container's graph when the container is globally visible. The object's state goes from
45
- * not visible to globally visible.
65
+ * not visible to globally visible.
66
+ *
46
67
  * 2. When a container becomes globally visible, all locally visible objects go from locally visible to globally
47
- * visible.
68
+ * visible.
48
69
  */
49
70
  GloballyVisible: string;
50
71
  };
51
- export declare type VisibilityState = typeof VisibilityState[keyof typeof VisibilityState];
72
+ /**
73
+ * @alpha
74
+ */
75
+ export type VisibilityState = (typeof VisibilityState)[keyof typeof VisibilityState];
76
+ /**
77
+ * @alpha
78
+ */
52
79
  export interface IContainerRuntimeBaseEvents extends IEvent {
53
- (event: "batchBegin" | "op", listener: (op: ISequencedDocumentMessage) => void): any;
80
+ (event: "batchBegin", listener: (op: ISequencedDocumentMessage) => void): any;
81
+ /**
82
+ * @param runtimeMessage - tells if op is runtime op. If it is, it was unpacked, i.e. it's type and content
83
+ * represent internal container runtime type / content.
84
+ */
85
+ (event: "op", listener: (op: ISequencedDocumentMessage, runtimeMessage?: boolean) => void): any;
54
86
  (event: "batchEnd", listener: (error: any, op: ISequencedDocumentMessage) => void): any;
55
87
  (event: "signal", listener: (message: IInboundSignalMessage, local: boolean) => void): any;
56
88
  }
@@ -58,31 +90,42 @@ export interface IContainerRuntimeBaseEvents extends IEvent {
58
90
  * Encapsulates the return codes of the aliasing API.
59
91
  *
60
92
  * 'Success' - the datastore has been successfully aliased. It can now be used.
61
- * 'Conflict' - there is already a datastore bound to the provided alias. To acquire a handle to it,
62
- * use the `IContainerRuntime.getRootDataStore` function. The current datastore should be discarded
93
+ * 'Conflict' - there is already a datastore bound to the provided alias. To acquire it's entry point, use
94
+ * the `IContainerRuntime.getAliasedDataStoreEntryPoint` function. The current datastore should be discarded
63
95
  * and will be garbage collected. The current datastore cannot be aliased to a different value.
64
- * 'Aliasing' (deprecated) - this value is never returned.
65
96
  * 'AlreadyAliased' - the datastore has already been previously bound to another alias name.
97
+ * @alpha
66
98
  */
67
- export declare type AliasResult = "Success" | "Conflict" | "Aliasing" | "AlreadyAliased";
99
+ export type AliasResult = "Success" | "Conflict" | "AlreadyAliased";
68
100
  /**
69
- * A fluid router with the capability of being assigned an alias
101
+ * Exposes some functionality/features of a data store:
102
+ * - Handle to the data store's entryPoint
103
+ * - Fluid router for the data store
104
+ * - Can be assigned an alias
105
+ * @alpha
70
106
  */
71
- export interface IDataStore extends IFluidRouter {
107
+ export interface IDataStore {
72
108
  /**
73
109
  * Attempt to assign an alias to the datastore.
74
110
  * If the operation succeeds, the datastore can be referenced
75
111
  * by the supplied alias and will not be garbage collected.
76
112
  *
77
113
  * @param alias - Given alias for this datastore.
114
+ * @returns A promise with the {@link AliasResult}
78
115
  */
79
116
  trySetAlias(alias: string): Promise<AliasResult>;
117
+ /**
118
+ * Exposes a handle to the root object / entryPoint of the data store. Use this as the primary way of interacting
119
+ * with it.
120
+ */
121
+ readonly entryPoint: IFluidHandle<FluidObject>;
80
122
  }
81
123
  /**
82
124
  * A reduced set of functionality of IContainerRuntime that a data store context/data store runtime will need
83
125
  * TODO: this should be merged into IFluidDataStoreContext
126
+ * @alpha
84
127
  */
85
- export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeBaseEvents>, IProvideFluidHandleContext {
128
+ export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeBaseEvents> {
86
129
  readonly logger: ITelemetryBaseLogger;
87
130
  readonly clientDetails: IClientDetails;
88
131
  /**
@@ -90,15 +133,6 @@ export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeB
90
133
  * sequentially. Total size of all messages must be less than maxOpSize.
91
134
  */
92
135
  orderSequentially(callback: () => void): void;
93
- /**
94
- * Sets the flush mode for operations on the document.
95
- * @deprecated - Will be removed in 0.60. See #9480.
96
- */
97
- setFlushMode(mode: FlushMode): void;
98
- /**
99
- * Executes a request against the container runtime
100
- */
101
- request(request: IRequest): Promise<IResponse>;
102
136
  /**
103
137
  * Submits a container runtime level signal to be sent to other clients.
104
138
  * @param type - Type of the signal.
@@ -107,14 +141,14 @@ export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeB
107
141
  submitSignal(type: string, content: any): void;
108
142
  /**
109
143
  * @deprecated 0.16 Issue #1537, #3631
110
- * @internal
111
144
  */
112
- _createDataStoreWithProps(pkg: string | string[], props?: any, id?: string, isRoot?: boolean): Promise<IDataStore>;
145
+ _createDataStoreWithProps(pkg: string | string[], props?: any, id?: string): Promise<IDataStore>;
113
146
  /**
114
- * Creates data store. Returns router of data store. Data store is not bound to container,
115
- * store in such state is not persisted to storage (file). Storing a handle to this store
116
- * (or any of its parts, like DDS) into already attached DDS (or non-attached DDS that will eventually
117
- * gets attached to storage) will result in this store being attached to storage.
147
+ * Creates a data store and returns an object that exposes a handle to the data store's entryPoint, and also serves
148
+ * as the data store's router. The data store is not bound to a container, and in such state is not persisted to
149
+ * storage (file). Storing the entryPoint handle (or any other handle inside the data store, e.g. for DDS) into an
150
+ * already attached DDS (or non-attached DDS that will eventually get attached to storage) will result in this
151
+ * store being attached to storage.
118
152
  * @param pkg - Package name of the data store factory
119
153
  */
120
154
  createDataStore(pkg: string | string[]): Promise<IDataStore>;
@@ -129,7 +163,7 @@ export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeB
129
163
  * @param relativeUrl - A relative request within the container
130
164
  */
131
165
  getAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;
132
- uploadBlob(blob: ArrayBufferLike): Promise<IFluidHandle<ArrayBufferLike>>;
166
+ uploadBlob(blob: ArrayBufferLike, signal?: AbortSignal): Promise<IFluidHandle<ArrayBufferLike>>;
133
167
  /**
134
168
  * Returns the current quorum.
135
169
  */
@@ -140,34 +174,29 @@ export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeB
140
174
  getAudience(): IAudience;
141
175
  }
142
176
  /**
143
- * Minimal interface a data store runtime need to provide for IFluidDataStoreContext to bind to control
177
+ * Minimal interface a data store runtime needs to provide for IFluidDataStoreContext to bind to control.
144
178
  *
145
- * Functionality include attach, snapshot, op/signal processing, request routes,
179
+ * Functionality include attach, snapshot, op/signal processing, request routes, expose an entryPoint,
146
180
  * and connection state notifications
181
+ * @alpha
147
182
  */
148
- export interface IFluidDataStoreChannel extends IFluidRouter, IDisposable {
183
+ export interface IFluidDataStoreChannel extends IDisposable {
149
184
  readonly id: string;
150
185
  /**
151
186
  * Indicates the attachment state of the channel to a host service.
152
187
  */
153
188
  readonly attachState: AttachState;
154
- readonly visibilityState?: VisibilityState;
189
+ readonly visibilityState: VisibilityState;
155
190
  /**
156
- * @deprecated - This is an internal method that should not be exposed.
157
- * Called to bind the runtime to the container.
158
- * If the container is not attached to storage, then this would also be unknown to other clients.
159
- */
160
- bindToContext(): void;
161
- /**
162
- * @deprecated - This will be removed in favor of makeVisibleAndAttachGraph.
163
191
  * Runs through the graph and attaches the bound handles. Then binds this runtime to the container.
192
+ * @deprecated This will be removed in favor of {@link IFluidDataStoreChannel.makeVisibleAndAttachGraph}.
164
193
  */
165
194
  attachGraph(): void;
166
195
  /**
167
196
  * Makes the data store channel visible in the container. Also, runs through its graph and attaches all
168
197
  * bound handles that represent its dependencies in the container's graph.
169
198
  */
170
- makeVisibleAndAttachGraph?(): void;
199
+ makeVisibleAndAttachGraph(): void;
171
200
  /**
172
201
  * Retrieves the summary used as part of the initial summary message
173
202
  */
@@ -197,10 +226,8 @@ export interface IFluidDataStoreChannel extends IFluidRouter, IDisposable {
197
226
  /**
198
227
  * After GC has run, called to notify this channel of routes that are used in it.
199
228
  * @param usedRoutes - The routes that are used in this channel.
200
- * @param gcTimestamp - The time when GC was run that generated these used routes. If any node becomes unreferenced
201
- * as part of this GC run, this should be used to update the time when it happens.
202
229
  */
203
- updateUsedRoutes(usedRoutes: string[], gcTimestamp?: number): void;
230
+ updateUsedRoutes(usedRoutes: string[]): void;
204
231
  /**
205
232
  * Notifies this object about changes in the connection state.
206
233
  * @param value - New connection state.
@@ -223,14 +250,31 @@ export interface IFluidDataStoreChannel extends IFluidRouter, IDisposable {
223
250
  * @param localOpMetadata - The local metadata associated with the original message.
224
251
  */
225
252
  rollback?(type: string, content: any, localOpMetadata: unknown): void;
253
+ /**
254
+ * Exposes a handle to the root object / entryPoint of the component. Use this as the primary way of interacting
255
+ * with the component.
256
+ */
257
+ readonly entryPoint: IFluidHandle<FluidObject>;
258
+ request(request: IRequest): Promise<IResponse>;
226
259
  }
227
- export declare type CreateChildSummarizerNodeFn = (summarizeInternal: SummarizeInternalFn, getGCDataFn: (fullGC?: boolean) => Promise<IGarbageCollectionData>, getInitialGCSummaryDetailsFn: () => Promise<IGarbageCollectionSummaryDetails>) => ISummarizerNodeWithGC;
260
+ /**
261
+ * @alpha
262
+ */
263
+ export type CreateChildSummarizerNodeFn = (summarizeInternal: SummarizeInternalFn, getGCDataFn: (fullGC?: boolean) => Promise<IGarbageCollectionData>,
264
+ /**
265
+ * @deprecated The functionality to get base GC details has been moved to summarizer node.
266
+ */
267
+ getBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>) => ISummarizerNodeWithGC;
268
+ /**
269
+ * @alpha
270
+ */
228
271
  export interface IFluidDataStoreContextEvents extends IEvent {
229
272
  (event: "attaching" | "attached", listener: () => void): any;
230
273
  }
231
274
  /**
232
275
  * Represents the context for the data store. It is used by the data store runtime to
233
276
  * get information and call functionality to the container.
277
+ * @alpha
234
278
  */
235
279
  export interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreContextEvents>, Partial<IProvideFluidDataStoreRegistry>, IProvideFluidHandleContext {
236
280
  readonly id: string;
@@ -255,6 +299,7 @@ export interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreCo
255
299
  readonly baseSnapshot: ISnapshotTree | undefined;
256
300
  readonly logger: ITelemetryBaseLogger;
257
301
  readonly clientDetails: IClientDetails;
302
+ readonly idCompressor?: IIdCompressor;
258
303
  /**
259
304
  * Indicates the attachment state of the data store to a host service.
260
305
  */
@@ -276,6 +321,15 @@ export interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreCo
276
321
  * Returns the current audience.
277
322
  */
278
323
  getAudience(): IAudience;
324
+ /**
325
+ * Invokes the given callback and expects that no ops are submitted
326
+ * until execution finishes. If an op is submitted, an error will be raised.
327
+ *
328
+ * Can be disabled by feature gate `Fluid.ContainerRuntime.DisableOpReentryCheck`
329
+ *
330
+ * @param callback - the callback to be invoked
331
+ */
332
+ ensureNoDataModelChanges<T>(callback: () => T): T;
279
333
  /**
280
334
  * Submits the message to be sent to other clients.
281
335
  * @param type - Type of the message.
@@ -289,18 +343,14 @@ export interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreCo
289
343
  * Submits the signal to be sent to other clients.
290
344
  * @param type - Type of the signal.
291
345
  * @param content - Content of the signal.
346
+ * @param targetClientId - When specified, the signal is only sent to the provided client id.
292
347
  */
293
- submitSignal(type: string, content: any): void;
294
- /**
295
- * @deprecated - To be removed in favor of makeVisible.
296
- * Register the runtime to the container
297
- */
298
- bindToContext(): void;
348
+ submitSignal(type: string, content: any, targetClientId?: string): void;
299
349
  /**
300
350
  * Called to make the data store locally visible in the container. This happens automatically for root data stores
301
351
  * when they are marked as root. For non-root data stores, this happens when their handle is added to a visible DDS.
302
352
  */
303
- makeLocallyVisible?(): void;
353
+ makeLocallyVisible(): void;
304
354
  /**
305
355
  * Call by IFluidDataStoreChannel, indicates that a channel is dirty and needs to be part of the summary.
306
356
  * @param address - The address of the channel that is dirty.
@@ -313,7 +363,9 @@ export interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreCo
313
363
  */
314
364
  getAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;
315
365
  getCreateChildSummarizerNodeFn(
316
- /** Initial id or path part of this node */
366
+ /**
367
+ * Initial id or path part of this node
368
+ */
317
369
  id: string,
318
370
  /**
319
371
  * Information needed to create the node.
@@ -322,16 +374,14 @@ export interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreCo
322
374
  * If it is local, it will throw unsupported errors on calls to summarize.
323
375
  */
324
376
  createParam: CreateChildSummarizerNodeParam): CreateChildSummarizerNodeFn;
325
- uploadBlob(blob: ArrayBufferLike): Promise<IFluidHandle<ArrayBufferLike>>;
326
- /**
327
- * @deprecated - Renamed to getBaseGCDetails.
328
- */
329
- getInitialGCSummaryDetails(): Promise<IGarbageCollectionSummaryDetails>;
377
+ uploadBlob(blob: ArrayBufferLike, signal?: AbortSignal): Promise<IFluidHandle<ArrayBufferLike>>;
330
378
  /**
379
+ * @deprecated The functionality to get base GC details has been moved to summarizer node.
380
+ *
331
381
  * Returns the GC details in the initial summary of this data store. This is used to initialize the data store
332
382
  * and its children with the GC details from the previous summary.
333
383
  */
334
- getBaseGCDetails?(): Promise<IGarbageCollectionDetailsBase>;
384
+ getBaseGCDetails(): Promise<IGarbageCollectionDetailsBase>;
335
385
  /**
336
386
  * Called when a new outbound reference is added to another node. This is used by garbage collection to identify
337
387
  * all references added in the system.
@@ -340,6 +390,9 @@ export interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreCo
340
390
  */
341
391
  addedGCOutboundReference?(srcHandle: IFluidHandle, outboundHandle: IFluidHandle): void;
342
392
  }
393
+ /**
394
+ * @alpha
395
+ */
343
396
  export interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {
344
397
  /**
345
398
  * Binds a runtime to the context.
@@ -1 +1 @@
1
- {"version":3,"file":"dataStoreContext.d.ts","sourceRoot":"","sources":["../src/dataStoreContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataStoreContext.d.ts","sourceRoot":"","sources":["../src/dataStoreContext.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,10 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.VisibilityState = exports.FlushMode = void 0;
7
+ exports.VisibilityState = exports.FlushModeExperimental = exports.FlushMode = void 0;
8
8
  /**
9
9
  * Runtime flush mode handling
10
+ * @alpha
10
11
  */
11
12
  var FlushMode;
12
13
  (function (FlushMode) {
@@ -19,13 +20,32 @@ var FlushMode;
19
20
  * batch at the end of the turn. The flush call on the runtime can be used to force send the current batch.
20
21
  */
21
22
  FlushMode[FlushMode["TurnBased"] = 1] = "TurnBased";
22
- })(FlushMode = exports.FlushMode || (exports.FlushMode = {}));
23
+ })(FlushMode || (exports.FlushMode = FlushMode = {}));
24
+ /**
25
+ * @internal
26
+ */
27
+ var FlushModeExperimental;
28
+ (function (FlushModeExperimental) {
29
+ /**
30
+ * When in Async flush mode, the runtime will accumulate all operations across JS turns and send them as a single
31
+ * batch when all micro-tasks are complete.
32
+ *
33
+ * This feature requires a version of the loader which supports reference sequence numbers. If an older version of
34
+ * the loader is used, the runtime will fall back on FlushMode.TurnBased.
35
+ *
36
+ * @experimental - Not ready for use
37
+ */
38
+ FlushModeExperimental[FlushModeExperimental["Async"] = 2] = "Async";
39
+ })(FlushModeExperimental || (exports.FlushModeExperimental = FlushModeExperimental = {}));
23
40
  /**
24
41
  * This tells the visibility state of a Fluid object. It basically tracks whether the object is not visible, visible
25
42
  * locally within the container only or visible globally to all clients.
43
+ * @alpha
26
44
  */
27
45
  exports.VisibilityState = {
28
- /** Indicates that the object is not visible. This is the state when an object is first created. */
46
+ /**
47
+ * Indicates that the object is not visible. This is the state when an object is first created.
48
+ */
29
49
  NotVisible: "NotVisible",
30
50
  /**
31
51
  * Indicates that the object is visible locally within the container. This is the state when an object is attached
@@ -35,10 +55,12 @@ exports.VisibilityState = {
35
55
  LocallyVisible: "LocallyVisible",
36
56
  /**
37
57
  * Indicates that the object is visible globally to all clients. This is the state of an object in 2 scenarios:
58
+ *
38
59
  * 1. It is attached to the container's graph when the container is globally visible. The object's state goes from
39
- * not visible to globally visible.
60
+ * not visible to globally visible.
61
+ *
40
62
  * 2. When a container becomes globally visible, all locally visible objects go from locally visible to globally
41
- * visible.
63
+ * visible.
42
64
  */
43
65
  GloballyVisible: "GloballyVisible",
44
66
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dataStoreContext.js","sourceRoot":"","sources":["../src/dataStoreContext.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAyCH;;GAEG;AACH,IAAY,SAWX;AAXD,WAAY,SAAS;IACjB;;OAEG;IACH,mDAAS,CAAA;IAET;;;OAGG;IACH,mDAAS,CAAA;AACb,CAAC,EAXW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAWpB;AAED;;;GAGG;AACU,QAAA,eAAe,GAAG;IAC3B,mGAAmG;IACnG,UAAU,EAAE,YAAY;IAExB;;;;OAIG;IACH,cAAc,EAAE,gBAAgB;IAEhC;;;;;;OAMG;IACH,eAAe,EAAE,iBAAiB;CACrC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryBaseLogger, IDisposable, IEvent, IEventProvider } from \"@fluidframework/common-definitions\";\nimport {\n IFluidRouter,\n IProvideFluidHandleContext,\n IFluidHandle,\n IRequest,\n IResponse,\n FluidObject,\n} from \"@fluidframework/core-interfaces\";\nimport {\n IAudience,\n IDeltaManager,\n AttachState,\n ILoaderOptions,\n} from \"@fluidframework/container-definitions\";\nimport { IDocumentStorageService } from \"@fluidframework/driver-definitions\";\nimport {\n IClientDetails,\n IDocumentMessage,\n IQuorumClients,\n ISequencedDocumentMessage,\n ISnapshotTree,\n} from \"@fluidframework/protocol-definitions\";\nimport { IProvideFluidDataStoreFactory } from \"./dataStoreFactory\";\nimport { IProvideFluidDataStoreRegistry } from \"./dataStoreRegistry\";\nimport {\n IGarbageCollectionData,\n IGarbageCollectionDetailsBase,\n IGarbageCollectionSummaryDetails,\n} from \"./garbageCollection\";\nimport { IInboundSignalMessage } from \"./protocol\";\nimport {\n CreateChildSummarizerNodeParam,\n ISummarizerNodeWithGC,\n ISummaryTreeWithStats,\n ITelemetryContext,\n SummarizeInternalFn,\n} from \"./summary\";\n\n/**\n * Runtime flush mode handling\n */\nexport enum FlushMode {\n /**\n * In Immediate flush mode the runtime will immediately send all operations to the driver layer.\n */\n Immediate,\n\n /**\n * When in TurnBased flush mode the runtime will buffer operations in the current turn and send them as a single\n * batch at the end of the turn. The flush call on the runtime can be used to force send the current batch.\n */\n TurnBased,\n}\n\n/**\n * This tells the visibility state of a Fluid object. It basically tracks whether the object is not visible, visible\n * locally within the container only or visible globally to all clients.\n */\nexport const VisibilityState = {\n /** Indicates that the object is not visible. This is the state when an object is first created. */\n NotVisible: \"NotVisible\",\n\n /**\n * Indicates that the object is visible locally within the container. This is the state when an object is attached\n * to the container's graph but the container itself isn't globally visible. The object's state goes from not\n * visible to locally visible.\n */\n LocallyVisible: \"LocallyVisible\",\n\n /**\n * Indicates that the object is visible globally to all clients. This is the state of an object in 2 scenarios:\n * 1. It is attached to the container's graph when the container is globally visible. The object's state goes from\n * not visible to globally visible.\n * 2. When a container becomes globally visible, all locally visible objects go from locally visible to globally\n * visible.\n */\n GloballyVisible: \"GloballyVisible\",\n};\nexport type VisibilityState = typeof VisibilityState[keyof typeof VisibilityState];\n\nexport interface IContainerRuntimeBaseEvents extends IEvent{\n (event: \"batchBegin\" | \"op\", listener: (op: ISequencedDocumentMessage) => void);\n (event: \"batchEnd\", listener: (error: any, op: ISequencedDocumentMessage) => void);\n (event: \"signal\", listener: (message: IInboundSignalMessage, local: boolean) => void);\n}\n\n/**\n * Encapsulates the return codes of the aliasing API.\n *\n * 'Success' - the datastore has been successfully aliased. It can now be used.\n * 'Conflict' - there is already a datastore bound to the provided alias. To acquire a handle to it,\n * use the `IContainerRuntime.getRootDataStore` function. The current datastore should be discarded\n * and will be garbage collected. The current datastore cannot be aliased to a different value.\n * 'Aliasing' (deprecated) - this value is never returned.\n * 'AlreadyAliased' - the datastore has already been previously bound to another alias name.\n */\n export type AliasResult = \"Success\" | \"Conflict\" | \"Aliasing\" | \"AlreadyAliased\";\n\n/**\n * A fluid router with the capability of being assigned an alias\n */\n export interface IDataStore extends IFluidRouter {\n /**\n * Attempt to assign an alias to the datastore.\n * If the operation succeeds, the datastore can be referenced\n * by the supplied alias and will not be garbage collected.\n *\n * @param alias - Given alias for this datastore.\n */\n trySetAlias(alias: string): Promise<AliasResult>;\n}\n\n/**\n * A reduced set of functionality of IContainerRuntime that a data store context/data store runtime will need\n * TODO: this should be merged into IFluidDataStoreContext\n */\nexport interface IContainerRuntimeBase extends\n IEventProvider<IContainerRuntimeBaseEvents>,\n IProvideFluidHandleContext {\n\n readonly logger: ITelemetryBaseLogger;\n readonly clientDetails: IClientDetails;\n\n /**\n * Invokes the given callback and guarantees that all operations generated within the callback will be ordered\n * sequentially. Total size of all messages must be less than maxOpSize.\n */\n orderSequentially(callback: () => void): void;\n\n /**\n * Sets the flush mode for operations on the document.\n * @deprecated - Will be removed in 0.60. See #9480.\n */\n setFlushMode(mode: FlushMode): void;\n\n /**\n * Executes a request against the container runtime\n */\n request(request: IRequest): Promise<IResponse>;\n\n /**\n * Submits a container runtime level signal to be sent to other clients.\n * @param type - Type of the signal.\n * @param content - Content of the signal.\n */\n submitSignal(type: string, content: any): void;\n\n /**\n * @deprecated 0.16 Issue #1537, #3631\n * @internal\n */\n _createDataStoreWithProps(\n pkg: string | string[],\n props?: any,\n id?: string,\n isRoot?: boolean,\n ): Promise<IDataStore>;\n\n /**\n * Creates data store. Returns router of data store. Data store is not bound to container,\n * store in such state is not persisted to storage (file). Storing a handle to this store\n * (or any of its parts, like DDS) into already attached DDS (or non-attached DDS that will eventually\n * gets attached to storage) will result in this store being attached to storage.\n * @param pkg - Package name of the data store factory\n */\n createDataStore(pkg: string | string[]): Promise<IDataStore>;\n\n /**\n * Creates detached data store context. Only after context.attachRuntime() is called,\n * data store initialization is considered complete.\n */\n createDetachedDataStore(pkg: Readonly<string[]>): IFluidDataStoreContextDetached;\n\n /**\n * Get an absolute url for a provided container-relative request.\n * Returns undefined if the container or data store isn't attached to storage.\n * @param relativeUrl - A relative request within the container\n */\n getAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;\n\n uploadBlob(blob: ArrayBufferLike): Promise<IFluidHandle<ArrayBufferLike>>;\n\n /**\n * Returns the current quorum.\n */\n getQuorum(): IQuorumClients;\n\n /**\n * Returns the current audience.\n */\n getAudience(): IAudience;\n}\n\n/**\n * Minimal interface a data store runtime need to provide for IFluidDataStoreContext to bind to control\n *\n * Functionality include attach, snapshot, op/signal processing, request routes,\n * and connection state notifications\n */\nexport interface IFluidDataStoreChannel extends\n IFluidRouter,\n IDisposable {\n\n readonly id: string;\n\n /**\n * Indicates the attachment state of the channel to a host service.\n */\n readonly attachState: AttachState;\n\n readonly visibilityState?: VisibilityState;\n\n /**\n * @deprecated - This is an internal method that should not be exposed.\n * Called to bind the runtime to the container.\n * If the container is not attached to storage, then this would also be unknown to other clients.\n */\n bindToContext(): void;\n\n /**\n * @deprecated - This will be removed in favor of makeVisibleAndAttachGraph.\n * Runs through the graph and attaches the bound handles. Then binds this runtime to the container.\n */\n attachGraph(): void;\n\n /**\n * Makes the data store channel visible in the container. Also, runs through its graph and attaches all\n * bound handles that represent its dependencies in the container's graph.\n */\n makeVisibleAndAttachGraph?(): void;\n\n /**\n * Retrieves the summary used as part of the initial summary message\n */\n getAttachSummary(telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;\n\n /**\n * Processes the op.\n */\n process(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;\n\n /**\n * Processes the signal.\n */\n processSignal(message: any, local: boolean): void;\n\n /**\n * Generates a summary for the channel.\n * Introduced with summarizerNode - will be required in a future release.\n * @param fullTree - true to bypass optimizations and force a full summary tree.\n * @param trackState - This tells whether we should track state from this summary.\n * @param telemetryContext - summary data passed through the layers for telemetry purposes\n */\n summarize(\n fullTree?: boolean,\n trackState?: boolean,\n telemetryContext?: ITelemetryContext,\n ): Promise<ISummaryTreeWithStats>;\n\n /**\n * Returns the data used for garbage collection. This includes a list of GC nodes that represent this context\n * including any of its children. Each node has a list of outbound routes to other GC nodes in the document.\n * @param fullGC - true to bypass optimizations and force full generation of GC data.\n */\n getGCData(fullGC?: boolean): Promise<IGarbageCollectionData>;\n\n /**\n * After GC has run, called to notify this channel of routes that are used in it.\n * @param usedRoutes - The routes that are used in this channel.\n * @param gcTimestamp - The time when GC was run that generated these used routes. If any node becomes unreferenced\n * as part of this GC run, this should be used to update the time when it happens.\n */\n updateUsedRoutes(usedRoutes: string[], gcTimestamp?: number): void;\n\n /**\n * Notifies this object about changes in the connection state.\n * @param value - New connection state.\n * @param clientId - ID of the client. It's old ID when in disconnected state and\n * it's new client ID when we are connecting or connected.\n */\n setConnectionState(connected: boolean, clientId?: string);\n\n /**\n * Ask the DDS to resubmit a message. This could be because we reconnected and this message was not acked.\n * @param type - The type of the original message.\n * @param content - The content of the original message.\n * @param localOpMetadata - The local metadata associated with the original message.\n */\n reSubmit(type: string, content: any, localOpMetadata: unknown);\n\n applyStashedOp(content: any): Promise<unknown>;\n\n /**\n * Revert a local message.\n * @param type - The type of the original message.\n * @param content - The content of the original message.\n * @param localOpMetadata - The local metadata associated with the original message.\n */\n rollback?(type: string, content: any, localOpMetadata: unknown): void;\n}\n\nexport type CreateChildSummarizerNodeFn = (\n summarizeInternal: SummarizeInternalFn,\n getGCDataFn: (fullGC?: boolean) => Promise<IGarbageCollectionData>,\n getInitialGCSummaryDetailsFn: () => Promise<IGarbageCollectionSummaryDetails>,\n) => ISummarizerNodeWithGC;\n\nexport interface IFluidDataStoreContextEvents extends IEvent {\n (event: \"attaching\" | \"attached\", listener: () => void);\n}\n\n/**\n * Represents the context for the data store. It is used by the data store runtime to\n * get information and call functionality to the container.\n */\nexport interface IFluidDataStoreContext extends\n IEventProvider<IFluidDataStoreContextEvents>,\n Partial<IProvideFluidDataStoreRegistry>,\n IProvideFluidHandleContext {\n readonly id: string;\n /**\n * A data store created by a client, is a local data store for that client. Also, when a detached container loads\n * from a snapshot, all the data stores are treated as local data stores because at that stage the container\n * still doesn't exists in storage and so the data store couldn't have been created by any other client.\n * Value of this never changes even after the data store is attached.\n * As implementer of data store runtime, you can use this property to check that this data store belongs to this\n * client and hence implement any scenario based on that.\n */\n readonly isLocalDataStore: boolean;\n /**\n * The package path of the data store as per the package factory.\n */\n readonly packagePath: readonly string[];\n readonly options: ILoaderOptions;\n readonly clientId: string | undefined;\n readonly connected: boolean;\n readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;\n readonly storage: IDocumentStorageService;\n readonly baseSnapshot: ISnapshotTree | undefined;\n readonly logger: ITelemetryBaseLogger;\n readonly clientDetails: IClientDetails;\n /**\n * Indicates the attachment state of the data store to a host service.\n */\n readonly attachState: AttachState;\n\n readonly containerRuntime: IContainerRuntimeBase;\n\n /**\n * @deprecated 0.16 Issue #1635, #3631\n */\n readonly createProps?: any;\n\n /**\n * Ambient services provided with the context\n */\n readonly scope: FluidObject;\n\n /**\n * Returns the current quorum.\n */\n getQuorum(): IQuorumClients;\n\n /**\n * Returns the current audience.\n */\n getAudience(): IAudience;\n\n /**\n * Submits the message to be sent to other clients.\n * @param type - Type of the message.\n * @param content - Content of the message.\n * @param localOpMetadata - The local metadata associated with the message. This is kept locally and not sent to\n * the server. This will be sent back when this message is received back from the server. This is also sent if\n * we are asked to resubmit the message.\n */\n submitMessage(type: string, content: any, localOpMetadata: unknown): void;\n\n /**\n * Submits the signal to be sent to other clients.\n * @param type - Type of the signal.\n * @param content - Content of the signal.\n */\n submitSignal(type: string, content: any): void;\n\n /**\n * @deprecated - To be removed in favor of makeVisible.\n * Register the runtime to the container\n */\n bindToContext(): void;\n\n /**\n * Called to make the data store locally visible in the container. This happens automatically for root data stores\n * when they are marked as root. For non-root data stores, this happens when their handle is added to a visible DDS.\n */\n makeLocallyVisible?(): void;\n\n /**\n * Call by IFluidDataStoreChannel, indicates that a channel is dirty and needs to be part of the summary.\n * @param address - The address of the channel that is dirty.\n */\n setChannelDirty(address: string): void;\n\n /**\n * Get an absolute url to the container based on the provided relativeUrl.\n * Returns undefined if the container or data store isn't attached to storage.\n * @param relativeUrl - A relative request within the container\n */\n getAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;\n\n getCreateChildSummarizerNodeFn(\n /** Initial id or path part of this node */\n id: string,\n /**\n * Information needed to create the node.\n * If it is from a base summary, it will assert that a summary has been seen.\n * Attach information if it is created from an attach op.\n * If it is local, it will throw unsupported errors on calls to summarize.\n */\n createParam: CreateChildSummarizerNodeParam,\n ): CreateChildSummarizerNodeFn;\n\n uploadBlob(blob: ArrayBufferLike): Promise<IFluidHandle<ArrayBufferLike>>;\n\n /**\n * @deprecated - Renamed to getBaseGCDetails.\n */\n getInitialGCSummaryDetails(): Promise<IGarbageCollectionSummaryDetails>;\n\n /**\n * Returns the GC details in the initial summary of this data store. This is used to initialize the data store\n * and its children with the GC details from the previous summary.\n */\n getBaseGCDetails?(): Promise<IGarbageCollectionDetailsBase>;\n\n /**\n * Called when a new outbound reference is added to another node. This is used by garbage collection to identify\n * all references added in the system.\n * @param srcHandle - The handle of the node that added the reference.\n * @param outboundHandle - The handle of the outbound node that is referenced.\n */\n addedGCOutboundReference?(srcHandle: IFluidHandle, outboundHandle: IFluidHandle): void;\n}\n\nexport interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {\n /**\n * Binds a runtime to the context.\n */\n attachRuntime(\n factory: IProvideFluidDataStoreFactory,\n dataStoreRuntime: IFluidDataStoreChannel,\n ): Promise<void>;\n}\n"]}
1
+ {"version":3,"file":"dataStoreContext.js","sourceRoot":"","sources":["../src/dataStoreContext.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAwCH;;;GAGG;AACH,IAAY,SAWX;AAXD,WAAY,SAAS;IACpB;;OAEG;IACH,mDAAS,CAAA;IAET;;;OAGG;IACH,mDAAS,CAAA;AACV,CAAC,EAXW,SAAS,yBAAT,SAAS,QAWpB;AAED;;GAEG;AACH,IAAY,qBAWX;AAXD,WAAY,qBAAqB;IAChC;;;;;;;;OAQG;IACH,mEAAS,CAAA;AACV,CAAC,EAXW,qBAAqB,qCAArB,qBAAqB,QAWhC;AAED;;;;GAIG;AACU,QAAA,eAAe,GAAG;IAC9B;;OAEG;IACH,UAAU,EAAE,YAAY;IAExB;;;;OAIG;IACH,cAAc,EAAE,gBAAgB;IAEhC;;;;;;;;OAQG;IACH,eAAe,EAAE,iBAAiB;CAClC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tIEvent,\n\tIEventProvider,\n\tITelemetryBaseLogger,\n\tIDisposable,\n\tIProvideFluidHandleContext,\n\tIFluidHandle,\n\tIRequest,\n\tIResponse,\n\tFluidObject,\n} from \"@fluidframework/core-interfaces\";\nimport {\n\tIAudience,\n\tIDeltaManager,\n\tAttachState,\n\tILoaderOptions,\n} from \"@fluidframework/container-definitions\";\nimport { IDocumentStorageService } from \"@fluidframework/driver-definitions\";\nimport {\n\tIClientDetails,\n\tIDocumentMessage,\n\tIQuorumClients,\n\tISequencedDocumentMessage,\n\tISnapshotTree,\n} from \"@fluidframework/protocol-definitions\";\nimport { IIdCompressor } from \"@fluidframework/id-compressor\";\nimport { IProvideFluidDataStoreFactory } from \"./dataStoreFactory\";\nimport { IProvideFluidDataStoreRegistry } from \"./dataStoreRegistry\";\nimport { IGarbageCollectionData, IGarbageCollectionDetailsBase } from \"./garbageCollection\";\nimport { IInboundSignalMessage } from \"./protocol\";\nimport {\n\tCreateChildSummarizerNodeParam,\n\tISummarizerNodeWithGC,\n\tISummaryTreeWithStats,\n\tITelemetryContext,\n\tSummarizeInternalFn,\n} from \"./summary\";\n\n/**\n * Runtime flush mode handling\n * @alpha\n */\nexport enum FlushMode {\n\t/**\n\t * In Immediate flush mode the runtime will immediately send all operations to the driver layer.\n\t */\n\tImmediate,\n\n\t/**\n\t * When in TurnBased flush mode the runtime will buffer operations in the current turn and send them as a single\n\t * batch at the end of the turn. The flush call on the runtime can be used to force send the current batch.\n\t */\n\tTurnBased,\n}\n\n/**\n * @internal\n */\nexport enum FlushModeExperimental {\n\t/**\n\t * When in Async flush mode, the runtime will accumulate all operations across JS turns and send them as a single\n\t * batch when all micro-tasks are complete.\n\t *\n\t * This feature requires a version of the loader which supports reference sequence numbers. If an older version of\n\t * the loader is used, the runtime will fall back on FlushMode.TurnBased.\n\t *\n\t * @experimental - Not ready for use\n\t */\n\tAsync = 2,\n}\n\n/**\n * This tells the visibility state of a Fluid object. It basically tracks whether the object is not visible, visible\n * locally within the container only or visible globally to all clients.\n * @alpha\n */\nexport const VisibilityState = {\n\t/**\n\t * Indicates that the object is not visible. This is the state when an object is first created.\n\t */\n\tNotVisible: \"NotVisible\",\n\n\t/**\n\t * Indicates that the object is visible locally within the container. This is the state when an object is attached\n\t * to the container's graph but the container itself isn't globally visible. The object's state goes from not\n\t * visible to locally visible.\n\t */\n\tLocallyVisible: \"LocallyVisible\",\n\n\t/**\n\t * Indicates that the object is visible globally to all clients. This is the state of an object in 2 scenarios:\n\t *\n\t * 1. It is attached to the container's graph when the container is globally visible. The object's state goes from\n\t * not visible to globally visible.\n\t *\n\t * 2. When a container becomes globally visible, all locally visible objects go from locally visible to globally\n\t * visible.\n\t */\n\tGloballyVisible: \"GloballyVisible\",\n};\n/**\n * @alpha\n */\nexport type VisibilityState = (typeof VisibilityState)[keyof typeof VisibilityState];\n\n/**\n * @alpha\n */\nexport interface IContainerRuntimeBaseEvents extends IEvent {\n\t(event: \"batchBegin\", listener: (op: ISequencedDocumentMessage) => void);\n\t/**\n\t * @param runtimeMessage - tells if op is runtime op. If it is, it was unpacked, i.e. it's type and content\n\t * represent internal container runtime type / content.\n\t */\n\t(event: \"op\", listener: (op: ISequencedDocumentMessage, runtimeMessage?: boolean) => void);\n\t(event: \"batchEnd\", listener: (error: any, op: ISequencedDocumentMessage) => void);\n\t(event: \"signal\", listener: (message: IInboundSignalMessage, local: boolean) => void);\n}\n\n/**\n * Encapsulates the return codes of the aliasing API.\n *\n * 'Success' - the datastore has been successfully aliased. It can now be used.\n * 'Conflict' - there is already a datastore bound to the provided alias. To acquire it's entry point, use\n * the `IContainerRuntime.getAliasedDataStoreEntryPoint` function. The current datastore should be discarded\n * and will be garbage collected. The current datastore cannot be aliased to a different value.\n * 'AlreadyAliased' - the datastore has already been previously bound to another alias name.\n * @alpha\n */\nexport type AliasResult = \"Success\" | \"Conflict\" | \"AlreadyAliased\";\n\n/**\n * Exposes some functionality/features of a data store:\n * - Handle to the data store's entryPoint\n * - Fluid router for the data store\n * - Can be assigned an alias\n * @alpha\n */\nexport interface IDataStore {\n\t/**\n\t * Attempt to assign an alias to the datastore.\n\t * If the operation succeeds, the datastore can be referenced\n\t * by the supplied alias and will not be garbage collected.\n\t *\n\t * @param alias - Given alias for this datastore.\n\t * @returns A promise with the {@link AliasResult}\n\t */\n\ttrySetAlias(alias: string): Promise<AliasResult>;\n\n\t/**\n\t * Exposes a handle to the root object / entryPoint of the data store. Use this as the primary way of interacting\n\t * with it.\n\t */\n\treadonly entryPoint: IFluidHandle<FluidObject>;\n}\n\n/**\n * A reduced set of functionality of IContainerRuntime that a data store context/data store runtime will need\n * TODO: this should be merged into IFluidDataStoreContext\n * @alpha\n */\nexport interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeBaseEvents> {\n\treadonly logger: ITelemetryBaseLogger;\n\treadonly clientDetails: IClientDetails;\n\n\t/**\n\t * Invokes the given callback and guarantees that all operations generated within the callback will be ordered\n\t * sequentially. Total size of all messages must be less than maxOpSize.\n\t */\n\torderSequentially(callback: () => void): void;\n\n\t/**\n\t * Submits a container runtime level signal to be sent to other clients.\n\t * @param type - Type of the signal.\n\t * @param content - Content of the signal.\n\t */\n\tsubmitSignal(type: string, content: any): void;\n\n\t/**\n\t * @deprecated 0.16 Issue #1537, #3631\n\t */\n\t_createDataStoreWithProps(\n\t\tpkg: string | string[],\n\t\tprops?: any,\n\t\tid?: string,\n\t): Promise<IDataStore>;\n\n\t/**\n\t * Creates a data store and returns an object that exposes a handle to the data store's entryPoint, and also serves\n\t * as the data store's router. The data store is not bound to a container, and in such state is not persisted to\n\t * storage (file). Storing the entryPoint handle (or any other handle inside the data store, e.g. for DDS) into an\n\t * already attached DDS (or non-attached DDS that will eventually get attached to storage) will result in this\n\t * store being attached to storage.\n\t * @param pkg - Package name of the data store factory\n\t */\n\tcreateDataStore(pkg: string | string[]): Promise<IDataStore>;\n\n\t/**\n\t * Creates detached data store context. Only after context.attachRuntime() is called,\n\t * data store initialization is considered complete.\n\t */\n\tcreateDetachedDataStore(pkg: Readonly<string[]>): IFluidDataStoreContextDetached;\n\n\t/**\n\t * Get an absolute url for a provided container-relative request.\n\t * Returns undefined if the container or data store isn't attached to storage.\n\t * @param relativeUrl - A relative request within the container\n\t */\n\tgetAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;\n\n\tuploadBlob(blob: ArrayBufferLike, signal?: AbortSignal): Promise<IFluidHandle<ArrayBufferLike>>;\n\n\t/**\n\t * Returns the current quorum.\n\t */\n\tgetQuorum(): IQuorumClients;\n\n\t/**\n\t * Returns the current audience.\n\t */\n\tgetAudience(): IAudience;\n}\n\n/**\n * Minimal interface a data store runtime needs to provide for IFluidDataStoreContext to bind to control.\n *\n * Functionality include attach, snapshot, op/signal processing, request routes, expose an entryPoint,\n * and connection state notifications\n * @alpha\n */\nexport interface IFluidDataStoreChannel extends IDisposable {\n\treadonly id: string;\n\n\t/**\n\t * Indicates the attachment state of the channel to a host service.\n\t */\n\treadonly attachState: AttachState;\n\n\treadonly visibilityState: VisibilityState;\n\n\t/**\n\t * Runs through the graph and attaches the bound handles. Then binds this runtime to the container.\n\t * @deprecated This will be removed in favor of {@link IFluidDataStoreChannel.makeVisibleAndAttachGraph}.\n\t */\n\tattachGraph(): void;\n\n\t/**\n\t * Makes the data store channel visible in the container. Also, runs through its graph and attaches all\n\t * bound handles that represent its dependencies in the container's graph.\n\t */\n\tmakeVisibleAndAttachGraph(): void;\n\n\t/**\n\t * Retrieves the summary used as part of the initial summary message\n\t */\n\tgetAttachSummary(telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;\n\n\t/**\n\t * Processes the op.\n\t */\n\tprocess(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;\n\n\t/**\n\t * Processes the signal.\n\t */\n\tprocessSignal(message: any, local: boolean): void;\n\n\t/**\n\t * Generates a summary for the channel.\n\t * Introduced with summarizerNode - will be required in a future release.\n\t * @param fullTree - true to bypass optimizations and force a full summary tree.\n\t * @param trackState - This tells whether we should track state from this summary.\n\t * @param telemetryContext - summary data passed through the layers for telemetry purposes\n\t */\n\tsummarize(\n\t\tfullTree?: boolean,\n\t\ttrackState?: boolean,\n\t\ttelemetryContext?: ITelemetryContext,\n\t): Promise<ISummaryTreeWithStats>;\n\n\t/**\n\t * Returns the data used for garbage collection. This includes a list of GC nodes that represent this context\n\t * including any of its children. Each node has a list of outbound routes to other GC nodes in the document.\n\t * @param fullGC - true to bypass optimizations and force full generation of GC data.\n\t */\n\tgetGCData(fullGC?: boolean): Promise<IGarbageCollectionData>;\n\n\t/**\n\t * After GC has run, called to notify this channel of routes that are used in it.\n\t * @param usedRoutes - The routes that are used in this channel.\n\t */\n\tupdateUsedRoutes(usedRoutes: string[]): void;\n\n\t/**\n\t * Notifies this object about changes in the connection state.\n\t * @param value - New connection state.\n\t * @param clientId - ID of the client. It's old ID when in disconnected state and\n\t * it's new client ID when we are connecting or connected.\n\t */\n\tsetConnectionState(connected: boolean, clientId?: string);\n\n\t/**\n\t * Ask the DDS to resubmit a message. This could be because we reconnected and this message was not acked.\n\t * @param type - The type of the original message.\n\t * @param content - The content of the original message.\n\t * @param localOpMetadata - The local metadata associated with the original message.\n\t */\n\treSubmit(type: string, content: any, localOpMetadata: unknown);\n\n\tapplyStashedOp(content: any): Promise<unknown>;\n\n\t/**\n\t * Revert a local message.\n\t * @param type - The type of the original message.\n\t * @param content - The content of the original message.\n\t * @param localOpMetadata - The local metadata associated with the original message.\n\t */\n\trollback?(type: string, content: any, localOpMetadata: unknown): void;\n\n\t/**\n\t * Exposes a handle to the root object / entryPoint of the component. Use this as the primary way of interacting\n\t * with the component.\n\t */\n\treadonly entryPoint: IFluidHandle<FluidObject>;\n\n\trequest(request: IRequest): Promise<IResponse>;\n}\n\n/**\n * @alpha\n */\nexport type CreateChildSummarizerNodeFn = (\n\tsummarizeInternal: SummarizeInternalFn,\n\tgetGCDataFn: (fullGC?: boolean) => Promise<IGarbageCollectionData>,\n\t/**\n\t * @deprecated The functionality to get base GC details has been moved to summarizer node.\n\t */\n\tgetBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,\n) => ISummarizerNodeWithGC;\n\n/**\n * @alpha\n */\nexport interface IFluidDataStoreContextEvents extends IEvent {\n\t(event: \"attaching\" | \"attached\", listener: () => void);\n}\n\n/**\n * Represents the context for the data store. It is used by the data store runtime to\n * get information and call functionality to the container.\n * @alpha\n */\nexport interface IFluidDataStoreContext\n\textends IEventProvider<IFluidDataStoreContextEvents>,\n\t\tPartial<IProvideFluidDataStoreRegistry>,\n\t\tIProvideFluidHandleContext {\n\treadonly id: string;\n\t/**\n\t * A data store created by a client, is a local data store for that client. Also, when a detached container loads\n\t * from a snapshot, all the data stores are treated as local data stores because at that stage the container\n\t * still doesn't exists in storage and so the data store couldn't have been created by any other client.\n\t * Value of this never changes even after the data store is attached.\n\t * As implementer of data store runtime, you can use this property to check that this data store belongs to this\n\t * client and hence implement any scenario based on that.\n\t */\n\treadonly isLocalDataStore: boolean;\n\t/**\n\t * The package path of the data store as per the package factory.\n\t */\n\treadonly packagePath: readonly string[];\n\treadonly options: ILoaderOptions;\n\treadonly clientId: string | undefined;\n\treadonly connected: boolean;\n\treadonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;\n\treadonly storage: IDocumentStorageService;\n\treadonly baseSnapshot: ISnapshotTree | undefined;\n\treadonly logger: ITelemetryBaseLogger;\n\treadonly clientDetails: IClientDetails;\n\treadonly idCompressor?: IIdCompressor;\n\t/**\n\t * Indicates the attachment state of the data store to a host service.\n\t */\n\treadonly attachState: AttachState;\n\n\treadonly containerRuntime: IContainerRuntimeBase;\n\n\t/**\n\t * @deprecated 0.16 Issue #1635, #3631\n\t */\n\treadonly createProps?: any;\n\n\t/**\n\t * Ambient services provided with the context\n\t */\n\treadonly scope: FluidObject;\n\n\t/**\n\t * Returns the current quorum.\n\t */\n\tgetQuorum(): IQuorumClients;\n\n\t/**\n\t * Returns the current audience.\n\t */\n\tgetAudience(): IAudience;\n\n\t/**\n\t * Invokes the given callback and expects that no ops are submitted\n\t * until execution finishes. If an op is submitted, an error will be raised.\n\t *\n\t * Can be disabled by feature gate `Fluid.ContainerRuntime.DisableOpReentryCheck`\n\t *\n\t * @param callback - the callback to be invoked\n\t */\n\tensureNoDataModelChanges<T>(callback: () => T): T;\n\n\t/**\n\t * Submits the message to be sent to other clients.\n\t * @param type - Type of the message.\n\t * @param content - Content of the message.\n\t * @param localOpMetadata - The local metadata associated with the message. This is kept locally and not sent to\n\t * the server. This will be sent back when this message is received back from the server. This is also sent if\n\t * we are asked to resubmit the message.\n\t */\n\tsubmitMessage(type: string, content: any, localOpMetadata: unknown): void;\n\n\t/**\n\t * Submits the signal to be sent to other clients.\n\t * @param type - Type of the signal.\n\t * @param content - Content of the signal.\n\t * @param targetClientId - When specified, the signal is only sent to the provided client id.\n\t */\n\tsubmitSignal(type: string, content: any, targetClientId?: string): void;\n\n\t/**\n\t * Called to make the data store locally visible in the container. This happens automatically for root data stores\n\t * when they are marked as root. For non-root data stores, this happens when their handle is added to a visible DDS.\n\t */\n\tmakeLocallyVisible(): void;\n\n\t/**\n\t * Call by IFluidDataStoreChannel, indicates that a channel is dirty and needs to be part of the summary.\n\t * @param address - The address of the channel that is dirty.\n\t */\n\tsetChannelDirty(address: string): void;\n\n\t/**\n\t * Get an absolute url to the container based on the provided relativeUrl.\n\t * Returns undefined if the container or data store isn't attached to storage.\n\t * @param relativeUrl - A relative request within the container\n\t */\n\tgetAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;\n\n\tgetCreateChildSummarizerNodeFn(\n\t\t/**\n\t\t * Initial id or path part of this node\n\t\t */\n\t\tid: string,\n\t\t/**\n\t\t * Information needed to create the node.\n\t\t * If it is from a base summary, it will assert that a summary has been seen.\n\t\t * Attach information if it is created from an attach op.\n\t\t * If it is local, it will throw unsupported errors on calls to summarize.\n\t\t */\n\t\tcreateParam: CreateChildSummarizerNodeParam,\n\t): CreateChildSummarizerNodeFn;\n\n\tuploadBlob(blob: ArrayBufferLike, signal?: AbortSignal): Promise<IFluidHandle<ArrayBufferLike>>;\n\n\t/**\n\t * @deprecated The functionality to get base GC details has been moved to summarizer node.\n\t *\n\t * Returns the GC details in the initial summary of this data store. This is used to initialize the data store\n\t * and its children with the GC details from the previous summary.\n\t */\n\tgetBaseGCDetails(): Promise<IGarbageCollectionDetailsBase>;\n\n\t/**\n\t * Called when a new outbound reference is added to another node. This is used by garbage collection to identify\n\t * all references added in the system.\n\t * @param srcHandle - The handle of the node that added the reference.\n\t * @param outboundHandle - The handle of the outbound node that is referenced.\n\t */\n\taddedGCOutboundReference?(srcHandle: IFluidHandle, outboundHandle: IFluidHandle): void;\n}\n\n/**\n * @alpha\n */\nexport interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {\n\t/**\n\t * Binds a runtime to the context.\n\t */\n\tattachRuntime(\n\t\tfactory: IProvideFluidDataStoreFactory,\n\t\tdataStoreRuntime: IFluidDataStoreChannel,\n\t): Promise<void>;\n}\n"]}
@@ -3,13 +3,20 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  import { IFluidDataStoreContext, IFluidDataStoreChannel } from "./dataStoreContext";
6
+ /**
7
+ * @alpha
8
+ */
6
9
  export declare const IFluidDataStoreFactory: keyof IProvideFluidDataStoreFactory;
10
+ /**
11
+ * @alpha
12
+ */
7
13
  export interface IProvideFluidDataStoreFactory {
8
14
  readonly IFluidDataStoreFactory: IFluidDataStoreFactory;
9
15
  }
10
16
  /**
11
17
  * IFluidDataStoreFactory create data stores. It is associated with an identifier (its `type` member)
12
18
  * and usually provided to consumers using this mapping through a data store registry.
19
+ * @alpha
13
20
  */
14
21
  export interface IFluidDataStoreFactory extends IProvideFluidDataStoreFactory {
15
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dataStoreFactory.d.ts","sourceRoot":"","sources":["../src/dataStoreFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEpF,eAAO,MAAM,sBAAsB,EAAE,MAAM,6BAAwD,CAAC;AAEpG,MAAM,WAAW,6BAA6B;IAC1C,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;CAC3D;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,6BAA6B;IACzE;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC7G"}
1
+ {"version":3,"file":"dataStoreFactory.d.ts","sourceRoot":"","sources":["../src/dataStoreFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEpF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,6BAAwD,CAAC;AAEpG;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;CACxD;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,6BAA6B;IAC5E;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,oBAAoB,CACnB,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,OAAO,GACf,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACnC"}
@@ -5,5 +5,8 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.IFluidDataStoreFactory = void 0;
8
+ /**
9
+ * @alpha
10
+ */
8
11
  exports.IFluidDataStoreFactory = "IFluidDataStoreFactory";
9
12
  //# sourceMappingURL=dataStoreFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataStoreFactory.js","sourceRoot":"","sources":["../src/dataStoreFactory.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIU,QAAA,sBAAsB,GAAwC,wBAAwB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidDataStoreContext, IFluidDataStoreChannel } from \"./dataStoreContext\";\n\nexport const IFluidDataStoreFactory: keyof IProvideFluidDataStoreFactory = \"IFluidDataStoreFactory\";\n\nexport interface IProvideFluidDataStoreFactory {\n readonly IFluidDataStoreFactory: IFluidDataStoreFactory;\n}\n\n/**\n * IFluidDataStoreFactory create data stores. It is associated with an identifier (its `type` member)\n * and usually provided to consumers using this mapping through a data store registry.\n */\nexport interface IFluidDataStoreFactory extends IProvideFluidDataStoreFactory {\n /**\n * String that uniquely identifies the type of data store created by this factory.\n */\n type: string;\n\n /**\n * Generates runtime for the data store from the data store context. Once created should be bound to the context.\n * @param context - Context for the data store.\n * @param existing - If instantiating from an existing file.\n */\n instantiateDataStore(context: IFluidDataStoreContext, existing: boolean): Promise<IFluidDataStoreChannel>;\n}\n"]}
1
+ {"version":3,"file":"dataStoreFactory.js","sourceRoot":"","sources":["../src/dataStoreFactory.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;;GAEG;AACU,QAAA,sBAAsB,GAAwC,wBAAwB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidDataStoreContext, IFluidDataStoreChannel } from \"./dataStoreContext\";\n\n/**\n * @alpha\n */\nexport const IFluidDataStoreFactory: keyof IProvideFluidDataStoreFactory = \"IFluidDataStoreFactory\";\n\n/**\n * @alpha\n */\nexport interface IProvideFluidDataStoreFactory {\n\treadonly IFluidDataStoreFactory: IFluidDataStoreFactory;\n}\n\n/**\n * IFluidDataStoreFactory create data stores. It is associated with an identifier (its `type` member)\n * and usually provided to consumers using this mapping through a data store registry.\n * @alpha\n */\nexport interface IFluidDataStoreFactory extends IProvideFluidDataStoreFactory {\n\t/**\n\t * String that uniquely identifies the type of data store created by this factory.\n\t */\n\ttype: string;\n\n\t/**\n\t * Generates runtime for the data store from the data store context. Once created should be bound to the context.\n\t * @param context - Context for the data store.\n\t * @param existing - If instantiating from an existing file.\n\t */\n\tinstantiateDataStore(\n\t\tcontext: IFluidDataStoreContext,\n\t\texisting: boolean,\n\t): Promise<IFluidDataStoreChannel>;\n}\n"]}
@@ -5,25 +5,35 @@
5
5
  import { IProvideFluidDataStoreFactory } from "./dataStoreFactory";
6
6
  /**
7
7
  * A single registry entry that may be used to create data stores
8
- * It has to have either factory or registry, or both.
8
+ * It has to have either factory or registry, or both.
9
+ * @alpha
9
10
  */
10
- export declare type FluidDataStoreRegistryEntry = Readonly<Partial<IProvideFluidDataStoreRegistry & IProvideFluidDataStoreFactory>>;
11
+ export type FluidDataStoreRegistryEntry = Readonly<Partial<IProvideFluidDataStoreRegistry & IProvideFluidDataStoreFactory>>;
11
12
  /**
12
13
  * An associated pair of an identifier and registry entry. Registry entries
13
14
  * may be dynamically loaded.
15
+ * @alpha
14
16
  */
15
- export declare type NamedFluidDataStoreRegistryEntry = [string, Promise<FluidDataStoreRegistryEntry>];
17
+ export type NamedFluidDataStoreRegistryEntry = [string, Promise<FluidDataStoreRegistryEntry>];
16
18
  /**
17
19
  * An iterable identifier/registry entry pair list
20
+ * @alpha
21
+ */
22
+ export type NamedFluidDataStoreRegistryEntries = Iterable<NamedFluidDataStoreRegistryEntry>;
23
+ /**
24
+ * @alpha
18
25
  */
19
- export declare type NamedFluidDataStoreRegistryEntries = Iterable<NamedFluidDataStoreRegistryEntry>;
20
26
  export declare const IFluidDataStoreRegistry: keyof IProvideFluidDataStoreRegistry;
27
+ /**
28
+ * @alpha
29
+ */
21
30
  export interface IProvideFluidDataStoreRegistry {
22
31
  readonly IFluidDataStoreRegistry: IFluidDataStoreRegistry;
23
32
  }
24
33
  /**
25
34
  * An association of identifiers to data store registry entries, where the
26
35
  * entries can be used to create data stores.
36
+ * @alpha
27
37
  */
28
38
  export interface IFluidDataStoreRegistry extends IProvideFluidDataStoreRegistry {
29
39
  get(name: string): Promise<FluidDataStoreRegistryEntry | undefined>;