@fluidframework/runtime-definitions 2.0.0-dev-rc.5.0.0.263932 → 2.0.0-dev-rc.5.0.0.267932

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 (47) hide show
  1. package/api-report/runtime-definitions.api.md +36 -33
  2. package/dist/attribution.d.ts +1 -1
  3. package/dist/attribution.d.ts.map +1 -1
  4. package/dist/attribution.js.map +1 -1
  5. package/dist/dataStoreContext.d.ts +6 -5
  6. package/dist/dataStoreContext.d.ts.map +1 -1
  7. package/dist/dataStoreContext.js.map +1 -1
  8. package/dist/garbageCollectionDefinitions.d.ts +1 -1
  9. package/dist/garbageCollectionDefinitions.js.map +1 -1
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/legacy.d.ts +6 -8
  14. package/dist/protocol.d.ts +4 -3
  15. package/dist/protocol.d.ts.map +1 -1
  16. package/dist/protocol.js.map +1 -1
  17. package/dist/public.d.ts +2 -9
  18. package/dist/summary.d.ts +27 -22
  19. package/dist/summary.d.ts.map +1 -1
  20. package/dist/summary.js.map +1 -1
  21. package/lib/attribution.d.ts +1 -1
  22. package/lib/attribution.d.ts.map +1 -1
  23. package/lib/attribution.js.map +1 -1
  24. package/lib/dataStoreContext.d.ts +6 -5
  25. package/lib/dataStoreContext.d.ts.map +1 -1
  26. package/lib/dataStoreContext.js.map +1 -1
  27. package/lib/garbageCollectionDefinitions.d.ts +1 -1
  28. package/lib/garbageCollectionDefinitions.js.map +1 -1
  29. package/lib/index.d.ts +1 -1
  30. package/lib/index.d.ts.map +1 -1
  31. package/lib/index.js.map +1 -1
  32. package/lib/legacy.d.ts +6 -8
  33. package/lib/protocol.d.ts +4 -3
  34. package/lib/protocol.d.ts.map +1 -1
  35. package/lib/protocol.js.map +1 -1
  36. package/lib/public.d.ts +2 -9
  37. package/lib/summary.d.ts +27 -22
  38. package/lib/summary.d.ts.map +1 -1
  39. package/lib/summary.js.map +1 -1
  40. package/lib/tsdoc-metadata.json +1 -1
  41. package/package.json +32 -15
  42. package/src/attribution.ts +1 -1
  43. package/src/dataStoreContext.ts +12 -8
  44. package/src/garbageCollectionDefinitions.ts +1 -1
  45. package/src/index.ts +1 -0
  46. package/src/protocol.ts +4 -3
  47. package/src/summary.ts +31 -24
package/lib/summary.d.ts CHANGED
@@ -3,11 +3,13 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  import type { TelemetryBaseEventPropertyType } from "@fluidframework/core-interfaces";
6
- import type { ISequencedDocumentMessage, ISnapshotTree, ISummaryTree, ITree, SummaryTree } from "@fluidframework/protocol-definitions";
6
+ import type { ISequencedDocumentMessage, ISummaryTree } from "@fluidframework/driver-definitions";
7
+ import type { ISnapshotTree, ITree, SummaryTree } from "@fluidframework/driver-definitions/internal";
8
+ import type { TelemetryEventPropertyTypeExt } from "@fluidframework/telemetry-utils/internal";
7
9
  import type { IGarbageCollectionData, IGarbageCollectionDetailsBase } from "./garbageCollectionDefinitions.js";
8
10
  /**
9
11
  * Contains the aggregation data from a Tree/Subtree.
10
- * @public
12
+ * @alpha
11
13
  */
