@fluidframework/telemetry-utils 2.0.0-dev.4.4.0.162574 → 2.0.0-dev.5.3.2.178189

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 (88) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/config.d.ts +7 -6
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +2 -2
  5. package/dist/config.js.map +1 -1
  6. package/dist/debugLogger.d.ts +1 -1
  7. package/dist/debugLogger.d.ts.map +1 -1
  8. package/dist/debugLogger.js.map +1 -1
  9. package/dist/errorLogging.d.ts +3 -3
  10. package/dist/errorLogging.d.ts.map +1 -1
  11. package/dist/errorLogging.js +13 -2
  12. package/dist/errorLogging.js.map +1 -1
  13. package/dist/events.d.ts +3 -3
  14. package/dist/events.d.ts.map +1 -1
  15. package/dist/events.js.map +1 -1
  16. package/dist/fluidErrorBase.d.ts +1 -1
  17. package/dist/fluidErrorBase.d.ts.map +1 -1
  18. package/dist/fluidErrorBase.js.map +1 -1
  19. package/dist/logger.d.ts +16 -10
  20. package/dist/logger.d.ts.map +1 -1
  21. package/dist/logger.js +19 -9
  22. package/dist/logger.js.map +1 -1
  23. package/dist/mockLogger.d.ts +3 -2
  24. package/dist/mockLogger.d.ts.map +1 -1
  25. package/dist/mockLogger.js +1 -1
  26. package/dist/mockLogger.js.map +1 -1
  27. package/dist/sampledTelemetryHelper.d.ts +3 -2
  28. package/dist/sampledTelemetryHelper.d.ts.map +1 -1
  29. package/dist/sampledTelemetryHelper.js.map +1 -1
  30. package/dist/telemetryTypes.d.ts +5 -2
  31. package/dist/telemetryTypes.d.ts.map +1 -1
  32. package/dist/telemetryTypes.js.map +1 -1
  33. package/dist/thresholdCounter.d.ts +2 -2
  34. package/dist/thresholdCounter.d.ts.map +1 -1
  35. package/dist/thresholdCounter.js.map +1 -1
  36. package/dist/tsdoc-metadata.json +11 -0
  37. package/dist/utils.d.ts +1 -1
  38. package/dist/utils.d.ts.map +1 -1
  39. package/dist/utils.js.map +1 -1
  40. package/lib/config.d.ts +7 -6
  41. package/lib/config.d.ts.map +1 -1
  42. package/lib/config.js +1 -1
  43. package/lib/config.js.map +1 -1
  44. package/lib/debugLogger.d.ts +1 -1
  45. package/lib/debugLogger.d.ts.map +1 -1
  46. package/lib/debugLogger.js.map +1 -1
  47. package/lib/errorLogging.d.ts +3 -3
  48. package/lib/errorLogging.d.ts.map +1 -1
  49. package/lib/errorLogging.js +13 -2
  50. package/lib/errorLogging.js.map +1 -1
  51. package/lib/events.d.ts +3 -3
  52. package/lib/events.d.ts.map +1 -1
  53. package/lib/events.js.map +1 -1
  54. package/lib/fluidErrorBase.d.ts +1 -1
  55. package/lib/fluidErrorBase.d.ts.map +1 -1
  56. package/lib/fluidErrorBase.js.map +1 -1
  57. package/lib/logger.d.ts +16 -10
  58. package/lib/logger.d.ts.map +1 -1
  59. package/lib/logger.js +19 -9
  60. package/lib/logger.js.map +1 -1
  61. package/lib/mockLogger.d.ts +3 -2
  62. package/lib/mockLogger.d.ts.map +1 -1
  63. package/lib/mockLogger.js +1 -1
  64. package/lib/mockLogger.js.map +1 -1
  65. package/lib/sampledTelemetryHelper.d.ts +3 -2
  66. package/lib/sampledTelemetryHelper.d.ts.map +1 -1
  67. package/lib/sampledTelemetryHelper.js.map +1 -1
  68. package/lib/telemetryTypes.d.ts +5 -2
  69. package/lib/telemetryTypes.d.ts.map +1 -1
  70. package/lib/telemetryTypes.js.map +1 -1
  71. package/lib/thresholdCounter.d.ts +2 -2
  72. package/lib/thresholdCounter.d.ts.map +1 -1
  73. package/lib/thresholdCounter.js.map +1 -1
  74. package/lib/utils.d.ts +1 -1
  75. package/lib/utils.d.ts.map +1 -1
  76. package/lib/utils.js.map +1 -1
  77. package/package.json +12 -12
  78. package/src/config.ts +7 -6
  79. package/src/debugLogger.ts +1 -1
  80. package/src/errorLogging.ts +20 -6
  81. package/src/events.ts +3 -3
  82. package/src/fluidErrorBase.ts +1 -1
  83. package/src/logger.ts +36 -15
  84. package/src/mockLogger.ts +4 -3
  85. package/src/sampledTelemetryHelper.ts +4 -4
  86. package/src/telemetryTypes.ts +6 -2
  87. package/src/thresholdCounter.ts +2 -2
  88. package/src/utils.ts +1 -1
