@fluidframework/telemetry-utils 2.0.0-dev.7.4.0.217212 → 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.
@@ -73,7 +73,7 @@ export class DataProcessingError extends LoggingError implements IErrorBase, IFl
73
73
  // @internal (undocumented)
74
74
  export const disconnectedEventName = "disconnected";
75
75
 
76
- // @internal
76
+ // @alpha
77
77
  export class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
78
78
  constructor(errorHandler: (eventName: EventEmitterEventType, error: any) => void);
79
79
  // (undocumented)
@@ -208,7 +208,7 @@ export interface ITaggedTelemetryPropertyTypeExt {
208
208
  value: TelemetryEventPropertyTypeExt;
209
209
  }
210
210
 
211
- // @internal
211
+ // @alpha
212
212
  export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
213
213
  // (undocumented)
214
214
  eventName: string;
@@ -222,7 +222,7 @@ export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
222
222
  eventName: string;
223
223
  }
224
224
 
225
- // @internal
225
+ // @alpha
226
226
  export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
227
227
  // (undocumented)
228
228
  category?: TelemetryEventCategory;
@@ -230,7 +230,7 @@ export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
230
230
  eventName: string;
231
231
  }
232
232
 
233
- // @internal
233
+ // @alpha
234
234
  export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
235
235
  sendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;
236
236
  sendPerformanceEvent(event: ITelemetryPerformanceEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
@@ -251,13 +251,13 @@ export interface ITelemetryLoggerPropertyBags {
251
251
  error?: ITelemetryLoggerPropertyBag;
252
252
  }
253
253
 
254
- // @internal
254
+ // @alpha
255
255
  export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
256
256
  // (undocumented)
257
257
  duration?: number;
258
258
  }
259
259
 
260
- // @internal
260
+ // @alpha
261
261
  export interface ITelemetryPropertiesExt {
262
262
  // (undocumented)
263
263
  [index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
@@ -401,10 +401,10 @@ export enum TelemetryDataTag {
401
401
  UserData = "UserData"
402
402
  }
403
403
 
404
- // @internal
404
+ // @alpha
405
405
  export type TelemetryEventCategory = "generic" | "error" | "performance";
406
406
 
407
- // @internal
407
+ // @alpha
408
408
  export type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
409
409
  [key: string]: // Flat objects can have the same properties as the event itself
410
410
  string | number | boolean | undefined | (string | number | boolean)[];
@@ -10,12 +10,10 @@ import { IEvent } from "@fluidframework/core-interfaces";
10
10
  * @remarks
11
11
  * Any exceptions thrown by listeners will be caught and raised through "error" event.
12
12
  * Any exception thrown by "error" listeners will propagate to the caller.
13
- *
14
- * @internal
15
- *
16
13
  * @privateRemarks
17
14
  * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
18
15
  * We should consider moving it to the `core-utils` package.
16
+ * @alpha
19
17
  */
20
18
  export declare class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
21
19
  private readonly errorHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"eventEmitterWithErrorHandling.d.ts","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD;;;;;;;;;;;;GAYG;AACH,qBAAa,6BAA6B,CACzC,MAAM,SAAS,MAAM,GAAG,MAAM,CAC7B,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IAIjC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI;IAK/E,IAAI,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO;CAQtE"}
1
+ {"version":3,"file":"eventEmitterWithErrorHandling.d.ts","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,qBAAa,6BAA6B,CACzC,MAAM,SAAS,MAAM,GAAG,MAAM,CAC7B,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IAIjC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI;IAK/E,IAAI,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO;CAQtE"}
@@ -12,12 +12,10 @@ const client_utils_1 = require("@fluid-internal/client-utils");
12
12
  * @remarks
13
13
  * Any exceptions thrown by listeners will be caught and raised through "error" event.
14
14
  * Any exception thrown by "error" listeners will propagate to the caller.
15
- *
16
- * @internal
17
- *
18
15
  * @privateRemarks
19
16
  * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
20
17
  * We should consider moving it to the `core-utils` package.
18
+ * @alpha
21
19
  */
22
20
  class EventEmitterWithErrorHandling extends client_utils_1.TypedEventEmitter {
23
21
  constructor(
@@ -1 +1 @@
1
- {"version":3,"file":"eventEmitterWithErrorHandling.js","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,+DAAwF;AAGxF;;;;;;;;;;;;GAYG;AACH,MAAa,6BAEX,SAAQ,gCAAyB;IAClC;IACC,oDAAoD;IACpD,8DAA8D;IAC7C,YAAoE;QAErF,KAAK,EAAE,CAAC;QAFS,iBAAY,GAAZ,YAAY,CAAwD;IAGtF,CAAC;IAEM,IAAI,CAAC,KAA4B,EAAE,GAAG,IAAe;QAC3D,IAAI;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;SAClC;QAAC,OAAO,KAAK,EAAE;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD;AAnBD,sEAmBC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { TypedEventEmitter, EventEmitterEventType } from \"@fluid-internal/client-utils\";\nimport { IEvent } from \"@fluidframework/core-interfaces\";\n\n/**\n * Event Emitter helper class\n *\n * @remarks\n * Any exceptions thrown by listeners will be caught and raised through \"error\" event.\n * Any exception thrown by \"error\" listeners will propagate to the caller.\n *\n * @internal\n *\n * @privateRemarks\n * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.\n * We should consider moving it to the `core-utils` package.\n */\nexport class EventEmitterWithErrorHandling<\n\tTEvent extends IEvent = IEvent,\n> extends TypedEventEmitter<TEvent> {\n\tconstructor(\n\t\t// TODO: use `unknown` instead (breaking API change)\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tprivate readonly errorHandler: (eventName: EventEmitterEventType, error: any) => void,\n\t) {\n\t\tsuper();\n\t}\n\n\tpublic emit(event: EventEmitterEventType, ...args: unknown[]): boolean {\n\t\ttry {\n\t\t\treturn super.emit(event, ...args);\n\t\t} catch (error) {\n\t\t\tthis.errorHandler(event, error);\n\t\t\treturn true;\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"eventEmitterWithErrorHandling.js","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,+DAAwF;AAGxF;;;;;;;;;;GAUG;AACH,MAAa,6BAEX,SAAQ,gCAAyB;IAClC;IACC,oDAAoD;IACpD,8DAA8D;IAC7C,YAAoE;QAErF,KAAK,EAAE,CAAC;QAFS,iBAAY,GAAZ,YAAY,CAAwD;IAGtF,CAAC;IAEM,IAAI,CAAC,KAA4B,EAAE,GAAG,IAAe;QAC3D,IAAI;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;SAClC;QAAC,OAAO,KAAK,EAAE;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD;AAnBD,sEAmBC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { TypedEventEmitter, EventEmitterEventType } from \"@fluid-internal/client-utils\";\nimport { IEvent } from \"@fluidframework/core-interfaces\";\n\n/**\n * Event Emitter helper class\n *\n * @remarks\n * Any exceptions thrown by listeners will be caught and raised through \"error\" event.\n * Any exception thrown by \"error\" listeners will propagate to the caller.\n * @privateRemarks\n * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.\n * We should consider moving it to the `core-utils` package.\n * @alpha\n */\nexport class EventEmitterWithErrorHandling<\n\tTEvent extends IEvent = IEvent,\n> extends TypedEventEmitter<TEvent> {\n\tconstructor(\n\t\t// TODO: use `unknown` instead (breaking API change)\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tprivate readonly errorHandler: (eventName: EventEmitterEventType, error: any) => void,\n\t) {\n\t\tsuper();\n\t}\n\n\tpublic emit(event: EventEmitterEventType, ...args: unknown[]): boolean {\n\t\ttry {\n\t\t\treturn super.emit(event, ...args);\n\t\t} catch (error) {\n\t\t\tthis.errorHandler(event, error);\n\t\t\treturn true;\n\t\t}\n\t}\n}\n"]}
@@ -1,6 +1,8 @@
1
1
  /// <reference types="node" />
2
2
 
3
3
  import { EventEmitter } from 'events';
4
+ import { EventEmitterEventType } from '@fluid-internal/client-utils';
5
+ import { IConfigProviderBase as IConfigProviderBase_2 } from '@fluidframework/core-interfaces';
4
6
  import { IDisposable } from '@fluidframework/core-interfaces';
5
7
  import { IErrorBase } from '@fluidframework/core-interfaces';
6
8
  import { IEvent } from '@fluidframework/core-interfaces';
@@ -8,10 +10,14 @@ import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions'
8
10
  import { ITelemetryBaseEvent } from '@fluidframework/core-interfaces';
9
11
  import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
10
12
  import { ITelemetryBaseProperties } from '@fluidframework/core-interfaces';
13
+ import { ITelemetryErrorEvent } from '@fluidframework/core-interfaces';
14
+ import { ITelemetryGenericEvent } from '@fluidframework/core-interfaces';
15
+ import { ITelemetryPerformanceEvent } from '@fluidframework/core-interfaces';
11
16
  import { ITelemetryProperties } from '@fluidframework/core-interfaces';
12
17
  import { LogLevel } from '@fluidframework/core-interfaces';
13
18
  import { Tagged } from '@fluidframework/core-interfaces';
14
19
  import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
20
+ import { TypedEventEmitter } from '@fluid-internal/client-utils';
15
21
 
16
22
  /* Excluded from this release type: ConfigTypes */
17
23
 
@@ -31,9 +37,22 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
31
37
 
32
38
  /* Excluded from this release type: disconnectedEventName */
33
39
 
34
- /* Excluded from this release type: EventEmitterEventType */
35
-
36
- /* Excluded from this release type: EventEmitterWithErrorHandling */
40
+ /**
41
+ * Event Emitter helper class
42
+ *
43
+ * @remarks
44
+ * Any exceptions thrown by listeners will be caught and raised through "error" event.
45
+ * Any exception thrown by "error" listeners will propagate to the caller.
46
+ * @privateRemarks
47
+ * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
48
+ * We should consider moving it to the `core-utils` package.
49
+ * @alpha
50
+ */
51
+ export declare class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
52
+ private readonly errorHandler;
53
+ constructor(errorHandler: (eventName: EventEmitterEventType, error: any) => void);
54
+ emit(event: EventEmitterEventType, ...args: unknown[]): boolean;
55
+ }
37
56
 
38
57
  /* Excluded from this release type: eventNamespaceSeparator */
39
58
 
@@ -57,8 +76,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
57
76
 
58
77
  /* Excluded from this release type: IConfigProviderBase */
59
78
 
60
- /* Excluded from this release type: IConfigProviderBase_2 */
61
-
62
79
  /* Excluded from this release type: IEventSampler */
63
80
 
64
81
  /* Excluded from this release type: IFluidErrorAnnotations */
@@ -85,27 +102,79 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
85
102
 
86
103
  /* Excluded from this release type: ITaggedTelemetryPropertyTypeExt */
87
104
 
88
- /* Excluded from this release type: ITelemetryErrorEvent */
89
-
90
- /* Excluded from this release type: ITelemetryErrorEventExt */
105
+ /**
106
+ * Error telemetry event.
107
+ * @remarks Maps to category = "error"
108
+ * @alpha
109
+ */
110
+ export declare interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
111
+ eventName: string;
112
+ }
91
113
 