12
14
  export interface ISummaryStats {
13
15
  treeNodeCount: number;
@@ -22,7 +24,7 @@ export interface ISummaryStats {
22
24
  * each of its DDS.
23
25
  * Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject
24
26
  * will be taking part of the summarization process.
25
- * @public
27
+ * @alpha
26
28
  */
27
29
  export interface ISummaryTreeWithStats {
28
30
  /**
@@ -69,7 +71,7 @@ export interface ISummarizeInternalResult extends ISummarizeResult {
69
71
  /**
70
72
  * @experimental - Can be deleted/changed at any time
71
73
  * Contains the necessary information to allow DDSes to do incremental summaries
72
- * @public
74
+ * @alpha
73
75
  */
74
76
  export interface IExperimentalIncrementalSummaryContext {
75
77
  /**
@@ -274,42 +276,45 @@ export interface ISummarizerNodeWithGC extends ISummarizerNode {
274
276
  export declare const channelsTreeName = ".channels";
275
277
  /**
276
278
  * Contains telemetry data relevant to summarization workflows.
277
- * This object is expected to be modified directly by various summarize methods.
278
- * @public
279
+ * This object, in contrast to ITelemetryContext, is expected to be modified directly by various summarize methods.
280
+ * @internal
279
281
  */
280
- export interface ITelemetryContext {
282
+ export interface ITelemetryContextExt {
281
283
  /**
282
284
  * Sets value for telemetry data being tracked.
283
285
  * @param prefix - unique prefix to tag this data with (ex: "fluid:map:")
284
286
  * @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
285
287
  * @param value - value to attribute to this summary telemetry data
286
288
  */
287
- set(prefix: string, property: string, value: TelemetryBaseEventPropertyType): void;
289
+ set(prefix: string, property: string, value: TelemetryEventPropertyTypeExt): void;
288
290
  /**
289
291
  * Sets multiple values for telemetry data being tracked.
290
292
  * @param prefix - unique prefix to tag this data with (ex: "fluid:summarize:")
291
293
  * @param property - property name of the telemetry data being tracked (ex: "Options")
292
294
  * @param values - A set of values to attribute to this summary telemetry data.
293
295
  */
294
- setMultiple(prefix: string, property: string, values: Record<string, TelemetryBaseEventPropertyType>): void;
296
+ setMultiple(prefix: string, property: string, values: Record<string, TelemetryEventPropertyTypeExt>): void;
297
+ }
298
+ /**
299
+ * Contains telemetry data relevant to summarization workflows.
300
+ * This object is expected to be modified directly by various summarize methods.
301
+ * @alpha
302
+ */
303
+ export interface ITelemetryContext {
295
304
  /**
296
- * Get the telemetry data being tracked
297
- *
298
- * @deprecated This interface should only be used for instrumenting, not for attempting to read already-set telemetry data.
299
- *
300
- * @param prefix - unique prefix for this data (ex: "fluid:map:")
305
+ * Sets value for telemetry data being tracked.
306
+ * @param prefix - unique prefix to tag this data with (ex: "fluid:map:")
301
307
  * @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
302
- * @returns undefined if item not found
308
+ * @param value - value to attribute to this summary telemetry data
303
309
  */
304
- get(prefix: string, property: string): TelemetryBaseEventPropertyType;
310
+ set(prefix: string, property: string, value: TelemetryBaseEventPropertyType): void;
305
311
  /**
306
- * Returns a serialized version of all the telemetry data.
307
- * Should be used when logging in telemetry events.
308
- *
309
- * @deprecated This interface should only be used for instrumenting. A concrete implementation will likely have a serialize function
310
- * but this functionality should not be used by other code being given an ITelemetryContext.
312
+ * Sets multiple values for telemetry data being tracked.
313
+ * @param prefix - unique prefix to tag this data with (ex: "fluid:summarize:")
314
+ * @param property - property name of the telemetry data being tracked (ex: "Options")
315
+ * @param values - A set of values to attribute to this summary telemetry data.
311
316
  */
312
- serialize(): string;
317
+ setMultiple(prefix: string, property: string, values: Record<string, TelemetryBaseEventPropertyType>): void;
313
318
  }
314
319
  /**
315
320
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6IH;;GAEG;AACH,MAAM,CAAN,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACrC,yFAAW,CAAA;IACX,uFAAU,CAAA;IACV,6EAAK,CAAA;AACN,CAAC,EAJW,0BAA0B,KAA1B,0BAA0B,QAIrC;AAsKD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAiD5C;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { TelemetryBaseEventPropertyType } from \"@fluidframework/core-interfaces\";\nimport type {\n\tISequencedDocumentMessage,\n\tISnapshotTree,\n\tISummaryTree,\n\tITree,\n\tSummaryTree,\n} from \"@fluidframework/protocol-definitions\";\n\nimport type {\n\tIGarbageCollectionData,\n\tIGarbageCollectionDetailsBase,\n} from \"./garbageCollectionDefinitions.js\";\n\n/**\n * Contains the aggregation data from a Tree/Subtree.\n * @public\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 * @public\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 * @public\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}\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 * @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/**\n\t * True if a summary is currently in progress\n\t */\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 * @public\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: TelemetryBaseEventPropertyType): 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, TelemetryBaseEventPropertyType>,\n\t): void;\n\n\t/**\n\t * Get the telemetry data being tracked\n\t *\n\t * @deprecated This interface should only be used for instrumenting, not for attempting to read already-set telemetry data.\n\t *\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): TelemetryBaseEventPropertyType;\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\t * @deprecated This interface should only be used for instrumenting. A concrete implementation will likely have a serialize function\n\t * but this functionality should not be used by other code being given an ITelemetryContext.\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;AA6IH;;GAEG;AACH,MAAM,CAAN,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACrC,yFAAW,CAAA;IACX,uFAAU,CAAA;IACV,6EAAK,CAAA;AACN,CAAC,EAJW,0BAA0B,KAA1B,0BAA0B,QAIrC;AAsKD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAwD5C;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { TelemetryBaseEventPropertyType } from \"@fluidframework/core-interfaces\";\nimport type { ISequencedDocumentMessage, ISummaryTree } from \"@fluidframework/driver-definitions\";\nimport type {\n\tISnapshotTree,\n\tITree,\n\tSummaryTree,\n} from \"@fluidframework/driver-definitions/internal\";\nimport type { TelemetryEventPropertyTypeExt } from \"@fluidframework/telemetry-utils/internal\";\n\nimport type {\n\tIGarbageCollectionData,\n\tIGarbageCollectionDetailsBase,\n} from \"./garbageCollectionDefinitions.js\";\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}\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 * @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/**\n\t * True if a summary is currently in progress\n\t */\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, in contrast to ITelemetryContext, is expected to be modified directly by various summarize methods.\n * @internal\n */\nexport interface ITelemetryContextExt {\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: TelemetryEventPropertyTypeExt): 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, TelemetryEventPropertyTypeExt>,\n\t): void;\n}\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: TelemetryBaseEventPropertyType): 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, TelemetryBaseEventPropertyType>,\n\t): void;\n}\n\n/**\n * @internal\n */\nexport const blobCountPropertyName = \"BlobCount\";\n\n/**\n * @internal\n */\nexport const totalBlobSizePropertyName = \"TotalBlobSize\";\n"]}
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.43.1"
8
+ "packageVersion": "7.45.1"
9
9
  }
