@fluidframework/core-interfaces 2.0.0-rc.1.0.3 → 2.0.0-rc.2.0.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 (122) hide show
  1. package/{.eslintrc.js → .eslintrc.cjs} +5 -1
  2. package/CHANGELOG.md +36 -0
  3. package/Removing-IFluidRouter.md +1 -1
  4. package/{api-extractor-esm.json → api-extractor-cjs.json} +5 -1
  5. package/api-extractor.json +1 -1
  6. package/api-report/core-interfaces.api.md +12 -48
  7. package/dist/core-interfaces-alpha.d.ts +6 -102
  8. package/dist/core-interfaces-beta.d.ts +10 -98
  9. package/dist/core-interfaces-public.d.ts +10 -98
  10. package/dist/core-interfaces-untrimmed.d.ts +21 -107
  11. package/dist/error.d.ts +1 -1
  12. package/dist/error.d.ts.map +1 -1
  13. package/dist/error.js.map +1 -1
  14. package/dist/fluidLoadable.d.ts +1 -1
  15. package/dist/fluidLoadable.d.ts.map +1 -1
  16. package/dist/fluidLoadable.js.map +1 -1
  17. package/dist/handles.d.ts +3 -3
  18. package/dist/handles.d.ts.map +1 -1
  19. package/dist/handles.js.map +1 -1
  20. package/dist/index.d.ts +16 -18
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +14 -14
  23. package/dist/index.js.map +1 -1
  24. package/dist/logger.d.ts +8 -96
  25. package/dist/logger.d.ts.map +1 -1
  26. package/dist/logger.js.map +1 -1
  27. package/dist/messages.d.ts +25 -0
  28. package/dist/messages.d.ts.map +1 -0
  29. package/{lib/fluidRouter.mjs → dist/messages.js} +3 -2
  30. package/dist/messages.js.map +1 -0
  31. package/dist/package.json +3 -0
  32. package/dist/tsdoc-metadata.json +1 -1
  33. package/lib/{config.d.mts → config.d.ts} +1 -1
  34. package/lib/config.d.ts.map +1 -0
  35. package/lib/{config.mjs → config.js} +1 -1
  36. package/lib/config.js.map +1 -0
  37. package/lib/{core-interfaces-alpha.d.mts → core-interfaces-alpha.d.ts} +6 -102
  38. package/lib/{core-interfaces-beta.d.mts → core-interfaces-beta.d.ts} +10 -98
  39. package/lib/{core-interfaces-public.d.mts → core-interfaces-public.d.ts} +10 -98
  40. package/lib/{core-interfaces-untrimmed.d.mts → core-interfaces-untrimmed.d.ts} +21 -107
  41. package/lib/{disposable.d.mts → disposable.d.ts} +1 -1
  42. package/lib/disposable.d.ts.map +1 -0
  43. package/lib/{disposable.mjs → disposable.js} +1 -1
  44. package/lib/disposable.js.map +1 -0
  45. package/lib/{error.d.mts → error.d.ts} +2 -2
  46. package/lib/error.d.ts.map +1 -0
  47. package/lib/{error.mjs → error.js} +1 -1
  48. package/lib/error.js.map +1 -0
  49. package/lib/{events.d.mts → events.d.ts} +1 -1
  50. package/lib/events.d.ts.map +1 -0
  51. package/lib/{events.mjs → events.js} +1 -1
  52. package/lib/events.js.map +1 -0
  53. package/lib/{fluidLoadable.d.mts → fluidLoadable.d.ts} +2 -2
  54. package/lib/fluidLoadable.d.ts.map +1 -0
  55. package/lib/{fluidLoadable.mjs → fluidLoadable.js} +1 -1
  56. package/lib/fluidLoadable.js.map +1 -0
  57. package/lib/{fluidPackage.d.mts → fluidPackage.d.ts} +1 -1
  58. package/lib/fluidPackage.d.ts.map +1 -0
  59. package/lib/{fluidPackage.mjs → fluidPackage.js} +1 -1
  60. package/lib/fluidPackage.js.map +1 -0
  61. package/lib/{fluidRouter.d.mts → fluidRouter.d.ts} +1 -1
  62. package/lib/fluidRouter.d.ts.map +1 -0
  63. package/lib/fluidRouter.js +6 -0
  64. package/lib/fluidRouter.js.map +1 -0
  65. package/lib/{handles.d.mts → handles.d.ts} +4 -4
  66. package/lib/handles.d.ts.map +1 -0
  67. package/lib/{handles.mjs → handles.js} +1 -1
  68. package/lib/handles.js.map +1 -0
  69. package/lib/index.d.ts +21 -0
  70. package/lib/index.d.ts.map +1 -0
  71. package/lib/index.js +10 -0
  72. package/lib/index.js.map +1 -0
  73. package/lib/logger.d.ts +92 -0
  74. package/lib/logger.d.ts.map +1 -0
  75. package/lib/{logger.mjs → logger.js} +1 -1
  76. package/lib/logger.js.map +1 -0
  77. package/lib/messages.d.ts +25 -0
  78. package/lib/messages.d.ts.map +1 -0
  79. package/lib/{provider.mjs → messages.js} +1 -1
  80. package/lib/messages.js.map +1 -0
  81. package/lib/{provider.d.mts → provider.d.ts} +1 -1
  82. package/lib/provider.d.ts.map +1 -0
  83. package/lib/provider.js +6 -0
  84. package/lib/provider.js.map +1 -0
  85. package/lib/test/types/fluidObjectTypes.js +95 -0
  86. package/lib/test/types/fluidObjectTypes.js.map +1 -0
  87. package/lib/test/types/validateCoreInterfacesPrevious.generated.js +106 -0
  88. package/lib/test/types/validateCoreInterfacesPrevious.generated.js.map +1 -0
  89. package/package.json +82 -17
  90. package/src/error.ts +1 -1
  91. package/src/fluidLoadable.ts +1 -1
  92. package/src/handles.ts +3 -3
  93. package/src/index.ts +17 -39
  94. package/src/logger.ts +8 -119
  95. package/src/messages.ts +28 -0
  96. package/tsconfig.cjs.json +7 -0
  97. package/tsconfig.json +2 -5
  98. package/lib/config.d.mts.map +0 -1
  99. package/lib/config.mjs.map +0 -1
  100. package/lib/disposable.d.mts.map +0 -1
  101. package/lib/disposable.mjs.map +0 -1
  102. package/lib/error.d.mts.map +0 -1
  103. package/lib/error.mjs.map +0 -1
  104. package/lib/events.d.mts.map +0 -1
  105. package/lib/events.mjs.map +0 -1
  106. package/lib/fluidLoadable.d.mts.map +0 -1
  107. package/lib/fluidLoadable.mjs.map +0 -1
  108. package/lib/fluidPackage.d.mts.map +0 -1
  109. package/lib/fluidPackage.mjs.map +0 -1
  110. package/lib/fluidRouter.d.mts.map +0 -1
  111. package/lib/fluidRouter.mjs.map +0 -1
  112. package/lib/handles.d.mts.map +0 -1
  113. package/lib/handles.mjs.map +0 -1
  114. package/lib/index.d.mts +0 -23
  115. package/lib/index.d.mts.map +0 -1
  116. package/lib/index.mjs +0 -10
  117. package/lib/index.mjs.map +0 -1
  118. package/lib/logger.d.mts +0 -180
  119. package/lib/logger.d.mts.map +0 -1
  120. package/lib/logger.mjs.map +0 -1
  121. package/lib/provider.d.mts.map +0 -1
  122. package/lib/provider.mjs.map +0 -1
