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

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 +2 -1
  2. package/CHANGELOG.md +108 -0
  3. package/README.md +4 -3
  4. package/dist/config.d.ts +2 -0
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/config.js +34 -36
  7. package/dist/config.js.map +1 -1
  8. package/dist/error.d.ts +92 -0
  9. package/dist/error.d.ts.map +1 -0
  10. package/dist/error.js +133 -0
  11. package/dist/error.js.map +1 -0
  12. package/dist/errorLogging.d.ts +44 -19
  13. package/dist/errorLogging.d.ts.map +1 -1
  14. package/dist/errorLogging.js +70 -31
  15. package/dist/errorLogging.js.map +1 -1
  16. package/dist/eventEmitterWithErrorHandling.d.ts +3 -3
  17. package/dist/eventEmitterWithErrorHandling.d.ts.map +1 -1
  18. package/dist/eventEmitterWithErrorHandling.js +10 -3
  19. package/dist/eventEmitterWithErrorHandling.js.map +1 -1
  20. package/dist/events.d.ts +1 -1
  21. package/dist/events.d.ts.map +1 -1
  22. package/dist/events.js.map +1 -1
  23. package/dist/fluidErrorBase.d.ts +48 -15
  24. package/dist/fluidErrorBase.d.ts.map +1 -1
  25. package/dist/fluidErrorBase.js +21 -14
  26. package/dist/fluidErrorBase.js.map +1 -1
  27. package/dist/index.d.ts +5 -5
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +16 -8
  30. package/dist/index.js.map +1 -1
  31. package/dist/logger.d.ts +98 -60
  32. package/dist/logger.d.ts.map +1 -1
  33. package/dist/logger.js +193 -124
  34. package/dist/logger.js.map +1 -1
  35. package/dist/mockLogger.d.ts +17 -8
  36. package/dist/mockLogger.d.ts.map +1 -1
  37. package/dist/mockLogger.js +49 -28
  38. package/dist/mockLogger.js.map +1 -1
  39. package/dist/sampledTelemetryHelper.d.ts +8 -7
  40. package/dist/sampledTelemetryHelper.d.ts.map +1 -1
  41. package/dist/sampledTelemetryHelper.js +21 -16
  42. package/dist/sampledTelemetryHelper.js.map +1 -1
  43. package/dist/telemetryTypes.d.ts +20 -6
  44. package/dist/telemetryTypes.d.ts.map +1 -1
  45. package/dist/telemetryTypes.js.map +1 -1
  46. package/dist/thresholdCounter.d.ts.map +1 -1
  47. package/dist/thresholdCounter.js.map +1 -1
  48. package/dist/utils.d.ts +2 -2
  49. package/dist/utils.d.ts.map +1 -1
  50. package/dist/utils.js +2 -2
  51. package/dist/utils.js.map +1 -1
  52. package/lib/config.d.ts +2 -0
  53. package/lib/config.d.ts.map +1 -1
  54. package/lib/config.js +33 -36
  55. package/lib/config.js.map +1 -1
  56. package/lib/error.d.ts +92 -0
  57. package/lib/error.d.ts.map +1 -0
  58. package/lib/error.js +125 -0
  59. package/lib/error.js.map +1 -0
  60. package/lib/errorLogging.d.ts +44 -19
  61. package/lib/errorLogging.d.ts.map +1 -1
  62. package/lib/errorLogging.js +69 -31
  63. package/lib/errorLogging.js.map +1 -1
  64. package/lib/eventEmitterWithErrorHandling.d.ts +3 -3
  65. package/lib/eventEmitterWithErrorHandling.d.ts.map +1 -1
  66. package/lib/eventEmitterWithErrorHandling.js +9 -2
  67. package/lib/eventEmitterWithErrorHandling.js.map +1 -1
  68. package/lib/events.d.ts +1 -1
  69. package/lib/events.d.ts.map +1 -1
  70. package/lib/events.js.map +1 -1
  71. package/lib/fluidErrorBase.d.ts +48 -15
  72. package/lib/fluidErrorBase.d.ts.map +1 -1
  73. package/lib/fluidErrorBase.js +21 -14
  74. package/lib/fluidErrorBase.js.map +1 -1
  75. package/lib/index.d.ts +5 -5
  76. package/lib/index.d.ts.map +1 -1
  77. package/lib/index.js +4 -4
  78. package/lib/index.js.map +1 -1
  79. package/lib/logger.d.ts +98 -60
  80. package/lib/logger.d.ts.map +1 -1
  81. package/lib/logger.js +184 -119
  82. package/lib/logger.js.map +1 -1
  83. package/lib/mockLogger.d.ts +17 -8
  84. package/lib/mockLogger.d.ts.map +1 -1
  85. package/lib/mockLogger.js +50 -29
  86. package/lib/mockLogger.js.map +1 -1
  87. package/lib/sampledTelemetryHelper.d.ts +8 -7
  88. package/lib/sampledTelemetryHelper.d.ts.map +1 -1
  89. package/lib/sampledTelemetryHelper.js +19 -14
  90. package/lib/sampledTelemetryHelper.js.map +1 -1
  91. package/lib/telemetryTypes.d.ts +20 -6
  92. package/lib/telemetryTypes.d.ts.map +1 -1
  93. package/lib/telemetryTypes.js.map +1 -1
  94. package/lib/thresholdCounter.d.ts.map +1 -1
  95. package/lib/thresholdCounter.js.map +1 -1
  96. package/lib/utils.d.ts +2 -2
  97. package/lib/utils.d.ts.map +1 -1
  98. package/lib/utils.js +2 -2
  99. package/lib/utils.js.map +1 -1
  100. package/package.json +19 -22
  101. package/src/config.ts +23 -13
  102. package/src/error.ts +202 -0
  103. package/src/errorLogging.ts +101 -56
  104. package/src/eventEmitterWithErrorHandling.ts +5 -3
  105. package/src/events.ts +3 -3
  106. package/src/fluidErrorBase.ts +62 -26
  107. package/src/index.ts +17 -6
  108. package/src/logger.ts +290 -120
  109. package/src/mockLogger.ts +65 -24
  110. package/src/sampledTelemetryHelper.ts +18 -14
  111. package/src/telemetryTypes.ts +29 -6
  112. package/src/thresholdCounter.ts +2 -2
  113. package/src/utils.ts +2 -2
  114. package/dist/debugLogger.d.ts +0 -39
  115. package/dist/debugLogger.d.ts.map +0 -1
  116. package/dist/debugLogger.js +0 -112
  117. package/dist/debugLogger.js.map +0 -1
  118. package/lib/debugLogger.d.ts +0 -39
  119. package/lib/debugLogger.d.ts.map +0 -1
  120. package/lib/debugLogger.js +0 -108
  121. package/lib/debugLogger.js.map +0 -1
  122. package/src/debugLogger.ts +0 -143
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAKU,QAAA,kBAAkB,GAAG,WAAW,CAAC;AACjC,QAAA,qBAAqB,GAAG,cAAc,CAAC;AAEpD,SAAgB,cAAc,CAC7B,OAAqB,EACrB,MAA2B,EAC3B,KAAa,EACb,GAAG,IAAI;IAEP,IAAI;QACH,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;KAC7B;IAAC,OAAO,KAAK,EAAE;QACf,MAAM,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;KACtE;AACF,CAAC;AAXD,wCAWC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAClC,MAA2B,EAC3B,OAAqB,EACrB,SAAkB,EAClB,QAAiB,EACjB,kBAA2B;IAE3B,IAAI;QACH,IAAI,SAAS,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,0BAAkB,EAAE,QAAQ,CAAC,CAAC;SAC3C;aAAM;YACN,OAAO,CAAC,IAAI,CAAC,6BAAqB,EAAE,kBAAkB,CAAC,CAAC;SACxD;KACD;IAAC,OAAO,KAAK,EAAE;QACf,MAAM,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,0BAA0B,EAAE,EAAE,KAAK,CAAC,CAAC;KACxE;AACF,CAAC;AAhBD,kDAgBC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { EventEmitter } from \"events\";\nimport { ITelemetryLoggerExt } from \"./telemetryTypes\";\n\nexport const connectedEventName = \"connected\";\nexport const disconnectedEventName = \"disconnected\";\n\nexport function safeRaiseEvent(\n\temitter: EventEmitter,\n\tlogger: ITelemetryLoggerExt,\n\tevent: string,\n\t...args\n) {\n\ttry {\n\t\temitter.emit(event, ...args);\n\t} catch (error) {\n\t\tlogger.sendErrorEvent({ eventName: \"RaiseEventError\", event }, error);\n\t}\n}\n\n/**\n * Raises events pertaining to the connection\n * @param logger - The logger to log telemetry\n * @param emitter - The event emitter instance\n * @param connected - A boolean tracking whether the connection was in a connected state or not\n * @param clientId - The connected/disconnected clientId\n * @param disconnectedReason - The reason for the connection to be disconnected (Used for telemetry purposes only)\n */\nexport function raiseConnectedEvent(\n\tlogger: ITelemetryLoggerExt,\n\temitter: EventEmitter,\n\tconnected: boolean,\n\tclientId?: string,\n\tdisconnectedReason?: string,\n) {\n\ttry {\n\t\tif (connected) {\n\t\t\temitter.emit(connectedEventName, clientId);\n\t\t} else {\n\t\t\temitter.emit(disconnectedEventName, disconnectedReason);\n\t\t}\n\t} catch (error) {\n\t\tlogger.sendErrorEvent({ eventName: \"RaiseConnectedEventError\" }, error);\n\t}\n}\n"]}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAKU,QAAA,kBAAkB,GAAG,WAAW,CAAC;AACjC,QAAA,qBAAqB,GAAG,cAAc,CAAC;AAEpD,SAAgB,cAAc,CAC7B,OAAqB,EACrB,MAA2B,EAC3B,KAAa,EACb,GAAG,IAAe;IAElB,IAAI;QACH,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;KAC7B;IAAC,OAAO,KAAK,EAAE;QACf,MAAM,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;KACtE;AACF,CAAC;AAXD,wCAWC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAClC,MAA2B,EAC3B,OAAqB,EACrB,SAAkB,EAClB,QAAiB,EACjB,kBAA2B;IAE3B,IAAI;QACH,IAAI,SAAS,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,0BAAkB,EAAE,QAAQ,CAAC,CAAC;SAC3C;aAAM;YACN,OAAO,CAAC,IAAI,CAAC,6BAAqB,EAAE,kBAAkB,CAAC,CAAC;SACxD;KACD;IAAC,OAAO,KAAK,EAAE;QACf,MAAM,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,0BAA0B,EAAE,EAAE,KAAK,CAAC,CAAC;KACxE;AACF,CAAC;AAhBD,kDAgBC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { EventEmitter } from \"events\";\nimport { ITelemetryLoggerExt } from \"./telemetryTypes\";\n\nexport const connectedEventName = \"connected\";\nexport const disconnectedEventName = \"disconnected\";\n\nexport function safeRaiseEvent(\n\temitter: EventEmitter,\n\tlogger: ITelemetryLoggerExt,\n\tevent: string,\n\t...args: unknown[]\n): void {\n\ttry {\n\t\temitter.emit(event, ...args);\n\t} catch (error) {\n\t\tlogger.sendErrorEvent({ eventName: \"RaiseEventError\", event }, error);\n\t}\n}\n\n/**\n * Raises events pertaining to the connection\n * @param logger - The logger to log telemetry\n * @param emitter - The event emitter instance\n * @param connected - A boolean tracking whether the connection was in a connected state or not\n * @param clientId - The connected/disconnected clientId\n * @param disconnectedReason - The reason for the connection to be disconnected (Used for telemetry purposes only)\n */\nexport function raiseConnectedEvent(\n\tlogger: ITelemetryLoggerExt,\n\temitter: EventEmitter,\n\tconnected: boolean,\n\tclientId?: string,\n\tdisconnectedReason?: string,\n): void {\n\ttry {\n\t\tif (connected) {\n\t\t\temitter.emit(connectedEventName, clientId);\n\t\t} else {\n\t\t\temitter.emit(disconnectedEventName, disconnectedReason);\n\t\t}\n\t} catch (error) {\n\t\tlogger.sendErrorEvent({ eventName: \"RaiseConnectedEventError\" }, error);\n\t}\n}\n"]}
@@ -4,39 +4,72 @@
4
4
  */