92
114
  /* Excluded from this release type: ITelemetryEventExt */
93
115
 
94
- /* Excluded from this release type: ITelemetryGenericEvent */
95
-
96
- /* Excluded from this release type: ITelemetryGenericEventExt */
97
-
98
- /* Excluded from this release type: ITelemetryLoggerExt */
116
+ /**
117
+ * Informational (non-error) telemetry event
118
+ * @remarks Maps to category = "generic"
119
+ * @alpha
120
+ */
121
+ export declare interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
122
+ eventName: string;
123
+ category?: TelemetryEventCategory;
124
+ }
125
+
126
+ /**
127
+ * An extended {@link @fluidframework/core-interfaces#ITelemetryBaseLogger} which allows for more lenient event types.
128
+ *
129
+ * @remarks
130
+ * This interface is meant to be used internally within the Fluid Framework,
131
+ * and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
132
+ * @alpha
133
+ */
134
+ export declare interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
135
+ /**
136
+ * Send information telemetry event
137
+ * @param event - Event to send
138
+ * @param error - optional error object to log
139
+ * @param logLevel - optional level of the log.
140
+ */
141
+ sendTelemetryEvent(event: ITelemetryGenericEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
142
+ /**
143
+ * Send error telemetry event
144
+ * @param event - Event to send
145
+ * @param error - optional error object to log
146
+ */
147
+ sendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;
148
+ /**
149
+ * Send performance telemetry event
150
+ * @param event - Event to send
151
+ * @param error - optional error object to log
152
+ * @param logLevel - optional level of the log.
153
+ */
154
+ sendPerformanceEvent(event: ITelemetryPerformanceEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
155
+ }
99
156
 
100
157
  /* Excluded from this release type: ITelemetryLoggerPropertyBag */
101
158
 
102
159
  /* Excluded from this release type: ITelemetryLoggerPropertyBags */
103
160
 
104
- /* Excluded from this release type: ITelemetryPerformanceEvent */
105
-
106
- /* Excluded from this release type: ITelemetryPerformanceEventExt */
107
-
108
- /* Excluded from this release type: ITelemetryPropertiesExt */
161
+ /**
162
+ * Performance telemetry event.
163
+ * @remarks Maps to category = "performance"
164
+ * @alpha
165
+ */
166
+ export declare interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
167
+ duration?: number;
168
+ }
169
+
170
+ /**
171
+ * JSON-serializable properties, which will be logged with telemetry.
172
+ *
173
+ * @alpha
174
+ */
175
+ export declare interface ITelemetryPropertiesExt {
176
+ [index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
177
+ }
109
178
 
110
179
  /* Excluded from this release type: IUsageError */
111
180
 
@@ -153,9 +222,31 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
153
222
 
154
223
  /* Excluded from this release type: TelemetryDataTag */
155
224
 
156
- /* Excluded from this release type: TelemetryEventCategory */
157
-
158
- /* Excluded from this release type: TelemetryEventPropertyTypeExt */
225
+ /**
226
+ * The categories FF uses when instrumenting the code.
227
+ *
228
+ * generic - Informational log event
229
+ *
230
+ * error - Error log event, ideally 0 of these are logged during a session
231
+ *
232
+ * performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking
233
+ * @alpha
234
+ */
235
+ export declare type TelemetryEventCategory = "generic" | "error" | "performance";
236
+
237
+ /**
238
+ * Property types that can be logged.
239
+ *
240
+ * @remarks
241
+ * Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
242
+ * converted before sending to a base logger.
243
+ *
244
+ * @alpha
245
+ */
246
+ export declare type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
247
+ [key: string]: // Flat objects can have the same properties as the event itself
248
+ string | number | boolean | undefined | (string | number | boolean)[];
249
+ };
159
250
 
160
251
  /* Excluded from this release type: TelemetryEventPropertyTypes */
161
252
 
@@ -163,8 +254,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
163
254
 
164
255
  /* Excluded from this release type: ThresholdCounter */
165
256
 
166
- /* Excluded from this release type: TypedEventEmitter */
167
-
168
257
  /* Excluded from this release type: UsageError */
169
258
 
170
259
  /* Excluded from this release type: wrapError */
@@ -152,12 +152,10 @@ export declare const disconnectedEventName = "disconnected";
152
152
  * @remarks
153
153
  * Any exceptions thrown by listeners will be caught and raised through "error" event.
154
154
  * Any exception thrown by "error" listeners will propagate to the caller.
155
- *
156
- * @internal
157
- *
158
155
  * @privateRemarks
159
156
  * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
160
157
  * We should consider moving it to the `core-utils` package.
158
+ * @alpha
161
159
  */
162
160
  export declare class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
163
161
  private readonly errorHandler;
