@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.
Files changed (37) hide show
  1. package/api-report/runtime-definitions.api.md +47 -47
  2. package/dist/dataStoreContext.d.ts +12 -12
  3. package/dist/dataStoreContext.js +2 -2
  4. package/dist/dataStoreContext.js.map +1 -1
  5. package/dist/dataStoreFactory.d.ts +3 -3
  6. package/dist/dataStoreFactory.js +1 -1
  7. package/dist/dataStoreFactory.js.map +1 -1
  8. package/dist/dataStoreRegistry.d.ts +6 -6
  9. package/dist/dataStoreRegistry.js +1 -1
  10. package/dist/dataStoreRegistry.js.map +1 -1
  11. package/dist/garbageCollection.d.ts +2 -2
  12. package/dist/garbageCollection.js.map +1 -1
  13. package/dist/id-compressor/idCompressor.d.ts +2 -2
  14. package/dist/id-compressor/idCompressor.js.map +1 -1
  15. package/dist/id-compressor/identifiers.d.ts +4 -4
  16. package/dist/id-compressor/identifiers.js.map +1 -1
  17. package/dist/id-compressor/persisted-types/0.0.1.d.ts +4 -4
  18. package/dist/id-compressor/persisted-types/0.0.1.js.map +1 -1
  19. package/dist/protocol.d.ts +1 -1
  20. package/dist/protocol.js.map +1 -1
  21. package/dist/runtime-definitions-alpha.d.ts +1073 -111
  22. package/dist/runtime-definitions-untrimmed.d.ts +47 -47
  23. package/dist/summary.d.ts +13 -13
  24. package/dist/summary.js +1 -1
  25. package/dist/summary.js.map +1 -1
  26. package/lib/runtime-definitions-alpha.d.ts +1073 -111
  27. package/lib/runtime-definitions-untrimmed.d.ts +47 -47
  28. package/package.json +4 -4
  29. package/src/dataStoreContext.ts +12 -12
  30. package/src/dataStoreFactory.ts +3 -3
  31. package/src/dataStoreRegistry.ts +6 -6
  32. package/src/garbageCollection.ts +2 -2
  33. package/src/id-compressor/idCompressor.ts +2 -2
  34. package/src/id-compressor/identifiers.ts +4 -4
  35. package/src/id-compressor/persisted-types/0.0.1.ts +4 -4
  36. package/src/protocol.ts +1 -1
  37. 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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
853
+ * @alpha
854
854
  */
855
855
  export declare interface IProvideFluidDataStoreFactory {
856
856
  readonly IFluidDataStoreFactory: IFluidDataStoreFactory;
857
857
  }
858
858
 
859
859
  /**
860
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
96
+ * @alpha
97
97
  */
98
98
  export type SummarizeInternalFn = (fullTree: boolean, trackState: boolean, telemetryContext?: ITelemetryContext, incrementalSummaryContext?: IExperimentalIncrementalSummaryContext) => Promise<ISummarizeInternalResult>;
99
99
  /**
100
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
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
- * @internal
9
+ * @alpha
10
10
  */
11
11
  var CreateSummarizerNodeSource;
12
12
  (function (CreateSummarizerNodeSource) {
@@ -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"]}