5
5
  import { ITelemetryProperties } from "@fluidframework/core-interfaces";
6
6
  /**
7
+ * An error emitted by the Fluid Framework.
8
+ *
9
+ * @remarks
10
+ *
7
11
  * All normalized errors flowing through the Fluid Framework adhere to this readonly interface.
8
- * It features errorType and errorInstanceId on top of Error's members as readonly,
9
- * and a getter/setter for telemetry props to be included when the error is logged.
12
+ *
13
+ * It features the members of {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error | Error}
14
+ * made readonly, as well as {@link IFluidErrorBase.errorType} and {@link IFluidErrorBase.errorInstanceId}.
15
+ * It also features getters and setters for telemetry props to be included when the error is logged.
10
16
  */
11
17
  export interface IFluidErrorBase extends Error {
12
- /** Classification of what type of error this is, used programmatically by consumers to interpret the error */
18
+ /**
19
+ * Classification of what type of error this is.
20
+ *
21
+ * @remarks Used programmatically by consumers to interpret the error.
22
+ */
13
23
  readonly errorType: string;
14
24
  /**
15
25
  * Error's message property, made readonly.
16
- * Be specific, but also take care when including variable data to consider suitability for aggregation in telemetry
17
- * Also avoid including any data that jeopardizes the user's privacy. Add a tagged telemetry property instead.
26
+ *
27
+ * @remarks
28
+ *
29
+ * Recommendations:
30
+ *
31
+ * Be specific, but also take care when including variable data to consider suitability for aggregation in telemetry.
32
+ * Also avoid including any data that jeopardizes the user's privacy. Add a tagged telemetry property instead.
18
33
  */
19
34
  readonly message: string;
20
- /** Error's stack property, made readonly */
35
+ /**
36
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/stack}.
37
+ */
21
38
  readonly stack?: string;
22
- /** Error's name property, made readonly */
39
+ /**
40
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/name}.
41
+ */
23
42
  readonly name: string;
24
43
  /**
25
44
  * A Guid identifying this error instance.
26
- * Useful in telemetry for deduping multiple logging events arising from the same error,
45
+ *
46
+ * @remarks
47
+ *
48
+ * Useful in telemetry for deduplicating multiple logging events arising from the same error,
27
49
  * or correlating an error with an inner error that caused it, in case of error wrapping.
28
50
  */
29
51
  readonly errorInstanceId: string;
30
- /** Get the telemetry properties stashed on this error for logging */
52
+ /**
53
+ * Get the telemetry properties stashed on this error for logging.
54
+ */
31
55
  getTelemetryProperties(): ITelemetryProperties;
32
- /** Add telemetry properties to this error which will be logged with the error */
56
+ /**
57
+ * Add telemetry properties to this error which will be logged with the error
58
+ */
33
59
  addTelemetryProperties: (props: ITelemetryProperties) => void;
34
60
  }