10
10
  ]
11
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/runtime-definitions",
3
- "version": "2.0.0-dev-rc.5.0.0.263932",
3
+ "version": "2.0.0-dev-rc.5.0.0.267932",
4
4
  "description": "Fluid Runtime definitions",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -47,35 +47,52 @@
47
47
  "main": "lib/index.js",
48
48
  "types": "lib/public.d.ts",
49
49
  "dependencies": {
50
- "@fluidframework/container-definitions": "2.0.0-dev-rc.5.0.0.263932",
51
- "@fluidframework/core-interfaces": "2.0.0-dev-rc.5.0.0.263932",
52
- "@fluidframework/driver-definitions": "2.0.0-dev-rc.5.0.0.263932",
53
- "@fluidframework/id-compressor": "2.0.0-dev-rc.5.0.0.263932",
54
- "@fluidframework/protocol-definitions": "^3.2.0"
50
+ "@fluidframework/container-definitions": "2.0.0-dev-rc.5.0.0.267932",
51
+ "@fluidframework/core-interfaces": "2.0.0-dev-rc.5.0.0.267932",
52
+ "@fluidframework/driver-definitions": "2.0.0-dev-rc.5.0.0.267932",
53
+ "@fluidframework/id-compressor": "2.0.0-dev-rc.5.0.0.267932",
54
+ "@fluidframework/telemetry-utils": "2.0.0-dev-rc.5.0.0.267932"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@arethetypeswrong/cli": "^0.15.2",
58
58
  "@biomejs/biome": "^1.6.2",
59
- "@fluid-tools/build-cli": "^0.38.0",
59
+ "@fluid-tools/build-cli": "^0.39.0-264124",
60
60
  "@fluidframework/build-common": "^2.0.3",
61
- "@fluidframework/build-tools": "^0.38.0",
61
+ "@fluidframework/build-tools": "^0.39.0-264124",
62
62
  "@fluidframework/eslint-config-fluid": "^5.1.0",
63
- "@fluidframework/runtime-definitions-previous": "npm:@fluidframework/runtime-definitions@2.0.0-rc.3.0.0",
64
- "@microsoft/api-extractor": "^7.43.1",
63
+ "@fluidframework/runtime-definitions-previous": "npm:@fluidframework/runtime-definitions@2.0.0-rc.4.0.0",
64
+ "@microsoft/api-extractor": "^7.45.1",
65
65
  "copyfiles": "^2.4.1",
66
66
  "eslint": "~8.55.0",
67
67
  "eslint-plugin-deprecation": "~2.0.0",
68
68
  "prettier": "~3.0.3",
69
69
  "rimraf": "^4.4.0",
70
- "typescript": "~5.1.6"
70
+ "typescript": "~5.4.5"
71
71
  },