@@ -456,8 +454,7 @@ export declare interface ITaggedTelemetryPropertyTypeExt {
456
454
  /**
457
455
  * Error telemetry event.
458
456
  * @remarks Maps to category = "error"
459
- *
460
- * @internal
457
+ * @alpha
461
458
  */
462
459
  export declare interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
463
460
  eventName: string;
@@ -479,8 +476,7 @@ export declare interface ITelemetryEventExt extends ITelemetryPropertiesExt {
479
476
  /**
480
477
  * Informational (non-error) telemetry event
481
478
  * @remarks Maps to category = "generic"
482
- *
483
- * @internal
479
+ * @alpha
484
480
  */
485
481
  export declare interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
486
482
  eventName: string;
@@ -493,8 +489,7 @@ export declare interface ITelemetryGenericEventExt extends ITelemetryPropertiesE
493
489
  * @remarks
494
490
  * This interface is meant to be used internally within the Fluid Framework,
495
491
  * and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
496
- *
497
- * @internal
492
+ * @alpha
498
493
  */
499
494
  export declare interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
500
495
  /**
@@ -537,8 +532,7 @@ export declare interface ITelemetryLoggerPropertyBags {
537
532
  /**
538
533
  * Performance telemetry event.
539
534
  * @remarks Maps to category = "performance"
540
- *
541
- * @internal
535
+ * @alpha
542
536
  */
543
537
  export declare interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
544
538
  duration?: number;
@@ -547,7 +541,7 @@ export declare interface ITelemetryPerformanceEventExt extends ITelemetryGeneric
547
541
  /**
548
542
  * JSON-serializable properties, which will be logged with telemetry.
549
543
  *
550
- * @internal
544
+ * @alpha
551
545
  */
552
546
  export declare interface ITelemetryPropertiesExt {
553
547
  [index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
@@ -1021,8 +1015,7 @@ export declare enum TelemetryDataTag {
1021
1015
  * error - Error log event, ideally 0 of these are logged during a session
1022
1016
  *
1023
1017
  * performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking
1024
- *
1025
- * @internal
1018
+ * @alpha
1026
1019
  */
1027
1020
  export declare type TelemetryEventCategory = "generic" | "error" | "performance";
1028
1021
 
@@ -1033,7 +1026,7 @@ export declare type TelemetryEventCategory = "generic" | "error" | "performance"
1033
1026
  * Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
1034
1027
  * converted before sending to a base logger.
1035
1028
  *
1036
- * @internal
1029
+ * @alpha
1037
1030
  */
1038
1031
  export declare type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
1039
1032
  [key: string]: // Flat objects can have the same properties as the event itself
@@ -11,8 +11,7 @@ import { ITelemetryBaseLogger, LogLevel, Tagged } from "@fluidframework/core-int
11
11
  * error - Error log event, ideally 0 of these are logged during a session
12
12
  *
13
13
  * performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking
14
- *
15
- * @internal
14
+ * @alpha
16
15
  */
17
16
  export type TelemetryEventCategory = "generic" | "error" | "performance";
18
17
  /**
@@ -22,7 +21,7 @@ export type TelemetryEventCategory = "generic" | "error" | "performance";
22
21
  * Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
23
22
  * converted before sending to a base logger.
24
23
  *
25
- * @internal
24
+ * @alpha
26
25
  */
27
26
  export type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
28
27
  [key: string]: // Flat objects can have the same properties as the event itself
@@ -43,7 +42,7 @@ export interface ITaggedTelemetryPropertyTypeExt {
43
42
  /**
44
43
  * JSON-serializable properties, which will be logged with telemetry.
45
44
  *
46
- * @internal
45
+ * @alpha
47
46
  */
48
47
  export interface ITelemetryPropertiesExt {
49
48
  [index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
@@ -63,8 +62,7 @@ export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
63
62
  /**
64
63
  * Informational (non-error) telemetry event
65
64
  * @remarks Maps to category = "generic"
66
- *
67
- * @internal
65
+ * @alpha
68
66
  */
69
67
  export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
70
68
  eventName: string;
@@ -73,8 +71,7 @@ export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
73
71
  /**
74
72
  * Error telemetry event.
75
73
  * @remarks Maps to category = "error"
76
- *
77
- * @internal
74
+ * @alpha
78
75
  */
79
76
  export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
80
77
  eventName: string;
@@ -82,8 +79,7 @@ export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
82
79
  /**
83
80
  * Performance telemetry event.
84
81
  * @remarks Maps to category = "performance"
85
- *
86
- * @internal
82
+ * @alpha
87
83
  */
88
84
  export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
89
85
  duration?: number;
@@ -94,8 +90,7 @@ export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt
94
90
  * @remarks
95
91
  * This interface is meant to be used internally within the Fluid Framework,
96
92
  * and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
97
- *
98
- * @internal
93
+ * @alpha
99
94
  */
100
95
  export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
101
96
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"telemetryTypes.d.ts","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAEzE;;;;;;;;GAQG;AACH,MAAM,MAAM,6BAA6B,GACtC,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,GACT,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,GAC7B;IACA,CAAC,GAAG,EAAE,MAAM,GACZ,AADe,gEAAgE;IAC/E,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CACrE,CAAC;AAEL;;;;;;;GAOG;AACH,MAAM,WAAW,+BAA+B;IAC/C,KAAK,EAAE,6BAA6B,CAAC;IACrC,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC,CAAC,KAAK,EAAE,MAAM,GAAG,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;CACvF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;IACvE,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,6BAA8B,SAAQ,yBAAyB;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAChE;;;;;OAKG;IACH,kBAAkB,CACjB,KAAK,EAAE,yBAAyB,EAChC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,GAC1D,IAAI,CAAC;IAER;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAEtE;;;;;OAKG;IACH,oBAAoB,CACnB,KAAK,EAAE,6BAA6B,EACpC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,GAC1D,IAAI,CAAC;CACR"}
1
+ {"version":3,"file":"telemetryTypes.d.ts","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzF;;;;;;;;;GASG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAEzE;;;;;;;;GAQG;AACH,MAAM,MAAM,6BAA6B,GACtC,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,GACT,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,GAC7B;IACA,CAAC,GAAG,EAAE,MAAM,GACZ,AADe,gEAAgE;IAC/E,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CACrE,CAAC;AAEL;;;;;;;GAOG;AACH,MAAM,WAAW,+BAA+B;IAC/C,KAAK,EAAE,6BAA6B,CAAC;IACrC,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC,CAAC,KAAK,EAAE,MAAM,GAAG,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;CACvF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;IACvE,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA8B,SAAQ,yBAAyB;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAChE;;;;;OAKG;IACH,kBAAkB,CACjB,KAAK,EAAE,yBAAyB,EAChC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,GAC1D,IAAI,CAAC;IAER;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAEtE;;;;;OAKG;IACH,oBAAoB,CACnB,KAAK,EAAE,6BAA6B,EACpC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,GAC1D,IAAI,CAAC;CACR"}
@@ -1 +1 @@
1
- {"version":3,"file":"telemetryTypes.js","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryBaseLogger, LogLevel, Tagged } from \"@fluidframework/core-interfaces\";\n\n/**\n * The categories FF uses when instrumenting the code.\n *\n * generic - Informational log event\n *\n * error - Error log event, ideally 0 of these are logged during a session\n *\n * performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking\n *\n * @internal\n */\nexport type TelemetryEventCategory = \"generic\" | \"error\" | \"performance\";\n\n/**\n * Property types that can be logged.\n *\n * @remarks\n * Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be\n * converted before sending to a base logger.\n *\n * @internal\n */\nexport type TelemetryEventPropertyTypeExt =\n\t| string\n\t| number\n\t| boolean\n\t| undefined\n\t| (string | number | boolean)[]\n\t| {\n\t\t\t[key: string]: // Flat objects can have the same properties as the event itself\n\t\t\tstring | number | boolean | undefined | (string | number | boolean)[];\n\t };\n\n/**\n * A property to be logged to telemetry containing both the value and a tag. Tags are generic strings that can be used\n * to mark pieces of information that should be organized or handled differently by loggers in various first or third\n * party scenarios. For example, tags are used to mark personal information that should not be stored in logs.\n *\n * @deprecated Use {@link @fluidframework/core-interfaces#Tagged}\\<{@link TelemetryEventPropertyTypeExt}\\>\n * @internal\n */\nexport interface ITaggedTelemetryPropertyTypeExt {\n\tvalue: TelemetryEventPropertyTypeExt;\n\ttag: string;\n}\n\n/**\n * JSON-serializable properties, which will be logged with telemetry.\n *\n * @internal\n */\nexport interface ITelemetryPropertiesExt {\n\t[index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;\n}\n\n/**\n * Interface for logging telemetry statements.\n * @remarks May contain any number of properties that get serialized as json payload.\n * @param category - category of the event, like \"error\", \"performance\", \"generic\", etc.\n * @param eventName - name of the event.\n *\n * @internal\n */\nexport interface ITelemetryEventExt extends ITelemetryPropertiesExt {\n\tcategory: string;\n\teventName: string;\n}\n\n/**\n * Informational (non-error) telemetry event\n * @remarks Maps to category = \"generic\"\n *\n * @internal\n */\nexport interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {\n\teventName: string;\n\tcategory?: TelemetryEventCategory;\n}\n\n/**\n * Error telemetry event.\n * @remarks Maps to category = \"error\"\n *\n * @internal\n */\nexport interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {\n\teventName: string;\n}\n\n/**\n * Performance telemetry event.\n * @remarks Maps to category = \"performance\"\n *\n * @internal\n */\nexport interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {\n\tduration?: number; // Duration of event (optional)\n}\n\n/**\n * An extended {@link @fluidframework/core-interfaces#ITelemetryBaseLogger} which allows for more lenient event types.\n *\n * @remarks\n * This interface is meant to be used internally within the Fluid Framework,\n * and `ITelemetryBaseLogger` should be used when loggers are passed between layers.\n *\n * @internal\n */\nexport interface ITelemetryLoggerExt extends ITelemetryBaseLogger {\n\t/**\n\t * Send information telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t * @param logLevel - optional level of the log.\n\t */\n\tsendTelemetryEvent(\n\t\tevent: ITelemetryGenericEventExt,\n\t\terror?: unknown,\n\t\tlogLevel?: typeof LogLevel.verbose | typeof LogLevel.default,\n\t): void;\n\n\t/**\n\t * Send error telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t */\n\tsendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;\n\n\t/**\n\t * Send performance telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t * @param logLevel - optional level of the log.\n\t */\n\tsendPerformanceEvent(\n\t\tevent: ITelemetryPerformanceEventExt,\n\t\terror?: unknown,\n\t\tlogLevel?: typeof LogLevel.verbose | typeof LogLevel.default,\n\t): void;\n}\n"]}
1
+ {"version":3,"file":"telemetryTypes.js","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryBaseLogger, LogLevel, Tagged } from \"@fluidframework/core-interfaces\";\n\n/**\n * The categories FF uses when instrumenting the code.\n *\n * generic - Informational log event\n *\n * error - Error log event, ideally 0 of these are logged during a session\n *\n * performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking\n * @alpha\n */\nexport type TelemetryEventCategory = \"generic\" | \"error\" | \"performance\";\n\n/**\n * Property types that can be logged.\n *\n * @remarks\n * Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be\n * converted before sending to a base logger.\n *\n * @alpha\n */\nexport type TelemetryEventPropertyTypeExt =\n\t| string\n\t| number\n\t| boolean\n\t| undefined\n\t| (string | number | boolean)[]\n\t| {\n\t\t\t[key: string]: // Flat objects can have the same properties as the event itself\n\t\t\tstring | number | boolean | undefined | (string | number | boolean)[];\n\t };\n\n/**\n * A property to be logged to telemetry containing both the value and a tag. Tags are generic strings that can be used\n * to mark pieces of information that should be organized or handled differently by loggers in various first or third\n * party scenarios. For example, tags are used to mark personal information that should not be stored in logs.\n *\n * @deprecated Use {@link @fluidframework/core-interfaces#Tagged}\\<{@link TelemetryEventPropertyTypeExt}\\>\n * @internal\n */\nexport interface ITaggedTelemetryPropertyTypeExt {\n\tvalue: TelemetryEventPropertyTypeExt;\n\ttag: string;\n}\n\n/**\n * JSON-serializable properties, which will be logged with telemetry.\n *\n * @alpha\n */\nexport interface ITelemetryPropertiesExt {\n\t[index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;\n}\n\n/**\n * Interface for logging telemetry statements.\n * @remarks May contain any number of properties that get serialized as json payload.\n * @param category - category of the event, like \"error\", \"performance\", \"generic\", etc.\n * @param eventName - name of the event.\n *\n * @internal\n */\nexport interface ITelemetryEventExt extends ITelemetryPropertiesExt {\n\tcategory: string;\n\teventName: string;\n}\n\n/**\n * Informational (non-error) telemetry event\n * @remarks Maps to category = \"generic\"\n * @alpha\n */\nexport interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {\n\teventName: string;\n\tcategory?: TelemetryEventCategory;\n}\n\n/**\n * Error telemetry event.\n * @remarks Maps to category = \"error\"\n * @alpha\n */\nexport interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {\n\teventName: string;\n}\n\n/**\n * Performance telemetry event.\n * @remarks Maps to category = \"performance\"\n * @alpha\n */\nexport interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {\n\tduration?: number; // Duration of event (optional)\n}\n\n/**\n * An extended {@link @fluidframework/core-interfaces#ITelemetryBaseLogger} which allows for more lenient event types.\n *\n * @remarks\n * This interface is meant to be used internally within the Fluid Framework,\n * and `ITelemetryBaseLogger` should be used when loggers are passed between layers.\n * @alpha\n */\nexport interface ITelemetryLoggerExt extends ITelemetryBaseLogger {\n\t/**\n\t * Send information telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t * @param logLevel - optional level of the log.\n\t */\n\tsendTelemetryEvent(\n\t\tevent: ITelemetryGenericEventExt,\n\t\terror?: unknown,\n\t\tlogLevel?: typeof LogLevel.verbose | typeof LogLevel.default,\n\t): void;\n\n\t/**\n\t * Send error telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t */\n\tsendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;\n\n\t/**\n\t * Send performance telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t * @param logLevel - optional level of the log.\n\t */\n\tsendPerformanceEvent(\n\t\tevent: ITelemetryPerformanceEventExt,\n\t\terror?: unknown,\n\t\tlogLevel?: typeof LogLevel.verbose | typeof LogLevel.default,\n\t): void;\n}\n"]}
@@ -10,12 +10,10 @@ import { IEvent } from "@fluidframework/core-interfaces";
10
10
  * @remarks
11
11
  * Any exceptions thrown by listeners will be caught and raised through "error" event.
12
12
  * Any exception thrown by "error" listeners will propagate to the caller.
13
- *
14
- * @internal
15
- *
16
13
  * @privateRemarks
17
14
  * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
18
15
  * We should consider moving it to the `core-utils` package.
16
+ * @alpha
19
17
  */
20
18
  export declare class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
21
19
  private readonly errorHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"eventEmitterWithErrorHandling.d.ts","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD;;;;;;;;;;;;GAYG;AACH,qBAAa,6BAA6B,CACzC,MAAM,SAAS,MAAM,GAAG,MAAM,CAC7B,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IAIjC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI;IAK/E,IAAI,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO;CAQtE"}
1
+ {"version":3,"file":"eventEmitterWithErrorHandling.d.ts","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,qBAAa,6BAA6B,CACzC,MAAM,SAAS,MAAM,GAAG,MAAM,CAC7B,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IAIjC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI;IAK/E,IAAI,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO;CAQtE"}
@@ -9,12 +9,10 @@ import { TypedEventEmitter } from "@fluid-internal/client-utils";
9
9
  * @remarks
10
10
  * Any exceptions thrown by listeners will be caught and raised through "error" event.
11
11
  * Any exception thrown by "error" listeners will propagate to the caller.
12
- *
13
- * @internal
14
- *
15
12
  * @privateRemarks
16
13
  * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
17
14
  * We should consider moving it to the `core-utils` package.
15
+ * @alpha
18
16
  */
19
17
  export class EventEmitterWithErrorHandling extends TypedEventEmitter {
20
18
  constructor(
@@ -1 +1 @@
1
- {"version":3,"file":"eventEmitterWithErrorHandling.js","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAyB,MAAM,8BAA8B,CAAC;AAGxF;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,6BAEX,SAAQ,iBAAyB;IAClC;IACC,oDAAoD;IACpD,8DAA8D;IAC7C,YAAoE;QAErF,KAAK,EAAE,CAAC;QAFS,iBAAY,GAAZ,YAAY,CAAwD;IAGtF,CAAC;IAEM,IAAI,CAAC,KAA4B,EAAE,GAAG,IAAe;QAC3D,IAAI;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;SAClC;QAAC,OAAO,KAAK,EAAE;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { TypedEventEmitter, EventEmitterEventType } from \"@fluid-internal/client-utils\";\nimport { IEvent } from \"@fluidframework/core-interfaces\";\n\n/**\n * Event Emitter helper class\n *\n * @remarks\n * Any exceptions thrown by listeners will be caught and raised through \"error\" event.\n * Any exception thrown by \"error\" listeners will propagate to the caller.\n *\n * @internal\n *\n * @privateRemarks\n * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.\n * We should consider moving it to the `core-utils` package.\n */\nexport class EventEmitterWithErrorHandling<\n\tTEvent extends IEvent = IEvent,\n> extends TypedEventEmitter<TEvent> {\n\tconstructor(\n\t\t// TODO: use `unknown` instead (breaking API change)\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tprivate readonly errorHandler: (eventName: EventEmitterEventType, error: any) => void,\n\t) {\n\t\tsuper();\n\t}\n\n\tpublic emit(event: EventEmitterEventType, ...args: unknown[]): boolean {\n\t\ttry {\n\t\t\treturn super.emit(event, ...args);\n\t\t} catch (error) {\n\t\t\tthis.errorHandler(event, error);\n\t\t\treturn true;\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"eventEmitterWithErrorHandling.js","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAyB,MAAM,8BAA8B,CAAC;AAGxF;;;;;;;;;;GAUG;AACH,MAAM,OAAO,6BAEX,SAAQ,iBAAyB;IAClC;IACC,oDAAoD;IACpD,8DAA8D;IAC7C,YAAoE;QAErF,KAAK,EAAE,CAAC;QAFS,iBAAY,GAAZ,YAAY,CAAwD;IAGtF,CAAC;IAEM,IAAI,CAAC,KAA4B,EAAE,GAAG,IAAe;QAC3D,IAAI;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;SAClC;QAAC,OAAO,KAAK,EAAE;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { TypedEventEmitter, EventEmitterEventType } from \"@fluid-internal/client-utils\";\nimport { IEvent } from \"@fluidframework/core-interfaces\";\n\n/**\n * Event Emitter helper class\n *\n * @remarks\n * Any exceptions thrown by listeners will be caught and raised through \"error\" event.\n * Any exception thrown by \"error\" listeners will propagate to the caller.\n * @privateRemarks\n * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.\n * We should consider moving it to the `core-utils` package.\n * @alpha\n */\nexport class EventEmitterWithErrorHandling<\n\tTEvent extends IEvent = IEvent,\n> extends TypedEventEmitter<TEvent> {\n\tconstructor(\n\t\t// TODO: use `unknown` instead (breaking API change)\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tprivate readonly errorHandler: (eventName: EventEmitterEventType, error: any) => void,\n\t) {\n\t\tsuper();\n\t}\n\n\tpublic emit(event: EventEmitterEventType, ...args: unknown[]): boolean {\n\t\ttry {\n\t\t\treturn super.emit(event, ...args);\n\t\t} catch (error) {\n\t\t\tthis.errorHandler(event, error);\n\t\t\treturn true;\n\t\t}\n\t}\n}\n"]}
@@ -1,6 +1,8 @@
1
1
  /// <reference types="node" />
2
2
 
3
3
  import { EventEmitter } from 'events';
4
+ import { EventEmitterEventType } from '@fluid-internal/client-utils';
5
+ import { IConfigProviderBase as IConfigProviderBase_2 } from '@fluidframework/core-interfaces';
4
6
  import { IDisposable } from '@fluidframework/core-interfaces';
5
7
  import { IErrorBase } from '@fluidframework/core-interfaces';
6
8
  import { IEvent } from '@fluidframework/core-interfaces';
@@ -8,10 +10,14 @@ import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions'
8
10
  import { ITelemetryBaseEvent } from '@fluidframework/core-interfaces';
9
11
  import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
10
12
  import { ITelemetryBaseProperties } from '@fluidframework/core-interfaces';
13
+ import { ITelemetryErrorEvent } from '@fluidframework/core-interfaces';
14
+ import { ITelemetryGenericEvent } from '@fluidframework/core-interfaces';
15
+ import { ITelemetryPerformanceEvent } from '@fluidframework/core-interfaces';
11
16
  import { ITelemetryProperties } from '@fluidframework/core-interfaces';
12
17
  import { LogLevel } from '@fluidframework/core-interfaces';
13
18
  import { Tagged } from '@fluidframework/core-interfaces';
14
19
  import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
20
+ import { TypedEventEmitter } from '@fluid-internal/client-utils';
15
21
 
16
22
  /* Excluded from this release type: ConfigTypes */
17
23
 
@@ -31,9 +37,22 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
31
37
 
32
38
  /* Excluded from this release type: disconnectedEventName */
33
39
 
34
- /* Excluded from this release type: EventEmitterEventType */
35
-
36
- /* Excluded from this release type: EventEmitterWithErrorHandling */
40
+ /**
41
+ * Event Emitter helper class
42
+ *
43
+ * @remarks
44
+ * Any exceptions thrown by listeners will be caught and raised through "error" event.
45
+ * Any exception thrown by "error" listeners will propagate to the caller.
46
+ * @privateRemarks
47
+ * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
48
+ * We should consider moving it to the `core-utils` package.
49
+ * @alpha
50
+ */
51
+ export declare class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
52
+ private readonly errorHandler;
53
+ constructor(errorHandler: (eventName: EventEmitterEventType, error: any) => void);
54
+ emit(event: EventEmitterEventType, ...args: unknown[]): boolean;
55
+ }
37
56
 
38
57
  /* Excluded from this release type: eventNamespaceSeparator */
39
58
 
@@ -57,8 +76,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
57
76
 
58
77
  /* Excluded from this release type: IConfigProviderBase */
59
78
 
60
- /* Excluded from this release type: IConfigProviderBase_2 */
61
-
62
79
  /* Excluded from this release type: IEventSampler */
63
80
 
64
81
  /* Excluded from this release type: IFluidErrorAnnotations */
@@ -85,27 +102,79 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
85
102
 
86
103
  /* Excluded from this release type: ITaggedTelemetryPropertyTypeExt */
87
104
 
88
- /* Excluded from this release type: ITelemetryErrorEvent */
89
-
90
- /* Excluded from this release type: ITelemetryErrorEventExt */
105
+ /**
106
+ * Error telemetry event.
107
+ * @remarks Maps to category = "error"
108
+ * @alpha
109
+ */
110
+ export declare interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
111
+ eventName: string;
112
+ }
91
113
 
92
114
  /* Excluded from this release type: ITelemetryEventExt */
93
115
 
94
- /* Excluded from this release type: ITelemetryGenericEvent */
95
-
96
- /* Excluded from this release type: ITelemetryGenericEventExt */
97
-
98
- /* Excluded from this release type: ITelemetryLoggerExt */
116
+ /**
117
+ * Informational (non-error) telemetry event
118
+ * @remarks Maps to category = "generic"
119
+ * @alpha
120
+ */
121
+ export declare interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
122
+ eventName: string;
123
+ category?: TelemetryEventCategory;
124
+ }
125
+
126
+ /**
127
+ * An extended {@link @fluidframework/core-interfaces#ITelemetryBaseLogger} which allows for more lenient event types.
128
+ *
129
+ * @remarks
130
+ * This interface is meant to be used internally within the Fluid Framework,
131
+ * and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
132
+ * @alpha
133
+ */
134
+ export declare interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
135
+ /**
136
+ * Send information telemetry event
137
+ * @param event - Event to send
138
+ * @param error - optional error object to log
139
+ * @param logLevel - optional level of the log.
140
+ */
141
+ sendTelemetryEvent(event: ITelemetryGenericEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
142
+ /**
143
+ * Send error telemetry event
144
+ * @param event - Event to send
145
+ * @param error - optional error object to log
146
+ */
147
+ sendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;
148
+ /**
149
+ * Send performance telemetry event
150
+ * @param event - Event to send
151
+ * @param error - optional error object to log
152
+ * @param logLevel - optional level of the log.
153
+ */
154
+ sendPerformanceEvent(event: ITelemetryPerformanceEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
155
+ }
99
156
 
100
157
  /* Excluded from this release type: ITelemetryLoggerPropertyBag */
101
158
 
102
159
  /* Excluded from this release type: ITelemetryLoggerPropertyBags */
103
160
 
104
- /* Excluded from this release type: ITelemetryPerformanceEvent */
105
-
106
- /* Excluded from this release type: ITelemetryPerformanceEventExt */
107
-
108
- /* Excluded from this release type: ITelemetryPropertiesExt */
161
+ /**
162
+ * Performance telemetry event.
163
+ * @remarks Maps to category = "performance"
164
+ * @alpha
165
+ */
166
+ export declare interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
167
+ duration?: number;
168
+ }
169
+
170
+ /**
171
+ * JSON-serializable properties, which will be logged with telemetry.
172
+ *
173
+ * @alpha
174
+ */
175
+ export declare interface ITelemetryPropertiesExt {
176
+ [index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
177
+ }
109
178
 
110
179
  /* Excluded from this release type: IUsageError */
111
180
 
@@ -153,9 +222,31 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
153
222
 
154
223
  /* Excluded from this release type: TelemetryDataTag */
155
224
 
156
- /* Excluded from this release type: TelemetryEventCategory */
157
-
158
- /* Excluded from this release type: TelemetryEventPropertyTypeExt */
225
+ /**
226
+ * The categories FF uses when instrumenting the code.
227
+ *
228
+ * generic - Informational log event
229
+ *
230
+ * error - Error log event, ideally 0 of these are logged during a session
231
+ *
232
+ * performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking
233
+ * @alpha
234
+ */
235
+ export declare type TelemetryEventCategory = "generic" | "error" | "performance";
236
+
237
+ /**
238
+ * Property types that can be logged.
239
+ *
240
+ * @remarks
241
+ * Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
242
+ * converted before sending to a base logger.
243
+ *
244
+ * @alpha
245
+ */
246
+ export declare type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
247
+ [key: string]: // Flat objects can have the same properties as the event itself
248
+ string | number | boolean | undefined | (string | number | boolean)[];
249
+ };
159
250
 
160
251
  /* Excluded from this release type: TelemetryEventPropertyTypes */
161
252
 
@@ -163,8 +254,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
163
254
 
164
255
  /* Excluded from this release type: ThresholdCounter */
165
256
 
166
- /* Excluded from this release type: TypedEventEmitter */
167
-
168
257
  /* Excluded from this release type: UsageError */
169
258
 
170
259
  /* Excluded from this release type: wrapError */
@@ -152,12 +152,10 @@ export declare const disconnectedEventName = "disconnected";
152
152
  * @remarks
153
153
  * Any exceptions thrown by listeners will be caught and raised through "error" event.
154
154
  * Any exception thrown by "error" listeners will propagate to the caller.
155
- *
156
- * @internal
157
- *
158
155
  * @privateRemarks
159
156
  * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
160
157
  * We should consider moving it to the `core-utils` package.
158
+ * @alpha
161
159
  */
162
160
  export declare class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
163
161
  private readonly errorHandler;
@@ -456,8 +454,7 @@ export declare interface ITaggedTelemetryPropertyTypeExt {
456
454
  /**
457
455
  * Error telemetry event.
458
456
  * @remarks Maps to category = "error"
459
- *
460
- * @internal
457
+ * @alpha
461
458
  */
462
459
  export declare interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
463
460
  eventName: string;
@@ -479,8 +476,7 @@ export declare interface ITelemetryEventExt extends ITelemetryPropertiesExt {
479
476
  /**
480
477
  * Informational (non-error) telemetry event
481
478
  * @remarks Maps to category = "generic"
482
- *
483
- * @internal
479
+ * @alpha
484
480
  */
485
481
  export declare interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
486
482
  eventName: string;
@@ -493,8 +489,7 @@ export declare interface ITelemetryGenericEventExt extends ITelemetryPropertiesE
493
489
  * @remarks
494
490
  * This interface is meant to be used internally within the Fluid Framework,
495
491
  * and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
496
- *
497
- * @internal
492
+ * @alpha
498
493
  */
499
494
  export declare interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
500
495
  /**
@@ -537,8 +532,7 @@ export declare interface ITelemetryLoggerPropertyBags {
537
532
  /**
538
533
  * Performance telemetry event.
539
534
  * @remarks Maps to category = "performance"
540
- *
541
- * @internal
535
+ * @alpha
542
536
  */
543
537
  export declare interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
544
538
  duration?: number;
@@ -547,7 +541,7 @@ export declare interface ITelemetryPerformanceEventExt extends ITelemetryGeneric
547
541
  /**
548
542
  * JSON-serializable properties, which will be logged with telemetry.
549
543
  *
550
- * @internal
544
+ * @alpha
551
545
  */
552
546
  export declare interface ITelemetryPropertiesExt {
553
547
  [index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
@@ -1021,8 +1015,7 @@ export declare enum TelemetryDataTag {
1021
1015
  * error - Error log event, ideally 0 of these are logged during a session
1022
1016
  *
1023
1017
  * performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking
1024
- *
1025
- * @internal
1018
+ * @alpha
1026
1019
  */
1027
1020
  export declare type TelemetryEventCategory = "generic" | "error" | "performance";
1028
1021
 
@@ -1033,7 +1026,7 @@ export declare type TelemetryEventCategory = "generic" | "error" | "performance"
1033
1026
  * Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
1034
1027
  * converted before sending to a base logger.
1035
1028
  *
1036
- * @internal
1029
+ * @alpha
1037
1030
  */
1038
1031
  export declare type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
1039
1032
  [key: string]: // Flat objects can have the same properties as the event itself
@@ -11,8 +11,7 @@ import { ITelemetryBaseLogger, LogLevel, Tagged } from "@fluidframework/core-int
11
11
  * error - Error log event, ideally 0 of these are logged during a session
12
12
  *
13
13
  * performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking
14
- *
15
- * @internal
14
+ * @alpha
16
15
  */
17
16
  export type TelemetryEventCategory = "generic" | "error" | "performance";
18
17
  /**
@@ -22,7 +21,7 @@ export type TelemetryEventCategory = "generic" | "error" | "performance";
22
21
  * Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
23
22
  * converted before sending to a base logger.
24
23
  *
25
- * @internal
24
+ * @alpha
26
25
  */
27
26
  export type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
28
27
  [key: string]: // Flat objects can have the same properties as the event itself
@@ -43,7 +42,7 @@ export interface ITaggedTelemetryPropertyTypeExt {
43
42
  /**
44
43
  * JSON-serializable properties, which will be logged with telemetry.
45
44
  *
46
- * @internal
45
+ * @alpha
47
46
  */
48
47
  export interface ITelemetryPropertiesExt {
49
48
  [index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
@@ -63,8 +62,7 @@ export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
63
62
  /**
64
63
  * Informational (non-error) telemetry event
65
64
  * @remarks Maps to category = "generic"
66
- *
67
- * @internal
65
+ * @alpha
68
66
  */
69
67
  export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
70
68
  eventName: string;
@@ -73,8 +71,7 @@ export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
73
71
  /**
74
72
  * Error telemetry event.
75
73
  * @remarks Maps to category = "error"
76
- *
77
- * @internal
74
+ * @alpha
78
75
  */
79
76
  export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
80
77
  eventName: string;
@@ -82,8 +79,7 @@ export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
82
79
  /**
83
80
  * Performance telemetry event.
84
81
  * @remarks Maps to category = "performance"
85
- *
86
- * @internal
82
+ * @alpha
87
83
  */
88
84
  export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
89
85
  duration?: number;
@@ -94,8 +90,7 @@ export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt
94
90
  * @remarks
95
91
  * This interface is meant to be used internally within the Fluid Framework,
96
92
  * and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
97
- *
98
- * @internal
93
+ * @alpha
99
94
  */
100
95
  export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
101
96
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"telemetryTypes.d.ts","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAEzE;;;;;;;;GAQG;AACH,MAAM,MAAM,6BAA6B,GACtC,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,GACT,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,GAC7B;IACA,CAAC,GAAG,EAAE,MAAM,GACZ,AADe,gEAAgE;IAC/E,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CACrE,CAAC;AAEL;;;;;;;GAOG;AACH,MAAM,WAAW,+BAA+B;IAC/C,KAAK,EAAE,6BAA6B,CAAC;IACrC,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC,CAAC,KAAK,EAAE,MAAM,GAAG,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;CACvF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;IACvE,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,6BAA8B,SAAQ,yBAAyB;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAChE;;;;;OAKG;IACH,kBAAkB,CACjB,KAAK,EAAE,yBAAyB,EAChC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,GAC1D,IAAI,CAAC;IAER;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAEtE;;;;;OAKG;IACH,oBAAoB,CACnB,KAAK,EAAE,6BAA6B,EACpC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,GAC1D,IAAI,CAAC;CACR"}
1
+ {"version":3,"file":"telemetryTypes.d.ts","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzF;;;;;;;;;GASG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAEzE;;;;;;;;GAQG;AACH,MAAM,MAAM,6BAA6B,GACtC,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,GACT,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,GAC7B;IACA,CAAC,GAAG,EAAE,MAAM,GACZ,AADe,gEAAgE;IAC/E,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CACrE,CAAC;AAEL;;;;;;;GAOG;AACH,MAAM,WAAW,+BAA+B;IAC/C,KAAK,EAAE,6BAA6B,CAAC;IACrC,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC,CAAC,KAAK,EAAE,MAAM,GAAG,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;CACvF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;IACvE,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA8B,SAAQ,yBAAyB;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAChE;;;;;OAKG;IACH,kBAAkB,CACjB,KAAK,EAAE,yBAAyB,EAChC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,GAC1D,IAAI,CAAC;IAER;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAEtE;;;;;OAKG;IACH,oBAAoB,CACnB,KAAK,EAAE,6BAA6B,EACpC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,GAC1D,IAAI,CAAC;CACR"}
@@ -1 +1 @@
1
- {"version":3,"file":"telemetryTypes.js","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryBaseLogger, LogLevel, Tagged } from \"@fluidframework/core-interfaces\";\n\n/**\n * The categories FF uses when instrumenting the code.\n *\n * generic - Informational log event\n *\n * error - Error log event, ideally 0 of these are logged during a session\n *\n * performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking\n *\n * @internal\n */\nexport type TelemetryEventCategory = \"generic\" | \"error\" | \"performance\";\n\n/**\n * Property types that can be logged.\n *\n * @remarks\n * Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be\n * converted before sending to a base logger.\n *\n * @internal\n */\nexport type TelemetryEventPropertyTypeExt =\n\t| string\n\t| number\n\t| boolean\n\t| undefined\n\t| (string | number | boolean)[]\n\t| {\n\t\t\t[key: string]: // Flat objects can have the same properties as the event itself\n\t\t\tstring | number | boolean | undefined | (string | number | boolean)[];\n\t };\n\n/**\n * A property to be logged to telemetry containing both the value and a tag. Tags are generic strings that can be used\n * to mark pieces of information that should be organized or handled differently by loggers in various first or third\n * party scenarios. For example, tags are used to mark personal information that should not be stored in logs.\n *\n * @deprecated Use {@link @fluidframework/core-interfaces#Tagged}\\<{@link TelemetryEventPropertyTypeExt}\\>\n * @internal\n */\nexport interface ITaggedTelemetryPropertyTypeExt {\n\tvalue: TelemetryEventPropertyTypeExt;\n\ttag: string;\n}\n\n/**\n * JSON-serializable properties, which will be logged with telemetry.\n *\n * @internal\n */\nexport interface ITelemetryPropertiesExt {\n\t[index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;\n}\n\n/**\n * Interface for logging telemetry statements.\n * @remarks May contain any number of properties that get serialized as json payload.\n * @param category - category of the event, like \"error\", \"performance\", \"generic\", etc.\n * @param eventName - name of the event.\n *\n * @internal\n */\nexport interface ITelemetryEventExt extends ITelemetryPropertiesExt {\n\tcategory: string;\n\teventName: string;\n}\n\n/**\n * Informational (non-error) telemetry event\n * @remarks Maps to category = \"generic\"\n *\n * @internal\n */\nexport interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {\n\teventName: string;\n\tcategory?: TelemetryEventCategory;\n}\n\n/**\n * Error telemetry event.\n * @remarks Maps to category = \"error\"\n *\n * @internal\n */\nexport interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {\n\teventName: string;\n}\n\n/**\n * Performance telemetry event.\n * @remarks Maps to category = \"performance\"\n *\n * @internal\n */\nexport interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {\n\tduration?: number; // Duration of event (optional)\n}\n\n/**\n * An extended {@link @fluidframework/core-interfaces#ITelemetryBaseLogger} which allows for more lenient event types.\n *\n * @remarks\n * This interface is meant to be used internally within the Fluid Framework,\n * and `ITelemetryBaseLogger` should be used when loggers are passed between layers.\n *\n * @internal\n */\nexport interface ITelemetryLoggerExt extends ITelemetryBaseLogger {\n\t/**\n\t * Send information telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t * @param logLevel - optional level of the log.\n\t */\n\tsendTelemetryEvent(\n\t\tevent: ITelemetryGenericEventExt,\n\t\terror?: unknown,\n\t\tlogLevel?: typeof LogLevel.verbose | typeof LogLevel.default,\n\t): void;\n\n\t/**\n\t * Send error telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t */\n\tsendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;\n\n\t/**\n\t * Send performance telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t * @param logLevel - optional level of the log.\n\t */\n\tsendPerformanceEvent(\n\t\tevent: ITelemetryPerformanceEventExt,\n\t\terror?: unknown,\n\t\tlogLevel?: typeof LogLevel.verbose | typeof LogLevel.default,\n\t): void;\n}\n"]}
1
+ {"version":3,"file":"telemetryTypes.js","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryBaseLogger, LogLevel, Tagged } from \"@fluidframework/core-interfaces\";\n\n/**\n * The categories FF uses when instrumenting the code.\n *\n * generic - Informational log event\n *\n * error - Error log event, ideally 0 of these are logged during a session\n *\n * performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking\n * @alpha\n */\nexport type TelemetryEventCategory = \"generic\" | \"error\" | \"performance\";\n\n/**\n * Property types that can be logged.\n *\n * @remarks\n * Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be\n * converted before sending to a base logger.\n *\n * @alpha\n */\nexport type TelemetryEventPropertyTypeExt =\n\t| string\n\t| number\n\t| boolean\n\t| undefined\n\t| (string | number | boolean)[]\n\t| {\n\t\t\t[key: string]: // Flat objects can have the same properties as the event itself\n\t\t\tstring | number | boolean | undefined | (string | number | boolean)[];\n\t };\n\n/**\n * A property to be logged to telemetry containing both the value and a tag. Tags are generic strings that can be used\n * to mark pieces of information that should be organized or handled differently by loggers in various first or third\n * party scenarios. For example, tags are used to mark personal information that should not be stored in logs.\n *\n * @deprecated Use {@link @fluidframework/core-interfaces#Tagged}\\<{@link TelemetryEventPropertyTypeExt}\\>\n * @internal\n */\nexport interface ITaggedTelemetryPropertyTypeExt {\n\tvalue: TelemetryEventPropertyTypeExt;\n\ttag: string;\n}\n\n/**\n * JSON-serializable properties, which will be logged with telemetry.\n *\n * @alpha\n */\nexport interface ITelemetryPropertiesExt {\n\t[index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;\n}\n\n/**\n * Interface for logging telemetry statements.\n * @remarks May contain any number of properties that get serialized as json payload.\n * @param category - category of the event, like \"error\", \"performance\", \"generic\", etc.\n * @param eventName - name of the event.\n *\n * @internal\n */\nexport interface ITelemetryEventExt extends ITelemetryPropertiesExt {\n\tcategory: string;\n\teventName: string;\n}\n\n/**\n * Informational (non-error) telemetry event\n * @remarks Maps to category = \"generic\"\n * @alpha\n */\nexport interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {\n\teventName: string;\n\tcategory?: TelemetryEventCategory;\n}\n\n/**\n * Error telemetry event.\n * @remarks Maps to category = \"error\"\n * @alpha\n */\nexport interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {\n\teventName: string;\n}\n\n/**\n * Performance telemetry event.\n * @remarks Maps to category = \"performance\"\n * @alpha\n */\nexport interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {\n\tduration?: number; // Duration of event (optional)\n}\n\n/**\n * An extended {@link @fluidframework/core-interfaces#ITelemetryBaseLogger} which allows for more lenient event types.\n *\n * @remarks\n * This interface is meant to be used internally within the Fluid Framework,\n * and `ITelemetryBaseLogger` should be used when loggers are passed between layers.\n * @alpha\n */\nexport interface ITelemetryLoggerExt extends ITelemetryBaseLogger {\n\t/**\n\t * Send information telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t * @param logLevel - optional level of the log.\n\t */\n\tsendTelemetryEvent(\n\t\tevent: ITelemetryGenericEventExt,\n\t\terror?: unknown,\n\t\tlogLevel?: typeof LogLevel.verbose | typeof LogLevel.default,\n\t): void;\n\n\t/**\n\t * Send error telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t */\n\tsendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;\n\n\t/**\n\t * Send performance telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t * @param logLevel - optional level of the log.\n\t */\n\tsendPerformanceEvent(\n\t\tevent: ITelemetryPerformanceEventExt,\n\t\terror?: unknown,\n\t\tlogLevel?: typeof LogLevel.verbose | typeof LogLevel.default,\n\t): void;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/telemetry-utils",
3
- "version": "2.0.0-dev.7.4.0.217212",
3
+ "version": "2.0.0-dev.7.4.0.217884",
4
4
  "description": "Collection of telemetry relates utilities for Fluid",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -39,9 +39,9 @@
39
39
  "temp-directory": "nyc/.nyc_output"
40
40
  },
41
41
  "dependencies": {
42
- "@fluid-internal/client-utils": "2.0.0-dev.7.4.0.217212",
43
- "@fluidframework/core-interfaces": "2.0.0-dev.7.4.0.217212",
44
- "@fluidframework/core-utils": "2.0.0-dev.7.4.0.217212",
42
+ "@fluid-internal/client-utils": "2.0.0-dev.7.4.0.217884",
43
+ "@fluidframework/core-interfaces": "2.0.0-dev.7.4.0.217884",
44
+ "@fluidframework/core-utils": "2.0.0-dev.7.4.0.217884",
45
45
  "@fluidframework/protocol-definitions": "^3.0.0",
46
46
  "debug": "^4.3.4",
47
47
  "events": "^3.1.0",
@@ -52,13 +52,13 @@
52
52
  "@fluidframework/build-common": "^2.0.3",
53
53
  "@fluidframework/build-tools": "^0.28.0",
54
54
  "@fluidframework/eslint-config-fluid": "^3.1.0",
55
- "@fluidframework/mocha-test-setup": "2.0.0-dev.7.4.0.217212",
55
+ "@fluidframework/mocha-test-setup": "2.0.0-dev.7.4.0.217884",
56
56
  "@fluidframework/telemetry-utils-previous": "npm:@fluidframework/telemetry-utils@2.0.0-internal.7.2.0",
57
57
  "@microsoft/api-extractor": "^7.38.3",
58
58
  "@types/debug": "^4.1.5",
59
59
  "@types/events": "^3.0.0",
60
60
  "@types/mocha": "^9.1.1",
61
- "@types/node": "^16.18.38",
61
+ "@types/node": "^18.19.0",
62
62
  "@types/uuid": "^9.0.2",
63
63
  "c8": "^7.7.1",
64
64
  "copyfiles": "^2.4.1",
@@ -11,12 +11,10 @@ import { IEvent } from "@fluidframework/core-interfaces";
11
11
  * @remarks
12
12
  * Any exceptions thrown by listeners will be caught and raised through "error" event.
13
13
  * Any exception thrown by "error" listeners will propagate to the caller.
14
- *
15
- * @internal
16
- *
17
14
  * @privateRemarks
18
15
  * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
19
16
  * We should consider moving it to the `core-utils` package.
17
+ * @alpha
20
18
  */
21
19
  export class EventEmitterWithErrorHandling<
22
20
  TEvent extends IEvent = IEvent,
@@ -13,8 +13,7 @@ import { ITelemetryBaseLogger, LogLevel, Tagged } from "@fluidframework/core-int
13
13
  * error - Error log event, ideally 0 of these are logged during a session
14
14
  *
15
15
  * performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking
16
- *
17
- * @internal
16
+ * @alpha
18
17
  */
19
18
  export type TelemetryEventCategory = "generic" | "error" | "performance";
20
19
 
@@ -25,7 +24,7 @@ export type TelemetryEventCategory = "generic" | "error" | "performance";
25
24
  * Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
26
25
  * converted before sending to a base logger.
27
26
  *
28
- * @internal
27
+ * @alpha
29
28
  */
30
29
  export type TelemetryEventPropertyTypeExt =
31
30
  | string
@@ -54,7 +53,7 @@ export interface ITaggedTelemetryPropertyTypeExt {
54
53
  /**
55
54
  * JSON-serializable properties, which will be logged with telemetry.
56
55
  *
57
- * @internal
56
+ * @alpha
58
57
  */
59
58
  export interface ITelemetryPropertiesExt {
60
59
  [index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
@@ -76,8 +75,7 @@ export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
76
75
  /**
77
76
  * Informational (non-error) telemetry event
78
77
  * @remarks Maps to category = "generic"
79
- *
80
- * @internal
78
+ * @alpha
81
79
  */
82
80
  export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
83
81
  eventName: string;
@@ -87,8 +85,7 @@ export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
87
85
  /**
88
86
  * Error telemetry event.
89
87
  * @remarks Maps to category = "error"
90
- *
91
- * @internal
88
+ * @alpha
92
89
  */
93
90
  export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
94
91
  eventName: string;
@@ -97,8 +94,7 @@ export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
97
94
  /**
98
95
  * Performance telemetry event.
99
96
  * @remarks Maps to category = "performance"
100
- *
101
- * @internal
97
+ * @alpha
102
98
  */
103
99
  export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
104
100
  duration?: number; // Duration of event (optional)
@@ -110,8 +106,7 @@ export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt
110
106
  * @remarks
111
107
  * This interface is meant to be used internally within the Fluid Framework,
112
108
  * and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
113
- *
114
- * @internal
109
+ * @alpha
115
110
  */
116
111
  export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
117
112
  /**