35
- export declare const hasErrorInstanceId: (x: any) => x is {
61
+ /**
62
+ * Type guard for error data containing the {@link IFluidErrorBase.errorInstanceId} property.
63
+ */
64
+ export declare const hasErrorInstanceId: (x: unknown) => x is {
36
65
  errorInstanceId: string;
37
66
  };
38
- /** type guard for IFluidErrorBase interface */
39
- export declare function isFluidError(e: any): e is IFluidErrorBase;
40
- /** type guard for old standard of valid/known errors */
41
- export declare function isValidLegacyError(e: any): e is Omit<IFluidErrorBase, "errorInstanceId">;
67
+ /**
68
+ * Type guard for {@link IFluidErrorBase}.
69
+ */
70
+ export declare function isFluidError(error: unknown): error is IFluidErrorBase;
71
+ /**
72
+ * Type guard for old standard of valid/known errors.
73
+ */
74
+ export declare function isValidLegacyError(error: unknown): error is Omit<IFluidErrorBase, "errorInstanceId">;
42
75
  //# sourceMappingURL=fluidErrorBase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fluidErrorBase.d.ts","sourceRoot":"","sources":["../src/fluidErrorBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC7C,8GAA8G;IAC9G,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,qEAAqE;IACrE,sBAAsB,IAAI,oBAAoB,CAAC;IAC/C,iFAAiF;IACjF,sBAAsB,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC9D;AAMD,eAAO,MAAM,kBAAkB,MAAO,GAAG;qBAA2B,MAAM;CACnC,CAAC;AAExC,+CAA+C;AAC/C,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,eAAe,CAOzD;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAMxF"}
1
+ {"version":3,"file":"fluidErrorBase.d.ts","sourceRoot":"","sources":["../src/fluidErrorBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,sBAAsB,IAAI,oBAAoB,CAAC;IAE/C;;OAEG;IACH,sBAAsB,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC9D;AAMD;;GAEG;AACH,eAAO,MAAM,kBAAkB,MAAO,OAAO;qBAA2B,MAAM;CACG,CAAC;AAElF;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAOrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,OAAO,GACZ,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAMnD"}
@@ -5,23 +5,30 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.isValidLegacyError = exports.isFluidError = exports.hasErrorInstanceId = void 0;
8
- const hasTelemetryPropFunctions = (x) => typeof (x === null || x === void 0 ? void 0 : x.getTelemetryProperties) === "function" &&
9
- typeof (x === null || x === void 0 ? void 0 : x.addTelemetryProperties) === "function";
10
- const hasErrorInstanceId = (x) => typeof (x === null || x === void 0 ? void 0 : x.errorInstanceId) === "string";
8
+ const hasTelemetryPropFunctions = (x) => typeof x?.getTelemetryProperties === "function" &&
9
+ typeof x?.addTelemetryProperties === "function";
10
+ /**
11
+ * Type guard for error data containing the {@link IFluidErrorBase.errorInstanceId} property.
12
+ */
13
+ const hasErrorInstanceId = (x) => typeof x?.errorInstanceId === "string";
11
14
  exports.hasErrorInstanceId = hasErrorInstanceId;
12
- /** type guard for IFluidErrorBase interface */
13
- function isFluidError(e) {
14
- return (typeof (e === null || e === void 0 ? void 0 : e.errorType) === "string" &&
15
- typeof (e === null || e === void 0 ? void 0 : e.message) === "string" &&
16
- (0, exports.hasErrorInstanceId)(e) &&
17
- hasTelemetryPropFunctions(e));
15
+ /**
16
+ * Type guard for {@link IFluidErrorBase}.
17
+ */
18
+ function isFluidError(error) {
19
+ return (typeof error?.errorType === "string" &&
20
+ typeof error?.message === "string" &&
21
+ (0, exports.hasErrorInstanceId)(error) &&
22
+ hasTelemetryPropFunctions(error));
18
23
  }
19
24
  exports.isFluidError = isFluidError;
20
- /** type guard for old standard of valid/known errors */
21
- function isValidLegacyError(e) {
22
- return (typeof (e === null || e === void 0 ? void 0 : e.errorType) === "string" &&
23
- typeof (e === null || e === void 0 ? void 0 : e.message) === "string" &&
24
- hasTelemetryPropFunctions(e));
25
+ /**
26
+ * Type guard for old standard of valid/known errors.
27
+ */
28
+ function isValidLegacyError(error) {
29
+ return (typeof error?.errorType === "string" &&
30
+ typeof error?.message === "string" &&
31
+ hasTelemetryPropFunctions(error));
25
32
  }
26
33
  exports.isValidLegacyError = isValidLegacyError;
27
34
  //# sourceMappingURL=fluidErrorBase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fluidErrorBase.js","sourceRoot":"","sources":["../src/fluidErrorBase.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAuCH,MAAM,yBAAyB,GAAG,CAAC,CAAM,EAAW,EAAE,CACrD,OAAO,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,sBAAsB,CAAA,KAAK,UAAU;IAC/C,OAAO,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,sBAAsB,CAAA,KAAK,UAAU,CAAC;AAE1C,MAAM,kBAAkB,GAAG,CAAC,CAAM,EAAoC,EAAE,CAC9E,OAAO,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,eAAe,CAAA,KAAK,QAAQ,CAAC;AAD3B,QAAA,kBAAkB,sBACS;AAExC,+CAA+C;AAC/C,SAAgB,YAAY,CAAC,CAAM;IAClC,OAAO,CACN,OAAO,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,SAAS,CAAA,KAAK,QAAQ;QAChC,OAAO,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,CAAA,KAAK,QAAQ;QAC9B,IAAA,0BAAkB,EAAC,CAAC,CAAC;QACrB,yBAAyB,CAAC,CAAC,CAAC,CAC5B,CAAC;AACH,CAAC;AAPD,oCAOC;AAED,wDAAwD;AACxD,SAAgB,kBAAkB,CAAC,CAAM;IACxC,OAAO,CACN,OAAO,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,SAAS,CAAA,KAAK,QAAQ;QAChC,OAAO,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,CAAA,KAAK,QAAQ;QAC9B,yBAAyB,CAAC,CAAC,CAAC,CAC5B,CAAC;AACH,CAAC;AAND,gDAMC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryProperties } from \"@fluidframework/core-interfaces\";\n\n/**\n * All normalized errors flowing through the Fluid Framework adhere to this readonly interface.\n * It features errorType and errorInstanceId on top of Error's members as readonly,\n * and a getter/setter for telemetry props to be included when the error is logged.\n */\nexport interface IFluidErrorBase extends Error {\n\t/** Classification of what type of error this is, used programmatically by consumers to interpret the error */\n\treadonly errorType: string;\n\n\t/**\n\t * Error's message property, made readonly.\n\t * Be specific, but also take care when including variable data to consider suitability for aggregation in telemetry\n\t * Also avoid including any data that jeopardizes the user's privacy. Add a tagged telemetry property instead.\n\t */\n\treadonly message: string;\n\n\t/** Error's stack property, made readonly */\n\treadonly stack?: string;\n\n\t/** Error's name property, made readonly */\n\treadonly name: string;\n\n\t/**\n\t * A Guid identifying this error instance.\n\t * Useful in telemetry for deduping multiple logging events arising from the same error,\n\t * or correlating an error with an inner error that caused it, in case of error wrapping.\n\t */\n\treadonly errorInstanceId: string;\n\n\t/** Get the telemetry properties stashed on this error for logging */\n\tgetTelemetryProperties(): ITelemetryProperties;\n\t/** Add telemetry properties to this error which will be logged with the error */\n\taddTelemetryProperties: (props: ITelemetryProperties) => void;\n}\n\nconst hasTelemetryPropFunctions = (x: any): boolean =>\n\ttypeof x?.getTelemetryProperties === \"function\" &&\n\ttypeof x?.addTelemetryProperties === \"function\";\n\nexport const hasErrorInstanceId = (x: any): x is { errorInstanceId: string } =>\n\ttypeof x?.errorInstanceId === \"string\";\n\n/** type guard for IFluidErrorBase interface */\nexport function isFluidError(e: any): e is IFluidErrorBase {\n\treturn (\n\t\ttypeof e?.errorType === \"string\" &&\n\t\ttypeof e?.message === \"string\" &&\n\t\thasErrorInstanceId(e) &&\n\t\thasTelemetryPropFunctions(e)\n\t);\n}\n\n/** type guard for old standard of valid/known errors */\nexport function isValidLegacyError(e: any): e is Omit<IFluidErrorBase, \"errorInstanceId\"> {\n\treturn (\n\t\ttypeof e?.errorType === \"string\" &&\n\t\ttypeof e?.message === \"string\" &&\n\t\thasTelemetryPropFunctions(e)\n\t);\n}\n"]}
1
+ {"version":3,"file":"fluidErrorBase.js","sourceRoot":"","sources":["../src/fluidErrorBase.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAkEH,MAAM,yBAAyB,GAAG,CAAC,CAAU,EAAW,EAAE,CACzD,OAAQ,CAA8B,EAAE,sBAAsB,KAAK,UAAU;IAC7E,OAAQ,CAA8B,EAAE,sBAAsB,KAAK,UAAU,CAAC;AAE/E;;GAEG;AACI,MAAM,kBAAkB,GAAG,CAAC,CAAU,EAAoC,EAAE,CAClF,OAAQ,CAA0C,EAAE,eAAe,KAAK,QAAQ,CAAC;AADrE,QAAA,kBAAkB,sBACmD;AAElF;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAc;IAC1C,OAAO,CACN,OAAQ,KAAkC,EAAE,SAAS,KAAK,QAAQ;QAClE,OAAQ,KAAkC,EAAE,OAAO,KAAK,QAAQ;QAChE,IAAA,0BAAkB,EAAC,KAAK,CAAC;QACzB,yBAAyB,CAAC,KAAK,CAAC,CAChC,CAAC;AACH,CAAC;AAPD,oCAOC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CACjC,KAAc;IAEd,OAAO,CACN,OAAQ,KAAkC,EAAE,SAAS,KAAK,QAAQ;QAClE,OAAQ,KAAkC,EAAE,OAAO,KAAK,QAAQ;QAChE,yBAAyB,CAAC,KAAK,CAAC,CAChC,CAAC;AACH,CAAC;AARD,gDAQC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryProperties } from \"@fluidframework/core-interfaces\";\n\n/**\n * An error emitted by the Fluid Framework.\n *\n * @remarks\n *\n * All normalized errors flowing through the Fluid Framework adhere to this readonly interface.\n *\n * It features the members of {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error | Error}\n * made readonly, as well as {@link IFluidErrorBase.errorType} and {@link IFluidErrorBase.errorInstanceId}.\n * It also features getters and setters for telemetry props to be included when the error is logged.\n */\nexport interface IFluidErrorBase extends Error {\n\t/**\n\t * Classification of what type of error this is.\n\t *\n\t * @remarks Used programmatically by consumers to interpret the error.\n\t */\n\treadonly errorType: string;\n\n\t/**\n\t * Error's message property, made readonly.\n\t *\n\t * @remarks\n\t *\n\t * Recommendations:\n\t *\n\t * Be specific, but also take care when including variable data to consider suitability for aggregation in telemetry.\n\t * Also avoid including any data that jeopardizes the user's privacy. Add a tagged telemetry property instead.\n\t */\n\treadonly message: string;\n\n\t/**\n\t * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/stack}.\n\t */\n\treadonly stack?: string;\n\n\t/**\n\t * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/name}.\n\t */\n\treadonly name: string;\n\n\t/**\n\t * A Guid identifying this error instance.\n\t *\n\t * @remarks\n\t *\n\t * Useful in telemetry for deduplicating multiple logging events arising from the same error,\n\t * or correlating an error with an inner error that caused it, in case of error wrapping.\n\t */\n\treadonly errorInstanceId: string;\n\n\t/**\n\t * Get the telemetry properties stashed on this error for logging.\n\t */\n\tgetTelemetryProperties(): ITelemetryProperties;\n\n\t/**\n\t * Add telemetry properties to this error which will be logged with the error\n\t */\n\taddTelemetryProperties: (props: ITelemetryProperties) => void;\n}\n\nconst hasTelemetryPropFunctions = (x: unknown): boolean =>\n\ttypeof (x as Partial<IFluidErrorBase>)?.getTelemetryProperties === \"function\" &&\n\ttypeof (x as Partial<IFluidErrorBase>)?.addTelemetryProperties === \"function\";\n\n/**\n * Type guard for error data containing the {@link IFluidErrorBase.errorInstanceId} property.\n */\nexport const hasErrorInstanceId = (x: unknown): x is { errorInstanceId: string } =>\n\ttypeof (x as Partial<{ errorInstanceId: string }>)?.errorInstanceId === \"string\";\n\n/**\n * Type guard for {@link IFluidErrorBase}.\n */\nexport function isFluidError(error: unknown): error is IFluidErrorBase {\n\treturn (\n\t\ttypeof (error as Partial<IFluidErrorBase>)?.errorType === \"string\" &&\n\t\ttypeof (error as Partial<IFluidErrorBase>)?.message === \"string\" &&\n\t\thasErrorInstanceId(error) &&\n\t\thasTelemetryPropFunctions(error)\n\t);\n}\n\n/**\n * Type guard for old standard of valid/known errors.\n */\nexport function isValidLegacyError(\n\terror: unknown,\n): error is Omit<IFluidErrorBase, \"errorInstanceId\"> {\n\treturn (\n\t\ttypeof (error as Partial<IFluidErrorBase>)?.errorType === \"string\" &&\n\t\ttypeof (error as Partial<IFluidErrorBase>)?.message === \"string\" &&\n\t\thasTelemetryPropFunctions(error)\n\t);\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -2,16 +2,16 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- export { MonitoringContext, IConfigProviderBase, sessionStorageConfigProvider, mixinMonitoringContext, IConfigProvider, ConfigTypes, loggerToMonitoringContext, } from "./config";
6
- export { DebugLogger } from "./debugLogger";
7
- export { extractLogSafeErrorProperties, generateErrorWithStack, generateStack, getCircularReplacer, IFluidErrorAnnotations, isExternalError, isILoggingError, isTaggedTelemetryPropertyValue, LoggingError, NORMALIZED_ERROR_TYPE, normalizeError, wrapError, wrapErrorAndLog, } from "./errorLogging";
5
+ export { createChildMonitoringContext, MonitoringContext, IConfigProviderBase, sessionStorageConfigProvider, mixinMonitoringContext, IConfigProvider, ConfigTypes, loggerToMonitoringContext, } from "./config";
6
+ export { DataCorruptionError, DataProcessingError, extractSafePropertiesFromMessage, GenericError, UsageError, } from "./error";
7
+ export { extractLogSafeErrorProperties, generateErrorWithStack, generateStack, getCircularReplacer, IFluidErrorAnnotations, isExternalError, isILoggingError, isTaggedTelemetryPropertyValue, LoggingError, NORMALIZED_ERROR_TYPE, normalizeError, overwriteStack, wrapError, wrapErrorAndLog, } from "./errorLogging";
8
8
  export { EventEmitterWithErrorHandling } from "./eventEmitterWithErrorHandling";
9
9
  export { connectedEventName, disconnectedEventName, raiseConnectedEvent, safeRaiseEvent, } from "./events";
10
10
  export { hasErrorInstanceId, IFluidErrorBase, isFluidError, isValidLegacyError, } from "./fluidErrorBase";
11
- export { BaseTelemetryNullLogger, ChildLogger, IPerformanceEventMarkers, ITelemetryLoggerPropertyBag, ITelemetryLoggerPropertyBags, MultiSinkLogger, PerformanceEvent, TaggedLoggerAdapter, TelemetryDataTag, TelemetryEventPropertyTypes, TelemetryLogger, TelemetryNullLogger, TelemetryUTLogger, } from "./logger";
11
+ export { eventNamespaceSeparator, createChildLogger, createMultiSinkLogger, formatTick, IPerformanceEventMarkers, ITelemetryLoggerPropertyBag, ITelemetryLoggerPropertyBags, numberFromString, PerformanceEvent, TaggedLoggerAdapter, tagData, tagCodeArtifacts, TelemetryDataTag, TelemetryEventPropertyTypes, TelemetryNullLogger, } from "./logger";
12
12
  export { MockLogger } from "./mockLogger";
13
13
  export { ThresholdCounter } from "./thresholdCounter";
14
14
  export { SampledTelemetryHelper } from "./sampledTelemetryHelper";
15
15
  export { logIfFalse } from "./utils";
16
- export { TelemetryEventPropertyTypeExt, ITelemetryEventExt, ITelemetryGenericEventExt, ITelemetryErrorEventExt, ITelemetryPerformanceEventExt, ITelemetryLoggerExt, ITaggedTelemetryPropertyTypeExt, ITelemetryPropertiesExt, } from "./telemetryTypes";
16
+ export { TelemetryEventPropertyTypeExt, ITelemetryEventExt, ITelemetryGenericEventExt, ITelemetryErrorEventExt, ITelemetryPerformanceEventExt, ITelemetryLoggerExt, ITaggedTelemetryPropertyTypeExt, ITelemetryPropertiesExt, TelemetryEventCategory, } from "./telemetryTypes";
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACN,iBAAiB,EACjB,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,EACtB,eAAe,EACf,WAAW,EACX,yBAAyB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACN,6BAA6B,EAC7B,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,8BAA8B,EAC9B,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,eAAe,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EACN,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,kBAAkB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,uBAAuB,EACvB,WAAW,EACX,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,EAC5B,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EACN,6BAA6B,EAC7B,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,EAC7B,mBAAmB,EACnB,+BAA+B,EAC/B,uBAAuB,GACvB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACN,4BAA4B,EAC5B,iBAAiB,EACjB,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,EACtB,eAAe,EACf,WAAW,EACX,yBAAyB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,YAAY,EACZ,UAAU,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EACN,6BAA6B,EAC7B,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,8BAA8B,EAC9B,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,SAAS,EACT,eAAe,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EACN,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,kBAAkB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,EAC5B,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,2BAA2B,EAC3B,mBAAmB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EACN,6BAA6B,EAC7B,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,EAC7B,mBAAmB,EACnB,+BAA+B,EAC/B,uBAAuB,EACvB,sBAAsB,GACtB,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,16 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.logIfFalse = exports.SampledTelemetryHelper = exports.ThresholdCounter = exports.MockLogger = exports.TelemetryUTLogger = exports.TelemetryNullLogger = exports.TelemetryLogger = exports.TelemetryDataTag = exports.TaggedLoggerAdapter = exports.PerformanceEvent = exports.MultiSinkLogger = exports.ChildLogger = exports.BaseTelemetryNullLogger = exports.isValidLegacyError = exports.isFluidError = exports.hasErrorInstanceId = exports.safeRaiseEvent = exports.raiseConnectedEvent = exports.disconnectedEventName = exports.connectedEventName = exports.EventEmitterWithErrorHandling = exports.wrapErrorAndLog = exports.wrapError = exports.normalizeError = exports.NORMALIZED_ERROR_TYPE = exports.LoggingError = exports.isTaggedTelemetryPropertyValue = exports.isILoggingError = exports.isExternalError = exports.getCircularReplacer = exports.generateStack = exports.generateErrorWithStack = exports.extractLogSafeErrorProperties = exports.DebugLogger = exports.loggerToMonitoringContext = exports.mixinMonitoringContext = exports.sessionStorageConfigProvider = void 0;
3
+ exports.logIfFalse = exports.SampledTelemetryHelper = exports.ThresholdCounter = exports.MockLogger = exports.TelemetryNullLogger = exports.TelemetryDataTag = exports.tagCodeArtifacts = exports.tagData = exports.TaggedLoggerAdapter = exports.PerformanceEvent = exports.numberFromString = exports.formatTick = exports.createMultiSinkLogger = exports.createChildLogger = exports.eventNamespaceSeparator = exports.isValidLegacyError = exports.isFluidError = exports.hasErrorInstanceId = exports.safeRaiseEvent = exports.raiseConnectedEvent = exports.disconnectedEventName = exports.connectedEventName = exports.EventEmitterWithErrorHandling = exports.wrapErrorAndLog = exports.wrapError = exports.overwriteStack = exports.normalizeError = exports.NORMALIZED_ERROR_TYPE = exports.LoggingError = exports.isTaggedTelemetryPropertyValue = exports.isILoggingError = exports.isExternalError = exports.getCircularReplacer = exports.generateStack = exports.generateErrorWithStack = exports.extractLogSafeErrorProperties = exports.UsageError = exports.GenericError = exports.extractSafePropertiesFromMessage = exports.DataProcessingError = exports.DataCorruptionError = exports.loggerToMonitoringContext = exports.mixinMonitoringContext = exports.sessionStorageConfigProvider = exports.createChildMonitoringContext = void 0;
4
4
  /*!
5
5
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
6
6
  * Licensed under the MIT License.
7
7
  */
8
8
  var config_1 = require("./config");
9
+ Object.defineProperty(exports, "createChildMonitoringContext", { enumerable: true, get: function () { return config_1.createChildMonitoringContext; } });
9
10
  Object.defineProperty(exports, "sessionStorageConfigProvider", { enumerable: true, get: function () { return config_1.sessionStorageConfigProvider; } });
10
11
  Object.defineProperty(exports, "mixinMonitoringContext", { enumerable: true, get: function () { return config_1.mixinMonitoringContext; } });
11
12
  Object.defineProperty(exports, "loggerToMonitoringContext", { enumerable: true, get: function () { return config_1.loggerToMonitoringContext; } });
12
- var debugLogger_1 = require("./debugLogger");
13
- Object.defineProperty(exports, "DebugLogger", { enumerable: true, get: function () { return debugLogger_1.DebugLogger; } });
13
+ var error_1 = require("./error");
14
+ Object.defineProperty(exports, "DataCorruptionError", { enumerable: true, get: function () { return error_1.DataCorruptionError; } });
15
+ Object.defineProperty(exports, "DataProcessingError", { enumerable: true, get: function () { return error_1.DataProcessingError; } });
16
+ Object.defineProperty(exports, "extractSafePropertiesFromMessage", { enumerable: true, get: function () { return error_1.extractSafePropertiesFromMessage; } });
17
+ Object.defineProperty(exports, "GenericError", { enumerable: true, get: function () { return error_1.GenericError; } });
18
+ Object.defineProperty(exports, "UsageError", { enumerable: true, get: function () { return error_1.UsageError; } });
14
19
  var errorLogging_1 = require("./errorLogging");
15
20
  Object.defineProperty(exports, "extractLogSafeErrorProperties", { enumerable: true, get: function () { return errorLogging_1.extractLogSafeErrorProperties; } });
16
21
  Object.defineProperty(exports, "generateErrorWithStack", { enumerable: true, get: function () { return errorLogging_1.generateErrorWithStack; } });
@@ -22,6 +27,7 @@ Object.defineProperty(exports, "isTaggedTelemetryPropertyValue", { enumerable: t
22
27
  Object.defineProperty(exports, "LoggingError", { enumerable: true, get: function () { return errorLogging_1.LoggingError; } });
23
28
  Object.defineProperty(exports, "NORMALIZED_ERROR_TYPE", { enumerable: true, get: function () { return errorLogging_1.NORMALIZED_ERROR_TYPE; } });
24
29
  Object.defineProperty(exports, "normalizeError", { enumerable: true, get: function () { return errorLogging_1.normalizeError; } });
30
+ Object.defineProperty(exports, "overwriteStack", { enumerable: true, get: function () { return errorLogging_1.overwriteStack; } });
25
31
  Object.defineProperty(exports, "wrapError", { enumerable: true, get: function () { return errorLogging_1.wrapError; } });
26
32
  Object.defineProperty(exports, "wrapErrorAndLog", { enumerable: true, get: function () { return errorLogging_1.wrapErrorAndLog; } });
27
33
  var eventEmitterWithErrorHandling_1 = require("./eventEmitterWithErrorHandling");
@@ -36,15 +42,17 @@ Object.defineProperty(exports, "hasErrorInstanceId", { enumerable: true, get: fu
36
42
  Object.defineProperty(exports, "isFluidError", { enumerable: true, get: function () { return fluidErrorBase_1.isFluidError; } });
37
43
  Object.defineProperty(exports, "isValidLegacyError", { enumerable: true, get: function () { return fluidErrorBase_1.isValidLegacyError; } });
38
44
  var logger_1 = require("./logger");
39
- Object.defineProperty(exports, "BaseTelemetryNullLogger", { enumerable: true, get: function () { return logger_1.BaseTelemetryNullLogger; } });
40
- Object.defineProperty(exports, "ChildLogger", { enumerable: true, get: function () { return logger_1.ChildLogger; } });
41
- Object.defineProperty(exports, "MultiSinkLogger", { enumerable: true, get: function () { return logger_1.MultiSinkLogger; } });
45
+ Object.defineProperty(exports, "eventNamespaceSeparator", { enumerable: true, get: function () { return logger_1.eventNamespaceSeparator; } });
46
+ Object.defineProperty(exports, "createChildLogger", { enumerable: true, get: function () { return logger_1.createChildLogger; } });
47
+ Object.defineProperty(exports, "createMultiSinkLogger", { enumerable: true, get: function () { return logger_1.createMultiSinkLogger; } });
48
+ Object.defineProperty(exports, "formatTick", { enumerable: true, get: function () { return logger_1.formatTick; } });
49
+ Object.defineProperty(exports, "numberFromString", { enumerable: true, get: function () { return logger_1.numberFromString; } });
42
50
  Object.defineProperty(exports, "PerformanceEvent", { enumerable: true, get: function () { return logger_1.PerformanceEvent; } });
43
51
  Object.defineProperty(exports, "TaggedLoggerAdapter", { enumerable: true, get: function () { return logger_1.TaggedLoggerAdapter; } });
52
+ Object.defineProperty(exports, "tagData", { enumerable: true, get: function () { return logger_1.tagData; } });
53
+ Object.defineProperty(exports, "tagCodeArtifacts", { enumerable: true, get: function () { return logger_1.tagCodeArtifacts; } });
44
54
  Object.defineProperty(exports, "TelemetryDataTag", { enumerable: true, get: function () { return logger_1.TelemetryDataTag; } });
45
- Object.defineProperty(exports, "TelemetryLogger", { enumerable: true, get: function () { return logger_1.TelemetryLogger; } });
46
55
  Object.defineProperty(exports, "TelemetryNullLogger", { enumerable: true, get: function () { return logger_1.TelemetryNullLogger; } });
47
- Object.defineProperty(exports, "TelemetryUTLogger", { enumerable: true, get: function () { return logger_1.TelemetryUTLogger; } });
48
56
  var mockLogger_1 = require("./mockLogger");
49
57
  Object.defineProperty(exports, "MockLogger", { enumerable: true, get: function () { return mockLogger_1.MockLogger; } });
50
58
  var thresholdCounter_1 = require("./thresholdCounter");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,mCAQkB;AALjB,sHAAA,4BAA4B,OAAA;AAC5B,gHAAA,sBAAsB,OAAA;AAGtB,mHAAA,yBAAyB,OAAA;AAE1B,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,+CAcwB;AAbvB,6HAAA,6BAA6B,OAAA;AAC7B,sHAAA,sBAAsB,OAAA;AACtB,6GAAA,aAAa,OAAA;AACb,mHAAA,mBAAmB,OAAA;AAEnB,+GAAA,eAAe,OAAA;AACf,+GAAA,eAAe,OAAA;AACf,8HAAA,8BAA8B,OAAA;AAC9B,4GAAA,YAAY,OAAA;AACZ,qHAAA,qBAAqB,OAAA;AACrB,8GAAA,cAAc,OAAA;AACd,yGAAA,SAAS,OAAA;AACT,+GAAA,eAAe,OAAA;AAEhB,iFAAgF;AAAvE,8IAAA,6BAA6B,OAAA;AACtC,mCAKkB;AAJjB,4GAAA,kBAAkB,OAAA;AAClB,+GAAA,qBAAqB,OAAA;AACrB,6GAAA,mBAAmB,OAAA;AACnB,wGAAA,cAAc,OAAA;AAEf,mDAK0B;AAJzB,oHAAA,kBAAkB,OAAA;AAElB,8GAAA,YAAY,OAAA;AACZ,oHAAA,kBAAkB,OAAA;AAEnB,mCAckB;AAbjB,iHAAA,uBAAuB,OAAA;AACvB,qGAAA,WAAW,OAAA;AAIX,yGAAA,eAAe,OAAA;AACf,0GAAA,gBAAgB,OAAA;AAChB,6GAAA,mBAAmB,OAAA;AACnB,0GAAA,gBAAgB,OAAA;AAEhB,yGAAA,eAAe,OAAA;AACf,6GAAA,mBAAmB,OAAA;AACnB,2GAAA,iBAAiB,OAAA;AAElB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,iCAAqC;AAA5B,mGAAA,UAAU,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nexport {\n\tMonitoringContext,\n\tIConfigProviderBase,\n\tsessionStorageConfigProvider,\n\tmixinMonitoringContext,\n\tIConfigProvider,\n\tConfigTypes,\n\tloggerToMonitoringContext,\n} from \"./config\";\nexport { DebugLogger } from \"./debugLogger\";\nexport {\n\textractLogSafeErrorProperties,\n\tgenerateErrorWithStack,\n\tgenerateStack,\n\tgetCircularReplacer,\n\tIFluidErrorAnnotations,\n\tisExternalError,\n\tisILoggingError,\n\tisTaggedTelemetryPropertyValue,\n\tLoggingError,\n\tNORMALIZED_ERROR_TYPE,\n\tnormalizeError,\n\twrapError,\n\twrapErrorAndLog,\n} from \"./errorLogging\";\nexport { EventEmitterWithErrorHandling } from \"./eventEmitterWithErrorHandling\";\nexport {\n\tconnectedEventName,\n\tdisconnectedEventName,\n\traiseConnectedEvent,\n\tsafeRaiseEvent,\n} from \"./events\";\nexport {\n\thasErrorInstanceId,\n\tIFluidErrorBase,\n\tisFluidError,\n\tisValidLegacyError,\n} from \"./fluidErrorBase\";\nexport {\n\tBaseTelemetryNullLogger,\n\tChildLogger,\n\tIPerformanceEventMarkers,\n\tITelemetryLoggerPropertyBag,\n\tITelemetryLoggerPropertyBags,\n\tMultiSinkLogger,\n\tPerformanceEvent,\n\tTaggedLoggerAdapter,\n\tTelemetryDataTag,\n\tTelemetryEventPropertyTypes,\n\tTelemetryLogger,\n\tTelemetryNullLogger,\n\tTelemetryUTLogger,\n} from \"./logger\";\nexport { MockLogger } from \"./mockLogger\";\nexport { ThresholdCounter } from \"./thresholdCounter\";\nexport { SampledTelemetryHelper } from \"./sampledTelemetryHelper\";\nexport { logIfFalse } from \"./utils\";\nexport {\n\tTelemetryEventPropertyTypeExt,\n\tITelemetryEventExt,\n\tITelemetryGenericEventExt,\n\tITelemetryErrorEventExt,\n\tITelemetryPerformanceEventExt,\n\tITelemetryLoggerExt,\n\tITaggedTelemetryPropertyTypeExt,\n\tITelemetryPropertiesExt,\n} from \"./telemetryTypes\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,mCASkB;AARjB,sHAAA,4BAA4B,OAAA;AAG5B,sHAAA,4BAA4B,OAAA;AAC5B,gHAAA,sBAAsB,OAAA;AAGtB,mHAAA,yBAAyB,OAAA;AAE1B,iCAMiB;AALhB,4GAAA,mBAAmB,OAAA;AACnB,4GAAA,mBAAmB,OAAA;AACnB,yHAAA,gCAAgC,OAAA;AAChC,qGAAA,YAAY,OAAA;AACZ,mGAAA,UAAU,OAAA;AAEX,+CAewB;AAdvB,6HAAA,6BAA6B,OAAA;AAC7B,sHAAA,sBAAsB,OAAA;AACtB,6GAAA,aAAa,OAAA;AACb,mHAAA,mBAAmB,OAAA;AAEnB,+GAAA,eAAe,OAAA;AACf,+GAAA,eAAe,OAAA;AACf,8HAAA,8BAA8B,OAAA;AAC9B,4GAAA,YAAY,OAAA;AACZ,qHAAA,qBAAqB,OAAA;AACrB,8GAAA,cAAc,OAAA;AACd,8GAAA,cAAc,OAAA;AACd,yGAAA,SAAS,OAAA;AACT,+GAAA,eAAe,OAAA;AAEhB,iFAAgF;AAAvE,8IAAA,6BAA6B,OAAA;AACtC,mCAKkB;AAJjB,4GAAA,kBAAkB,OAAA;AAClB,+GAAA,qBAAqB,OAAA;AACrB,6GAAA,mBAAmB,OAAA;AACnB,wGAAA,cAAc,OAAA;AAEf,mDAK0B;AAJzB,oHAAA,kBAAkB,OAAA;AAElB,8GAAA,YAAY,OAAA;AACZ,oHAAA,kBAAkB,OAAA;AAEnB,mCAgBkB;AAfjB,iHAAA,uBAAuB,OAAA;AACvB,2GAAA,iBAAiB,OAAA;AACjB,+GAAA,qBAAqB,OAAA;AACrB,oGAAA,UAAU,OAAA;AAIV,0GAAA,gBAAgB,OAAA;AAChB,0GAAA,gBAAgB,OAAA;AAChB,6GAAA,mBAAmB,OAAA;AACnB,iGAAA,OAAO,OAAA;AACP,0GAAA,gBAAgB,OAAA;AAChB,0GAAA,gBAAgB,OAAA;AAEhB,6GAAA,mBAAmB,OAAA;AAEpB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,iCAAqC;AAA5B,mGAAA,UAAU,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nexport {\n\tcreateChildMonitoringContext,\n\tMonitoringContext,\n\tIConfigProviderBase,\n\tsessionStorageConfigProvider,\n\tmixinMonitoringContext,\n\tIConfigProvider,\n\tConfigTypes,\n\tloggerToMonitoringContext,\n} from \"./config\";\nexport {\n\tDataCorruptionError,\n\tDataProcessingError,\n\textractSafePropertiesFromMessage,\n\tGenericError,\n\tUsageError,\n} from \"./error\";\nexport {\n\textractLogSafeErrorProperties,\n\tgenerateErrorWithStack,\n\tgenerateStack,\n\tgetCircularReplacer,\n\tIFluidErrorAnnotations,\n\tisExternalError,\n\tisILoggingError,\n\tisTaggedTelemetryPropertyValue,\n\tLoggingError,\n\tNORMALIZED_ERROR_TYPE,\n\tnormalizeError,\n\toverwriteStack,\n\twrapError,\n\twrapErrorAndLog,\n} from \"./errorLogging\";\nexport { EventEmitterWithErrorHandling } from \"./eventEmitterWithErrorHandling\";\nexport {\n\tconnectedEventName,\n\tdisconnectedEventName,\n\traiseConnectedEvent,\n\tsafeRaiseEvent,\n} from \"./events\";\nexport {\n\thasErrorInstanceId,\n\tIFluidErrorBase,\n\tisFluidError,\n\tisValidLegacyError,\n} from \"./fluidErrorBase\";\nexport {\n\teventNamespaceSeparator,\n\tcreateChildLogger,\n\tcreateMultiSinkLogger,\n\tformatTick,\n\tIPerformanceEventMarkers,\n\tITelemetryLoggerPropertyBag,\n\tITelemetryLoggerPropertyBags,\n\tnumberFromString,\n\tPerformanceEvent,\n\tTaggedLoggerAdapter,\n\ttagData,\n\ttagCodeArtifacts,\n\tTelemetryDataTag,\n\tTelemetryEventPropertyTypes,\n\tTelemetryNullLogger,\n} from \"./logger\";\nexport { MockLogger } from \"./mockLogger\";\nexport { ThresholdCounter } from \"./thresholdCounter\";\nexport { SampledTelemetryHelper } from \"./sampledTelemetryHelper\";\nexport { logIfFalse } from \"./utils\";\nexport {\n\tTelemetryEventPropertyTypeExt,\n\tITelemetryEventExt,\n\tITelemetryGenericEventExt,\n\tITelemetryErrorEventExt,\n\tITelemetryPerformanceEventExt,\n\tITelemetryLoggerExt,\n\tITaggedTelemetryPropertyTypeExt,\n\tITelemetryPropertiesExt,\n\tTelemetryEventCategory,\n} from \"./telemetryTypes\";\n"]}
package/dist/logger.d.ts CHANGED
@@ -2,9 +2,9 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { ITelemetryBaseEvent, ITelemetryBaseLogger, ITelemetryErrorEvent, ITelemetryGenericEvent, ITelemetryPerformanceEvent, ITelemetryProperties, TelemetryEventPropertyType, ITaggedTelemetryPropertyType, TelemetryEventCategory } from "@fluidframework/core-interfaces";
6
- import { IsomorphicPerformance } from "@fluidframework/common-utils";
7
- import { ITaggedTelemetryPropertyTypeExt, ITelemetryGenericEventExt, ITelemetryLoggerExt, ITelemetryPerformanceEventExt, TelemetryEventPropertyTypeExt } from "./telemetryTypes";
5
+ import { ITelemetryBaseEvent, ITelemetryBaseLogger, ITelemetryErrorEvent, ITelemetryGenericEvent, ITelemetryPerformanceEvent, ITelemetryProperties, TelemetryBaseEventPropertyType as TelemetryEventPropertyType, LogLevel, Tagged, ITelemetryBaseProperties, TelemetryBaseEventPropertyType } from "@fluidframework/core-interfaces";
6
+ import { IsomorphicPerformance } from "@fluid-internal/client-utils";
7
+ import { ITelemetryGenericEventExt, ITelemetryLoggerExt, ITelemetryPerformanceEventExt, TelemetryEventPropertyTypeExt, TelemetryEventCategory } from "./telemetryTypes";
8
8
  export interface Memory {
9
9
  usedJSHeapSize: number;
10
10
  }
@@ -16,12 +16,16 @@ export interface PerformanceWithMemory extends IsomorphicPerformance {
16
16
  * Please do not modify existing entries for backwards compatibility.
17
17
  */
18
18
  export declare enum TelemetryDataTag {
19
- /** Data containing terms or IDs from code packages that may have been dynamically loaded */
19
+ /**
20
+ * Data containing terms or IDs from code packages that may have been dynamically loaded
21
+ */
20
22
  CodeArtifact = "CodeArtifact",
21
- /** Personal data of a variety of classifications that pertains to the user */
23
+ /**
24
+ * Personal data of a variety of classifications that pertains to the user
25
+ */
22
26
  UserData = "UserData"
23
27
  }
24
- export declare type TelemetryEventPropertyTypes = TelemetryEventPropertyType | ITaggedTelemetryPropertyType;
28
+ export declare type TelemetryEventPropertyTypes = ITelemetryBaseProperties[string];
25
29
  export interface ITelemetryLoggerPropertyBag {
26
30
  [index: string]: TelemetryEventPropertyTypes | (() => TelemetryEventPropertyTypes);
27
31
  }
@@ -29,6 +33,15 @@ export interface ITelemetryLoggerPropertyBags {
29
33
  all?: ITelemetryLoggerPropertyBag;
30
34
  error?: ITelemetryLoggerPropertyBag;
31
35
  }
36
+ /**
37
+ * Attempts to parse number from string.
38
+ * If fails,returns original string.
39
+ * Used to make telemetry data typed (and support math operations, like comparison),
40
+ * in places where we do expect numbers (like contentsize/duration property in http header)
41
+ */
42
+ export declare function numberFromString(str: string | null | undefined): string | number | undefined;
43
+ export declare function formatTick(tick: number): number;
44
+ export declare const eventNamespaceSeparator: ":";
32
45
  /**
33
46
  * TelemetryLogger class contains various helper telemetry methods,
34
47
  * encoding in one place schemas for various types of Fluid telemetry events.
@@ -37,15 +50,7 @@ export interface ITelemetryLoggerPropertyBags {
37
50
  export declare abstract class TelemetryLogger implements ITelemetryLoggerExt {
38
51
  protected readonly namespace?: string | undefined;
39
52
  protected readonly properties?: ITelemetryLoggerPropertyBags | undefined;
40
- static readonly eventNamespaceSeparator = ":";
41
- static formatTick(tick: number): number;
42
- /**
43
- * Attempts to parse number from string.
44
- * If fails,returns original string.
45
- * Used to make telemetry data typed (and support math operations, like comparison),
46
- * in places where we do expect numbers (like contentsize/duration property in http header)
47
- */
48
- static numberFromString(str: string | null | undefined): string | number | undefined;
53
+ static readonly eventNamespaceSeparator: ":";
49
54
  static sanitizePkgName(name: string): string;
50
55
  /**
51
56
  * Take an unknown error object and add the appropriate info from it to the event. Message and stack will be copied
@@ -54,45 +59,51 @@ export declare abstract class TelemetryLogger implements ITelemetryLoggerExt {
54
59
  * @param error - Error to extract info from
55
60
  * @param fetchStack - Whether to fetch the current callstack if error.stack is undefined
56
61
  */
57
- static prepareErrorObject(event: ITelemetryBaseEvent, error: any, fetchStack: boolean): void;
62
+ static prepareErrorObject(event: ITelemetryBaseEvent, error: unknown, fetchStack: boolean): void;
58
63
  constructor(namespace?: string | undefined, properties?: ITelemetryLoggerPropertyBags | undefined);
59
64
  /**
60
65
  * Send an event with the logger
61
66
  *
62
67
  * @param event - the event to send
63
68
  */
64
- abstract send(event: ITelemetryBaseEvent): void;
69
+ abstract send(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;
65
70
  /**
66
71
  * Send a telemetry event with the logger
67
72
  *
68
73
  * @param event - the event to send
69
74
  * @param error - optional error object to log
75
+ * @param logLevel - optional level of the log. It category of event is set as error,
76
+ * then the logLevel will be upgraded to be an error.
70
77
  */
71
- sendTelemetryEvent(event: ITelemetryGenericEventExt, error?: any): void;
78
+ sendTelemetryEvent(event: ITelemetryGenericEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
72
79
  /**
73
80
  * Send a telemetry event with the logger
74
81
  *
75
82
  * @param event - the event to send
76
83
  * @param error - optional error object to log
84
+ * @param logLevel - optional level of the log.
77
85
  */
78
86
  protected sendTelemetryEventCore(event: ITelemetryGenericEventExt & {
79
87
  category: TelemetryEventCategory;
80
- }, error?: any): void;
88
+ }, error?: unknown, logLevel?: LogLevel): void;
81
89
  /**
82
90
  * Send an error telemetry event with the logger
83
91
  *
84
92
  * @param event - the event to send
85
93
  * @param error - optional error object to log
86
94
  */
87
- sendErrorEvent(event: ITelemetryErrorEvent, error?: any): void;
95
+ sendErrorEvent(event: ITelemetryErrorEvent, error?: unknown): void;
88
96
  /**
89
97
  * Send a performance telemetry event with the logger
90
98
  *
91
99
  * @param event - Event to send
92
100
  * @param error - optional error object to log
101
+ * @param logLevel - optional level of the log. It category of event is set as error,
102
+ * then the logLevel will be upgraded to be an error.
93
103
  */
94
- sendPerformanceEvent(event: ITelemetryPerformanceEventExt, error?: any): void;
104
+ sendPerformanceEvent(event: ITelemetryPerformanceEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
95
105
  protected prepareEvent(event: ITelemetryBaseEvent): ITelemetryBaseEvent;
106
+ private extendProperties;
96
107
  }
97
108
  /**
98
109
  * @deprecated 0.56, remove TaggedLoggerAdapter once its usage is removed from
@@ -102,8 +113,23 @@ export declare abstract class TelemetryLogger implements ITelemetryLoggerExt {
102
113
  export declare class TaggedLoggerAdapter implements ITelemetryBaseLogger {
103
114
  private readonly logger;
104
115
  constructor(logger: ITelemetryBaseLogger);
116
+ /**
117
+ * {@inheritDoc @fluidframework/core-interfaces#ITelemetryBaseLogger.send}
118
+ */
105
119
  send(eventWithTagsMaybe: ITelemetryBaseEvent): void;
106
120
  }
121
+ /**
122
+ * Create a child logger based on the provided props object
123
+ * @param props - logger is the base logger the child will log to after it's processing, namespace will be prefixed to all event names, properties are default properties that will be applied events.
124
+ *
125
+ * @remarks
126
+ * Passing in no props object (i.e. undefined) will return a logger that is effectively a no-op.
127
+ */
128
+ export declare function createChildLogger(props?: {
129
+ logger?: ITelemetryBaseLogger;
130
+ namespace?: string;
131
+ properties?: ITelemetryLoggerPropertyBags;
132
+ }): ITelemetryLoggerExt;
107
133
  /**
108
134
  * ChildLogger class contains various helper telemetry methods,
109
135
  * encoding in one place schemas for various types of Fluid telemetry events.
@@ -120,25 +146,43 @@ export declare class ChildLogger extends TelemetryLogger {
120
146
  */
121
147
  static create(baseLogger?: ITelemetryBaseLogger, namespace?: string, properties?: ITelemetryLoggerPropertyBags): TelemetryLogger;
122
148
  private constructor();
149
+ get minLogLevel(): LogLevel | undefined;
150
+ private shouldFilterOutEvent;
123
151
  /**
124
152
  * Send an event with the logger
125
153
  *
126
154
  * @param event - the event to send
127
155
  */
128
- send(event: ITelemetryBaseEvent): void;
156
+ send(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;
129
157
  }
158
+ /**
159
+ * Create a logger which logs to multiple other loggers based on the provided props object
160
+ * @param props - loggers are the base loggers that will logged to after it's processing, namespace will be prefixed to all event names, properties are default properties that will be applied events.
161
+ * tryInheritProperties will attempted to copy those loggers properties to this loggers if they are of a known type e.g. one from this package
162
+ */
163
+ export declare function createMultiSinkLogger(props: {
164
+ namespace?: string;
165
+ properties?: ITelemetryLoggerPropertyBags;
166
+ loggers?: (ITelemetryBaseLogger | undefined)[];
167
+ tryInheritProperties?: true;
168
+ }): ITelemetryLoggerExt;
130
169
  /**
131
170
  * Multi-sink logger
132
171
  * Takes multiple ITelemetryBaseLogger objects (sinks) and logs all events into each sink
133
172
  */
134
173
  export declare class MultiSinkLogger extends TelemetryLogger {
135
174
  protected loggers: ITelemetryBaseLogger[];
175
+ private _minLogLevelOfAllLoggers;
136
176
  /**
137
177
  * Create multiple sink logger (i.e. logger that sends events to multiple sinks)
138
178
  * @param namespace - Telemetry event name prefix to add to all events
139
179
  * @param properties - Base properties to add to all events
180
+ * @param loggers - The list of loggers to use as sinks
181
+ * @param tryInheritProperties - Will attempted to copy those loggers properties to this loggers if they are of a known type e.g. one from this package
140
182
  */
141
- constructor(namespace?: string, properties?: ITelemetryLoggerPropertyBags);
183
+ constructor(namespace?: string, properties?: ITelemetryLoggerPropertyBags, loggers?: ITelemetryBaseLogger[], tryInheritProperties?: true);
184
+ get minLogLevel(): LogLevel;
185
+ private calculateMinLogLevel;
142
186
  /**
143
187
  * Add logger to send all events to
144
188
  * @param logger - Logger to add
@@ -182,57 +226,51 @@ export declare class PerformanceEvent {
182
226
  private autoEnd;
183
227
  end(props?: ITelemetryProperties): void;
184
228
  private performanceEndMark;
185
- cancel(props?: ITelemetryProperties, error?: any): void;
229
+ cancel(props?: ITelemetryProperties, error?: unknown): void;
186
230
  /**
187
231
  * Report the event, if it hasn't already been reported.
188
232
  */
189
- reportEvent(eventNameSuffix: string, props?: ITelemetryProperties, error?: any): void;
233
+ reportEvent(eventNameSuffix: string, props?: ITelemetryProperties, error?: unknown): void;
190
234
  }
191
235
  /**
192
- * Logger that is useful for UT
193
- * It can be used in places where logger instance is required, but events should be not send over.
194
- */
195
- export declare class TelemetryUTLogger implements ITelemetryLoggerExt {
196
- send(event: ITelemetryBaseEvent): void;
197
- sendTelemetryEvent(event: ITelemetryGenericEvent, error?: any): void;
198
- sendErrorEvent(event: ITelemetryErrorEvent, error?: any): void;
199
- sendPerformanceEvent(event: ITelemetryPerformanceEvent, error?: any): void;
200
- logGenericError(eventName: string, error: any): void;
201
- logException(event: ITelemetryErrorEvent, exception: any): void;
202
- debugAssert(condition: boolean, event?: ITelemetryErrorEvent): void;
203
- shipAssert(condition: boolean, event?: ITelemetryErrorEvent): void;
204
- private reportError;
205
- }
206
- /**
207
- * Null logger
208
- * It can be used in places where logger instance is required, but events should be not send over.
209
- */
210
- export declare class BaseTelemetryNullLogger implements ITelemetryBaseLogger {
211
- /**
212
- * Send an event with the logger
213
- *
214
- * @param event - the event to send
215
- */
216
- send(event: ITelemetryBaseEvent): void;
217
- }
218
- /**
219
- * Null logger
220
- * It can be used in places where logger instance is required, but events should be not send over.
236
+ * Null logger that no-ops for all telemetry events passed to it.
237
+ * @deprecated - This will be removed in a future release.
238
+ * For internal use within the FluidFramework codebase, use {@link createChildLogger} with no arguments instead.
239
+ * For external consumers we recommend writing a trivial implementation of {@link @fluidframework/core-interfaces#ITelemetryBaseLogger}
240
+ * where the send() method does nothing and using that.
221
241
  */
222
242
  export declare class TelemetryNullLogger implements ITelemetryLoggerExt {
223
243
  send(event: ITelemetryBaseEvent): void;
224
- sendTelemetryEvent(event: ITelemetryGenericEvent, error?: any): void;
225
- sendErrorEvent(event: ITelemetryErrorEvent, error?: any): void;
226
- sendPerformanceEvent(event: ITelemetryPerformanceEvent, error?: any): void;
244
+ sendTelemetryEvent(event: ITelemetryGenericEvent, error?: unknown): void;
245
+ sendErrorEvent(event: ITelemetryErrorEvent, error?: unknown): void;
246
+ sendPerformanceEvent(event: ITelemetryPerformanceEvent, error?: unknown): void;
227
247
  }
228
248
  /**
229
249
  * Takes in value, and does one of 4 things.
230
250
  * if value is of primitive type - returns the original value.
231
- * If the value is an array of primitives - returns a stringified version of the array.
232
- * If the value is an object of type ITaggedTelemetryPropertyType - returns the object
251
+ * If the value is a flat array or object - returns a stringified version of the array/object.
252
+ * If the value is an object of type Tagged<TelemetryEventPropertyType> - returns the object
233
253
  * with its values recursively converted to base property Type.
234
254
  * If none of these cases are reached - returns an error string
235
255
  * @param x - value passed in to convert to a base property type
236
256
  */
237
- export declare function convertToBasePropertyType(x: TelemetryEventPropertyTypeExt | ITaggedTelemetryPropertyTypeExt): TelemetryEventPropertyType | ITaggedTelemetryPropertyType;
257
+ export declare function convertToBasePropertyType(x: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>): TelemetryEventPropertyType | Tagged<TelemetryEventPropertyType>;
258
+ export declare const tagData: <T extends TelemetryDataTag, V extends Record<string, import("@fluidframework/core-interfaces").TelemetryEventPropertyType | (() => TelemetryBaseEventPropertyType)>>(tag: T, values: V) => { [P in keyof V]: (V[P] extends () => TelemetryBaseEventPropertyType ? () => {
259
+ value: ReturnType<V[P]>;
260
+ tag: T;
261
+ } : {
262
+ value: Exclude<V[P], undefined>;
263
+ tag: T;
264
+ }) | (V[P] extends undefined ? undefined : never); };
265
+ /**
266
+ * Helper function to tag telemetry properties as CodeArtifacts. It supports properties of type
267
+ * TelemetryBaseEventPropertyType as well as getters that return TelemetryBaseEventPropertyType.
268
+ */
269
+ export declare const tagCodeArtifacts: <T extends Record<string, import("@fluidframework/core-interfaces").TelemetryEventPropertyType | (() => TelemetryBaseEventPropertyType)>>(values: T) => { [P in keyof T]: (T[P] extends () => TelemetryBaseEventPropertyType ? () => {
270
+ value: ReturnType<T[P]>;
271
+ tag: TelemetryDataTag.CodeArtifact;
272
+ } : {
273
+ value: Exclude<T[P], undefined>;
274
+ tag: TelemetryDataTag.CodeArtifact;
275
+ }) | (T[P] extends undefined ? undefined : never); };
238
276
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,8BAA8B,IAAI,0BAA0B,EAC5D,QAAQ,EACR,MAAM,EACN,wBAAwB,EACxB,8BAA8B,EAC9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAe,MAAM,8BAA8B,CAAC;AAQlF,OAAO,EAEN,yBAAyB,EACzB,mBAAmB,EACnB,6BAA6B,EAC7B,6BAA6B,EAC7B,sBAAsB,EACtB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,MAAM;IACtB,cAAc,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AACD;;;GAGG;AACH,oBAAY,gBAAgB;IAC3B;;OAEG;IACH,YAAY,iBAAiB;IAC7B;;OAEG;IACH,QAAQ,aAAa;CACrB;AAED,oBAAY,2BAA2B,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;AAE3E,MAAM,WAAW,2BAA2B;IAC3C,CAAC,KAAK,EAAE,MAAM,GAAG,2BAA2B,GAAG,CAAC,MAAM,2BAA2B,CAAC,CAAC;CACnF;AACD,MAAM,WAAW,4BAA4B;IAC5C,GAAG,CAAC,EAAE,2BAA2B,CAAC;IAClC,KAAK,CAAC,EAAE,2BAA2B,CAAC;CACpC;AAED;;;;;GAKG;AAEH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAM5F;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,eAAO,MAAM,uBAAuB,KAAe,CAAC;AAEpD;;;;GAIG;AACH,8BAAsB,eAAgB,YAAW,mBAAmB;IA+ClE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC7B,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;IA/C/B,gBAAuB,uBAAuB,MAA2B;WAE3D,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAInD;;;;;;OAMG;WACW,kBAAkB,CAC/B,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,OAAO,GACjB,IAAI;gBA6Ba,SAAS,CAAC,oBAAQ,EAClB,UAAU,CAAC,0CAA8B;IAG7D;;;;OAIG;aACa,IAAI,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI;IAE3E;;;;;;;OAOG;IACI,kBAAkB,CACxB,KAAK,EAAE,yBAAyB,EAChC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,GAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAA0B,GAC5E,IAAI;IAQP;;;;;;OAMG;IACH,SAAS,CAAC,sBAAsB,CAC/B,KAAK,EAAE,yBAAyB,GAAG;QAAE,QAAQ,EAAE,sBAAsB,CAAA;KAAE,EACvE,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,QAAQ,GACjB,IAAI;IAcP;;;;;OAKG;IACI,cAAc,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAczE;;;;;;;OAOG;IACI,oBAAoB,CAC1B,KAAK,EAAE,6BAA6B,EACpC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,GAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAA0B,GAC5E,IAAI;IAaP,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB;IAWvE,OAAO,CAAC,gBAAgB;CA8BxB;AAED;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,oBAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,oBAAoB;IAEhE;;OAEG;IACI,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,GAAG,IAAI;CAoC1D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE;IACzC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,4BAA4B,CAAC;CAC1C,GAAG,mBAAmB,CAEtB;AAED;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,eAAe;IA6D9C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,oBAAoB;IA5DpD;;;;;;OAMG;WACW,MAAM,CACnB,UAAU,CAAC,EAAE,oBAAoB,EACjC,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,4BAA4B,GACvC,eAAe;IAgDlB,OAAO;IAaP,IAAW,WAAW,IAAI,QAAQ,GAAG,SAAS,CAE7C;IAED,OAAO,CAAC,oBAAoB;IAO5B;;;;OAIG;IACI,IAAI,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI;CAMlE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,4BAA4B,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,oBAAoB,GAAG,SAAS,CAAC,EAAE,CAAC;IAC/C,oBAAoB,CAAC,EAAE,IAAI,CAAC;CAC5B,GAAG,mBAAmB,CAOtB;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,eAAe;IACnD,SAAS,CAAC,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAE1C,OAAO,CAAC,wBAAwB,CAAW;IAE3C;;;;;;OAMG;gBAEF,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,4BAA4B,EACzC,OAAO,GAAE,oBAAoB,EAAO,EACpC,oBAAoB,CAAC,EAAE,IAAI;IAwB5B,IAAW,WAAW,IAAI,QAAQ,CAEjC;IAED,OAAO,CAAC,oBAAoB;IAU5B;;;OAGG;IACI,SAAS,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAQrD;;;;OAIG;IACI,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;CAM7C;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACxC,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAuD3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,cAAc;WAzDlB,KAAK,CAClB,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,sBAAsB,EAC7B,OAAO,CAAC,EAAE,wBAAwB,EAClC,cAAc,GAAE,OAAe,GAC7B,gBAAgB;WAIL,SAAS,CAAC,CAAC,EACxB,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,sBAAsB,EAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,CAAC,EACxC,OAAO,CAAC,EAAE,wBAAwB,GAChC,CAAC;WAYgB,cAAc,CAAC,CAAC,EACnC,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,sBAAsB,EAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,OAAO,CAAC,EAAE,wBAAwB,EAClC,cAAc,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,CAAC,CAAC;IAYb,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,OAAO,CAAC,KAAK,CAAC,CAAyB;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,qBAAqB,CAAyB;IAEtD,SAAS,aACS,MAAM,EAAE,mBAAmB,EAC5C,KAAK,EAAE,sBAAsB,EACZ,OAAO,GAAE,wBAA2D,EACpE,cAAc,GAAE,OAAe;IAc1C,cAAc,CAAC,KAAK,CAAC,EAAE,oBAAoB,EAAE,eAAe,GAAE,MAAiB,GAAG,IAAI;IAI7F,OAAO,CAAC,OAAO;IASR,GAAG,CAAC,KAAK,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAM9C,OAAO,CAAC,kBAAkB;IASnB,MAAM,CAAC,KAAK,CAAC,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAOlE;;OAEG;IACI,WAAW,CACjB,eAAe,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE,oBAAoB,EAC5B,KAAK,CAAC,EAAE,OAAO,GACb,IAAI;CA8BP;AAED;;;;;;GAMG;AACH,qBAAa,mBAAoB,YAAW,mBAAmB;IACvD,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IACtC,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IACxE,cAAc,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAClE,oBAAoB,CAAC,KAAK,EAAE,0BAA0B,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;CACrF;AAmBD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACxC,CAAC,EAAE,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,CAAC,GACtE,0BAA0B,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAOjE;AAuBD,eAAO,MAAM,OAAO,sIAIsB,8BAA8B,gEAOhD,8BAA8B;;;;;;oDA0BhB,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,0GAGa,8BAA8B,wDAMhD,8BAA8B;;SAG3C,iBAAiB,YAAY;;;SAI7B,iBAAiB,YAAY;oDAG6C,CAAC"}