@fluidframework/telemetry-utils 2.0.0-internal.7.2.2 → 2.0.0-internal.7.4.0

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 (130) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +1 -2
  3. package/api-extractor-lint.json +13 -0
  4. package/api-extractor.json +3 -3
  5. package/api-report/telemetry-utils.api.md +66 -57
  6. package/dist/config.d.ts +37 -10
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +30 -0
  9. package/dist/config.js.map +1 -1
  10. package/dist/error.d.ts +12 -0
  11. package/dist/error.d.ts.map +1 -1
  12. package/dist/error.js +18 -1
  13. package/dist/error.js.map +1 -1
  14. package/dist/errorLogging.d.ts +7 -2
  15. package/dist/errorLogging.d.ts.map +1 -1
  16. package/dist/errorLogging.js +7 -2
  17. package/dist/errorLogging.js.map +1 -1
  18. package/dist/eventEmitterWithErrorHandling.d.ts +6 -0
  19. package/dist/eventEmitterWithErrorHandling.d.ts.map +1 -1
  20. package/dist/eventEmitterWithErrorHandling.js +6 -0
  21. package/dist/eventEmitterWithErrorHandling.js.map +1 -1
  22. package/dist/events.d.ts +16 -0
  23. package/dist/events.d.ts.map +1 -1
  24. package/dist/events.js +16 -0
  25. package/dist/events.js.map +1 -1
  26. package/dist/fluidErrorBase.d.ts +8 -0
  27. package/dist/fluidErrorBase.d.ts.map +1 -1
  28. package/dist/fluidErrorBase.js +6 -0
  29. package/dist/fluidErrorBase.js.map +1 -1
  30. package/dist/index.d.ts +20 -3
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +2 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/logger.d.ts +117 -17
  35. package/dist/logger.d.ts.map +1 -1
  36. package/dist/logger.js +82 -12
  37. package/dist/logger.js.map +1 -1
  38. package/dist/mockLogger.d.ts +2 -0
  39. package/dist/mockLogger.d.ts.map +1 -1
  40. package/dist/mockLogger.js +2 -0
  41. package/dist/mockLogger.js.map +1 -1
  42. package/dist/sampledTelemetryHelper.d.ts +7 -3
  43. package/dist/sampledTelemetryHelper.d.ts.map +1 -1
  44. package/dist/sampledTelemetryHelper.js +7 -3
  45. package/dist/sampledTelemetryHelper.js.map +1 -1
  46. package/dist/telemetry-utils-alpha.d.ts +270 -0
  47. package/dist/telemetry-utils-beta.d.ts +205 -0
  48. package/dist/telemetry-utils-public.d.ts +205 -0
  49. package/dist/telemetry-utils-untrimmed.d.ts +1123 -0
  50. package/dist/telemetryTypes.d.ts +27 -8
  51. package/dist/telemetryTypes.d.ts.map +1 -1
  52. package/dist/telemetryTypes.js.map +1 -1
  53. package/dist/thresholdCounter.d.ts +3 -2
  54. package/dist/thresholdCounter.d.ts.map +1 -1
  55. package/dist/thresholdCounter.js +3 -2
  56. package/dist/thresholdCounter.js.map +1 -1
  57. package/dist/tsdoc-metadata.json +1 -1
  58. package/dist/utils.d.ts +6 -0
  59. package/dist/utils.d.ts.map +1 -1
  60. package/dist/utils.js +6 -0
  61. package/dist/utils.js.map +1 -1
  62. package/lib/config.d.ts +37 -10
  63. package/lib/config.d.ts.map +1 -1
  64. package/lib/config.js +30 -0
  65. package/lib/config.js.map +1 -1
  66. package/lib/error.d.ts +12 -0
  67. package/lib/error.d.ts.map +1 -1
  68. package/lib/error.js +16 -0
  69. package/lib/error.js.map +1 -1
  70. package/lib/errorLogging.d.ts +7 -2
  71. package/lib/errorLogging.d.ts.map +1 -1
  72. package/lib/errorLogging.js +7 -2
  73. package/lib/errorLogging.js.map +1 -1
  74. package/lib/eventEmitterWithErrorHandling.d.ts +6 -0
  75. package/lib/eventEmitterWithErrorHandling.d.ts.map +1 -1
  76. package/lib/eventEmitterWithErrorHandling.js +6 -0
  77. package/lib/eventEmitterWithErrorHandling.js.map +1 -1
  78. package/lib/events.d.ts +16 -0
  79. package/lib/events.d.ts.map +1 -1
  80. package/lib/events.js +16 -0
  81. package/lib/events.js.map +1 -1
  82. package/lib/fluidErrorBase.d.ts +8 -0
  83. package/lib/fluidErrorBase.d.ts.map +1 -1
  84. package/lib/fluidErrorBase.js +6 -0
  85. package/lib/fluidErrorBase.js.map +1 -1
  86. package/lib/index.d.ts +20 -3
  87. package/lib/index.d.ts.map +1 -1
  88. package/lib/index.js +1 -1
  89. package/lib/index.js.map +1 -1
  90. package/lib/logger.d.ts +117 -17
  91. package/lib/logger.d.ts.map +1 -1
  92. package/lib/logger.js +82 -12
  93. package/lib/logger.js.map +1 -1
  94. package/lib/mockLogger.d.ts +2 -0
  95. package/lib/mockLogger.d.ts.map +1 -1
  96. package/lib/mockLogger.js +2 -0
  97. package/lib/mockLogger.js.map +1 -1
  98. package/lib/sampledTelemetryHelper.d.ts +7 -3
  99. package/lib/sampledTelemetryHelper.d.ts.map +1 -1
  100. package/lib/sampledTelemetryHelper.js +7 -3
  101. package/lib/sampledTelemetryHelper.js.map +1 -1
  102. package/lib/telemetry-utils-alpha.d.ts +270 -0
  103. package/lib/telemetry-utils-beta.d.ts +205 -0
  104. package/lib/telemetry-utils-public.d.ts +205 -0
  105. package/lib/telemetry-utils-untrimmed.d.ts +1123 -0
  106. package/lib/telemetryTypes.d.ts +27 -8
  107. package/lib/telemetryTypes.d.ts.map +1 -1
  108. package/lib/telemetryTypes.js.map +1 -1
  109. package/lib/thresholdCounter.d.ts +3 -2
  110. package/lib/thresholdCounter.d.ts.map +1 -1
  111. package/lib/thresholdCounter.js +3 -2
  112. package/lib/thresholdCounter.js.map +1 -1
  113. package/lib/utils.d.ts +6 -0
  114. package/lib/utils.d.ts.map +1 -1
  115. package/lib/utils.js +6 -0
  116. package/lib/utils.js.map +1 -1
  117. package/package.json +36 -17
  118. package/src/config.ts +41 -12
  119. package/src/error.ts +21 -0
  120. package/src/errorLogging.ts +7 -2
  121. package/src/eventEmitterWithErrorHandling.ts +6 -0
  122. package/src/events.ts +18 -0
  123. package/src/fluidErrorBase.ts +8 -0
  124. package/src/index.ts +21 -2
  125. package/src/logger.ts +125 -17
  126. package/src/mockLogger.ts +2 -0
  127. package/src/sampledTelemetryHelper.ts +7 -3
  128. package/src/telemetryTypes.ts +27 -8
  129. package/src/thresholdCounter.ts +3 -2
  130. package/src/utils.ts +6 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @fluidframework/telemetry-utils
