@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
|
@@ -34,7 +34,7 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
34
34
|
* the `IContainerRuntime.getAliasedDataStoreEntryPoint` function. The current datastore should be discarded
|
|
35
35
|
* and will be garbage collected. The current datastore cannot be aliased to a different value.
|
|
36
36
|
* 'AlreadyAliased' - the datastore has already been previously bound to another alias name.
|
|
37
|
-
* @
|
|
37
|
+
* @alpha
|
|
38
38
|
*/
|
|
39
39
|
export declare type AliasResult = "Success" | "Conflict" | "AlreadyAliased";
|
|
40
40
|
|
|
@@ -70,7 +70,7 @@ export declare const blobCountPropertyName = "BlobCount";
|
|
|
70
70
|
export declare const channelsTreeName = ".channels";
|
|
71
71
|
|
|
72
72
|
/**
|
|
73
|
-
* @
|
|
73
|
+
* @alpha
|
|
74
74
|
*/
|
|
75
75
|
export declare type CreateChildSummarizerNodeFn = (summarizeInternal: SummarizeInternalFn, getGCDataFn: (fullGC?: boolean) => Promise<IGarbageCollectionData>,
|
|
76
76
|
/**
|
|
@@ -79,7 +79,7 @@ export declare type CreateChildSummarizerNodeFn = (summarizeInternal: SummarizeI
|
|
|
79
79
|
getBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>) => ISummarizerNodeWithGC;
|
|
80
80
|
|
|
81
81
|
/**
|
|
82
|
-
* @
|
|
82
|
+
* @alpha
|
|
83
83
|
*/
|
|
84
84
|
export declare type CreateChildSummarizerNodeParam = {
|
|
85
85
|
type: CreateSummarizerNodeSource.FromSummary;
|
|
@@ -92,7 +92,7 @@ export declare type CreateChildSummarizerNodeParam = {
|
|
|
92
92
|
};
|
|
93
93
|
|
|
94
94
|
/**
|
|
95
|
-
* @
|
|
95
|
+
* @alpha
|
|
96
96
|
*/
|
|
97
97
|
export declare enum CreateSummarizerNodeSource {
|
|
98
98
|
FromSummary = 0,
|
|
@@ -125,13 +125,13 @@ export declare interface DetachedAttributionKey {
|
|
|
125
125
|
/**
|
|
126
126
|
* A single registry entry that may be used to create data stores
|
|
127
127
|
* It has to have either factory or registry, or both.
|
|
128
|
-
* @
|
|
128
|
+
* @alpha
|
|
129
129
|
*/
|
|
130
130
|
export declare type FluidDataStoreRegistryEntry = Readonly<Partial<IProvideFluidDataStoreRegistry & IProvideFluidDataStoreFactory>>;
|
|
131
131
|
|
|
132
132
|
/**
|
|
133
133
|
* Runtime flush mode handling
|
|
134
|
-
* @
|
|
134
|
+
* @alpha
|
|
135
135
|
*/
|
|
136
136
|
export declare enum FlushMode {
|
|
137
137
|
/**
|
|
@@ -212,7 +212,7 @@ export declare interface IAttachMessage {
|
|
|
212
212
|
/**
|
|
213
213
|
* A reduced set of functionality of IContainerRuntime that a data store context/data store runtime will need
|
|
214
214
|
* TODO: this should be merged into IFluidDataStoreContext
|
|
215
|
-
* @
|
|
215
|
+
* @alpha
|
|
216
216
|
*/
|
|
217
217
|
export declare interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeBaseEvents> {
|
|
218
218
|
readonly logger: ITelemetryBaseLogger;
|
|
@@ -273,7 +273,7 @@ export declare interface IContainerRuntimeBase extends IEventProvider<IContainer
|
|
|
273
273
|
}
|
|
274
274
|
|
|
275
275
|
/**
|
|
276
|
-
* @
|
|
276
|
+
* @alpha
|
|
277
277
|
*/
|
|
278
278
|
export declare interface IContainerRuntimeBaseEvents extends IEvent {
|
|
279
279
|
(event: "batchBegin", listener: (op: ISequencedDocumentMessage) => void): any;
|
|
@@ -291,7 +291,7 @@ export declare interface IContainerRuntimeBaseEvents extends IEvent {
|
|
|
291
291
|
* - Handle to the data store's entryPoint
|
|
292
292
|
* - Fluid router for the data store
|
|
293
293
|
* - Can be assigned an alias
|
|
294
|
-
* @
|
|
294
|
+
* @alpha
|
|
295
295
|
*/
|
|
296
296
|
export declare interface IDataStore {
|
|
297
297
|
/**
|
|
@@ -345,7 +345,7 @@ export declare interface IDataStore {
|
|
|
345
345
|
* Data describing a range of session-local IDs (from a remote or local session).
|
|
346
346
|
*
|
|
347
347
|
* A range is composed of local IDs that were generated.
|
|
348
|
-
* @
|
|
348
|
+
* @alpha
|
|
349
349
|
*/
|
|
350
350
|
export declare interface IdCreationRange {
|
|
351
351
|
readonly sessionId: SessionId;
|
|
@@ -373,7 +373,7 @@ export declare interface IEnvelope {
|
|
|
373
373
|
/**
|
|
374
374
|
* @experimental - Can be deleted/changed at any time
|
|
375
375
|
* Contains the necessary information to allow DDSes to do incremental summaries
|
|
376
|
-
* @
|
|
376
|
+
* @alpha
|
|
377
377
|
*/
|
|
378
378
|
export declare interface IExperimentalIncrementalSummaryContext {
|
|
379
379
|
/**
|
|
@@ -402,7 +402,7 @@ export declare interface IExperimentalIncrementalSummaryContext {
|
|
|
402
402
|
*
|
|
403
403
|
* Functionality include attach, snapshot, op/signal processing, request routes, expose an entryPoint,
|
|
404
404
|
* and connection state notifications
|
|
405
|
-
* @
|
|
405
|
+
* @alpha
|
|
406
406
|
*/
|
|
407
407
|
export declare interface IFluidDataStoreChannel extends IDisposable {
|
|
408
408
|
readonly id: string;
|
|
@@ -489,7 +489,7 @@ export declare interface IFluidDataStoreChannel extends IDisposable {
|
|
|
489
489
|
/**
|
|
490
490
|
* Represents the context for the data store. It is used by the data store runtime to
|
|
491
491
|
* get information and call functionality to the container.
|
|
492
|
-
* @
|
|
492
|
+
* @alpha
|
|
493
493
|
*/
|
|
494
494
|
export declare interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreContextEvents>, Partial<IProvideFluidDataStoreRegistry>, IProvideFluidHandleContext {
|
|
495
495
|
readonly id: string;
|
|
@@ -607,7 +607,7 @@ export declare interface IFluidDataStoreContext extends IEventProvider<IFluidDat
|
|
|
607
607
|
}
|
|
608
608
|
|
|
609
609
|
/**
|
|
610
|
-
* @
|
|
610
|
+
* @alpha
|
|
611
611
|
*/
|
|
612
612
|
export declare interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {
|
|
613
613
|
/**
|
|
@@ -617,21 +617,21 @@ export declare interface IFluidDataStoreContextDetached extends IFluidDataStoreC
|
|
|
617
617
|
}
|
|
618
618
|
|
|
619
619
|
/**
|
|
620
|
-
* @
|
|
620
|
+
* @alpha
|
|
621
621
|
*/
|
|
622
622
|
export declare interface IFluidDataStoreContextEvents extends IEvent {
|
|
623
623
|
(event: "attaching" | "attached", listener: () => void): any;
|
|
624
624
|
}
|
|
625
625
|
|
|
626
626
|
/**
|
|
627
|
-
* @
|
|
627
|
+
* @alpha
|
|
628
628
|
*/
|
|
629
629
|
export declare const IFluidDataStoreFactory: keyof IProvideFluidDataStoreFactory;
|
|
630
630
|
|
|
631
631
|
/**
|
|
632
632
|
* IFluidDataStoreFactory create data stores. It is associated with an identifier (its `type` member)
|
|
633
633
|
* and usually provided to consumers using this mapping through a data store registry.
|
|
634
|
-
* @
|
|
634
|
+
* @alpha
|
|
635
635
|
*/
|
|
636
636
|
export declare interface IFluidDataStoreFactory extends IProvideFluidDataStoreFactory {
|
|
637
637
|
/**
|
|
@@ -647,14 +647,14 @@ export declare interface IFluidDataStoreFactory extends IProvideFluidDataStoreFa
|
|
|
647
647
|
}
|
|
648
648
|
|
|
649
649
|
/**
|
|
650
|
-
* @
|
|
650
|
+
* @alpha
|
|
651
651
|
*/
|
|
652
652
|
export declare const IFluidDataStoreRegistry: keyof IProvideFluidDataStoreRegistry;
|
|
653
653
|
|
|
654
654
|
/**
|
|
655
655
|
* An association of identifiers to data store registry entries, where the
|
|
656
656
|
* entries can be used to create data stores.
|
|
657
|
-
* @
|
|
657
|
+
* @alpha
|
|
658
658
|
*/
|
|
659
659
|
export declare interface IFluidDataStoreRegistry extends IProvideFluidDataStoreRegistry {
|
|
660
660
|
get(name: string): Promise<FluidDataStoreRegistryEntry | undefined>;
|
|
@@ -663,7 +663,7 @@ export declare interface IFluidDataStoreRegistry extends IProvideFluidDataStoreR
|
|
|
663
663
|
/**
|
|
664
664
|
* Garbage collection data returned by nodes in a Container.
|
|
665
665
|
* Used for running GC in the Container.
|
|
666
|
-
* @
|
|
666
|
+
* @alpha
|
|
667
667
|
*/
|
|
668
668
|
export declare interface IGarbageCollectionData {
|
|
669
669
|
/**
|
|
@@ -676,7 +676,7 @@ export declare interface IGarbageCollectionData {
|
|
|
676
676
|
|
|
677
677
|
/**
|
|
678
678
|
* GC details provided to each node during creation.
|
|
679
|
-
* @
|
|
679
|
+
* @alpha
|
|
680
680
|
*/
|
|
681
681
|
export declare interface IGarbageCollectionDetailsBase {
|
|
682
682
|
/**
|
|
@@ -749,7 +749,7 @@ export declare interface IGarbageCollectionDetailsBase {
|
|
|
749
749
|
*
|
|
750
750
|
* These two spaces naturally define a rule: consumers of compressed IDs should use session-space IDs, but serialized forms such as ops
|
|
751
751
|
* should use op-space IDs.
|
|
752
|
-
* @
|
|
752
|
+
* @alpha
|
|
753
753
|
*/
|
|
754
754
|
export declare interface IIdCompressor {
|
|
755
755
|
localSessionId: SessionId;
|
|
@@ -796,7 +796,7 @@ export declare interface IIdCompressor {
|
|
|
796
796
|
}
|
|
797
797
|
|
|
798
798
|
/**
|
|
799
|
-
* @
|
|
799
|
+
* @alpha
|
|
800
800
|
*/
|
|
801
801
|
export declare interface IIdCompressorCore {
|
|
802
802
|
/**
|
|
@@ -825,7 +825,7 @@ export declare interface IIdCompressorCore {
|
|
|
825
825
|
|
|
826
826
|
/**
|
|
827
827
|
* Represents ISignalMessage with its type.
|
|
828
|
-
* @
|
|
828
|
+
* @alpha
|
|
829
829
|
*/
|
|
830
830
|
export declare interface IInboundSignalMessage extends ISignalMessage {
|
|
831
831
|
type: string;
|
|
@@ -850,14 +850,14 @@ export declare type InboundAttachMessage = Omit<IAttachMessage, "snapshot"> & {
|
|
|
850
850
|
export declare const initialClusterCapacity = 512;
|
|
851
851
|
|
|
852
852
|
/**
|
|
853
|
-
* @
|
|
853
|
+
* @alpha
|
|
854
854
|
*/
|
|
855
855
|
export declare interface IProvideFluidDataStoreFactory {
|
|
856
856
|
readonly IFluidDataStoreFactory: IFluidDataStoreFactory;
|
|
857
857
|
}
|
|
858
858
|
|
|
859
859
|
/**
|
|
860
|
-
* @
|
|
860
|
+
* @alpha
|
|
861
861
|
*/
|
|
862
862
|
export declare interface IProvideFluidDataStoreRegistry {
|
|
863
863
|
readonly IFluidDataStoreRegistry: IFluidDataStoreRegistry;
|
|
@@ -898,7 +898,7 @@ export declare interface ISignalEnvelope {
|
|
|
898
898
|
* ...
|
|
899
899
|
* "path1":
|
|
900
900
|
* ```
|
|
901
|
-
* @
|
|
901
|
+
* @alpha
|
|
902
902
|
*/
|
|
903
903
|
export declare interface ISummarizeInternalResult extends ISummarizeResult {
|
|
904
904
|
id: string;
|
|
@@ -910,7 +910,7 @@ export declare interface ISummarizeInternalResult extends ISummarizeResult {
|
|
|
910
910
|
|
|
911
911
|
/**
|
|
912
912
|
* Represents a summary at a current sequence number.
|
|
913
|
-
* @
|
|
913
|
+
* @alpha
|
|
914
914
|
*/
|
|
915
915
|
export declare interface ISummarizeResult {
|
|
916
916
|
stats: ISummaryStats;
|
|
@@ -918,7 +918,7 @@ export declare interface ISummarizeResult {
|
|
|
918
918
|
}
|
|
919
919
|
|
|
920
920
|
/**
|
|
921
|
-
* @
|
|
921
|
+
* @alpha
|
|
922
922
|
*/
|
|
923
923
|
export declare interface ISummarizerNode {
|
|
924
924
|
/**
|
|
@@ -980,7 +980,7 @@ export declare interface ISummarizerNode {
|
|
|
980
980
|
}
|
|
981
981
|
|
|
982
982
|
/**
|
|
983
|
-
* @
|
|
983
|
+
* @alpha
|
|
984
984
|
*/
|
|
985
985
|
export declare interface ISummarizerNodeConfig {
|
|
986
986
|
/**
|
|
@@ -1001,7 +1001,7 @@ export declare interface ISummarizerNodeConfig {
|
|
|
1001
1001
|
}
|
|
1002
1002
|
|
|
1003
1003
|
/**
|
|
1004
|
-
* @
|
|
1004
|
+
* @alpha
|
|
1005
1005
|
*/
|
|
1006
1006
|
export declare interface ISummarizerNodeConfigWithGC extends ISummarizerNodeConfig {
|
|
1007
1007
|
/**
|
|
@@ -1032,7 +1032,7 @@ export declare interface ISummarizerNodeConfigWithGC extends ISummarizerNodeConf
|
|
|
1032
1032
|
* `isReferenced`: This tells whether this node is referenced in the document or not.
|
|
1033
1033
|
*
|
|
1034
1034
|
* `updateUsedRoutes`: Used to notify this node of routes that are currently in use in it.
|
|
1035
|
-
* @
|
|
1035
|
+
* @alpha
|
|
1036
1036
|
*/
|
|
1037
1037
|
export declare interface ISummarizerNodeWithGC extends ISummarizerNode {
|
|
1038
1038
|
createChild(
|
|
@@ -1086,7 +1086,7 @@ export declare interface ISummarizerNodeWithGC extends ISummarizerNode {
|
|
|
1086
1086
|
|
|
1087
1087
|
/**
|
|
1088
1088
|
* Contains the aggregation data from a Tree/Subtree.
|
|
1089
|
-
* @
|
|
1089
|
+
* @alpha
|
|
1090
1090
|
*/
|
|
1091
1091
|
export declare interface ISummaryStats {
|
|
1092
1092
|
treeNodeCount: number;
|
|
@@ -1102,7 +1102,7 @@ export declare interface ISummaryStats {
|
|
|
1102
1102
|
* each of its DDS.
|
|
1103
1103
|
* Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject
|
|
1104
1104
|
* will be taking part of the summarization process.
|
|
1105
|
-
* @
|
|
1105
|
+
* @alpha
|
|
1106
1106
|
*/
|
|
1107
1107
|
export declare interface ISummaryTreeWithStats {
|
|
1108
1108
|
/**
|
|
@@ -1119,7 +1119,7 @@ export declare interface ISummaryTreeWithStats {
|
|
|
1119
1119
|
/**
|
|
1120
1120
|
* Contains telemetry data relevant to summarization workflows.
|
|
1121
1121
|
* This object is expected to be modified directly by various summarize methods.
|
|
1122
|
-
* @
|
|
1122
|
+
* @alpha
|
|
1123
1123
|
*/
|
|
1124
1124
|
export declare interface ITelemetryContext {
|
|
1125
1125
|
/**
|
|
@@ -1160,14 +1160,14 @@ export declare interface LocalAttributionKey {
|
|
|
1160
1160
|
|
|
1161
1161
|
/**
|
|
1162
1162
|
* An iterable identifier/registry entry pair list
|
|
1163
|
-
* @
|
|
1163
|
+
* @alpha
|
|
1164
1164
|
*/
|
|
1165
1165
|
export declare type NamedFluidDataStoreRegistryEntries = Iterable<NamedFluidDataStoreRegistryEntry>;
|
|
1166
1166
|
|
|
1167
1167
|
/**
|
|
1168
1168
|
* An associated pair of an identifier and registry entry. Registry entries
|
|
1169
1169
|
* may be dynamically loaded.
|
|
1170
|
-
* @
|
|
1170
|
+
* @alpha
|
|
1171
1171
|
*/
|
|
1172
1172
|
export declare type NamedFluidDataStoreRegistryEntry = [string, Promise<FluidDataStoreRegistryEntry>];
|
|
1173
1173
|
|
|
@@ -1194,7 +1194,7 @@ export declare interface OpAttributionKey {
|
|
|
1194
1194
|
* A compressed ID that has been normalized into "op space".
|
|
1195
1195
|
* Serialized/persisted structures (e.g. ops) should use op-space IDs as a performance optimization, as they require less normalizing when
|
|
1196
1196
|
* received by a remote client due to the fact that op space for a given compressor is session space for all other compressors.
|
|
1197
|
-
* @
|
|
1197
|
+
* @alpha
|
|
1198
1198
|
*/
|
|
1199
1199
|
export declare type OpSpaceCompressedId = number & {
|
|
1200
1200
|
readonly OpNormalized: "9209432d-a959-4df7-b2ad-767ead4dbcae";
|
|
@@ -1202,7 +1202,7 @@ export declare type OpSpaceCompressedId = number & {
|
|
|
1202
1202
|
|
|
1203
1203
|
/**
|
|
1204
1204
|
* The serialized contents of an IdCompressor, suitable for persistence in a summary.
|
|
1205
|
-
* @
|
|
1205
|
+
* @alpha
|
|
1206
1206
|
*/
|
|
1207
1207
|
export declare type SerializedIdCompressor = string & {
|
|
1208
1208
|
readonly _serializedIdCompressor: "8c73c57c-1cf4-4278-8915-6444cb4f6af5";
|
|
@@ -1210,7 +1210,7 @@ export declare type SerializedIdCompressor = string & {
|
|
|
1210
1210
|
|
|
1211
1211
|
/**
|
|
1212
1212
|
* The serialized contents of an IdCompressor, suitable for persistence in a summary.
|
|
1213
|
-
* @
|
|
1213
|
+
* @alpha
|
|
1214
1214
|
*/
|
|
1215
1215
|
export declare type SerializedIdCompressorWithNoSession = SerializedIdCompressor & {
|
|
1216
1216
|
readonly _noLocalState: "3aa2e1e8-cc28-4ea7-bc1a-a11dc3f26dfb";
|
|
@@ -1218,7 +1218,7 @@ export declare type SerializedIdCompressorWithNoSession = SerializedIdCompressor
|
|
|
1218
1218
|
|
|
1219
1219
|
/**
|
|
1220
1220
|
* The serialized contents of an IdCompressor, suitable for persistence in a summary.
|
|
1221
|
-
* @
|
|
1221
|
+
* @alpha
|
|
1222
1222
|
*/
|
|
1223
1223
|
export declare type SerializedIdCompressorWithOngoingSession = SerializedIdCompressor & {
|
|
1224
1224
|
readonly _hasLocalState: "1281acae-6d14-47e7-bc92-71c8ee0819cb";
|
|
@@ -1226,7 +1226,7 @@ export declare type SerializedIdCompressorWithOngoingSession = SerializedIdCompr
|
|
|
1226
1226
|
|
|
1227
1227
|
/**
|
|
1228
1228
|
* A StableId which is suitable for use as a session identifier
|
|
1229
|
-
* @
|
|
1229
|
+
* @alpha
|
|
1230
1230
|
*/
|
|
1231
1231
|
export declare type SessionId = StableId & {
|
|
1232
1232
|
readonly SessionId: "4498f850-e14e-4be9-8db0-89ec00997e58";
|
|
@@ -1236,7 +1236,7 @@ export declare type SessionId = StableId & {
|
|
|
1236
1236
|
* A compressed ID that has been normalized into "session space" (see `IdCompressor` for more).
|
|
1237
1237
|
* Consumer-facing APIs and data structures should use session-space IDs as their lifetime and equality is stable and tied to
|
|
1238
1238
|
* the scope of the session (i.e. compressor) that produced them.
|
|
1239
|
-
* @
|
|
1239
|
+
* @alpha
|
|
1240
1240
|
*/
|
|
1241
1241
|
export declare type SessionSpaceCompressedId = number & {
|
|
1242
1242
|
readonly SessionUnique: "cea55054-6b82-4cbf-ad19-1fa645ea3b3e";
|
|
@@ -1247,14 +1247,14 @@ export declare type SessionSpaceCompressedId = number & {
|
|
|
1247
1247
|
* A 128-bit Universally Unique IDentifier. Represented here
|
|
1248
1248
|
* with a string of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,
|
|
1249
1249
|
* where x is a lowercase hex digit.
|
|
1250
|
-
* @
|
|
1250
|
+
* @alpha
|
|
1251
1251
|
*/
|
|
1252
1252
|
export declare type StableId = string & {
|
|
1253
1253
|
readonly StableId: "53172b0d-a3d5-41ea-bd75-b43839c97f5a";
|
|
1254
1254
|
};
|
|
1255
1255
|
|
|
1256
1256
|
/**
|
|
1257
|
-
* @
|
|
1257
|
+
* @alpha
|
|
1258
1258
|
*/
|
|
1259
1259
|
export declare type SummarizeInternalFn = (fullTree: boolean, trackState: boolean, telemetryContext?: ITelemetryContext, incrementalSummaryContext?: IExperimentalIncrementalSummaryContext) => Promise<ISummarizeInternalResult>;
|
|
1260
1260
|
|
|
@@ -1266,7 +1266,7 @@ export declare const totalBlobSizePropertyName = "TotalBlobSize";
|
|
|
1266
1266
|
/**
|
|
1267
1267
|
* This tells the visibility state of a Fluid object. It basically tracks whether the object is not visible, visible
|
|
1268
1268
|
* locally within the container only or visible globally to all clients.
|
|
1269
|
-
* @
|
|
1269
|
+
* @alpha
|
|
1270
1270
|
*/
|
|
1271
1271
|
export declare const VisibilityState: {
|
|
1272
1272
|
/**
|
|
@@ -1292,7 +1292,7 @@ export declare const VisibilityState: {
|
|
|
1292
1292
|
};
|
|
1293
1293
|
|
|
1294
1294
|
/**
|
|
1295
|
-
* @
|
|
1295
|
+
* @alpha
|
|
1296
1296
|
*/
|
|
1297
1297
|
export declare type VisibilityState = (typeof VisibilityState)[keyof typeof VisibilityState];
|
|
1298
1298
|
|
package/dist/summary.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { SummaryTree, ISummaryTree, ISequencedDocumentMessage, ISnapshotTree, IT
|
|
|
7
7
|
import { IGarbageCollectionData, IGarbageCollectionDetailsBase } from "./garbageCollection";
|
|
8
8
|
/**
|
|
9
9
|
* Contains the aggregation data from a Tree/Subtree.
|
|
10
|
-
* @
|
|
10
|
+
* @alpha
|
|
11
11
|
*/
|
|
12
12
|
export interface ISummaryStats {
|
|
13
13
|
treeNodeCount: number;
|
|
@@ -22,7 +22,7 @@ export interface ISummaryStats {
|
|
|
22
22
|
* each of its DDS.
|
|
23
23
|
* Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject
|
|
24
24
|
* will be taking part of the summarization process.
|
|
25
|
-
* @
|
|
25
|
+
* @alpha
|
|
26
26
|
*/
|
|
27
27
|
export interface ISummaryTreeWithStats {
|
|
28
28
|
/**
|
|
@@ -37,7 +37,7 @@ export interface ISummaryTreeWithStats {
|
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
39
|
* Represents a summary at a current sequence number.
|
|
40
|
-
* @
|
|
40
|
+
* @alpha
|
|
41
41
|
*/
|
|
42
42
|
export interface ISummarizeResult {
|
|
43
43
|
stats: ISummaryStats;
|
|
@@ -57,7 +57,7 @@ export interface ISummarizeResult {
|
|
|
57
57
|
* ...
|
|
58
58
|
* "path1":
|
|
59
59
|
* ```
|
|
60
|
-
* @
|
|
60
|
+
* @alpha
|
|
61
61
|
*/
|
|
62
62
|
export interface ISummarizeInternalResult extends ISummarizeResult {
|
|
63
63
|
id: string;
|
|
@@ -69,7 +69,7 @@ export interface ISummarizeInternalResult extends ISummarizeResult {
|
|
|
69
69
|
/**
|
|
70
70
|
* @experimental - Can be deleted/changed at any time
|
|
71
71
|
* Contains the necessary information to allow DDSes to do incremental summaries
|
|
72
|
-
* @
|
|
72
|
+
* @alpha
|
|
73
73
|
*/
|
|
74
74
|
export interface IExperimentalIncrementalSummaryContext {
|
|
75
75
|
/**
|
|
@@ -93,11 +93,11 @@ export interface IExperimentalIncrementalSummaryContext {
|
|
|
93
93
|
summaryPath: string;
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
96
|
-
* @
|
|
96
|
+
* @alpha
|
|
97
97
|
*/
|
|
98
98
|
export type SummarizeInternalFn = (fullTree: boolean, trackState: boolean, telemetryContext?: ITelemetryContext, incrementalSummaryContext?: IExperimentalIncrementalSummaryContext) => Promise<ISummarizeInternalResult>;
|
|
99
99
|
/**
|
|
100
|
-
* @
|
|
100
|
+
* @alpha
|
|
101
101
|
*/
|
|
102
102
|
export interface ISummarizerNodeConfig {
|
|
103
103
|
/**
|
|
@@ -117,7 +117,7 @@ export interface ISummarizerNodeConfig {
|
|
|
117
117
|
readonly throwOnFailure?: true;
|
|
118
118
|
}
|
|
119
119
|
/**
|
|
120
|
-
* @
|
|
120
|
+
* @alpha
|
|
121
121
|
*/
|
|
122
122
|
export interface ISummarizerNodeConfigWithGC extends ISummarizerNodeConfig {
|
|
123
123
|
/**
|
|
@@ -127,7 +127,7 @@ export interface ISummarizerNodeConfigWithGC extends ISummarizerNodeConfig {
|
|
|
127
127
|
readonly gcDisabled?: boolean;
|
|
128
128
|
}
|
|
129
129
|
/**
|
|
130
|
-
* @
|
|
130
|
+
* @alpha
|
|
131
131
|
*/
|
|
132
132
|
export declare enum CreateSummarizerNodeSource {
|
|
133
133
|
FromSummary = 0,
|
|
@@ -135,7 +135,7 @@ export declare enum CreateSummarizerNodeSource {
|
|
|
135
135
|
Local = 2
|
|
136
136
|
}
|
|
137
137
|
/**
|
|
138
|
-
* @
|
|
138
|
+
* @alpha
|
|
139
139
|
*/
|
|
140
140
|
export type CreateChildSummarizerNodeParam = {
|
|
141
141
|
type: CreateSummarizerNodeSource.FromSummary;
|
|
@@ -147,7 +147,7 @@ export type CreateChildSummarizerNodeParam = {
|
|
|
147
147
|
type: CreateSummarizerNodeSource.Local;
|
|
148
148
|
};
|
|
149
149
|
/**
|
|
150
|
-
* @
|
|
150
|
+
* @alpha
|
|
151
151
|
*/
|
|
152
152
|
export interface ISummarizerNode {
|
|
153
153
|
/**
|
|
@@ -228,7 +228,7 @@ export interface ISummarizerNode {
|
|
|
228
228
|
* `isReferenced`: This tells whether this node is referenced in the document or not.
|
|
229
229
|
*
|
|
230
230
|
* `updateUsedRoutes`: Used to notify this node of routes that are currently in use in it.
|
|
231
|
-
* @
|
|
231
|
+
* @alpha
|
|
232
232
|
*/
|
|
233
233
|
export interface ISummarizerNodeWithGC extends ISummarizerNode {
|
|
234
234
|
createChild(
|
|
@@ -286,7 +286,7 @@ export declare const channelsTreeName = ".channels";
|
|
|
286
286
|
/**
|
|
287
287
|
* Contains telemetry data relevant to summarization workflows.
|
|
288
288
|
* This object is expected to be modified directly by various summarize methods.
|
|
289
|
-
* @
|
|
289
|
+
* @alpha
|
|
290
290
|
*/
|
|
291
291
|
export interface ITelemetryContext {
|
|
292
292
|
/**
|
package/dist/summary.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.totalBlobSizePropertyName = exports.blobCountPropertyName = exports.channelsTreeName = exports.CreateSummarizerNodeSource = void 0;
|
|
8
8
|
/**
|
|
9
|
-
* @
|
|
9
|
+
* @alpha
|
|
10
10
|
*/
|
|
11
11
|
var CreateSummarizerNodeSource;
|
|
12
12
|
(function (CreateSummarizerNodeSource) {
|
package/dist/summary.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAmJH;;GAEG;AACH,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACrC,yFAAW,CAAA;IACX,uFAAU,CAAA;IACV,6EAAK,CAAA;AACN,CAAC,EAJW,0BAA0B,0CAA1B,0BAA0B,QAIrC;AAuKD;;GAEG;AACU,QAAA,gBAAgB,GAAG,WAAW,CAAC;AA2C5C;;GAEG;AACU,QAAA,qBAAqB,GAAG,WAAW,CAAC;AAEjD;;GAEG;AACU,QAAA,yBAAyB,GAAG,eAAe,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { TelemetryEventPropertyType } from \"@fluidframework/core-interfaces\";\nimport {\n\tSummaryTree,\n\tISummaryTree,\n\tISequencedDocumentMessage,\n\tISnapshotTree,\n\tITree,\n} from \"@fluidframework/protocol-definitions\";\nimport { IGarbageCollectionData, IGarbageCollectionDetailsBase } from \"./garbageCollection\";\n\n/**\n * Contains the aggregation data from a Tree/Subtree.\n * @internal\n */\nexport interface ISummaryStats {\n\ttreeNodeCount: number;\n\tblobNodeCount: number;\n\thandleNodeCount: number;\n\ttotalBlobSize: number;\n\tunreferencedBlobSize: number;\n}\n\n/**\n * Represents the summary tree for a node along with the statistics for that tree.\n * For example, for a given data store, it contains the data for data store along with a subtree for\n * each of its DDS.\n * Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject\n * will be taking part of the summarization process.\n * @internal\n */\nexport interface ISummaryTreeWithStats {\n\t/**\n\t * Represents an aggregation of node counts and blob sizes associated to the current summary information\n\t */\n\tstats: ISummaryStats;\n\t/**\n\t * A recursive data structure that will be converted to a snapshot tree and uploaded\n\t * to the backend.\n\t */\n\tsummary: ISummaryTree;\n}\n\n/**\n * Represents a summary at a current sequence number.\n * @internal\n */\nexport interface ISummarizeResult {\n\tstats: ISummaryStats;\n\tsummary: SummaryTree;\n}\n\n/**\n * Contains the same data as ISummaryResult but in order to avoid naming collisions,\n * the data store summaries are wrapped around an array of labels identified by pathPartsForChildren.\n *\n * @example\n *\n * ```typescript\n * id:\"\"\n * pathPartsForChildren: [\"path1\"]\n * stats: ...\n * summary:\n * ...\n * \"path1\":\n * ```\n * @internal\n */\nexport interface ISummarizeInternalResult extends ISummarizeResult {\n\tid: string;\n\t/**\n\t * Additional path parts between this node's ID and its children's IDs.\n\t */\n\tpathPartsForChildren?: string[];\n}\n\n/**\n * @experimental - Can be deleted/changed at any time\n * Contains the necessary information to allow DDSes to do incremental summaries\n * @internal\n */\nexport interface IExperimentalIncrementalSummaryContext {\n\t/**\n\t * The sequence number of the summary generated that will be sent to the server.\n\t */\n\tsummarySequenceNumber: number;\n\t/**\n\t * The sequence number of the most recent summary that was acknowledged by the server.\n\t */\n\tlatestSummarySequenceNumber: number;\n\t/**\n\t * The path to the runtime/datastore/dds that is used to generate summary handles\n\t * Note: Summary handles are nodes of the summary tree that point to previous parts of the last successful summary\n\t * instead of being a blob or tree node\n\t *\n\t * This path contains the id of the data store and dds which should not be leaked to layers below them. Ideally,\n\t * a layer should not know its own id. This is important for channel unification work and there has been a lot of\n\t * work to remove these kinds of leakages. Some still exist, which have to be fixed but we should not be adding\n\t * more dependencies.\n\t */\n\t// TODO: remove summaryPath\n\tsummaryPath: string;\n}\n\n/**\n * @internal\n */\nexport type SummarizeInternalFn = (\n\tfullTree: boolean,\n\ttrackState: boolean,\n\ttelemetryContext?: ITelemetryContext,\n\tincrementalSummaryContext?: IExperimentalIncrementalSummaryContext,\n) => Promise<ISummarizeInternalResult>;\n\n/**\n * @internal\n */\nexport interface ISummarizerNodeConfig {\n\t/**\n\t * True to reuse previous handle when unchanged since last acked summary.\n\t * Defaults to true.\n\t */\n\treadonly canReuseHandle?: boolean;\n\t/**\n\t * True to always stop execution on error during summarize, or false to\n\t * attempt creating a summary that is a pointer ot the last acked summary\n\t * plus outstanding ops in case of internal summarize failure.\n\t * Defaults to false.\n\t *\n\t * BUG BUG: Default to true while we investigate problem\n\t * with differential summaries\n\t */\n\treadonly throwOnFailure?: true;\n}\n\n/**\n * @internal\n */\nexport interface ISummarizerNodeConfigWithGC extends ISummarizerNodeConfig {\n\t/**\n\t * True if GC is disabled. If so, don't track GC related state for a summary.\n\t * This is propagated to all child nodes.\n\t */\n\treadonly gcDisabled?: boolean;\n}\n\n/**\n * @internal\n */\nexport enum CreateSummarizerNodeSource {\n\tFromSummary,\n\tFromAttach,\n\tLocal,\n}\n/**\n * @internal\n */\nexport type CreateChildSummarizerNodeParam =\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.FromSummary;\n\t }\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.FromAttach;\n\t\t\tsequenceNumber: number;\n\t\t\tsnapshot: ITree;\n\t }\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.Local;\n\t };\n\n/**\n * @internal\n */\nexport interface ISummarizerNode {\n\t/**\n\t * Latest successfully acked summary reference sequence number\n\t */\n\treadonly referenceSequenceNumber: number;\n\t/**\n\t * Marks the node as having a change with the given sequence number.\n\t * @param sequenceNumber - sequence number of change\n\t */\n\tinvalidate(sequenceNumber: number): void;\n\t/**\n\t * Calls the internal summarize function and handles internal state tracking.\n\t * If unchanged and fullTree is false, it will reuse previous summary subtree.\n\t * If an error is encountered and throwOnFailure is false, it will try to make\n\t * a summary with a pointer to the previous summary + a blob of outstanding ops.\n\t * @param fullTree - true to skip optimizations and always generate the full tree\n\t * @param trackState - indicates whether the summarizer node should track the state of the summary or not\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<ISummarizeResult>;\n\t/**\n\t * Checks if there are any additional path parts for children that need to\n\t * be loaded from the base summary. Additional path parts represent parts\n\t * of the path between this SummarizerNode and any child SummarizerNodes\n\t * that it might have. For example: if datastore \"a\" contains dds \"b\", but the\n\t * path is \"/a/.channels/b\", then the additional path part is \".channels\".\n\t * @param snapshot - the base summary to parse\n\t */\n\tupdateBaseSummaryState(snapshot: ISnapshotTree): void;\n\t/**\n\t * Records an op representing a change to this node/subtree.\n\t * @param op - op of change to record\n\t */\n\trecordChange(op: ISequencedDocumentMessage): void;\n\n\tcreateChild(\n\t\t/**\n\t\t * Summarize function\n\t\t */\n\t\tsummarizeInternalFn: SummarizeInternalFn,\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\t/**\n\t\t * Optional configuration affecting summarize behavior\n\t\t */\n\t\tconfig?: ISummarizerNodeConfig,\n\t): ISummarizerNode;\n\n\tgetChild(id: string): ISummarizerNode | undefined;\n\n\t/** True if a summary is currently in progress */\n\tisSummaryInProgress?(): boolean;\n}\n\n/**\n * Extends the functionality of ISummarizerNode to support garbage collection. It adds / updates the following APIs:\n *\n * `usedRoutes`: The routes in this node that are currently in use.\n *\n * `getGCData`: A new API that can be used to get the garbage collection data for this node.\n *\n * `summarize`: Added a trackState flag which indicates whether the summarizer node should track the state of the\n * summary or not.\n *\n * `createChild`: Added the following params:\n *\n * - `getGCDataFn`: This gets the GC data from the caller. This must be provided in order for getGCData to work.\n *\n * - `getInitialGCDetailsFn`: This gets the initial GC details from the caller.\n *\n * `deleteChild`: Deletes a child node.\n *\n * `isReferenced`: This tells whether this node is referenced in the document or not.\n *\n * `updateUsedRoutes`: Used to notify this node of routes that are currently in use in it.\n * @internal\n */\nexport interface ISummarizerNodeWithGC extends ISummarizerNode {\n\tcreateChild(\n\t\t/**\n\t\t * Summarize function\n\t\t */\n\t\tsummarizeInternalFn: SummarizeInternalFn,\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\t/**\n\t\t * Optional configuration affecting summarize behavior\n\t\t */\n\t\tconfig?: ISummarizerNodeConfigWithGC,\n\t\tgetGCDataFn?: (fullGC?: boolean) => Promise<IGarbageCollectionData>,\n\t\t/**\n\t\t * @deprecated The functionality to update child's base GC details is incorporated in the summarizer node.\n\t\t */\n\t\tgetBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,\n\t): ISummarizerNodeWithGC;\n\n\t/**\n\t * Delete the child with the given id..\n\t */\n\tdeleteChild(id: string): void;\n\n\tgetChild(id: string): ISummarizerNodeWithGC | undefined;\n\n\t/**\n\t * Returns this node's data that is used for garbage collection. This includes a list of GC nodes that represent\n\t * this node. Each node has a set 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 * Tells whether this node is being referenced in this document or not. Unreferenced node will get GC'd\n\t */\n\tisReferenced(): boolean;\n\n\t/**\n\t * After GC has run, called to notify this node of routes that are used in it. These are used for the following:\n\t * 1. To identify if this node is being referenced in the document or not.\n\t * 2. To identify if this node or any of its children's used routes changed since last summary.\n\t *\n\t * @param usedRoutes - The routes that are used in this node.\n\t */\n\tupdateUsedRoutes(usedRoutes: string[]): void;\n}\n\n/**\n * @internal\n */\nexport const channelsTreeName = \".channels\";\n\n/**\n * Contains telemetry data relevant to summarization workflows.\n * This object is expected to be modified directly by various summarize methods.\n * @internal\n */\nexport interface ITelemetryContext {\n\t/**\n\t * Sets value for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:map:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"DirectoryCount\")\n\t * @param value - value to attribute to this summary telemetry data\n\t */\n\tset(prefix: string, property: string, value: TelemetryEventPropertyType): void;\n\n\t/**\n\t * Sets multiple values for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:summarize:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"Options\")\n\t * @param values - A set of values to attribute to this summary telemetry data.\n\t */\n\tsetMultiple(\n\t\tprefix: string,\n\t\tproperty: string,\n\t\tvalues: Record<string, TelemetryEventPropertyType>,\n\t): void;\n\n\t/**\n\t * Get the telemetry data being tracked\n\t * @param prefix - unique prefix for this data (ex: \"fluid:map:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"DirectoryCount\")\n\t * @returns undefined if item not found\n\t */\n\tget(prefix: string, property: string): TelemetryEventPropertyType;\n\n\t/**\n\t * Returns a serialized version of all the telemetry data.\n\t * Should be used when logging in telemetry events.\n\t */\n\tserialize(): string;\n}\n\n/**\n * @internal\n */\nexport const blobCountPropertyName = \"BlobCount\";\n\n/**\n * @internal\n */\nexport const totalBlobSizePropertyName = \"TotalBlobSize\";\n"]}
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAmJH;;GAEG;AACH,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACrC,yFAAW,CAAA;IACX,uFAAU,CAAA;IACV,6EAAK,CAAA;AACN,CAAC,EAJW,0BAA0B,0CAA1B,0BAA0B,QAIrC;AAuKD;;GAEG;AACU,QAAA,gBAAgB,GAAG,WAAW,CAAC;AA2C5C;;GAEG;AACU,QAAA,qBAAqB,GAAG,WAAW,CAAC;AAEjD;;GAEG;AACU,QAAA,yBAAyB,GAAG,eAAe,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { TelemetryEventPropertyType } from \"@fluidframework/core-interfaces\";\nimport {\n\tSummaryTree,\n\tISummaryTree,\n\tISequencedDocumentMessage,\n\tISnapshotTree,\n\tITree,\n} from \"@fluidframework/protocol-definitions\";\nimport { IGarbageCollectionData, IGarbageCollectionDetailsBase } from \"./garbageCollection\";\n\n/**\n * Contains the aggregation data from a Tree/Subtree.\n * @alpha\n */\nexport interface ISummaryStats {\n\ttreeNodeCount: number;\n\tblobNodeCount: number;\n\thandleNodeCount: number;\n\ttotalBlobSize: number;\n\tunreferencedBlobSize: number;\n}\n\n/**\n * Represents the summary tree for a node along with the statistics for that tree.\n * For example, for a given data store, it contains the data for data store along with a subtree for\n * each of its DDS.\n * Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject\n * will be taking part of the summarization process.\n * @alpha\n */\nexport interface ISummaryTreeWithStats {\n\t/**\n\t * Represents an aggregation of node counts and blob sizes associated to the current summary information\n\t */\n\tstats: ISummaryStats;\n\t/**\n\t * A recursive data structure that will be converted to a snapshot tree and uploaded\n\t * to the backend.\n\t */\n\tsummary: ISummaryTree;\n}\n\n/**\n * Represents a summary at a current sequence number.\n * @alpha\n */\nexport interface ISummarizeResult {\n\tstats: ISummaryStats;\n\tsummary: SummaryTree;\n}\n\n/**\n * Contains the same data as ISummaryResult but in order to avoid naming collisions,\n * the data store summaries are wrapped around an array of labels identified by pathPartsForChildren.\n *\n * @example\n *\n * ```typescript\n * id:\"\"\n * pathPartsForChildren: [\"path1\"]\n * stats: ...\n * summary:\n * ...\n * \"path1\":\n * ```\n * @alpha\n */\nexport interface ISummarizeInternalResult extends ISummarizeResult {\n\tid: string;\n\t/**\n\t * Additional path parts between this node's ID and its children's IDs.\n\t */\n\tpathPartsForChildren?: string[];\n}\n\n/**\n * @experimental - Can be deleted/changed at any time\n * Contains the necessary information to allow DDSes to do incremental summaries\n * @alpha\n */\nexport interface IExperimentalIncrementalSummaryContext {\n\t/**\n\t * The sequence number of the summary generated that will be sent to the server.\n\t */\n\tsummarySequenceNumber: number;\n\t/**\n\t * The sequence number of the most recent summary that was acknowledged by the server.\n\t */\n\tlatestSummarySequenceNumber: number;\n\t/**\n\t * The path to the runtime/datastore/dds that is used to generate summary handles\n\t * Note: Summary handles are nodes of the summary tree that point to previous parts of the last successful summary\n\t * instead of being a blob or tree node\n\t *\n\t * This path contains the id of the data store and dds which should not be leaked to layers below them. Ideally,\n\t * a layer should not know its own id. This is important for channel unification work and there has been a lot of\n\t * work to remove these kinds of leakages. Some still exist, which have to be fixed but we should not be adding\n\t * more dependencies.\n\t */\n\t// TODO: remove summaryPath\n\tsummaryPath: string;\n}\n\n/**\n * @alpha\n */\nexport type SummarizeInternalFn = (\n\tfullTree: boolean,\n\ttrackState: boolean,\n\ttelemetryContext?: ITelemetryContext,\n\tincrementalSummaryContext?: IExperimentalIncrementalSummaryContext,\n) => Promise<ISummarizeInternalResult>;\n\n/**\n * @alpha\n */\nexport interface ISummarizerNodeConfig {\n\t/**\n\t * True to reuse previous handle when unchanged since last acked summary.\n\t * Defaults to true.\n\t */\n\treadonly canReuseHandle?: boolean;\n\t/**\n\t * True to always stop execution on error during summarize, or false to\n\t * attempt creating a summary that is a pointer ot the last acked summary\n\t * plus outstanding ops in case of internal summarize failure.\n\t * Defaults to false.\n\t *\n\t * BUG BUG: Default to true while we investigate problem\n\t * with differential summaries\n\t */\n\treadonly throwOnFailure?: true;\n}\n\n/**\n * @alpha\n */\nexport interface ISummarizerNodeConfigWithGC extends ISummarizerNodeConfig {\n\t/**\n\t * True if GC is disabled. If so, don't track GC related state for a summary.\n\t * This is propagated to all child nodes.\n\t */\n\treadonly gcDisabled?: boolean;\n}\n\n/**\n * @alpha\n */\nexport enum CreateSummarizerNodeSource {\n\tFromSummary,\n\tFromAttach,\n\tLocal,\n}\n/**\n * @alpha\n */\nexport type CreateChildSummarizerNodeParam =\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.FromSummary;\n\t }\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.FromAttach;\n\t\t\tsequenceNumber: number;\n\t\t\tsnapshot: ITree;\n\t }\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.Local;\n\t };\n\n/**\n * @alpha\n */\nexport interface ISummarizerNode {\n\t/**\n\t * Latest successfully acked summary reference sequence number\n\t */\n\treadonly referenceSequenceNumber: number;\n\t/**\n\t * Marks the node as having a change with the given sequence number.\n\t * @param sequenceNumber - sequence number of change\n\t */\n\tinvalidate(sequenceNumber: number): void;\n\t/**\n\t * Calls the internal summarize function and handles internal state tracking.\n\t * If unchanged and fullTree is false, it will reuse previous summary subtree.\n\t * If an error is encountered and throwOnFailure is false, it will try to make\n\t * a summary with a pointer to the previous summary + a blob of outstanding ops.\n\t * @param fullTree - true to skip optimizations and always generate the full tree\n\t * @param trackState - indicates whether the summarizer node should track the state of the summary or not\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<ISummarizeResult>;\n\t/**\n\t * Checks if there are any additional path parts for children that need to\n\t * be loaded from the base summary. Additional path parts represent parts\n\t * of the path between this SummarizerNode and any child SummarizerNodes\n\t * that it might have. For example: if datastore \"a\" contains dds \"b\", but the\n\t * path is \"/a/.channels/b\", then the additional path part is \".channels\".\n\t * @param snapshot - the base summary to parse\n\t */\n\tupdateBaseSummaryState(snapshot: ISnapshotTree): void;\n\t/**\n\t * Records an op representing a change to this node/subtree.\n\t * @param op - op of change to record\n\t */\n\trecordChange(op: ISequencedDocumentMessage): void;\n\n\tcreateChild(\n\t\t/**\n\t\t * Summarize function\n\t\t */\n\t\tsummarizeInternalFn: SummarizeInternalFn,\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\t/**\n\t\t * Optional configuration affecting summarize behavior\n\t\t */\n\t\tconfig?: ISummarizerNodeConfig,\n\t): ISummarizerNode;\n\n\tgetChild(id: string): ISummarizerNode | undefined;\n\n\t/** True if a summary is currently in progress */\n\tisSummaryInProgress?(): boolean;\n}\n\n/**\n * Extends the functionality of ISummarizerNode to support garbage collection. It adds / updates the following APIs:\n *\n * `usedRoutes`: The routes in this node that are currently in use.\n *\n * `getGCData`: A new API that can be used to get the garbage collection data for this node.\n *\n * `summarize`: Added a trackState flag which indicates whether the summarizer node should track the state of the\n * summary or not.\n *\n * `createChild`: Added the following params:\n *\n * - `getGCDataFn`: This gets the GC data from the caller. This must be provided in order for getGCData to work.\n *\n * - `getInitialGCDetailsFn`: This gets the initial GC details from the caller.\n *\n * `deleteChild`: Deletes a child node.\n *\n * `isReferenced`: This tells whether this node is referenced in the document or not.\n *\n * `updateUsedRoutes`: Used to notify this node of routes that are currently in use in it.\n * @alpha\n */\nexport interface ISummarizerNodeWithGC extends ISummarizerNode {\n\tcreateChild(\n\t\t/**\n\t\t * Summarize function\n\t\t */\n\t\tsummarizeInternalFn: SummarizeInternalFn,\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\t/**\n\t\t * Optional configuration affecting summarize behavior\n\t\t */\n\t\tconfig?: ISummarizerNodeConfigWithGC,\n\t\tgetGCDataFn?: (fullGC?: boolean) => Promise<IGarbageCollectionData>,\n\t\t/**\n\t\t * @deprecated The functionality to update child's base GC details is incorporated in the summarizer node.\n\t\t */\n\t\tgetBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,\n\t): ISummarizerNodeWithGC;\n\n\t/**\n\t * Delete the child with the given id..\n\t */\n\tdeleteChild(id: string): void;\n\n\tgetChild(id: string): ISummarizerNodeWithGC | undefined;\n\n\t/**\n\t * Returns this node's data that is used for garbage collection. This includes a list of GC nodes that represent\n\t * this node. Each node has a set 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 * Tells whether this node is being referenced in this document or not. Unreferenced node will get GC'd\n\t */\n\tisReferenced(): boolean;\n\n\t/**\n\t * After GC has run, called to notify this node of routes that are used in it. These are used for the following:\n\t * 1. To identify if this node is being referenced in the document or not.\n\t * 2. To identify if this node or any of its children's used routes changed since last summary.\n\t *\n\t * @param usedRoutes - The routes that are used in this node.\n\t */\n\tupdateUsedRoutes(usedRoutes: string[]): void;\n}\n\n/**\n * @internal\n */\nexport const channelsTreeName = \".channels\";\n\n/**\n * Contains telemetry data relevant to summarization workflows.\n * This object is expected to be modified directly by various summarize methods.\n * @alpha\n */\nexport interface ITelemetryContext {\n\t/**\n\t * Sets value for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:map:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"DirectoryCount\")\n\t * @param value - value to attribute to this summary telemetry data\n\t */\n\tset(prefix: string, property: string, value: TelemetryEventPropertyType): void;\n\n\t/**\n\t * Sets multiple values for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:summarize:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"Options\")\n\t * @param values - A set of values to attribute to this summary telemetry data.\n\t */\n\tsetMultiple(\n\t\tprefix: string,\n\t\tproperty: string,\n\t\tvalues: Record<string, TelemetryEventPropertyType>,\n\t): void;\n\n\t/**\n\t * Get the telemetry data being tracked\n\t * @param prefix - unique prefix for this data (ex: \"fluid:map:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"DirectoryCount\")\n\t * @returns undefined if item not found\n\t */\n\tget(prefix: string, property: string): TelemetryEventPropertyType;\n\n\t/**\n\t * Returns a serialized version of all the telemetry data.\n\t * Should be used when logging in telemetry events.\n\t */\n\tserialize(): string;\n}\n\n/**\n * @internal\n */\nexport const blobCountPropertyName = \"BlobCount\";\n\n/**\n * @internal\n */\nexport const totalBlobSizePropertyName = \"TotalBlobSize\";\n"]}
|