72
72
  "typeValidation": {
73
73
  "broken": {
74
- "InterfaceDeclaration_IDataStore": {
75
- "forwardCompat": false
74
+ "InterfaceDeclaration_IContainerRuntimeBase": {
75
+ "forwardCompat": false,
76
+ "backCompat": false
76
77
  },
77
- "InterfaceDeclaration_IFluidDataStoreChannel": {
78
- "forwardCompat": false
78
+ "InterfaceDeclaration_IFluidDataStoreContext": {
79
+ "forwardCompat": false,
80
+ "backCompat": false
81
+ },
82
+ "InterfaceDeclaration_IFluidDataStoreContextDetached": {
83
+ "forwardCompat": false,
84
+ "backCompat": false
85
+ },
86
+ "InterfaceDeclaration_IFluidParentContext": {
87
+ "forwardCompat": false,
88
+ "backCompat": false
89
+ },
90
+ "InterfaceDeclaration_ITelemetryContext": {
91
+ "backCompat": false
92
+ },
93
+ "RemovedInterfaceDeclaration_IFluidDataStoreContextEvents": {
94
+ "forwardCompat": false,
95
+ "backCompat": false
79
96
  }
80
97
  }
81
98
  },
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import type { IUser } from "@fluidframework/protocol-definitions";
6
+ import type { IUser } from "@fluidframework/driver-definitions";
7
7
 
8
8
  /**
9
9
  * AttributionKey representing a reference to some op in the op stream.
@@ -11,21 +11,25 @@ import type {
11
11
  IEvent,
12
12
  IEventProvider,
13
13
  IFluidHandle,
14
- IFluidHandleInternal,
15
- IProvideFluidHandleContext,
16
14
  IRequest,
17
15
  IResponse,
18
16
  ITelemetryBaseLogger,
17
+ } from "@fluidframework/core-interfaces";
18
+ import type {
19
+ IFluidHandleInternal,
20
+ IProvideFluidHandleContext,
19
21
  } from "@fluidframework/core-interfaces/internal";
20
- import type { IDocumentStorageService } from "@fluidframework/driver-definitions/internal";
21
- import type { IIdCompressor } from "@fluidframework/id-compressor";
22
22
  import type {
23
23
  IClientDetails,
24
- IDocumentMessage,
25
24
  IQuorumClients,
26
25
  ISequencedDocumentMessage,
26
+ } from "@fluidframework/driver-definitions";
27
+ import type {
28
+ IDocumentStorageService,
29
+ IDocumentMessage,
27
30
  ISnapshotTree,
28
- } from "@fluidframework/protocol-definitions";
31
+ } from "@fluidframework/driver-definitions/internal";
32
+ import type { IIdCompressor } from "@fluidframework/id-compressor";
29
33
 
30
34
  import type { IProvideFluidDataStoreFactory } from "./dataStoreFactory.js";
31
35
  import type { IProvideFluidDataStoreRegistry } from "./dataStoreRegistry.js";
@@ -170,7 +174,7 @@ export interface IDataStore {
170
174
  * @alpha
171
175
  */
172
176
  export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeBaseEvents> {
173
- readonly logger: ITelemetryBaseLogger;
177
+ readonly baseLogger: ITelemetryBaseLogger;
174
178
  readonly clientDetails: IClientDetails;
175
179
  readonly disposed: boolean;
176
180
 
@@ -399,7 +403,7 @@ export interface IFluidParentContext
399
403
  readonly connected: boolean;
400
404
  readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
401
405
  readonly storage: IDocumentStorageService;
402
- readonly logger: ITelemetryBaseLogger;
406
+ readonly baseLogger: ITelemetryBaseLogger;
403
407
  readonly clientDetails: IClientDetails;
404
408
  readonly idCompressor?: IIdCompressor;
405
409
  /**
@@ -37,7 +37,7 @@ export const gcDataBlobKey = ".gcdata";
37
37
  /**
38
38
  * Garbage collection data returned by nodes in a Container.
39
39
  * Used for running GC in the Container.
40
- * @public
40
+ * @alpha
41
41
  */
42
42
  export interface IGarbageCollectionData {
43
43
  /**
package/src/index.ts CHANGED
@@ -61,6 +61,7 @@ export type {
61
61
  ISummaryStats,
62
62
  ISummaryTreeWithStats,
63
63
  ITelemetryContext,
64
+ ITelemetryContextExt,
64
65
  SummarizeInternalFn,
65
66
  } from "./summary.js";
66
67
  export {
package/src/protocol.ts CHANGED
@@ -3,7 +3,8 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import type { ISignalMessage, ITree } from "@fluidframework/protocol-definitions";
6
+ import type { ISignalMessage } from "@fluidframework/driver-definitions";
7
+ import type { ITree } from "@fluidframework/driver-definitions/internal";
7
8
 
8
9
  /**
9
10
  * An envelope wraps the contents with the intended target
@@ -47,10 +48,10 @@ export interface ISignalEnvelope {
47
48
 
48
49
  /**
49
50
  * Represents ISignalMessage with its type.
50
- * @public
51
+ * @alpha
51
52
  */
52
53
  export interface IInboundSignalMessage extends ISignalMessage {
53
- type: string;
54
+ readonly type: string;
54
55
  }
55
56
 
56
57
  /**
package/src/summary.ts CHANGED
@@ -4,13 +4,13 @@
4
4
  */
5
5
 
6
6
  import type { TelemetryBaseEventPropertyType } from "@fluidframework/core-interfaces";
7
+ import type { ISequencedDocumentMessage, ISummaryTree } from "@fluidframework/driver-definitions";
7
8
  import type {
8
- ISequencedDocumentMessage,
9
9
  ISnapshotTree,
10
- ISummaryTree,
11
10
  ITree,
12
11
  SummaryTree,
13
- } from "@fluidframework/protocol-definitions";
12
+ } from "@fluidframework/driver-definitions/internal";
13
+ import type { TelemetryEventPropertyTypeExt } from "@fluidframework/telemetry-utils/internal";
14
14
 
15
15
  import type {
16
16
  IGarbageCollectionData,
@@ -19,7 +19,7 @@ import type {
19
19
 
20
20
  /**
21
21
  * Contains the aggregation data from a Tree/Subtree.
22
- * @public
22
+ * @alpha
23
23
  */
24
24
  export interface ISummaryStats {
25
25
  treeNodeCount: number;
@@ -35,7 +35,7 @@ export interface ISummaryStats {
35
35
  * each of its DDS.
36
36
  * Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject
37
37
  * will be taking part of the summarization process.
38
- * @public
38
+ * @alpha
39
39
  */
40
40
  export interface ISummaryTreeWithStats {
41
41
  /**
@@ -85,7 +85,7 @@ export interface ISummarizeInternalResult extends ISummarizeResult {
85
85
  /**
86
86
  * @experimental - Can be deleted/changed at any time
87
87
  * Contains the necessary information to allow DDSes to do incremental summaries
88
- * @public
88
+ * @alpha
89
89
  */
90
90
  export interface IExperimentalIncrementalSummaryContext {
91
91
  /**
@@ -322,17 +322,17 @@ export const channelsTreeName = ".channels";
322
322
 
323
323
  /**
324
324
  * Contains telemetry data relevant to summarization workflows.
325
- * This object is expected to be modified directly by various summarize methods.
326
- * @public
325
+ * This object, in contrast to ITelemetryContext, is expected to be modified directly by various summarize methods.
326
+ * @internal
327
327
  */
328
- export interface ITelemetryContext {
328
+ export interface ITelemetryContextExt {
329
329
  /**
330
330
  * Sets value for telemetry data being tracked.
331
331
  * @param prefix - unique prefix to tag this data with (ex: "fluid:map:")
332
332
  * @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
333
333
  * @param value - value to attribute to this summary telemetry data
334
334
  */
335
- set(prefix: string, property: string, value: TelemetryBaseEventPropertyType): void;
335
+ set(prefix: string, property: string, value: TelemetryEventPropertyTypeExt): void;
336
336
 
337
337
  /**
338
338
  * Sets multiple values for telemetry data being tracked.
@@ -343,28 +343,35 @@ export interface ITelemetryContext {
343
343
  setMultiple(
344
344
  prefix: string,
345
345
  property: string,
346
- values: Record<string, TelemetryBaseEventPropertyType>,
346
+ values: Record<string, TelemetryEventPropertyTypeExt>,
347
347
  ): void;
348
+ }
348
349
 
350
+ /**
351
+ * Contains telemetry data relevant to summarization workflows.
352
+ * This object is expected to be modified directly by various summarize methods.
353
+ * @alpha
354
+ */
355
+ export interface ITelemetryContext {
349
356
  /**
350
- * Get the telemetry data being tracked
351
- *
352
- * @deprecated This interface should only be used for instrumenting, not for attempting to read already-set telemetry data.
353
- *
354
- * @param prefix - unique prefix for this data (ex: "fluid:map:")
357
+ * Sets value for telemetry data being tracked.
358
+ * @param prefix - unique prefix to tag this data with (ex: "fluid:map:")
355
359
  * @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
356
- * @returns undefined if item not found
360
+ * @param value - value to attribute to this summary telemetry data
357
361
  */
358
- get(prefix: string, property: string): TelemetryBaseEventPropertyType;
362
+ set(prefix: string, property: string, value: TelemetryBaseEventPropertyType): void;
359
363
 
360
364
  /**
361
- * Returns a serialized version of all the telemetry data.
362
- * Should be used when logging in telemetry events.
363
- *
364
- * @deprecated This interface should only be used for instrumenting. A concrete implementation will likely have a serialize function
365
- * but this functionality should not be used by other code being given an ITelemetryContext.
365
+ * Sets multiple values for telemetry data being tracked.
366
+ * @param prefix - unique prefix to tag this data with (ex: "fluid:summarize:")
367
+ * @param property - property name of the telemetry data being tracked (ex: "Options")
368
+ * @param values - A set of values to attribute to this summary telemetry data.
366
369
  */
367
- serialize(): string;
370
+ setMultiple(
371
+ prefix: string,
372
+ property: string,
373
+ values: Record<string, TelemetryBaseEventPropertyType>,
374
+ ): void;
368
375
  }
369
376
 
370
377
  /**