package/src/config.ts CHANGED
@@ -2,9 +2,10 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { ITelemetryBaseLogger, ITelemetryLogger } from "@fluidframework/common-definitions";
6
- import { Lazy } from "@fluidframework/common-utils";
5
+ import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
6
+ import { Lazy } from "@fluidframework/core-utils";
7
7
  import { TelemetryDataTag } from "./logger";
8
+ import { ITelemetryLoggerExt } from "./telemetryTypes";
8
9
 
9
10
  export type ConfigTypes = string | number | boolean | number[] | string[] | boolean[] | undefined;
10
11
 
@@ -240,19 +241,19 @@ export class CachedConfigProvider implements IConfigProvider {
240
241
  /**
241
242
  * A type containing both a telemetry logger and a configuration provider
242
243
  */
243
- export interface MonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLogger> {
244
+ export interface MonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt> {
244
245
  config: IConfigProvider;
245
246
  logger: L;
246
247
  }
247
248
 
248
- export function loggerIsMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLogger>(
249
+ export function loggerIsMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt>(
249
250
  obj: L,
250
251
  ): obj is L & MonitoringContext<L> {
251
252
  const maybeConfig = obj as Partial<MonitoringContext<L>> | undefined;
252
253
  return isConfigProviderBase(maybeConfig?.config) && maybeConfig?.logger !== undefined;
253
254
  }
254
255
 
255
- export function loggerToMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLogger>(
256
+ export function loggerToMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt>(
256
257
  logger: L,
257
258
  ): MonitoringContext<L> {
258
259
  if (loggerIsMonitoringContext<L>(logger)) {
@@ -261,7 +262,7 @@ export function loggerToMonitoringContext<L extends ITelemetryBaseLogger = ITele
261
262
  return mixinMonitoringContext<L>(logger, sessionStorageConfigProvider.value);
262
263
  }
263
264
 
264
- export function mixinMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLogger>(
265
+ export function mixinMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt>(
265
266
  logger: L,
266
267
  ...configs: (IConfigProviderBase | undefined)[]
267
268
  ) {
@@ -7,7 +7,7 @@ import {
7
7
  ITelemetryBaseEvent,
8
8
  ITelemetryBaseLogger,
9
9
  ITelemetryProperties,
10
- } from "@fluidframework/common-definitions";
10
+ } from "@fluidframework/core-interfaces";
11
11
  import { performance } from "@fluidframework/common-utils";
12
12
  import { debug as registerDebug, IDebugger } from "debug";
13
13
  import {
@@ -6,10 +6,9 @@
6
6
  import {
7
7
  ILoggingError,
8
8
  ITaggedTelemetryPropertyType,
9
- ITelemetryLogger,
10
9
  ITelemetryProperties,
11
10
  TelemetryEventPropertyType,
12
- } from "@fluidframework/common-definitions";
11
+ } from "@fluidframework/core-interfaces";
13
12
  import { v4 as uuid } from "uuid";
14
13
  import {
15
14
  hasErrorInstanceId,
@@ -17,7 +16,11 @@ import {
17
16
  isFluidError,
18
17
  isValidLegacyError,
19
18
  } from "./fluidErrorBase";
20
- import { ITaggedTelemetryPropertyTypeExt, TelemetryEventPropertyTypeExt } from "./telemetryTypes";
19
+ import {
20
+ ITaggedTelemetryPropertyTypeExt,
21
+ ITelemetryLoggerExt,
22
+ TelemetryEventPropertyTypeExt,
23
+ } from "./telemetryTypes";
21
24
 
22
25
  /** @returns true if value is an object but neither null nor an array */
23
26
  const isRegularObject = (value: any): boolean => {
@@ -121,8 +124,19 @@ export function normalizeError(
121
124
  // Anywhere they are set should be on a valid Fluid Error that would have been returned above,
122
125
  // but we can't prove it with the types, so adding this defensive measure.
123
126
  if (typeof error === "object" && error !== null) {
124
- const { canRetry, retryAfterSeconds } = error as any;
125
- Object.assign(normalizeError, { canRetry, retryAfterSeconds });
127
+ const maybeHasRetry: Partial<Record<"canRetry" | "retryAfterSeconds", unknown>> = error;
128
+ let retryProps: Partial<Record<"canRetry" | "retryAfterSeconds", unknown>> | undefined;
129
+ if ("canRetry" in error) {
130
+ retryProps ??= {};
131
+ retryProps.canRetry = maybeHasRetry.canRetry;
132
+ }
133
+ if ("retryAfterSeconds" in error) {
134
+ retryProps ??= {};
135
+ retryProps.retryAfterSeconds = maybeHasRetry.retryAfterSeconds;
136
+ }
137
+ if (retryProps !== undefined) {
138
+ Object.assign(fluidError, retryProps);
139
+ }
126
140
  }
127
141
 
128
142
  if (typeof error !== "object") {
@@ -220,7 +234,7 @@ export function wrapError<T extends LoggingError>(
220
234
  export function wrapErrorAndLog<T extends LoggingError>(
221
235
  innerError: unknown,
222
236
  newErrorFn: (message: string) => T,
223
- logger: ITelemetryLogger,
237
+ logger: ITelemetryLoggerExt,
224
238
  ) {
225
239
  const newError = wrapError(innerError, newErrorFn);
226
240
 
package/src/events.ts CHANGED
@@ -4,14 +4,14 @@
4
4
  */
5
5
 
6
6
  import { EventEmitter } from "events";
7
- import { ITelemetryLogger } from "@fluidframework/common-definitions";
7
+ import { ITelemetryLoggerExt } from "./telemetryTypes";
8
8
 
9
9
  export const connectedEventName = "connected";
10
10
  export const disconnectedEventName = "disconnected";
11
11
 
12
12
  export function safeRaiseEvent(
13
13
  emitter: EventEmitter,
14
- logger: ITelemetryLogger,
14
+ logger: ITelemetryLoggerExt,
15
15
  event: string,
16
16
  ...args
17
17
  ) {
@@ -31,7 +31,7 @@ export function safeRaiseEvent(
31
31
  * @param disconnectedReason - The reason for the connection to be disconnected (Used for telemetry purposes only)
32
32
  */
33
33
  export function raiseConnectedEvent(
34
- logger: ITelemetryLogger,
34
+ logger: ITelemetryLoggerExt,
35
35
  emitter: EventEmitter,
36
36
  connected: boolean,
37
37
  clientId?: string,
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ITelemetryProperties } from "@fluidframework/common-definitions";
6
+ import { ITelemetryProperties } from "@fluidframework/core-interfaces";
7
7
 
8
8
  /**
9
9
  * All normalized errors flowing through the Fluid Framework adhere to this readonly interface.
package/src/logger.ts CHANGED
@@ -8,14 +8,13 @@ import {
8
8
  ITelemetryBaseLogger,
9
9
  ITelemetryErrorEvent,
10
10
  ITelemetryGenericEvent,
11
- ITelemetryLogger,
12
11
  ITelemetryPerformanceEvent,
13
12
  ITelemetryProperties,
14
13
  TelemetryEventPropertyType,
15
14
  ITaggedTelemetryPropertyType,
16
15
  TelemetryEventCategory,
17
- } from "@fluidframework/common-definitions";
18
- import { performance } from "@fluidframework/common-utils";
16
+ } from "@fluidframework/core-interfaces";
17
+ import { IsomorphicPerformance, performance } from "@fluidframework/common-utils";
19
18
  import { CachedConfigProvider, loggerIsMonitoringContext, mixinMonitoringContext } from "./config";
20
19
  import {
21
20
  isILoggingError,
@@ -32,6 +31,13 @@ import {
32
31
  TelemetryEventPropertyTypeExt,
33
32
  } from "./telemetryTypes";
34
33
 
34
+ export interface Memory {
35
+ usedJSHeapSize: number;
36
+ }
37
+
38
+ export interface PerformanceWithMemory extends IsomorphicPerformance {
39
+ readonly memory: Memory;
40
+ }
35
41
  /**
36
42
  * Broad classifications to be applied to individual properties as they're prepared to be logged to telemetry.
37
43
  * Please do not modify existing entries for backwards compatibility.
@@ -290,7 +296,6 @@ export class ChildLogger extends TelemetryLogger {
290
296
  * is created, but it does not send telemetry events anywhere.
291
297
  * @param namespace - Telemetry event name prefix to add to all events
292
298
  * @param properties - Base properties to add to all events
293
- * @param propertyGetters - Getters to add additional properties to all events
294
299
  */
295
300
  public static create(
296
301
  baseLogger?: ITelemetryBaseLogger,
@@ -361,7 +366,6 @@ export class ChildLogger extends TelemetryLogger {
361
366
  /**
362
367
  * Multi-sink logger
363
368
  * Takes multiple ITelemetryBaseLogger objects (sinks) and logs all events into each sink
364
- * Implements ITelemetryBaseLogger (through static create() method)
365
369
  */
366
370
  export class MultiSinkLogger extends TelemetryLogger {
367
371
  protected loggers: ITelemetryBaseLogger[] = [];
@@ -370,7 +374,6 @@ export class MultiSinkLogger extends TelemetryLogger {
370
374
  * Create multiple sink logger (i.e. logger that sends events to multiple sinks)
371
375
  * @param namespace - Telemetry event name prefix to add to all events
372
376
  * @param properties - Base properties to add to all events
373
- * @param propertyGetters - Getters to add additional properties to all events
374
377
  */
375
378
  constructor(namespace?: string, properties?: ITelemetryLoggerPropertyBags) {
376
379
  super(namespace, properties);
@@ -416,15 +419,16 @@ export interface IPerformanceEventMarkers {
416
419
  */
417
420
  export class PerformanceEvent {
418
421
  public static start(
419
- logger: ITelemetryLogger,
422
+ logger: ITelemetryLoggerExt,
420
423
  event: ITelemetryGenericEvent,
421
424
  markers?: IPerformanceEventMarkers,
425
+ recordHeapSize: boolean = false,
422
426
  ) {
423
- return new PerformanceEvent(logger, event, markers);
427
+ return new PerformanceEvent(logger, event, markers, recordHeapSize);
424
428
  }
425
429
 
426
430
  public static timedExec<T>(
427
- logger: ITelemetryLogger,
431
+ logger: ITelemetryLoggerExt,
428
432
  event: ITelemetryGenericEvent,
429
433
  callback: (event: PerformanceEvent) => T,
430
434
  markers?: IPerformanceEventMarkers,
@@ -441,12 +445,13 @@ export class PerformanceEvent {
441
445
  }
442
446
 
443
447
  public static async timedExecAsync<T>(
444
- logger: ITelemetryLogger,
448
+ logger: ITelemetryLoggerExt,
445
449
  event: ITelemetryGenericEvent,
446
450
  callback: (event: PerformanceEvent) => Promise<T>,
447
451
  markers?: IPerformanceEventMarkers,
452
+ recordHeapSize?: boolean,
448
453
  ) {
449
- const perfEvent = PerformanceEvent.start(logger, event, markers);
454
+ const perfEvent = PerformanceEvent.start(logger, event, markers, recordHeapSize);
450
455
  try {
451
456
  const ret = await callback(perfEvent);
452
457
  perfEvent.autoEnd();
@@ -464,11 +469,13 @@ export class PerformanceEvent {
464
469
  private event?: ITelemetryGenericEvent;
465
470
  private readonly startTime = performance.now();
466
471
  private startMark?: string;
472
+ private startMemoryCollection: number | undefined = 0;
467
473
 
468
474
  protected constructor(
469
- private readonly logger: ITelemetryLogger,
475
+ private readonly logger: ITelemetryLoggerExt,
470
476
  event: ITelemetryGenericEvent,
471
477
  private readonly markers: IPerformanceEventMarkers = { end: true, cancel: "generic" },
478
+ private readonly recordHeapSize: boolean = false,
472
479
  ) {
473
480
  this.event = { ...event };
474
481
  if (this.markers.start) {
@@ -531,6 +538,20 @@ export class PerformanceEvent {
531
538
  event.eventName = `${event.eventName}_${eventNameSuffix}`;
532
539
  if (eventNameSuffix !== "start") {
533
540
  event.duration = this.duration;
541
+ if (this.startMemoryCollection) {
542
+ const currentMemory = (performance as PerformanceWithMemory)?.memory
543
+ ?.usedJSHeapSize;
544
+ const differenceInKBytes = Math.floor(
545
+ (currentMemory - this.startMemoryCollection) / 1024,
546
+ );
547
+ if (differenceInKBytes > 0) {
548
+ event.usedJSHeapSize = differenceInKBytes;
549
+ }
550
+ }
551
+ } else if (this.recordHeapSize) {
552
+ this.startMemoryCollection = (
553
+ performance as PerformanceWithMemory
554
+ )?.memory?.usedJSHeapSize;
534
555
  }
535
556
 
536
557
  this.logger.sendPerformanceEvent(event, error);
@@ -541,7 +562,7 @@ export class PerformanceEvent {
541
562
  * Logger that is useful for UT
542
563
  * It can be used in places where logger instance is required, but events should be not send over.
543
564
  */
544
- export class TelemetryUTLogger implements ITelemetryLogger {
565
+ export class TelemetryUTLogger implements ITelemetryLoggerExt {
545
566
  public send(event: ITelemetryBaseEvent): void {}
546
567
  public sendTelemetryEvent(event: ITelemetryGenericEvent, error?: any) {}
547
568
  public sendErrorEvent(event: ITelemetryErrorEvent, error?: any) {
@@ -591,7 +612,7 @@ export class BaseTelemetryNullLogger implements ITelemetryBaseLogger {
591
612
  * Null logger
592
613
  * It can be used in places where logger instance is required, but events should be not send over.
593
614
  */
594
- export class TelemetryNullLogger implements ITelemetryLogger {
615
+ export class TelemetryNullLogger implements ITelemetryLoggerExt {
595
616
  public send(event: ITelemetryBaseEvent): void {}
596
617
  public sendTelemetryEvent(event: ITelemetryGenericEvent, error?: any): void {}
597
618
  public sendErrorEvent(event: ITelemetryErrorEvent, error?: any): void {}
@@ -645,7 +666,7 @@ function convertToBasePropertyTypeUntagged(
645
666
  case "undefined":
646
667
  return x;
647
668
  case "object":
648
- // We assume this is an array based on the input types
669
+ // We assume this is an array or flat object based on the input types
649
670
  return JSON.stringify(x);
650
671
  default:
651
672
  // should never reach this case based on the input types
package/src/mockLogger.ts CHANGED
@@ -3,15 +3,16 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ITelemetryLogger, ITelemetryBaseEvent } from "@fluidframework/common-definitions";
6
+ import { ITelemetryBaseEvent } from "@fluidframework/core-interfaces";
7
7
  import { assert } from "@fluidframework/common-utils";
8
8
  import { TelemetryLogger } from "./logger";
9
+ import { ITelemetryLoggerExt } from "./telemetryTypes";
9
10
 
10
11
  /**
11
12
  * The MockLogger records events sent to it, and then can walk back over those events
12
13
  * searching for a set of expected events to match against the logged events.
13
14
  */
14
- export class MockLogger extends TelemetryLogger implements ITelemetryLogger {
15
+ export class MockLogger extends TelemetryLogger implements ITelemetryLoggerExt {
15
16
  events: ITelemetryBaseEvent[] = [];
16
17
 
17
18
  constructor() {
@@ -191,7 +192,7 @@ ${JSON.stringify(actualEvents)}`);
191
192
  if (inlineDetailsProp && details !== undefined) {
192
193
  assert(
193
194
  typeof details === "string",
194
- "Details should a JSON stringified string if inlineDetailsProp is true",
195
+ 0x6c9 /* Details should a JSON stringified string if inlineDetailsProp is true */,
195
196
  );
196
197
  detailsExpanded = JSON.parse(details);
197
198
  }
@@ -4,13 +4,13 @@
4
4
  */
5
5
 
6
6
  import {
7
- IDisposable,
8
7
  ITelemetryGenericEvent,
9
- ITelemetryLogger,
10
8
  ITelemetryPerformanceEvent,
11
9
  ITelemetryProperties,
12
- } from "@fluidframework/common-definitions";
10
+ IDisposable,
11
+ } from "@fluidframework/core-interfaces";
13
12
  import { performance } from "@fluidframework/common-utils";
13
+ import { ITelemetryLoggerExt } from "./telemetryTypes";
14
14
 
15
15
  interface Measurements {
16
16
  // The names of the properties in this interface are the ones that will get stamped in the
@@ -75,7 +75,7 @@ export class SampledTelemetryHelper implements IDisposable {
75
75
  */
76
76
  public constructor(
77
77
  private readonly eventBase: ITelemetryGenericEvent,
78
- private readonly logger: ITelemetryLogger,
78
+ private readonly logger: ITelemetryLoggerExt,
79
79
  private readonly sampleThreshold: number,
80
80
  private readonly includeAggregateMetrics: boolean = false,
81
81
  private readonly perBucketProperties = new Map<string, ITelemetryProperties>(),
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ITelemetryBaseLogger, TelemetryEventCategory } from "@fluidframework/common-definitions";
6
+ import { ITelemetryBaseLogger, TelemetryEventCategory } from "@fluidframework/core-interfaces";
7
7
 
8
8
  /**
9
9
  * Property types that can be logged.
@@ -14,7 +14,11 @@ export type TelemetryEventPropertyTypeExt =
14
14
  | number
15
15
  | boolean
16
16
  | undefined
17
- | (string | number | boolean)[];
17
+ | (string | number | boolean)[]
18
+ | {
19
+ [key: string]: // Flat objects can have the same properties as the event itself
20
+ string | number | boolean | undefined | (string | number | boolean)[];
21
+ };
18
22
 
19
23
  /**
20
24
  * A property to be logged to telemetry containing both the value and a tag. Tags are generic strings that can be used
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ITelemetryLogger } from "@fluidframework/common-definitions";
6
+ import { ITelemetryLoggerExt } from "./telemetryTypes";
7
7
 
8
8
  /**
9
9
  * Utility counter which will send event only if the provided value
@@ -12,7 +12,7 @@ import { ITelemetryLogger } from "@fluidframework/common-definitions";
12
12
  export class ThresholdCounter {
13
13
  public constructor(
14
14
  private readonly threshold: number,
15
- private readonly logger: ITelemetryLogger,
15
+ private readonly logger: ITelemetryLoggerExt,
16
16
  private thresholdMultiple = threshold,
17
17
  ) {}
18
18
 
package/src/utils.ts CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  ITelemetryBaseEvent,
7
7
  ITelemetryBaseLogger,
8
8
  ITelemetryGenericEvent,
9
- } from "@fluidframework/common-definitions";
9
+ } from "@fluidframework/core-interfaces";
10
10
 
11
11
  /**
12
12
  * Like assert, but logs only if the condition is false, rather than throwing