@fluidframework/runtime-definitions 2.0.0-dev.7.4.0.216897 → 2.0.0-dev.7.4.0.217884
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/api-report/runtime-definitions.api.md +47 -47
- package/dist/dataStoreContext.d.ts +12 -12
- package/dist/dataStoreContext.js +2 -2
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreFactory.d.ts +3 -3
- package/dist/dataStoreFactory.js +1 -1
- package/dist/dataStoreFactory.js.map +1 -1
- package/dist/dataStoreRegistry.d.ts +6 -6
- package/dist/dataStoreRegistry.js +1 -1
- package/dist/dataStoreRegistry.js.map +1 -1
- package/dist/garbageCollection.d.ts +2 -2
- package/dist/garbageCollection.js.map +1 -1
- package/dist/id-compressor/idCompressor.d.ts +2 -2
- package/dist/id-compressor/idCompressor.js.map +1 -1
- package/dist/id-compressor/identifiers.d.ts +4 -4
- package/dist/id-compressor/identifiers.js.map +1 -1
- package/dist/id-compressor/persisted-types/0.0.1.d.ts +4 -4
- package/dist/id-compressor/persisted-types/0.0.1.js.map +1 -1
- package/dist/protocol.d.ts +1 -1
- package/dist/protocol.js.map +1 -1
- package/dist/runtime-definitions-alpha.d.ts +1073 -111
- package/dist/runtime-definitions-untrimmed.d.ts +47 -47
- package/dist/summary.d.ts +13 -13
- package/dist/summary.js +1 -1
- package/dist/summary.js.map +1 -1
- package/lib/runtime-definitions-alpha.d.ts +1073 -111
- package/lib/runtime-definitions-untrimmed.d.ts +47 -47
- package/package.json +4 -4
- package/src/dataStoreContext.ts +12 -12
- package/src/dataStoreFactory.ts +3 -3
- package/src/dataStoreRegistry.ts +6 -6
- package/src/garbageCollection.ts +2 -2
- package/src/id-compressor/idCompressor.ts +2 -2
- package/src/id-compressor/identifiers.ts +4 -4
- package/src/id-compressor/persisted-types/0.0.1.ts +4 -4
- package/src/protocol.ts +1 -1
- package/src/summary.ts +13 -13
|
@@ -32,7 +32,7 @@ import type { IUser } from '@fluidframework/protocol-definitions';
|
|
|
32
32
|
import { SummaryTree } from '@fluidframework/protocol-definitions';
|
|
33
33
|
import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
34
34
|
|
|
35
|
-
// @
|
|
35
|
+
// @alpha
|
|
36
36
|
export type AliasResult = "Success" | "Conflict" | "AlreadyAliased";
|
|
37
37
|
|
|
38
38
|
// @internal
|
|
@@ -50,11 +50,11 @@ export const blobCountPropertyName = "BlobCount";
|
|
|
50
50
|
// @internal (undocumented)
|
|
51
51
|
export const channelsTreeName = ".channels";
|
|
52
52
|
|
|
53
|
-
// @
|
|
53
|
+
// @alpha (undocumented)
|
|
54
54
|
export type CreateChildSummarizerNodeFn = (summarizeInternal: SummarizeInternalFn, getGCDataFn: (fullGC?: boolean) => Promise<IGarbageCollectionData>,
|
|
55
55
|
getBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>) => ISummarizerNodeWithGC;
|
|
56
56
|
|
|
57
|
-
// @
|
|
57
|
+
// @alpha (undocumented)
|
|
58
58
|
export type CreateChildSummarizerNodeParam = {
|
|
59
59
|
type: CreateSummarizerNodeSource.FromSummary;
|
|
60
60
|
} | {
|
|
@@ -65,7 +65,7 @@ export type CreateChildSummarizerNodeParam = {
|
|
|
65
65
|
type: CreateSummarizerNodeSource.Local;
|
|
66
66
|
};
|
|
67
67
|
|
|
68
|
-
// @
|
|
68
|
+
// @alpha (undocumented)
|
|
69
69
|
export enum CreateSummarizerNodeSource {
|
|
70
70
|
// (undocumented)
|
|
71
71
|
FromAttach = 1,
|
|
@@ -82,10 +82,10 @@ export interface DetachedAttributionKey {
|
|
|
82
82
|
type: "detached";
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
// @
|
|
85
|
+
// @alpha
|
|
86
86
|
export type FluidDataStoreRegistryEntry = Readonly<Partial<IProvideFluidDataStoreRegistry & IProvideFluidDataStoreFactory>>;
|
|
87
87
|
|
|
88
|
-
// @
|
|
88
|
+
// @alpha
|
|
89
89
|
export enum FlushMode {
|
|
90
90
|
Immediate = 0,
|
|
91
91
|
TurnBased = 1
|
|
@@ -115,7 +115,7 @@ export interface IAttachMessage {
|
|
|
115
115
|
type: string;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
// @
|
|
118
|
+
// @alpha
|
|
119
119
|
export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeBaseEvents> {
|
|
120
120
|
// (undocumented)
|
|
121
121
|
readonly clientDetails: IClientDetails;
|
|
@@ -138,7 +138,7 @@ export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeB
|
|
|
138
138
|
uploadBlob(blob: ArrayBufferLike, signal?: AbortSignal): Promise<IFluidHandle<ArrayBufferLike>>;
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
-
// @
|
|
141
|
+
// @alpha (undocumented)
|
|
142
142
|
export interface IContainerRuntimeBaseEvents extends IEvent {
|
|
143
143
|
// (undocumented)
|
|
144
144
|
(event: "batchBegin", listener: (op: ISequencedDocumentMessage) => void): any;
|
|
@@ -150,7 +150,7 @@ export interface IContainerRuntimeBaseEvents extends IEvent {
|
|
|
150
150
|
(event: "signal", listener: (message: IInboundSignalMessage, local: boolean) => void): any;
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
-
// @
|
|
153
|
+
// @alpha
|
|
154
154
|
export interface IDataStore {
|
|
155
155
|
readonly entryPoint: IFluidHandle<FluidObject>;
|
|
156
156
|
// @deprecated (undocumented)
|
|
@@ -165,7 +165,7 @@ export interface IDataStore {
|
|
|
165
165
|
trySetAlias(alias: string): Promise<AliasResult>;
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
// @
|
|
168
|
+
// @alpha
|
|
169
169
|
export interface IdCreationRange {
|
|
170
170
|
// (undocumented)
|
|
171
171
|
readonly ids?: {
|
|
@@ -182,14 +182,14 @@ export interface IEnvelope {
|
|
|
182
182
|
contents: any;
|
|
183
183
|
}
|
|
184
184
|
|
|
185
|
-
// @
|
|
185
|
+
// @alpha
|
|
186
186
|
export interface IExperimentalIncrementalSummaryContext {
|
|
187
187
|
latestSummarySequenceNumber: number;
|
|
188
188
|
summaryPath: string;
|
|
189
189
|
summarySequenceNumber: number;
|
|
190
190
|
}
|
|
191
191
|
|
|
192
|
-
// @
|
|
192
|
+
// @alpha
|
|
193
193
|
export interface IFluidDataStoreChannel extends IDisposable {
|
|
194
194
|
// (undocumented)
|
|
195
195
|
applyStashedOp(content: any): Promise<unknown>;
|
|
@@ -217,7 +217,7 @@ export interface IFluidDataStoreChannel extends IDisposable {
|
|
|
217
217
|
readonly visibilityState: VisibilityState;
|
|
218
218
|
}
|
|
219
219
|
|
|
220
|
-
// @
|
|
220
|
+
// @alpha
|
|
221
221
|
export interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreContextEvents>, Partial<IProvideFluidDataStoreRegistry>, IProvideFluidHandleContext {
|
|
222
222
|
addedGCOutboundReference?(srcHandle: IFluidHandle, outboundHandle: IFluidHandle): void;
|
|
223
223
|
readonly attachState: AttachState;
|
|
@@ -266,49 +266,49 @@ export interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreCo
|
|
|
266
266
|
uploadBlob(blob: ArrayBufferLike, signal?: AbortSignal): Promise<IFluidHandle<ArrayBufferLike>>;
|
|
267
267
|
}
|
|
268
268
|
|
|
269
|
-
// @
|
|
269
|
+
// @alpha (undocumented)
|
|
270
270
|
export interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {
|
|
271
271
|
attachRuntime(factory: IProvideFluidDataStoreFactory, dataStoreRuntime: IFluidDataStoreChannel): Promise<void>;
|
|
272
272
|
}
|
|
273
273
|
|
|
274
|
-
// @
|
|
274
|
+
// @alpha (undocumented)
|
|
275
275
|
export interface IFluidDataStoreContextEvents extends IEvent {
|
|
276
276
|
// (undocumented)
|
|
277
277
|
(event: "attaching" | "attached", listener: () => void): any;
|
|
278
278
|
}
|
|
279
279
|
|
|
280
|
-
// @
|
|
280
|
+
// @alpha (undocumented)
|
|
281
281
|
export const IFluidDataStoreFactory: keyof IProvideFluidDataStoreFactory;
|
|
282
282
|
|
|
283
|
-
// @
|
|
283
|
+
// @alpha
|
|
284
284
|
export interface IFluidDataStoreFactory extends IProvideFluidDataStoreFactory {
|
|
285
285
|
instantiateDataStore(context: IFluidDataStoreContext, existing: boolean): Promise<IFluidDataStoreChannel>;
|
|
286
286
|
type: string;
|
|
287
287
|
}
|
|
288
288
|
|
|
289
|
-
// @
|
|
289
|
+
// @alpha (undocumented)
|
|
290
290
|
export const IFluidDataStoreRegistry: keyof IProvideFluidDataStoreRegistry;
|
|
291
291
|
|
|
292
|
-
// @
|
|
292
|
+
// @alpha
|
|
293
293
|
export interface IFluidDataStoreRegistry extends IProvideFluidDataStoreRegistry {
|
|
294
294
|
// (undocumented)
|
|
295
295
|
get(name: string): Promise<FluidDataStoreRegistryEntry | undefined>;
|
|
296
296
|
}
|
|
297
297
|
|
|
298
|
-
// @
|
|
298
|
+
// @alpha
|
|
299
299
|
export interface IGarbageCollectionData {
|
|
300
300
|
gcNodes: {
|
|
301
301
|
[id: string]: string[];
|
|
302
302
|
};
|
|
303
303
|
}
|
|
304
304
|
|
|
305
|
-
// @
|
|
305
|
+
// @alpha
|
|
306
306
|
export interface IGarbageCollectionDetailsBase {
|
|
307
307
|
gcData?: IGarbageCollectionData;
|
|
308
308
|
usedRoutes?: string[];
|
|
309
309
|
}
|
|
310
310
|
|
|
311
|
-
// @
|
|
311
|
+
// @alpha
|
|
312
312
|
export interface IIdCompressor {
|
|
313
313
|
decompress(id: SessionSpaceCompressedId): StableId;
|
|
314
314
|
generateCompressedId(): SessionSpaceCompressedId;
|
|
@@ -320,7 +320,7 @@ export interface IIdCompressor {
|
|
|
320
320
|
tryRecompress(uncompressed: StableId): SessionSpaceCompressedId | undefined;
|
|
321
321
|
}
|
|
322
322
|
|
|
323
|
-
// @
|
|
323
|
+
// @alpha (undocumented)
|
|
324
324
|
export interface IIdCompressorCore {
|
|
325
325
|
finalizeCreationRange(range: IdCreationRange): void;
|
|
326
326
|
serialize(withSession: true): SerializedIdCompressorWithOngoingSession;
|
|
@@ -328,7 +328,7 @@ export interface IIdCompressorCore {
|
|
|
328
328
|
takeNextCreationRange(): IdCreationRange;
|
|
329
329
|
}
|
|
330
330
|
|
|
331
|
-
// @
|
|
331
|
+
// @alpha
|
|
332
332
|
export interface IInboundSignalMessage extends ISignalMessage {
|
|
333
333
|
// (undocumented)
|
|
334
334
|
type: string;
|
|
@@ -342,13 +342,13 @@ export type InboundAttachMessage = Omit<IAttachMessage, "snapshot"> & {
|
|
|
342
342
|
// @internal
|
|
343
343
|
export const initialClusterCapacity = 512;
|
|
344
344
|
|
|
345
|
-
// @
|
|
345
|
+
// @alpha (undocumented)
|
|
346
346
|
export interface IProvideFluidDataStoreFactory {
|
|
347
347
|
// (undocumented)
|
|
348
348
|
readonly IFluidDataStoreFactory: IFluidDataStoreFactory;
|
|
349
349
|
}
|
|
350
350
|
|
|
351
|
-
// @
|
|
351
|
+
// @alpha (undocumented)
|
|
352
352
|
export interface IProvideFluidDataStoreRegistry {
|
|
353
353
|
// (undocumented)
|
|
354
354
|
readonly IFluidDataStoreRegistry: IFluidDataStoreRegistry;
|
|
@@ -364,14 +364,14 @@ export interface ISignalEnvelope {
|
|
|
364
364
|
};
|
|
365
365
|
}
|
|
366
366
|
|
|
367
|
-
// @
|
|
367
|
+
// @alpha
|
|
368
368
|
export interface ISummarizeInternalResult extends ISummarizeResult {
|
|
369
369
|
// (undocumented)
|
|
370
370
|
id: string;
|
|
371
371
|
pathPartsForChildren?: string[];
|
|
372
372
|
}
|
|
373
373
|
|
|
374
|
-
// @
|
|
374
|
+
// @alpha
|
|
375
375
|
export interface ISummarizeResult {
|
|
376
376
|
// (undocumented)
|
|
377
377
|
stats: ISummaryStats;
|
|
@@ -379,7 +379,7 @@ export interface ISummarizeResult {
|
|
|
379
379
|
summary: SummaryTree;
|
|
380
380
|
}
|
|
381
381
|
|
|
382
|
-
// @
|
|
382
|
+
// @alpha (undocumented)
|
|
383
383
|
export interface ISummarizerNode {
|
|
384
384
|
// (undocumented)
|
|
385
385
|
createChild(
|
|
@@ -397,18 +397,18 @@ export interface ISummarizerNode {
|
|
|
397
397
|
updateBaseSummaryState(snapshot: ISnapshotTree): void;
|
|
398
398
|
}
|
|
399
399
|
|
|
400
|
-
// @
|
|
400
|
+
// @alpha (undocumented)
|
|
401
401
|
export interface ISummarizerNodeConfig {
|
|
402
402
|
readonly canReuseHandle?: boolean;
|
|
403
403
|
readonly throwOnFailure?: true;
|
|
404
404
|
}
|
|
405
405
|
|
|
406
|
-
// @
|
|
406
|
+
// @alpha (undocumented)
|
|
407
407
|
export interface ISummarizerNodeConfigWithGC extends ISummarizerNodeConfig {
|
|
408
408
|
readonly gcDisabled?: boolean;
|
|
409
409
|
}
|
|
410
410
|
|
|
411
|
-
// @
|
|
411
|
+
// @alpha
|
|
412
412
|
export interface ISummarizerNodeWithGC extends ISummarizerNode {
|
|
413
413
|
// (undocumented)
|
|
414
414
|
createChild(
|
|
@@ -425,7 +425,7 @@ export interface ISummarizerNodeWithGC extends ISummarizerNode {
|
|
|
425
425
|
updateUsedRoutes(usedRoutes: string[]): void;
|
|
426
426
|
}
|
|
427
427
|
|
|
428
|
-
// @
|
|
428
|
+
// @alpha
|
|
429
429
|
export interface ISummaryStats {
|
|
430
430
|
// (undocumented)
|
|
431
431
|
blobNodeCount: number;
|
|
@@ -439,13 +439,13 @@ export interface ISummaryStats {
|
|
|
439
439
|
unreferencedBlobSize: number;
|
|
440
440
|
}
|
|
441
441
|
|
|
442
|
-
// @
|
|
442
|
+
// @alpha
|
|
443
443
|
export interface ISummaryTreeWithStats {
|
|
444
444
|
stats: ISummaryStats;
|
|
445
445
|
summary: ISummaryTree;
|
|
446
446
|
}
|
|
447
447
|
|
|
448
|
-
// @
|
|
448
|
+
// @alpha
|
|
449
449
|
export interface ITelemetryContext {
|
|
450
450
|
get(prefix: string, property: string): TelemetryEventPropertyType;
|
|
451
451
|
serialize(): string;
|
|
@@ -459,10 +459,10 @@ export interface LocalAttributionKey {
|
|
|
459
459
|
type: "local";
|
|
460
460
|
}
|
|
461
461
|
|
|
462
|
-
// @
|
|
462
|
+
// @alpha
|
|
463
463
|
export type NamedFluidDataStoreRegistryEntries = Iterable<NamedFluidDataStoreRegistryEntry>;
|
|
464
464
|
|
|
465
|
-
// @
|
|
465
|
+
// @alpha
|
|
466
466
|
export type NamedFluidDataStoreRegistryEntry = [string, Promise<FluidDataStoreRegistryEntry>];
|
|
467
467
|
|
|
468
468
|
// @internal
|
|
@@ -471,55 +471,55 @@ export interface OpAttributionKey {
|
|
|
471
471
|
type: "op";
|
|
472
472
|
}
|
|
473
473
|
|
|
474
|
-
// @
|
|
474
|
+
// @alpha
|
|
475
475
|
export type OpSpaceCompressedId = number & {
|
|
476
476
|
readonly OpNormalized: "9209432d-a959-4df7-b2ad-767ead4dbcae";
|
|
477
477
|
};
|
|
478
478
|
|
|
479
|
-
// @
|
|
479
|
+
// @alpha
|
|
480
480
|
export type SerializedIdCompressor = string & {
|
|
481
481
|
readonly _serializedIdCompressor: "8c73c57c-1cf4-4278-8915-6444cb4f6af5";
|
|
482
482
|
};
|
|
483
483
|
|
|
484
|
-
// @
|
|
484
|
+
// @alpha
|
|
485
485
|
export type SerializedIdCompressorWithNoSession = SerializedIdCompressor & {
|
|
486
486
|
readonly _noLocalState: "3aa2e1e8-cc28-4ea7-bc1a-a11dc3f26dfb";
|
|
487
487
|
};
|
|
488
488
|
|
|
489
|
-
// @
|
|
489
|
+
// @alpha
|
|
490
490
|
export type SerializedIdCompressorWithOngoingSession = SerializedIdCompressor & {
|
|
491
491
|
readonly _hasLocalState: "1281acae-6d14-47e7-bc92-71c8ee0819cb";
|
|
492
492
|
};
|
|
493
493
|
|
|
494
|
-
// @
|
|
494
|
+
// @alpha
|
|
495
495
|
export type SessionId = StableId & {
|
|
496
496
|
readonly SessionId: "4498f850-e14e-4be9-8db0-89ec00997e58";
|
|
497
497
|
};
|
|
498
498
|
|
|
499
|
-
// @
|
|
499
|
+
// @alpha
|
|
500
500
|
export type SessionSpaceCompressedId = number & {
|
|
501
501
|
readonly SessionUnique: "cea55054-6b82-4cbf-ad19-1fa645ea3b3e";
|
|
502
502
|
};
|
|
503
503
|
|
|
504
|
-
// @
|
|
504
|
+
// @alpha
|
|
505
505
|
export type StableId = string & {
|
|
506
506
|
readonly StableId: "53172b0d-a3d5-41ea-bd75-b43839c97f5a";
|
|
507
507
|
};
|
|
508
508
|
|
|
509
|
-
// @
|
|
509
|
+
// @alpha (undocumented)
|
|
510
510
|
export type SummarizeInternalFn = (fullTree: boolean, trackState: boolean, telemetryContext?: ITelemetryContext, incrementalSummaryContext?: IExperimentalIncrementalSummaryContext) => Promise<ISummarizeInternalResult>;
|
|
511
511
|
|
|
512
512
|
// @internal (undocumented)
|
|
513
513
|
export const totalBlobSizePropertyName = "TotalBlobSize";
|
|
514
514
|
|
|
515
|
-
// @
|
|
515
|
+
// @alpha
|
|
516
516
|
export const VisibilityState: {
|
|
517
517
|
NotVisible: string;
|
|
518
518
|
LocallyVisible: string;
|
|
519
519
|
GloballyVisible: string;
|
|
520
520
|
};
|
|
521
521
|
|
|
522
|
-
// @
|
|
522
|
+
// @alpha (undocumented)
|
|
523
523
|
export type VisibilityState = (typeof VisibilityState)[keyof typeof VisibilityState];
|
|
524
524
|
|
|
525
525
|
// (No @packageDocumentation comment for this package)
|
|
@@ -14,7 +14,7 @@ import { CreateChildSummarizerNodeParam, ISummarizerNodeWithGC, ISummaryTreeWith
|
|
|
14
14
|
import { IIdCompressor } from "./id-compressor";
|
|
15
15
|
/**
|
|
16
16
|
* Runtime flush mode handling
|
|
17
|
-
* @
|
|
17
|
+
* @alpha
|
|
18
18
|
*/
|
|
19
19
|
export declare enum FlushMode {
|
|
20
20
|
/**
|
|
@@ -45,7 +45,7 @@ export declare enum FlushModeExperimental {
|
|
|
45
45
|
/**
|
|
46
46
|
* This tells the visibility state of a Fluid object. It basically tracks whether the object is not visible, visible
|
|
47
47
|
* locally within the container only or visible globally to all clients.
|
|
48
|
-
* @
|
|
48
|
+
* @alpha
|
|
49
49
|
*/
|
|
50
50
|
export declare const VisibilityState: {
|
|
51
51
|
/**
|
|
@@ -70,11 +70,11 @@ export declare const VisibilityState: {
|
|
|
70
70
|
GloballyVisible: string;
|
|
71
71
|
};
|
|
72
72
|
/**
|
|
73
|
-
* @
|
|
73
|
+
* @alpha
|
|
74
74
|
*/
|
|
75
75
|
export type VisibilityState = (typeof VisibilityState)[keyof typeof VisibilityState];
|
|
76
76
|
/**
|
|
77
|
-
* @
|
|
77
|
+
* @alpha
|
|
78
78
|
*/
|
|
79
79
|
export interface IContainerRuntimeBaseEvents extends IEvent {
|
|
80
80
|
(event: "batchBegin", listener: (op: ISequencedDocumentMessage) => void): any;
|
|
@@ -94,7 +94,7 @@ export interface IContainerRuntimeBaseEvents extends IEvent {
|
|
|
94
94
|
* the `IContainerRuntime.getAliasedDataStoreEntryPoint` function. The current datastore should be discarded
|
|
95
95
|
* and will be garbage collected. The current datastore cannot be aliased to a different value.
|
|
96
96
|
* 'AlreadyAliased' - the datastore has already been previously bound to another alias name.
|
|
97
|
-
* @
|
|
97
|
+
* @alpha
|
|
98
98
|
*/
|
|
99
99
|
export type AliasResult = "Success" | "Conflict" | "AlreadyAliased";
|
|
100
100
|
/**
|
|
@@ -102,7 +102,7 @@ export type AliasResult = "Success" | "Conflict" | "AlreadyAliased";
|
|
|
102
102
|
* - Handle to the data store's entryPoint
|
|
103
103
|
* - Fluid router for the data store
|
|
104
104
|
* - Can be assigned an alias
|
|
105
|
-
* @
|
|
105
|
+
* @alpha
|
|
106
106
|
*/
|
|
107
107
|
export interface IDataStore {
|
|
108
108
|
/**
|
|
@@ -154,7 +154,7 @@ export interface IDataStore {
|
|
|
154
154
|
/**
|
|
155
155
|
* A reduced set of functionality of IContainerRuntime that a data store context/data store runtime will need
|
|
156
156
|
* TODO: this should be merged into IFluidDataStoreContext
|
|
157
|
-
* @
|
|
157
|
+
* @alpha
|
|
158
158
|
*/
|
|
159
159
|
export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeBaseEvents> {
|
|
160
160
|
readonly logger: ITelemetryBaseLogger;
|
|
@@ -218,7 +218,7 @@ export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeB
|
|
|
218
218
|
*
|
|
219
219
|
* Functionality include attach, snapshot, op/signal processing, request routes, expose an entryPoint,
|
|
220
220
|
* and connection state notifications
|
|
221
|
-
* @
|
|
221
|
+
* @alpha
|
|
222
222
|
*/
|
|
223
223
|
export interface IFluidDataStoreChannel extends IDisposable {
|
|
224
224
|
readonly id: string;
|
|
@@ -302,7 +302,7 @@ export interface IFluidDataStoreChannel extends IDisposable {
|
|
|
302
302
|
readonly IFluidRouter: IFluidRouter;
|
|
303
303
|
}
|
|
304
304
|
/**
|
|
305
|
-
* @
|
|
305
|
+
* @alpha
|
|
306
306
|
*/
|
|
307
307
|
export type CreateChildSummarizerNodeFn = (summarizeInternal: SummarizeInternalFn, getGCDataFn: (fullGC?: boolean) => Promise<IGarbageCollectionData>,
|
|
308
308
|
/**
|
|
@@ -310,7 +310,7 @@ export type CreateChildSummarizerNodeFn = (summarizeInternal: SummarizeInternalF
|
|
|
310
310
|
*/
|
|
311
311
|
getBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>) => ISummarizerNodeWithGC;
|
|
312
312
|
/**
|
|
313
|
-
* @
|
|
313
|
+
* @alpha
|
|
314
314
|
*/
|
|
315
315
|
export interface IFluidDataStoreContextEvents extends IEvent {
|
|
316
316
|
(event: "attaching" | "attached", listener: () => void): any;
|
|
@@ -318,7 +318,7 @@ export interface IFluidDataStoreContextEvents extends IEvent {
|
|
|
318
318
|
/**
|
|
319
319
|
* Represents the context for the data store. It is used by the data store runtime to
|
|
320
320
|
* get information and call functionality to the container.
|
|
321
|
-
* @
|
|
321
|
+
* @alpha
|
|
322
322
|
*/
|
|
323
323
|
export interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreContextEvents>, Partial<IProvideFluidDataStoreRegistry>, IProvideFluidHandleContext {
|
|
324
324
|
readonly id: string;
|
|
@@ -435,7 +435,7 @@ export interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreCo
|
|
|
435
435
|
addedGCOutboundReference?(srcHandle: IFluidHandle, outboundHandle: IFluidHandle): void;
|
|
436
436
|
}
|
|
437
437
|
/**
|
|
438
|
-
* @
|
|
438
|
+
* @alpha
|
|
439
439
|
*/
|
|
440
440
|
export interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {
|
|
441
441
|
/**
|
package/dist/dataStoreContext.js
CHANGED
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.VisibilityState = exports.FlushModeExperimental = exports.FlushMode = void 0;
|
|
8
8
|
/**
|
|
9
9
|
* Runtime flush mode handling
|
|
10
|
-
* @
|
|
10
|
+
* @alpha
|
|
11
11
|
*/
|
|
12
12
|
var FlushMode;
|
|
13
13
|
(function (FlushMode) {
|
|
@@ -40,7 +40,7 @@ var FlushModeExperimental;
|
|
|
40
40
|
/**
|
|
41
41
|
* This tells the visibility state of a Fluid object. It basically tracks whether the object is not visible, visible
|
|
42
42
|
* locally within the container only or visible globally to all clients.
|
|
43
|
-
* @
|
|
43
|
+
* @alpha
|
|
44
44
|
*/
|
|
45
45
|
exports.VisibilityState = {
|
|
46
46
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataStoreContext.js","sourceRoot":"","sources":["../src/dataStoreContext.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA2CH;;;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\t// eslint-disable-next-line import/no-deprecated\n\tIFluidRouter,\n\tIProvideFluidHandleContext,\n\tIFluidHandle,\n\tIRequest,\n\tIResponse,\n\tFluidObject,\n\tIFluidHandleContext,\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 { 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\";\nimport { IIdCompressor } from \"./id-compressor\";\n\n/**\n * Runtime flush mode handling\n * @internal\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 * @internal\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 * @internal\n */\nexport type VisibilityState = (typeof VisibilityState)[keyof typeof VisibilityState];\n\n/**\n * @internal\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 * @internal\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 * @internal\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\t/**\n\t * @deprecated Requesting will not be supported in a future major release.\n\t * Instead, access the objects within the DataStore using entryPoint, and then navigate from there using\n\t * app-specific logic (e.g. retrieving a handle from a DDS, or the entryPoint object could implement a request paradigm itself)\n\t *\n\t * IMPORTANT: This overload is provided for back-compat where IDataStore.request(\\{ url: \"/\" \\}) is already implemented and used.\n\t * The functionality it can provide (if the DataStore implementation is built for it) is redundant with @see {@link IDataStore.entryPoint}.\n\t *\n\t * Refer to Removing-IFluidRouter.md for details on migrating from the request pattern to using entryPoint.\n\t *\n\t * @param request - Only requesting \\{ url: \"/\" \\} is supported, requesting arbitrary URLs is deprecated.\n\t */\n\trequest(request: { url: \"/\"; headers?: undefined }): Promise<IResponse>;\n\n\t/**\n\t * Issue a request against the DataStore for a resource within it.\n\t * @param request - The request to be issued against the DataStore\n\t *\n\t * @deprecated Requesting an arbitrary URL with headers will not be supported in a future major release.\n\t * Instead, access the objects within the DataStore using entryPoint, and then navigate from there using\n\t * app-specific logic (e.g. retrieving a handle from a DDS, or the entryPoint object could implement a request paradigm itself)\n\t *\n\t * Refer to Removing-IFluidRouter.md for details on migrating from the request pattern to using entryPoint.\n\t */\n\trequest(request: IRequest): Promise<IResponse>;\n\n\t/**\n\t * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md\n\t */\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly IFluidRouter: IFluidRouter;\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 * @internal\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 * Executes a request against the container runtime\n\t * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md\n\t */\n\trequest(request: IRequest): Promise<IResponse>;\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\t/**\n\t * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md\n\t */\n\treadonly IFluidHandleContext: IFluidHandleContext;\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 * @internal\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\t/**\n\t * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md\n\t */\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly IFluidRouter: IFluidRouter;\n}\n\n/**\n * @internal\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 * @internal\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 * @internal\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 * @internal\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"]}
|
|
1
|
+
{"version":3,"file":"dataStoreContext.js","sourceRoot":"","sources":["../src/dataStoreContext.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA2CH;;;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\t// eslint-disable-next-line import/no-deprecated\n\tIFluidRouter,\n\tIProvideFluidHandleContext,\n\tIFluidHandle,\n\tIRequest,\n\tIResponse,\n\tFluidObject,\n\tIFluidHandleContext,\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 { 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\";\nimport { IIdCompressor } from \"./id-compressor\";\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\t/**\n\t * @deprecated Requesting will not be supported in a future major release.\n\t * Instead, access the objects within the DataStore using entryPoint, and then navigate from there using\n\t * app-specific logic (e.g. retrieving a handle from a DDS, or the entryPoint object could implement a request paradigm itself)\n\t *\n\t * IMPORTANT: This overload is provided for back-compat where IDataStore.request(\\{ url: \"/\" \\}) is already implemented and used.\n\t * The functionality it can provide (if the DataStore implementation is built for it) is redundant with @see {@link IDataStore.entryPoint}.\n\t *\n\t * Refer to Removing-IFluidRouter.md for details on migrating from the request pattern to using entryPoint.\n\t *\n\t * @param request - Only requesting \\{ url: \"/\" \\} is supported, requesting arbitrary URLs is deprecated.\n\t */\n\trequest(request: { url: \"/\"; headers?: undefined }): Promise<IResponse>;\n\n\t/**\n\t * Issue a request against the DataStore for a resource within it.\n\t * @param request - The request to be issued against the DataStore\n\t *\n\t * @deprecated Requesting an arbitrary URL with headers will not be supported in a future major release.\n\t * Instead, access the objects within the DataStore using entryPoint, and then navigate from there using\n\t * app-specific logic (e.g. retrieving a handle from a DDS, or the entryPoint object could implement a request paradigm itself)\n\t *\n\t * Refer to Removing-IFluidRouter.md for details on migrating from the request pattern to using entryPoint.\n\t */\n\trequest(request: IRequest): Promise<IResponse>;\n\n\t/**\n\t * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md\n\t */\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly IFluidRouter: IFluidRouter;\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 * Executes a request against the container runtime\n\t * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md\n\t */\n\trequest(request: IRequest): Promise<IResponse>;\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\t/**\n\t * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md\n\t */\n\treadonly IFluidHandleContext: IFluidHandleContext;\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\t/**\n\t * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md\n\t */\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly IFluidRouter: IFluidRouter;\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"]}
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { IFluidDataStoreContext, IFluidDataStoreChannel } from "./dataStoreContext";
|
|
6
6
|
/**
|
|
7
|
-
* @
|
|
7
|
+
* @alpha
|
|
8
8
|
*/
|
|
9
9
|
export declare const IFluidDataStoreFactory: keyof IProvideFluidDataStoreFactory;
|
|
10
10
|
/**
|
|
11
|
-
* @
|
|
11
|
+
* @alpha
|
|
12
12
|
*/
|
|
13
13
|
export interface IProvideFluidDataStoreFactory {
|
|
14
14
|
readonly IFluidDataStoreFactory: IFluidDataStoreFactory;
|
|
@@ -16,7 +16,7 @@ export interface IProvideFluidDataStoreFactory {
|
|
|
16
16
|
/**
|
|
17
17
|
* IFluidDataStoreFactory create data stores. It is associated with an identifier (its `type` member)
|
|
18
18
|
* and usually provided to consumers using this mapping through a data store registry.
|
|
19
|
-
* @
|
|
19
|
+
* @alpha
|
|
20
20
|
*/
|
|
21
21
|
export interface IFluidDataStoreFactory extends IProvideFluidDataStoreFactory {
|
|
22
22
|
/**
|
package/dist/dataStoreFactory.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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 * @
|
|
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"]}
|
|
@@ -6,26 +6,26 @@ import { IProvideFluidDataStoreFactory } from "./dataStoreFactory";
|
|
|
6
6
|
/**
|
|
7
7
|
* A single registry entry that may be used to create data stores
|
|
8
8
|
* It has to have either factory or registry, or both.
|
|
9
|
-
* @
|
|
9
|
+
* @alpha
|
|
10
10
|
*/
|
|
11
11
|
export type FluidDataStoreRegistryEntry = Readonly<Partial<IProvideFluidDataStoreRegistry & IProvideFluidDataStoreFactory>>;
|
|
12
12
|
/**
|
|
13
13
|
* An associated pair of an identifier and registry entry. Registry entries
|
|
14
14
|
* may be dynamically loaded.
|
|
15
|
-
* @
|
|
15
|
+
* @alpha
|
|
16
16
|
*/
|
|
17
17
|
export type NamedFluidDataStoreRegistryEntry = [string, Promise<FluidDataStoreRegistryEntry>];
|
|
18
18
|
/**
|
|
19
19
|
* An iterable identifier/registry entry pair list
|
|
20
|
-
* @
|
|
20
|
+
* @alpha
|
|
21
21
|
*/
|
|
22
22
|
export type NamedFluidDataStoreRegistryEntries = Iterable<NamedFluidDataStoreRegistryEntry>;
|
|
23
23
|
/**
|
|
24
|
-
* @
|
|
24
|
+
* @alpha
|
|
25
25
|
*/
|
|
26
26
|
export declare const IFluidDataStoreRegistry: keyof IProvideFluidDataStoreRegistry;
|
|
27
27
|
/**
|
|
28
|
-
* @
|
|
28
|
+
* @alpha
|
|
29
29
|
*/
|
|
30
30
|
export interface IProvideFluidDataStoreRegistry {
|
|
31
31
|
readonly IFluidDataStoreRegistry: IFluidDataStoreRegistry;
|
|
@@ -33,7 +33,7 @@ export interface IProvideFluidDataStoreRegistry {
|
|
|
33
33
|
/**
|
|
34
34
|
* An association of identifiers to data store registry entries, where the
|
|
35
35
|
* entries can be used to create data stores.
|
|
36
|
-
* @
|
|
36
|
+
* @alpha
|
|
37
37
|
*/
|
|
38
38
|
export interface IFluidDataStoreRegistry extends IProvideFluidDataStoreRegistry {
|
|
39
39
|
get(name: string): Promise<FluidDataStoreRegistryEntry | undefined>;
|