2
2
 
3
+ ## 2.0.0-internal.7.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - telemetry-utils: Deprecate ConfigTypes and IConfigProviderBase ([#18597](https://github.com/microsoft/FluidFramework/issues/18597)) [39b9ff57c0](https://github.com/microsoft/FluidFramework/commits/39b9ff57c0184b72f0e3f9425922dda944995265)
8
+
9
+ The types `ConfigTypes` and `IConfigProviderBase` have been deprecated in the @fluidframework/telemetry-utils package.
10
+ The types can now be found in the @fluidframework/core-interfaces package. Please replace any uses with the types from
11
+ @fluidframework/core-interfaces.
12
+
13
+ - telemetry-utils: Deprecated logIfFalse ([#18047](https://github.com/microsoft/FluidFramework/issues/18047)) [57614ffdc6](https://github.com/microsoft/FluidFramework/commits/57614ffdc6e3fbd22ddbe5ed589c75d3d195aa48)
14
+
15
+ This functionality was not intended for export and will be removed in a future release.
16
+ No replacement API is offered because the logic is trivial to reproduce as needed.
17
+
18
+ ## 2.0.0-internal.7.3.0
19
+
20
+ Dependency updates only.
21
+
3
22
  ## 2.0.0-internal.7.2.0
4
23
 
5
24
  Dependency updates only.
package/README.md CHANGED
@@ -63,8 +63,7 @@ Thank you!
63
63
 
64
64
  This project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.
65
65
 
66
- Use of these trademarks or logos must follow Microsoft's [Trademark & Brand
67
- Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
66
+ Use of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
68
67
 
69
68
  Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
70
69
 
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3
+ "extends": "../../../common/build/build-common/api-extractor-lint.json",
4
+ "messages": {
5
+ "extractorMessageReporting": {
6
+ // TODO: remove once base config has this enabled as an error
7
+ "ae-incompatible-release-tags": {
8
+ "logLevel": "error",
9
+ "addToApiReportFile": false
10
+ }
11
+ }
12
+ }
13
+ }
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3
- "extends": "@fluidframework/build-common/api-extractor-base.json",
3
+ "extends": "../../../common/build/build-common/api-extractor-base.json",
4
4
  "messages": {
5
5
  "extractorMessageReporting": {
6
- "ae-missing-release-tag": {
7
- // TODO: Fix violations and remove this rule override
6
+ // TODO: Add missing documentation and remove this rule override
7
+ "ae-undocumented": {
8
8
  "logLevel": "none"
9
9
  }
10
10
  }
@@ -4,8 +4,11 @@
4
4
 
5
5
  ```ts
6
6
 
7
+ /// <reference types="node" />
8
+
7
9
  import { EventEmitter } from 'events';
8
10
  import { EventEmitterEventType } from '@fluid-internal/client-utils';
11
+ import { IConfigProviderBase as IConfigProviderBase_2 } from '@fluidframework/core-interfaces';
9
12
  import { IDisposable } from '@fluidframework/core-interfaces';
10
13
  import { IErrorBase } from '@fluidframework/core-interfaces';
11
14
  import { IEvent } from '@fluidframework/core-interfaces';
@@ -27,29 +30,24 @@ import { TelemetryBaseEventPropertyType } from '@fluidframework/core-interfaces'
27
30
  import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
28
31
  import { TypedEventEmitter } from '@fluid-internal/client-utils';
29
32
 
30
- // @public (undocumented)
33
+ // @internal @deprecated
31
34
  export type ConfigTypes = string | number | boolean | number[] | string[] | boolean[] | undefined;
32
35
 
33
- // @public (undocumented)
36
+ // @internal (undocumented)
34
37
  export const connectedEventName = "connected";
35
38
 
36
- // @public
39
+ // @internal
37
40
  export function createChildLogger(props?: {
38
41
  logger?: ITelemetryBaseLogger;
39
42
  namespace?: string;
40
43
  properties?: ITelemetryLoggerPropertyBags;
41
44
  }): ITelemetryLoggerExt;
42
45
 
43
- // @public (undocumented)
46
+ // @internal
44
47
  export function createChildMonitoringContext(props: Parameters<typeof createChildLogger>[0]): MonitoringContext;
45
48
 
46
- // @public
47
- export function createMultiSinkLogger(props: {
48
- namespace?: string;
49
- properties?: ITelemetryLoggerPropertyBags;
50
- loggers?: (ITelemetryBaseLogger | undefined)[];
51
- tryInheritProperties?: true;
52
- }): ITelemetryLoggerExt;
49
+ // @internal
50
+ export function createMultiSinkLogger(props: MultiSinkLoggerProperties): ITelemetryLoggerExt;
53
51
 
54
52
  // @internal
55
53
  export function createSampledLogger(logger: ITelemetryLoggerExt, eventSampler?: IEventSampler): ISampledTelemetryLogger;
@@ -72,17 +70,17 @@ export class DataProcessingError extends LoggingError implements IErrorBase, IFl
72
70
  static wrapIfUnrecognized(originalError: unknown, dataProcessingCodepath: string, messageLike?: Partial<Pick<ISequencedDocumentMessage, "clientId" | "sequenceNumber" | "clientSequenceNumber" | "referenceSequenceNumber" | "minimumSequenceNumber" | "timestamp">>): IFluidErrorBase;
73
71
  }
74
72
 
75
- // @public (undocumented)
73
+ // @internal (undocumented)
76
74
  export const disconnectedEventName = "disconnected";
77
75
 
78
- // @public
76
+ // @alpha
79
77
  export class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
80
78
  constructor(errorHandler: (eventName: EventEmitterEventType, error: any) => void);
81
79
  // (undocumented)
82
80
  emit(event: EventEmitterEventType, ...args: unknown[]): boolean;
83
81
  }
84
82
 
85
- // @public (undocumented)
83
+ // @internal
86
84
  export const eventNamespaceSeparator: ":";
87
85
 
88
86
  // @internal
@@ -92,7 +90,7 @@ export function extractLogSafeErrorProperties(error: unknown, sanitizeStack: boo
92
90
  stack?: string | undefined;
93
91
  };
94
92
 
95
- // @public
93
+ // @internal
96
94
  export const extractSafePropertiesFromMessage: (messageLike: Partial<Pick<ISequencedDocumentMessage, "clientId" | "sequenceNumber" | "clientSequenceNumber" | "referenceSequenceNumber" | "minimumSequenceNumber" | "timestamp">>) => {
97
95
  messageClientId: string | undefined;
98
96
  messageSequenceNumber: number | undefined;
@@ -102,7 +100,7 @@ export const extractSafePropertiesFromMessage: (messageLike: Partial<Pick<ISeque
102
100
  messageTimestamp: number | undefined;
103
101
  };
104
102
 
105
- // @public (undocumented)
103
+ // @internal (undocumented)
106
104
  export function formatTick(tick: number): number;
107
105
 
108
106
  // @internal
@@ -123,13 +121,13 @@ export class GenericError extends LoggingError implements IGenericError, IFluidE
123
121
  // @internal
124
122
  export const getCircularReplacer: () => (key: string, value: unknown) => any;
125
123
 
126
- // @public
124
+ // @internal
127
125
  export const hasErrorInstanceId: (x: unknown) => x is {
128
126
  errorInstanceId: string;
129
127
  };
130
128
 
131
- // @public
132
- export interface IConfigProvider extends IConfigProviderBase {
129
+ // @internal
130
+ export interface IConfigProvider extends IConfigProviderBase_2 {
133
131
  // (undocumented)
134
132
  getBoolean(name: string): boolean | undefined;
135
133
  // (undocumented)
@@ -144,7 +142,7 @@ export interface IConfigProvider extends IConfigProviderBase {
144
142
  getStringArray(name: string): string[] | undefined;
145
143
  }
146
144
 
147
- // @public
145
+ // @internal @deprecated
148
146
  export interface IConfigProviderBase {
149
147
  // (undocumented)
150
148
  getRawConfig(name: string): ConfigTypes;
@@ -161,7 +159,7 @@ export interface IFluidErrorAnnotations {
161
159
  props?: ITelemetryBaseProperties;
162
160
  }
163
161
 
164
- // @public
162
+ // @internal
165
163
  export interface IFluidErrorBase extends Error {
166
164
  addTelemetryProperties: (props: ITelemetryProperties) => void;
167
165
  readonly errorInstanceId: string;
@@ -172,7 +170,7 @@ export interface IFluidErrorBase extends Error {
172
170
  readonly stack?: string;
173
171
  }
174
172
 
175
- // @public
173
+ // @internal
176
174
  export interface IPerformanceEventMarkers {
177
175
  // (undocumented)
178
176
  cancel?: "generic" | "error";
@@ -190,19 +188,19 @@ export interface ISampledTelemetryLogger extends ITelemetryLoggerExt {
190
188
  // @internal
191
189
  export function isExternalError(error: unknown): boolean;
192
190
 
193
- // @public
191
+ // @internal
194
192
  export function isFluidError(error: unknown): error is IFluidErrorBase;
195
193
 
196
- // @public
194
+ // @internal
197
195
  export const isILoggingError: (x: unknown) => x is ILoggingError;
198
196
 
199
- // @public
197
+ // @internal
200
198
  export function isTaggedTelemetryPropertyValue(x: Tagged<TelemetryEventPropertyTypeExt> | TelemetryEventPropertyTypeExt): x is Tagged<TelemetryEventPropertyTypeExt>;
201
199
 
202
- // @public
200
+ // @internal
203
201
  export function isValidLegacyError(error: unknown): error is Omit<IFluidErrorBase, "errorInstanceId">;
204
202
 
205
- // @public @deprecated
203
+ // @internal @deprecated
206
204
  export interface ITaggedTelemetryPropertyTypeExt {
207
205
  // (undocumented)
208
206
  tag: string;
@@ -210,13 +208,13 @@ export interface ITaggedTelemetryPropertyTypeExt {
210
208
  value: TelemetryEventPropertyTypeExt;
211
209
  }
212
210
 
213
- // @public
211
+ // @alpha
214
212
  export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
215
213
  // (undocumented)
216
214
  eventName: string;
217
215
  }
218
216
 
219
- // @public
217
+ // @internal
220
218
  export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
221
219
  // (undocumented)
222
220
  category: string;
@@ -224,7 +222,7 @@ export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
224
222
  eventName: string;
225
223
  }
226
224
 
227
- // @public
225
+ // @alpha
228
226
  export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
229
227
  // (undocumented)
230
228
  category?: TelemetryEventCategory;
@@ -232,20 +230,20 @@ export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
232
230
  eventName: string;
233
231
  }
234
232
 
235
- // @public
233
+ // @alpha
236
234
  export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
237
235
  sendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;
238
236
  sendPerformanceEvent(event: ITelemetryPerformanceEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
239
237
  sendTelemetryEvent(event: ITelemetryGenericEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
240
238
  }
241
239
 
242
- // @public (undocumented)
240
+ // @internal (undocumented)
243
241
  export interface ITelemetryLoggerPropertyBag {
244
242
  // (undocumented)
245
243
  [index: string]: TelemetryEventPropertyTypes | (() => TelemetryEventPropertyTypes);
246
244
  }
247
245
 
248
- // @public (undocumented)
246
+ // @internal (undocumented)
249
247
  export interface ITelemetryLoggerPropertyBags {
250
248
  // (undocumented)
251
249
  all?: ITelemetryLoggerPropertyBag;
@@ -253,19 +251,19 @@ export interface ITelemetryLoggerPropertyBags {
253
251
  error?: ITelemetryLoggerPropertyBag;
254
252
  }
255
253
 
256
- // @public
254
+ // @alpha
257
255
  export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
258
256
  // (undocumented)
259
257
  duration?: number;
260
258
  }
261
259
 
262
- // @public
260
+ // @alpha
263
261
  export interface ITelemetryPropertiesExt {
264
262
  // (undocumented)
265
263
  [index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
266
264
  }
267
265
 
268
- // @public (undocumented)
266
+ // @internal
269
267
  export function loggerToMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt>(logger: L): MonitoringContext<L>;
270
268
 
271
269
  // @internal
@@ -280,13 +278,13 @@ export class LoggingError extends Error implements ILoggingError, Omit<IFluidErr
280
278
  static typeCheck(object: unknown): object is LoggingError;
281
279
  }
282
280
 
283
- // @public
281
+ // @internal @deprecated
284
282
  export function logIfFalse(condition: unknown, logger: ITelemetryBaseLogger, event: string | ITelemetryGenericEvent): condition is true;
285
283
 
286
- // @public (undocumented)
287
- export function mixinMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt>(logger: L, ...configs: (IConfigProviderBase | undefined)[]): MonitoringContext<L>;
284
+ // @internal
285
+ export function mixinMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt>(logger: L, ...configs: (IConfigProviderBase_2 | undefined)[]): MonitoringContext<L>;
288
286
 
289
- // @public
287
+ // @internal
290
288
  export class MockLogger implements ITelemetryBaseLogger {
291
289
  constructor(minLogLevel?: LogLevel | undefined);
292
290
  assertMatch(expectedEvents: Omit<ITelemetryBaseEvent, "category">[], message?: string, inlineDetailsProp?: boolean): void;
@@ -308,7 +306,7 @@ export class MockLogger implements ITelemetryBaseLogger {
308
306
  toTelemetryLogger(): ITelemetryLoggerExt;
309
307
  }
310
308
 
311
- // @public
309
+ // @internal
312
310
  export interface MonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt> {
313
311
  // (undocumented)
314
312
  config: IConfigProvider;
@@ -316,19 +314,27 @@ export interface MonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLo
316
314
  logger: L;
317
315
  }
318
316
 
317
+ // @internal
318
+ export interface MultiSinkLoggerProperties {
319
+ loggers?: (ITelemetryBaseLogger | undefined)[];
320
+ namespace?: string;
321
+ properties?: ITelemetryLoggerPropertyBags;
322
+ tryInheritProperties?: true;
323
+ }
324
+
319
325
  // @internal
320
326
  export const NORMALIZED_ERROR_TYPE = "genericError";
321
327
 
322
328
  // @internal
323
329
  export function normalizeError(error: unknown, annotations?: IFluidErrorAnnotations): IFluidErrorBase;
324
330
 
325
- // @public
331
+ // @internal
326
332
  export function numberFromString(str: string | null | undefined): string | number | undefined;
327
333
 
328
334
  // @internal
329
335
  export function overwriteStack(error: IFluidErrorBase | LoggingError, stack: string): void;
330
336
 
331
- // @public
337
+ // @internal
332
338
  export class PerformanceEvent {
333
339
  protected constructor(logger: ITelemetryLoggerExt, event: ITelemetryGenericEvent, markers?: IPerformanceEventMarkers, recordHeapSize?: boolean, emitLogs?: boolean);
334
340
  // (undocumented)
@@ -345,13 +351,13 @@ export class PerformanceEvent {
345
351
  static timedExecAsync<T>(logger: ITelemetryLoggerExt, event: ITelemetryGenericEvent, callback: (event: PerformanceEvent) => Promise<T>, markers?: IPerformanceEventMarkers, recordHeapSize?: boolean, sampleThreshold?: number): Promise<T>;
346
352
  }
347
353
 
348
- // @public
354
+ // @internal
349
355
  export function raiseConnectedEvent(logger: ITelemetryLoggerExt, emitter: EventEmitter, connected: boolean, clientId?: string, disconnectedReason?: string): void;
350
356
 
351
- // @public (undocumented)
357
+ // @internal (undocumented)
352
358
  export function safeRaiseEvent(emitter: EventEmitter, logger: ITelemetryLoggerExt, event: string, ...args: unknown[]): void;
353
359
 
354
- // @public
360
+ // @internal
355
361
  export class SampledTelemetryHelper implements IDisposable {
356
362
  constructor(eventBase: ITelemetryGenericEvent, logger: ITelemetryLoggerExt, sampleThreshold: number, includeAggregateMetrics?: boolean, perBucketProperties?: Map<string, ITelemetryProperties>);
357
363
  // (undocumented)
@@ -361,10 +367,10 @@ export class SampledTelemetryHelper implements IDisposable {
361
367
  measure<T>(codeToMeasure: () => T, bucket?: string): T;
362
368
  }
363
369
 
364
- // @public
365
- export const sessionStorageConfigProvider: Lazy<IConfigProviderBase>;
370
+ // @internal
371
+ export const sessionStorageConfigProvider: Lazy<IConfigProviderBase_2>;
366
372
 
367
- // @public
373
+ // @internal
368
374
  export const tagCodeArtifacts: <T extends Record<string, TelemetryEventPropertyType | (() => TelemetryBaseEventPropertyType)>>(values: T) => { [P in keyof T]: (T[P] extends () => TelemetryBaseEventPropertyType ? () => {
369
375
  value: ReturnType<T[P]>;
370
376
  tag: TelemetryDataTag.CodeArtifact;
@@ -373,7 +379,7 @@ export const tagCodeArtifacts: <T extends Record<string, TelemetryEventPropertyT
373
379
  tag: TelemetryDataTag.CodeArtifact;
374
380
  }) | (T[P] extends undefined ? undefined : never); };
375
381
 
376
- // @public (undocumented)
382
+ // @internal
377
383
  export const tagData: <T extends TelemetryDataTag, V extends Record<string, TelemetryEventPropertyType | (() => TelemetryBaseEventPropertyType)>>(tag: T, values: V) => { [P in keyof V]: (V[P] extends () => TelemetryBaseEventPropertyType ? () => {
378
384
  value: ReturnType<V[P]>;
379
385
  tag: T;
@@ -382,32 +388,32 @@ export const tagData: <T extends TelemetryDataTag, V extends Record<string, Tele
382
388
  tag: T;
383
389
  }) | (V[P] extends undefined ? undefined : never); };
384
390
 
385
- // @public @deprecated (undocumented)
391
+ // @internal @deprecated (undocumented)
386
392
  export class TaggedLoggerAdapter implements ITelemetryBaseLogger {
387
393
  constructor(logger: ITelemetryBaseLogger);
388
394
  // (undocumented)
389
395
  send(eventWithTagsMaybe: ITelemetryBaseEvent): void;
390
396
  }
391
397
 
392
- // @public
398
+ // @internal
393
399
  export enum TelemetryDataTag {
394
400
  CodeArtifact = "CodeArtifact",
395
401
  UserData = "UserData"
396
402
  }
397
403
 
398
- // @public
404
+ // @alpha
399
405
  export type TelemetryEventCategory = "generic" | "error" | "performance";
400
406
 
401
- // @public
407
+ // @alpha
402
408
  export type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
403
409
  [key: string]: // Flat objects can have the same properties as the event itself
404
410
  string | number | boolean | undefined | (string | number | boolean)[];
405
411
  };
406
412
 
407
- // @public (undocumented)
413
+ // @internal (undocumented)
408
414
  export type TelemetryEventPropertyTypes = ITelemetryBaseProperties[string];
409
415
 
410
- // @public @deprecated
416
+ // @internal @deprecated
411
417
  export class TelemetryNullLogger implements ITelemetryLoggerExt {
412
418
  // (undocumented)
413
419
  send(event: ITelemetryBaseEvent): void;
@@ -419,7 +425,7 @@ export class TelemetryNullLogger implements ITelemetryLoggerExt {
419
425
  sendTelemetryEvent(event: ITelemetryGenericEvent, error?: unknown): void;
420
426
  }
421
427
 
422
- // @public
428
+ // @internal
423
429
  export class ThresholdCounter {
424
430
  constructor(threshold: number, logger: ITelemetryLoggerExt, thresholdMultiple?: number);
425
431
  send(eventName: string, value: number): void;
@@ -433,6 +439,9 @@ export class UsageError extends LoggingError implements IUsageError, IFluidError
433
439
  readonly errorType: "usageError";
434
440
  }
435
441
 
442
+ // @internal
443
+ export function validatePrecondition(condition: boolean, message: string, props?: ITelemetryBaseProperties): asserts condition;
444
+
436
445
  // @internal
437
446
  export function wrapError<T extends LoggingError>(innerError: unknown, newErrorFn: (message: string) => T): T;
438
447
 
package/dist/config.d.ts CHANGED
@@ -2,19 +2,14 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
5
+ import { ITelemetryBaseLogger, IConfigProviderBase, ConfigTypes } from "@fluidframework/core-interfaces";
6
6
  import { Lazy } from "@fluidframework/core-utils";
7
7
  import { createChildLogger } from "./logger";
8
8
  import { ITelemetryLoggerExt } from "./telemetryTypes";
9
- export type ConfigTypes = string | number | boolean | number[] | string[] | boolean[] | undefined;
10
9
  /**
11
- * Base interface for providing configurations to enable/disable/control features
12
- */
13
- export interface IConfigProviderBase {
14
- getRawConfig(name: string): ConfigTypes;
15
- }
16
- /**
17
- * Explicitly typed interface for reading configurations
10
+ * Explicitly typed interface for reading configurations.
11
+ *
12
+ * @internal
18
13
  */
19
14
  export interface IConfigProvider extends IConfigProviderBase {
20
15
  getBoolean(name: string): boolean | undefined;
@@ -28,6 +23,8 @@ export interface IConfigProvider extends IConfigProviderBase {
28
23
  * Creates a base configuration provider based on `sessionStorage`
29
24
  *
30
25
  * @returns A lazy initialized base configuration provider with `sessionStorage` as the underlying config store
26
+ *
27
+ * @internal
31
28
  */
32
29
  export declare const sessionStorageConfigProvider: Lazy<IConfigProviderBase>;
33
30
  /**
@@ -56,14 +53,44 @@ export declare class CachedConfigProvider implements IConfigProvider {
56
53
  private getCacheEntry;
57
54
  }
58
55
  /**
59
- * A type containing both a telemetry logger and a configuration provider
56
+ * A type containing both a telemetry logger and a configuration provider.
57
+ *
58
+ * @internal
60
59
  */
61
60
  export interface MonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt> {
62
61
  config: IConfigProvider;
63
62
  logger: L;
64
63
  }
64
+ /**
65
+ * Determines whether or not the provided object is a {@link MonitoringContext}.
66
+ * @remarks Can be used for type-narrowing.
67
+ *
68
+ * @internal
69
+ */
65
70
  export declare function loggerIsMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt>(obj: L): obj is L & MonitoringContext<L>;
71
+ /**
72
+ * Creates a {@link MonitoringContext} from the provided logger, if it isn't already one.
73
+ *
74
+ * @internal
75
+ */
66
76
  export declare function loggerToMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt>(logger: L): MonitoringContext<L>;
77
+ /**
78
+ * Creates a {@link MonitoringContext} from the provided logger.
79
+ *
80
+ * @remarks
81
+ * Assumes that the provided logger is not itself already a {@link MonitoringContext}, and will throw an error if it is.
82
+ * If you are unsure, use {@link loggerToMonitoringContext} instead.
83
+ *
84
+ * @throws If the provided logger is already a {@link MonitoringContext}.
85
+ *
86
+ * @internal
87
+ */
67
88
  export declare function mixinMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt>(logger: L, ...configs: (IConfigProviderBase | undefined)[]): MonitoringContext<L>;
89
+ /**
90
+ * Creates a child logger with a {@link MonitoringContext}.
91
+ *
92
+ * @see {@link loggerToMonitoringContext}
93
+ * @internal
94
+ */
68
95
  export declare function createChildMonitoringContext(props: Parameters<typeof createChildLogger>[0]): MonitoringContext;
69
96
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -7,6 +7,8 @@ const logger_1 = require("./logger");
7
7
  * Creates a base configuration provider based on `sessionStorage`
8
8
  *
9
9
  * @returns A lazy initialized base configuration provider with `sessionStorage` as the underlying config store
10
+ *
11
+ * @internal
10
12
  */
11
13
  exports.sessionStorageConfigProvider = new core_utils_1.Lazy(() => (0, exports.inMemoryConfigProvider)(safeSessionStorage()));
12
14
  const NullConfigProvider = {
@@ -191,11 +193,22 @@ class CachedConfigProvider {
191
193
  }
192
194
  }
193
195
  exports.CachedConfigProvider = CachedConfigProvider;
196
+ /**
197
+ * Determines whether or not the provided object is a {@link MonitoringContext}.
198
+ * @remarks Can be used for type-narrowing.
199
+ *
200
+ * @internal
201
+ */
194
202
  function loggerIsMonitoringContext(obj) {
195
203
  const maybeConfig = obj;
196
204
  return isConfigProviderBase(maybeConfig?.config) && maybeConfig?.logger !== undefined;
197
205
  }
198
206
  exports.loggerIsMonitoringContext = loggerIsMonitoringContext;
207
+ /**
208
+ * Creates a {@link MonitoringContext} from the provided logger, if it isn't already one.
209
+ *
210
+ * @internal
211
+ */
199
212
  function loggerToMonitoringContext(logger) {
200
213
  if (loggerIsMonitoringContext(logger)) {
201
214
  return logger;
@@ -203,6 +216,17 @@ function loggerToMonitoringContext(logger) {
203
216
  return mixinMonitoringContext(logger, exports.sessionStorageConfigProvider.value);
204
217
  }
205
218
  exports.loggerToMonitoringContext = loggerToMonitoringContext;
219
+ /**
220
+ * Creates a {@link MonitoringContext} from the provided logger.
221
+ *
222
+ * @remarks
223
+ * Assumes that the provided logger is not itself already a {@link MonitoringContext}, and will throw an error if it is.
224
+ * If you are unsure, use {@link loggerToMonitoringContext} instead.
225
+ *
226
+ * @throws If the provided logger is already a {@link MonitoringContext}.
227
+ *
228
+ * @internal
229
+ */
206
230
  function mixinMonitoringContext(logger, ...configs) {
207
231
  if (loggerIsMonitoringContext(logger)) {
208
232
  throw new Error("Logger is already a monitoring context");
@@ -225,6 +249,12 @@ function isConfigProviderBase(obj) {
225
249
  const maybeConfig = obj;
226
250
  return typeof maybeConfig?.getRawConfig === "function";
227
251
  }
252
+ /**
253
+ * Creates a child logger with a {@link MonitoringContext}.
254
+ *
255
+ * @see {@link loggerToMonitoringContext}
256
+ * @internal
257
+ */
228
258
  function createChildMonitoringContext(props) {
229
259
  return loggerToMonitoringContext((0, logger_1.createChildLogger)(props));
230
260
  }