@@ -4,8 +4,12 @@
4
4
  */
5
5
 
6
6
  module.exports = {
7
- extends: [require.resolve("@fluidframework/eslint-config-fluid"), "prettier"],
7
+ extends: [require.resolve("@fluidframework/eslint-config-fluid/strict"), "prettier"],
8
8
  parserOptions: {
9
9
  project: ["./tsconfig.json", "./src/test/tsconfig.json"],
10
10
  },
11
+ rules: {
12
+ // TODO: Enabling this may require breaking changes.
13
+ "@typescript-eslint/consistent-indexed-object-style": "off",
14
+ },
11
15
  };
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # @fluidframework/core-interfaces
2
2
 
3
+ ## 2.0.0-rc.2.0.0
4
+
5
+ ### Minor Changes
6
+
7
+ - core-interfaces: Removed ITelemetryProperties, TelemetryEventCategory, TelemetryEventPropertyType, and ITaggedTelemetryPropertyType ([#19752](https://github.com/microsoft/FluidFramework/issues/19752)) [615a7712e6](https://github.com/microsoft/FluidFramework/commits/615a7712e67885c6cda69ddd907cb5cc708eef18)
8
+
9
+ The `ITelemetryProperties` interface was deprecated and has been removed.
10
+ Use the identical `ITelemetryBaseProperties` instead.
11
+
12
+ The `TelemetryEventCategory` type was deprecated and has been removed from `@fluidframework/core-interfaces`, since
13
+ it had moved to `@fluidframework/telemetry-utils` in the past.
14
+
15
+ The `TelemetryEventPropertyType` type alias was deprecated and has been removed.
16
+ Use the identical `TelemetryBaseEventPropertyType` instead.
17
+
18
+ The `ITaggedTelemetryPropertyType` interface was deprecated and has been removed.
19
+ Use `Tagged<TelemetryBaseEventPropertyType>` instead.
20
+
21
+ - container-definitions: Added containerMetadata prop on IContainer interface ([#19142](https://github.com/microsoft/FluidFramework/issues/19142)) [d0d77f3516](https://github.com/microsoft/FluidFramework/commits/d0d77f3516d67f3c9faedb47b20dbd4e309c3bc2)
22
+
23
+ Added `containerMetadata` prop on IContainer interface.
24
+
25
+ - runtime-definitions: Moved ISignalEnvelope interface to core-interfaces ([#19142](https://github.com/microsoft/FluidFramework/issues/19142)) [d0d77f3516](https://github.com/microsoft/FluidFramework/commits/d0d77f3516d67f3c9faedb47b20dbd4e309c3bc2)
26
+
27
+ The `ISignalEnvelope` interface has been moved to the @fluidframework/core-interfaces package.
28
+
29
+ - core-interfaces: Removed deprecated telemetry event types ([#19740](https://github.com/microsoft/FluidFramework/issues/19740)) [0ff130a50e](https://github.com/microsoft/FluidFramework/commits/0ff130a50e9bcccb119673ac985ea27fa38de463)
30
+
31
+ The deprecated `ITelemetryErrorEvent`, `ITelemetryGenericEvent`, and `ITelemetryPerformanceEvent` interfaces,
32
+ which represented different kinds of telemetry events, were not intended for consumers of Fluid Framework and have thus
33
+ been removed.
34
+ `ITelemetryBaseEvent` is the only telemetry event interface that should be used in/by consuming code.
35
+
36
+ `ITelemetryLogger` was not intended for consumers of Fluid Framework and has been removed.
37
+ Consumers should use the simpler `ITelemetryBaseLogger` instead.
38
+
3
39
  ## 2.0.0-rc.1.0.0
4
40
 
5
41
  Dependency updates only.
@@ -109,7 +109,7 @@ const dataStore = await containerRuntime.createDataStore(TestDataObjectType);
109
109
  await dataStore.trySetAlias(alias);
110
110
 
111
111
  const entryPoint: IFluidHandle<ITestDataObject> | undefined =
112
- await containerRuntime.getRootDataStore(alias);
112
+ await containerRuntime.getAliasedDataStoreEntryPoint(alias);
113
113
  const retrievedDataStore = await entryPoint?.get();
114
114
  ```
115
115
 
@@ -1,4 +1,8 @@
1
1
  {
2
2
  "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3
- "extends": "../../../common/build/build-common/api-extractor-base-esm.json"
3
+ "extends": "../../../common/build/build-common/api-extractor-base.cjs.primary.json",
4
+ // CJS is actually secondary; so, no report.
5
+ "apiReport": {
6
+ "enabled": false
7
+ }
4
8
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3
- "extends": "../../../common/build/build-common/api-extractor-base.json"
3
+ "extends": "../../../common/build/build-common/api-extractor-base.esm.primary.json"
4
4
  }
@@ -394,12 +394,14 @@ export const isFluidCodeDetails: (details: unknown) => details is Readonly<IFlui
394
394
  // @internal @deprecated
395
395
  export const isFluidPackage: (pkg: unknown) => pkg is Readonly<IFluidPackage>;
396
396
 
397
- // @internal @deprecated (undocumented)
398
- export interface ITaggedTelemetryPropertyType {
399
- // (undocumented)
400
- tag: string;
401
- // (undocumented)
402
- value: TelemetryEventPropertyType;
397
+ // @internal (undocumented)
398
+ export interface ISignalEnvelope {
399
+ address?: string;
400
+ clientSignalSequenceNumber: number;
401
+ contents: {
402
+ type: string;
403
+ content: any;
404
+ };
403
405
  }
404
406
 
405
407
  // @public
@@ -419,40 +421,8 @@ export interface ITelemetryBaseLogger {
419
421
  }
420
422
 
421
423
  // @public
422
- export type ITelemetryBaseProperties = ITelemetryProperties;
423
-
424
- // @public @deprecated
425
- export interface ITelemetryErrorEvent extends ITelemetryProperties {
426
- // (undocumented)
427
- eventName: string;
428
- }
429
-
430
- // @public @deprecated
431
- export interface ITelemetryGenericEvent extends ITelemetryProperties {
432
- // (undocumented)
433
- category?: TelemetryEventCategory;
434
- // (undocumented)
435
- eventName: string;
436
- }
437
-
438
- // @public @deprecated
439
- export interface ITelemetryLogger extends ITelemetryBaseLogger {
440
- send(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;
441
- sendErrorEvent(event: ITelemetryErrorEvent, error?: any): void;
442
- sendPerformanceEvent(event: ITelemetryPerformanceEvent, error?: any, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
443
- sendTelemetryEvent(event: ITelemetryGenericEvent, error?: any, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
444
- }
445
-
446
- // @public @deprecated
447
- export interface ITelemetryPerformanceEvent extends ITelemetryGenericEvent {
448
- // (undocumented)
449
- duration?: number;
450
- }
451
-
452
- // @public @deprecated
453
- export interface ITelemetryProperties {
454
- // (undocumented)
455
- [index: string]: TelemetryEventPropertyType | Tagged<TelemetryEventPropertyType>;
424
+ export interface ITelemetryBaseProperties {
425
+ [index: string]: TelemetryBaseEventPropertyType | Tagged<TelemetryBaseEventPropertyType>;
456
426
  }
457
427
 
458
428
  // @alpha
@@ -490,14 +460,8 @@ export interface Tagged<V, T extends string = string> {
490
460
  value: V;
491
461
  }
492
462
 
493
- // @alpha
494
- export type TelemetryBaseEventPropertyType = TelemetryEventPropertyType;
495
-
496
- // @public @deprecated
497
- export type TelemetryEventCategory = "generic" | "error" | "performance";
498
-
499
- // @public @deprecated
500
- export type TelemetryEventPropertyType = string | number | boolean | undefined;
463
+ // @public
464
+ export type TelemetryBaseEventPropertyType = string | number | boolean | undefined;
501
465
 
502
466
  // @public
503
467
  export type TransformedEvent<TThis, E, A extends any[]> = (event: E, listener: (...args: ReplaceIEventThisPlaceHolder<A, TThis>) => void) => TThis;
@@ -686,7 +686,7 @@ export declare interface IResponse {
686
686
 
687
687
  /* Excluded from this release type: isFluidPackage */
688
688
 
689
- /* Excluded from this release type: ITaggedTelemetryPropertyType */
689
+ /* Excluded from this release type: ISignalEnvelope */
690
690
 
691
691
  /**
692
692
  * Base interface for logging telemetry statements.
@@ -714,92 +714,12 @@ export declare interface ITelemetryBaseLogger {
714
714
  * JSON-serializable properties, which will be logged with telemetry.
715
715
  * @public
716
716
  */
717
- export declare type ITelemetryBaseProperties = ITelemetryProperties;
718
-
719
- /**
720
- * Error telemetry event.
721
- * Maps to category = "error"
722
- *
723
- * @deprecated For internal use within FluidFramework, use ITelemetryErrorEventExt in \@fluidframework/telemetry-utils.
724
- * No replacement intended for FluidFramework consumers.
725
- * @public
726
- */
727
- export declare interface ITelemetryErrorEvent extends ITelemetryProperties {
728
- eventName: string;
729
- }
730
-
731
- /**
732
- * Informational (non-error) telemetry event
733
- * Maps to category = "generic"
734
- *
735
- * @deprecated For internal use within FluidFramework, use ITelemetryGenericEventExt in \@fluidframework/telemetry-utils.
736
- * No replacement intended for FluidFramework consumers.
737
- * @public
738
- */
739
- export declare interface ITelemetryGenericEvent extends ITelemetryProperties {
740
- eventName: string;
741
- category?: TelemetryEventCategory;
742
- }
743
-
744
- /**
745
- * ITelemetryLogger interface contains various helper telemetry methods,
746
- * encoding in one place schemas for various types of Fluid telemetry events.
747
- * Creates sub-logger that appends properties to all events
748
- *
749
- * @deprecated For internal use within FluidFramework, use ITelemetryLoggerExt in \@fluidframework/telemetry-utils.
750
- * No replacement intended for FluidFramework consumers.
751
- * @public
752
- */
753
- export declare interface ITelemetryLogger extends ITelemetryBaseLogger {
754
- /**
755
- * Actual implementation that sends telemetry event
756
- * Implemented by derived classes
757
- * @param event - Telemetry event to send over
758
- * @param logLevel - optional level of the log.
759
- */
760
- send(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;
761
- /**
762
- * Send information telemetry event
763
- * @param event - Event to send
764
- * @param error - optional error object to log
765
- * @param logLevel - optional level of the log.
766
- */
767
- sendTelemetryEvent(event: ITelemetryGenericEvent, error?: any, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
717
+ export declare interface ITelemetryBaseProperties {
768
718
  /**
769
- * Send error telemetry event
770
- * @param event - Event to send
771
- * @param error - optional error object to log
719
+ * Properties of a telemetry event. They are string-indexed, and their values restricted to a known set of
720
+ * types (optionally "wrapped" with {@link Tagged}).
772
721
  */
773
- sendErrorEvent(event: ITelemetryErrorEvent, error?: any): void;
774
- /**
775
- * Send performance telemetry event
776
- * @param event - Event to send
777
- * @param error - optional error object to log
778
- * @param logLevel - optional level of the log.
779
- */
780
- sendPerformanceEvent(event: ITelemetryPerformanceEvent, error?: any, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
781
- }
782
-
783
- /**
784
- * Performance telemetry event.
785
- * Maps to category = "performance"
786
- *
787
- * @deprecated For internal use within FluidFramework, use ITelemetryPerformanceEventExt in \@fluidframework/telemetry-utils.
788
- * No replacement intended for FluidFramework consumers.
789
- * @public
790
- */
791
- export declare interface ITelemetryPerformanceEvent extends ITelemetryGenericEvent {
792
- duration?: number;
793
- }
794
-
795
- /**
796
- * {@inheritDoc ITelemetryBaseProperties}
797
- *
798
- * @deprecated Renamed to {@link ITelemetryBaseProperties}
799
- * @public
800
- */
801
- export declare interface ITelemetryProperties {
802
- [index: string]: TelemetryEventPropertyType | Tagged<TelemetryEventPropertyType>;
722
+ [index: string]: TelemetryBaseEventPropertyType | Tagged<TelemetryBaseEventPropertyType>;
803
723
  }
804
724
 
805
725
  /**
@@ -859,25 +779,9 @@ export declare interface Tagged<V, T extends string = string> {
859
779
  * @remarks Logging entire objects is considered extremely dangerous from a telemetry point of view because people can
860
780
  * easily add fields to objects that shouldn't be logged and not realize it's going to be logged.
861
781
  * General best practice is to explicitly log the fields you care about from objects.
862
- * @alpha
863
- */
864
- export declare type TelemetryBaseEventPropertyType = TelemetryEventPropertyType;
865
-
866
- /**
867
- * Examples of known categories, however category can be any string for extensibility.
868
- *
869
- * @deprecated Moved to \@fluidframework/telemetry-utils package
870
- * @public
871
- */
872
- export declare type TelemetryEventCategory = "generic" | "error" | "performance";
873
-
874
- /**
875
- * {@inheritDoc TelemetryBaseEventPropertyType}
876
- *
877
- * @deprecated Renamed to {@link TelemetryBaseEventPropertyType}
878
782
  * @public
879
783
  */
880
- export declare type TelemetryEventPropertyType = string | number | boolean | undefined;
784
+ export declare type TelemetryBaseEventPropertyType = string | number | boolean | undefined;
881
785
 
882
786
  /**
883
787
  * Transforms the event overload by replacing {@link IEventThisPlaceHolder} with `TThis` in the event listener
@@ -573,7 +573,7 @@ export declare interface IResponse {
573
573
 
574
574
  /* Excluded from this release type: isFluidPackage */
575
575
 
576
- /* Excluded from this release type: ITaggedTelemetryPropertyType */
576
+ /* Excluded from this release type: ISignalEnvelope */
577
577
 
578
578
  /**
579
579
  * Base interface for logging telemetry statements.
@@ -601,92 +601,12 @@ export declare interface ITelemetryBaseLogger {
601
601
  * JSON-serializable properties, which will be logged with telemetry.
602
602
  * @public
603
603
  */
604
- export declare type ITelemetryBaseProperties = ITelemetryProperties;
605
-
606
- /**
607
- * Error telemetry event.
608
- * Maps to category = "error"
609
- *
610
- * @deprecated For internal use within FluidFramework, use ITelemetryErrorEventExt in \@fluidframework/telemetry-utils.
611
- * No replacement intended for FluidFramework consumers.
612
- * @public
613
- */
614
- export declare interface ITelemetryErrorEvent extends ITelemetryProperties {
615
- eventName: string;
616
- }
617
-
618
- /**
619
- * Informational (non-error) telemetry event
620
- * Maps to category = "generic"
621
- *
622
- * @deprecated For internal use within FluidFramework, use ITelemetryGenericEventExt in \@fluidframework/telemetry-utils.
623
- * No replacement intended for FluidFramework consumers.
624
- * @public
625
- */
626
- export declare interface ITelemetryGenericEvent extends ITelemetryProperties {
627
- eventName: string;
628
- category?: TelemetryEventCategory;
629
- }
630
-
631
- /**
632
- * ITelemetryLogger interface contains various helper telemetry methods,
633
- * encoding in one place schemas for various types of Fluid telemetry events.
634
- * Creates sub-logger that appends properties to all events
635
- *
636
- * @deprecated For internal use within FluidFramework, use ITelemetryLoggerExt in \@fluidframework/telemetry-utils.
637
- * No replacement intended for FluidFramework consumers.
638
- * @public
639
- */
640
- export declare interface ITelemetryLogger extends ITelemetryBaseLogger {
641
- /**
642
- * Actual implementation that sends telemetry event
643
- * Implemented by derived classes
644
- * @param event - Telemetry event to send over
645
- * @param logLevel - optional level of the log.
646
- */
647
- send(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;
604
+ export declare interface ITelemetryBaseProperties {
648
605
  /**
649
- * Send information telemetry event
650
- * @param event - Event to send
651
- * @param error - optional error object to log
652
- * @param logLevel - optional level of the log.
606
+ * Properties of a telemetry event. They are string-indexed, and their values restricted to a known set of
607
+ * types (optionally "wrapped" with {@link Tagged}).
653
608
  */
654
- sendTelemetryEvent(event: ITelemetryGenericEvent, error?: any, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
655
- /**
656
- * Send error telemetry event
657
- * @param event - Event to send
658
- * @param error - optional error object to log
659
- */
660
- sendErrorEvent(event: ITelemetryErrorEvent, error?: any): void;
661
- /**
662
- * Send performance telemetry event
663
- * @param event - Event to send
664
- * @param error - optional error object to log
665
- * @param logLevel - optional level of the log.
666
- */
667
- sendPerformanceEvent(event: ITelemetryPerformanceEvent, error?: any, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
668
- }
669
-
670
- /**
671
- * Performance telemetry event.
672
- * Maps to category = "performance"
673
- *
674
- * @deprecated For internal use within FluidFramework, use ITelemetryPerformanceEventExt in \@fluidframework/telemetry-utils.
675
- * No replacement intended for FluidFramework consumers.
676
- * @public
677
- */
678
- export declare interface ITelemetryPerformanceEvent extends ITelemetryGenericEvent {
679
- duration?: number;
680
- }
681
-
682
- /**
683
- * {@inheritDoc ITelemetryBaseProperties}
684
- *
685
- * @deprecated Renamed to {@link ITelemetryBaseProperties}
686
- * @public
687
- */
688
- export declare interface ITelemetryProperties {
689
- [index: string]: TelemetryEventPropertyType | Tagged<TelemetryEventPropertyType>;
609
+ [index: string]: TelemetryBaseEventPropertyType | Tagged<TelemetryBaseEventPropertyType>;
690
610
  }
691
611
 
692
612
  /* Excluded from this release type: IThrottlingWarning */
@@ -730,23 +650,15 @@ export declare interface Tagged<V, T extends string = string> {
730
650
  tag: T;
731
651
  }
732
652
 
733
- /* Excluded from this release type: TelemetryBaseEventPropertyType */
734
-
735
- /**
736
- * Examples of known categories, however category can be any string for extensibility.
737
- *
738
- * @deprecated Moved to \@fluidframework/telemetry-utils package
739
- * @public
740
- */
741
- export declare type TelemetryEventCategory = "generic" | "error" | "performance";
742
-
743
653
  /**
744
- * {@inheritDoc TelemetryBaseEventPropertyType}
654
+ * Property types that can be logged.
745
655
  *
746
- * @deprecated Renamed to {@link TelemetryBaseEventPropertyType}
656
+ * @remarks Logging entire objects is considered extremely dangerous from a telemetry point of view because people can
657
+ * easily add fields to objects that shouldn't be logged and not realize it's going to be logged.
658
+ * General best practice is to explicitly log the fields you care about from objects.
747
659
  * @public
748
660
  */
749
- export declare type TelemetryEventPropertyType = string | number | boolean | undefined;
661
+ export declare type TelemetryBaseEventPropertyType = string | number | boolean | undefined;
750
662
 
751
663
  /**
752
664
  * Transforms the event overload by replacing {@link IEventThisPlaceHolder} with `TThis` in the event listener
@@ -573,7 +573,7 @@ export declare interface IResponse {
573
573
 
574
574
  /* Excluded from this release type: isFluidPackage */
575
575
 
576
- /* Excluded from this release type: ITaggedTelemetryPropertyType */
576
+ /* Excluded from this release type: ISignalEnvelope */
577
577
 
578
578
  /**
579
579
  * Base interface for logging telemetry statements.
@@ -601,92 +601,12 @@ export declare interface ITelemetryBaseLogger {
601
601
  * JSON-serializable properties, which will be logged with telemetry.
602
602
  * @public
603
603
  */
604
- export declare type ITelemetryBaseProperties = ITelemetryProperties;
605
-
606
- /**
607
- * Error telemetry event.
608
- * Maps to category = "error"
609
- *
610
- * @deprecated For internal use within FluidFramework, use ITelemetryErrorEventExt in \@fluidframework/telemetry-utils.
611
- * No replacement intended for FluidFramework consumers.
612
- * @public
613
- */
614
- export declare interface ITelemetryErrorEvent extends ITelemetryProperties {
615
- eventName: string;
616
- }
617
-
618
- /**
619
- * Informational (non-error) telemetry event
620
- * Maps to category = "generic"
621
- *
622
- * @deprecated For internal use within FluidFramework, use ITelemetryGenericEventExt in \@fluidframework/telemetry-utils.
623
- * No replacement intended for FluidFramework consumers.
624
- * @public
625
- */
626
- export declare interface ITelemetryGenericEvent extends ITelemetryProperties {
627
- eventName: string;
628
- category?: TelemetryEventCategory;
629
- }
630
-
631
- /**
632
- * ITelemetryLogger interface contains various helper telemetry methods,
633
- * encoding in one place schemas for various types of Fluid telemetry events.
634
- * Creates sub-logger that appends properties to all events
635
- *
636
- * @deprecated For internal use within FluidFramework, use ITelemetryLoggerExt in \@fluidframework/telemetry-utils.
637
- * No replacement intended for FluidFramework consumers.
638
- * @public
639
- */
640
- export declare interface ITelemetryLogger extends ITelemetryBaseLogger {
641
- /**
642
- * Actual implementation that sends telemetry event
643
- * Implemented by derived classes
644
- * @param event - Telemetry event to send over
645
- * @param logLevel - optional level of the log.
646
- */
647
- send(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;
604
+ export declare interface ITelemetryBaseProperties {
648
605
  /**
649
- * Send information telemetry event
650
- * @param event - Event to send
651
- * @param error - optional error object to log
652
- * @param logLevel - optional level of the log.
606
+ * Properties of a telemetry event. They are string-indexed, and their values restricted to a known set of
607
+ * types (optionally "wrapped" with {@link Tagged}).
653
608
  */
654
- sendTelemetryEvent(event: ITelemetryGenericEvent, error?: any, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
655
- /**
656
- * Send error telemetry event
657
- * @param event - Event to send
658
- * @param error - optional error object to log
659
- */
660
- sendErrorEvent(event: ITelemetryErrorEvent, error?: any): void;
661
- /**
662
- * Send performance telemetry event
663
- * @param event - Event to send
664
- * @param error - optional error object to log
665
- * @param logLevel - optional level of the log.
666
- */
667
- sendPerformanceEvent(event: ITelemetryPerformanceEvent, error?: any, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
668
- }
669
-
670
- /**
671
- * Performance telemetry event.
672
- * Maps to category = "performance"
673
- *
674
- * @deprecated For internal use within FluidFramework, use ITelemetryPerformanceEventExt in \@fluidframework/telemetry-utils.
675
- * No replacement intended for FluidFramework consumers.
676
- * @public
677
- */
678
- export declare interface ITelemetryPerformanceEvent extends ITelemetryGenericEvent {
679
- duration?: number;
680
- }
681
-
682
- /**
683
- * {@inheritDoc ITelemetryBaseProperties}
684
- *
685
- * @deprecated Renamed to {@link ITelemetryBaseProperties}
686
- * @public
687
- */
688
- export declare interface ITelemetryProperties {
689
- [index: string]: TelemetryEventPropertyType | Tagged<TelemetryEventPropertyType>;
609
+ [index: string]: TelemetryBaseEventPropertyType | Tagged<TelemetryBaseEventPropertyType>;
690
610
  }
691
611
 
692
612
  /* Excluded from this release type: IThrottlingWarning */
@@ -730,23 +650,15 @@ export declare interface Tagged<V, T extends string = string> {
730
650
  tag: T;
731
651
  }
732
652
 
733
- /* Excluded from this release type: TelemetryBaseEventPropertyType */
734
-
735
- /**
736
- * Examples of known categories, however category can be any string for extensibility.
737
- *
738
- * @deprecated Moved to \@fluidframework/telemetry-utils package
739
- * @public
740
- */
741
- export declare type TelemetryEventCategory = "generic" | "error" | "performance";
742
-
743
653
  /**
744
- * {@inheritDoc TelemetryBaseEventPropertyType}
654
+ * Property types that can be logged.
745
655
  *
746
- * @deprecated Renamed to {@link TelemetryBaseEventPropertyType}
656
+ * @remarks Logging entire objects is considered extremely dangerous from a telemetry point of view because people can
657
+ * easily add fields to objects that shouldn't be logged and not realize it's going to be logged.
658
+ * General best practice is to explicitly log the fields you care about from objects.
747
659
  * @public
748
660
  */
749
- export declare type TelemetryEventPropertyType = string | number | boolean | undefined;
661
+ export declare type TelemetryBaseEventPropertyType = string | number | boolean | undefined;
750
662
 
751
663
  /**
752
664
  * Transforms the event overload by replacing {@link IEventThisPlaceHolder} with `TThis` in the event listener