@fluidframework/telemetry-utils 1.4.0-121020 → 2.0.0-dev-rc.1.0.0.225277

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 (156) hide show
  1. package/.eslintrc.js +12 -13
  2. package/.mocharc.js +12 -0
  3. package/CHANGELOG.md +249 -0
  4. package/README.md +68 -1
  5. package/api-extractor-esm.json +5 -0
  6. package/api-extractor-lint.json +4 -0
  7. package/api-extractor.json +2 -2
  8. package/api-report/telemetry-utils.api.md +444 -0
  9. package/dist/config.d.ts +47 -16
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +88 -38
  12. package/dist/config.js.map +1 -1
  13. package/dist/error.d.ts +112 -0
  14. package/dist/error.d.ts.map +1 -0
  15. package/dist/error.js +159 -0
  16. package/dist/error.js.map +1 -0
  17. package/dist/errorLogging.d.ts +86 -20
  18. package/dist/errorLogging.d.ts.map +1 -1
  19. package/dist/errorLogging.js +190 -60
  20. package/dist/errorLogging.js.map +1 -1
  21. package/dist/eventEmitterWithErrorHandling.d.ts +9 -3
  22. package/dist/eventEmitterWithErrorHandling.d.ts.map +1 -1
  23. package/dist/eventEmitterWithErrorHandling.js +16 -3
  24. package/dist/eventEmitterWithErrorHandling.js.map +1 -1
  25. package/dist/events.d.ts +27 -3
  26. package/dist/events.d.ts.map +1 -1
  27. package/dist/events.js +26 -2
  28. package/dist/events.js.map +1 -1
  29. package/dist/fluidErrorBase.d.ts +57 -16
  30. package/dist/fluidErrorBase.d.ts.map +1 -1
  31. package/dist/fluidErrorBase.js +27 -14
  32. package/dist/fluidErrorBase.js.map +1 -1
  33. package/dist/index.d.ts +12 -11
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +55 -21
  36. package/dist/index.js.map +1 -1
  37. package/dist/logger.d.ts +269 -53
  38. package/dist/logger.d.ts.map +1 -1
  39. package/dist/logger.js +423 -132
  40. package/dist/logger.js.map +1 -1
  41. package/dist/mockLogger.d.ts +39 -12
  42. package/dist/mockLogger.d.ts.map +1 -1
  43. package/dist/mockLogger.js +105 -22
  44. package/dist/mockLogger.js.map +1 -1
  45. package/dist/sampledTelemetryHelper.d.ts +18 -12
  46. package/dist/sampledTelemetryHelper.d.ts.map +1 -1
  47. package/dist/sampledTelemetryHelper.js +28 -19
  48. package/dist/sampledTelemetryHelper.js.map +1 -1
  49. package/dist/telemetry-utils-alpha.d.ts +290 -0
  50. package/dist/telemetry-utils-beta.d.ts +264 -0
  51. package/dist/telemetry-utils-public.d.ts +264 -0
  52. package/dist/telemetry-utils-untrimmed.d.ts +1102 -0
  53. package/dist/telemetryTypes.d.ts +115 -0
  54. package/dist/telemetryTypes.d.ts.map +1 -0
  55. package/dist/telemetryTypes.js +7 -0
  56. package/dist/telemetryTypes.js.map +1 -0
  57. package/dist/thresholdCounter.d.ts +6 -5
  58. package/dist/thresholdCounter.d.ts.map +1 -1
  59. package/dist/thresholdCounter.js +4 -3
  60. package/dist/thresholdCounter.js.map +1 -1
  61. package/dist/tsdoc-metadata.json +11 -0
  62. package/dist/utils.d.ts +54 -3
  63. package/dist/utils.d.ts.map +1 -1
  64. package/dist/utils.js +58 -3
  65. package/dist/utils.js.map +1 -1
  66. package/lib/config.d.ts +47 -16
  67. package/lib/config.d.ts.map +1 -1
  68. package/lib/config.js +85 -36
  69. package/lib/config.js.map +1 -1
  70. package/lib/error.d.ts +112 -0
  71. package/lib/error.d.ts.map +1 -0
  72. package/lib/error.js +150 -0
  73. package/lib/error.js.map +1 -0
  74. package/lib/errorLogging.d.ts +86 -20
  75. package/lib/errorLogging.d.ts.map +1 -1
  76. package/lib/errorLogging.js +189 -60
  77. package/lib/errorLogging.js.map +1 -1
  78. package/lib/eventEmitterWithErrorHandling.d.ts +9 -3
  79. package/lib/eventEmitterWithErrorHandling.d.ts.map +1 -1
  80. package/lib/eventEmitterWithErrorHandling.js +15 -2
  81. package/lib/eventEmitterWithErrorHandling.js.map +1 -1
  82. package/lib/events.d.ts +27 -3
  83. package/lib/events.d.ts.map +1 -1
  84. package/lib/events.js +26 -2
  85. package/lib/events.js.map +1 -1
  86. package/lib/fluidErrorBase.d.ts +57 -16
  87. package/lib/fluidErrorBase.d.ts.map +1 -1
  88. package/lib/fluidErrorBase.js +27 -14
  89. package/lib/fluidErrorBase.js.map +1 -1
  90. package/lib/index.d.ts +12 -11
  91. package/lib/index.d.ts.map +1 -1
  92. package/lib/index.js +11 -11
  93. package/lib/index.js.map +1 -1
  94. package/lib/logger.d.ts +269 -53
  95. package/lib/logger.d.ts.map +1 -1
  96. package/lib/logger.js +415 -131
  97. package/lib/logger.js.map +1 -1
  98. package/lib/mockLogger.d.ts +39 -12
  99. package/lib/mockLogger.d.ts.map +1 -1
  100. package/lib/mockLogger.js +106 -23
  101. package/lib/mockLogger.js.map +1 -1
  102. package/lib/sampledTelemetryHelper.d.ts +18 -12
  103. package/lib/sampledTelemetryHelper.d.ts.map +1 -1
  104. package/lib/sampledTelemetryHelper.js +26 -17
  105. package/lib/sampledTelemetryHelper.js.map +1 -1
  106. package/lib/telemetry-utils-alpha.d.mts +290 -0
  107. package/lib/telemetry-utils-beta.d.mts +264 -0
  108. package/lib/telemetry-utils-public.d.mts +264 -0
  109. package/lib/telemetry-utils-untrimmed.d.mts +1102 -0
  110. package/lib/telemetryTypes.d.ts +115 -0
  111. package/lib/telemetryTypes.d.ts.map +1 -0
  112. package/lib/telemetryTypes.js +6 -0
  113. package/lib/telemetryTypes.js.map +1 -0
  114. package/lib/thresholdCounter.d.ts +6 -5
  115. package/lib/thresholdCounter.d.ts.map +1 -1
  116. package/lib/thresholdCounter.js +4 -3
  117. package/lib/thresholdCounter.js.map +1 -1
  118. package/lib/utils.d.ts +54 -3
  119. package/lib/utils.d.ts.map +1 -1
  120. package/lib/utils.js +56 -2
  121. package/lib/utils.js.map +1 -1
  122. package/package.json +86 -57
  123. package/prettier.config.cjs +8 -0
  124. package/src/config.ts +254 -189
  125. package/src/error.ts +235 -0
  126. package/src/errorLogging.ts +440 -290
  127. package/src/eventEmitterWithErrorHandling.ts +26 -14
  128. package/src/events.ts +54 -25
  129. package/src/fluidErrorBase.ts +94 -46
  130. package/src/index.ts +76 -17
  131. package/src/logger.ts +972 -505
  132. package/src/mockLogger.ts +225 -83
  133. package/src/sampledTelemetryHelper.ts +136 -128
  134. package/src/telemetryTypes.ts +140 -0
  135. package/src/thresholdCounter.ts +38 -37
  136. package/src/utils.ts +108 -17
  137. package/tsconfig.esnext.json +6 -6
  138. package/tsconfig.json +9 -13
  139. package/dist/debugLogger.d.ts +0 -39
  140. package/dist/debugLogger.d.ts.map +0 -1
  141. package/dist/debugLogger.js +0 -101
  142. package/dist/debugLogger.js.map +0 -1
  143. package/dist/packageVersion.d.ts +0 -9
  144. package/dist/packageVersion.d.ts.map +0 -1
  145. package/dist/packageVersion.js +0 -12
  146. package/dist/packageVersion.js.map +0 -1
  147. package/lib/debugLogger.d.ts +0 -39
  148. package/lib/debugLogger.d.ts.map +0 -1
  149. package/lib/debugLogger.js +0 -97
  150. package/lib/debugLogger.js.map +0 -1
  151. package/lib/packageVersion.d.ts +0 -9
  152. package/lib/packageVersion.d.ts.map +0 -1
  153. package/lib/packageVersion.js +0 -9
  154. package/lib/packageVersion.js.map +0 -1
  155. package/src/debugLogger.ts +0 -126
  156. package/src/packageVersion.ts +0 -9
@@ -1,97 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { performance } from "@fluidframework/common-utils";
6
- import { debug as registerDebug } from "debug";
7
- import { TelemetryLogger, MultiSinkLogger, ChildLogger } from "./logger";
8
- /**
9
- * Implementation of debug logger
10
- */
11
- export class DebugLogger extends TelemetryLogger {
12
- constructor(debug, debugErr, properties) {
13
- super(undefined, properties);
14
- this.debug = debug;
15
- this.debugErr = debugErr;
16
- }
17
- /**
18
- * Create debug logger - all events are output to debug npm library
19
- * @param namespace - Telemetry event name prefix to add to all events
20
- * @param properties - Base properties to add to all events
21
- * @param propertyGetters - Getters to add additional properties to all events
22
- */
23
- static create(namespace, properties) {
24
- // Setup base logger upfront, such that host can disable it (if needed)
25
- const debug = registerDebug(namespace);
26
- const debugErr = registerDebug(namespace);
27
- debugErr.log = console.error.bind(console);
28
- debugErr.enabled = true;
29
- return new DebugLogger(debug, debugErr, properties);
30
- }
31
- /**
32
- * Mix in debug logger with another logger.
33
- * Returned logger will output events to both newly created debug logger, as well as base logger
34
- * @param namespace - Telemetry event name prefix to add to all events
35
- * @param properties - Base properties to add to all events
36
- * @param propertyGetters - Getters to add additional properties to all events
37
- * @param baseLogger - Base logger to output events (in addition to debug logger being created). Can be undefined.
38
- */
39
- static mixinDebugLogger(namespace, baseLogger, properties) {
40
- if (!baseLogger) {
41
- return DebugLogger.create(namespace, properties);
42
- }
43
- const multiSinkLogger = new MultiSinkLogger(undefined, properties);
44
- multiSinkLogger.addLogger(DebugLogger.create(namespace, this.tryGetBaseLoggerProps(baseLogger)));
45
- multiSinkLogger.addLogger(ChildLogger.create(baseLogger, namespace));
46
- return multiSinkLogger;
47
- }
48
- static tryGetBaseLoggerProps(baseLogger) {
49
- if (baseLogger instanceof TelemetryLogger) {
50
- return baseLogger.properties;
51
- }
52
- return undefined;
53
- }
54
- /**
55
- * Send an event to debug loggers
56
- *
57
- * @param event - the event to send
58
- */
59
- send(event) {
60
- const newEvent = this.prepareEvent(event);
61
- const isError = newEvent.category === "error";
62
- let logger = isError ? this.debugErr : this.debug;
63
- // Use debug's coloring schema for base of the event
64
- const index = event.eventName.lastIndexOf(TelemetryLogger.eventNamespaceSeparator);
65
- const name = event.eventName.substring(index + 1);
66
- if (index > 0) {
67
- logger = logger.extend(event.eventName.substring(0, index));
68
- }
69
- newEvent.eventName = undefined;
70
- let tick = "";
71
- tick = `tick=${TelemetryLogger.formatTick(performance.now())}`;
72
- // Extract stack to put it last, but also to avoid escaping '\n' in it by JSON.stringify below
73
- const stack = newEvent.stack ? newEvent.stack : "";
74
- newEvent.stack = undefined;
75
- // Watch out for circular references - they can come from two sources
76
- // 1) error object - we do not control it and should remove it and retry
77
- // 2) properties supplied by telemetry caller - that's a bug that should be addressed!
78
- let payload;
79
- try {
80
- payload = JSON.stringify(newEvent);
81
- }
82
- catch (error) {
83
- newEvent.error = undefined;
84
- payload = JSON.stringify(newEvent);
85
- }
86
- if (payload === "{}") {
87
- payload = "";
88
- }
89
- // Force errors out, to help with diagnostics
90
- if (isError) {
91
- logger.enabled = true;
92
- }
93
- // Print multi-line.
94
- logger(`${name} ${payload} ${tick} ${stack}`);
95
- }
96
- }
97
- //# sourceMappingURL=debugLogger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debugLogger.js","sourceRoot":"","sources":["../src/debugLogger.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n ITelemetryBaseEvent,\n ITelemetryBaseLogger,\n ITelemetryProperties,\n} from \"@fluidframework/common-definitions\";\nimport { performance } from \"@fluidframework/common-utils\";\nimport { debug as registerDebug, IDebugger } from \"debug\";\nimport { TelemetryLogger, MultiSinkLogger, ChildLogger, ITelemetryLoggerPropertyBags } from \"./logger\";\n\n/**\n * Implementation of debug logger\n */\nexport class DebugLogger extends TelemetryLogger {\n /**\n * Create debug logger - all events are output to debug npm library\n * @param namespace - Telemetry event name prefix to add to all events\n * @param properties - Base properties to add to all events\n * @param propertyGetters - Getters to add additional properties to all events\n */\n public static create(\n namespace: string,\n properties?: ITelemetryLoggerPropertyBags,\n ): TelemetryLogger {\n // Setup base logger upfront, such that host can disable it (if needed)\n const debug = registerDebug(namespace);\n\n const debugErr = registerDebug(namespace);\n debugErr.log = console.error.bind(console);\n debugErr.enabled = true;\n\n return new DebugLogger(debug, debugErr, properties);\n }\n\n /**\n * Mix in debug logger with another logger.\n * Returned logger will output events to both newly created debug logger, as well as base logger\n * @param namespace - Telemetry event name prefix to add to all events\n * @param properties - Base properties to add to all events\n * @param propertyGetters - Getters to add additional properties to all events\n * @param baseLogger - Base logger to output events (in addition to debug logger being created). Can be undefined.\n */\n public static mixinDebugLogger(\n namespace: string,\n baseLogger?: ITelemetryBaseLogger,\n properties?: ITelemetryLoggerPropertyBags,\n ): TelemetryLogger {\n if (!baseLogger) {\n return DebugLogger.create(namespace, properties);\n }\n\n const multiSinkLogger = new MultiSinkLogger(undefined, properties);\n multiSinkLogger.addLogger(DebugLogger.create(namespace, this.tryGetBaseLoggerProps(baseLogger)));\n multiSinkLogger.addLogger(ChildLogger.create(baseLogger, namespace));\n\n return multiSinkLogger;\n }\n\n private static tryGetBaseLoggerProps(baseLogger?: ITelemetryBaseLogger) {\n if (baseLogger instanceof TelemetryLogger) {\n return (baseLogger as any as { properties: ITelemetryLoggerPropertyBags; }).properties;\n }\n return undefined;\n }\n\n constructor(\n private readonly debug: IDebugger,\n private readonly debugErr: IDebugger,\n properties?: ITelemetryLoggerPropertyBags,\n ) {\n super(undefined, properties);\n }\n\n /**\n * Send an event to debug loggers\n *\n * @param event - the event to send\n */\n public send(event: ITelemetryBaseEvent): void {\n const newEvent: ITelemetryProperties = this.prepareEvent(event);\n const isError = newEvent.category === \"error\";\n let logger = isError ? this.debugErr : this.debug;\n\n // Use debug's coloring schema for base of the event\n const index = event.eventName.lastIndexOf(TelemetryLogger.eventNamespaceSeparator);\n const name = event.eventName.substring(index + 1);\n if (index > 0) {\n logger = logger.extend(event.eventName.substring(0, index));\n }\n newEvent.eventName = undefined;\n\n let tick = \"\";\n tick = `tick=${TelemetryLogger.formatTick(performance.now())}`;\n\n // Extract stack to put it last, but also to avoid escaping '\\n' in it by JSON.stringify below\n const stack = newEvent.stack ? newEvent.stack : \"\";\n newEvent.stack = undefined;\n\n // Watch out for circular references - they can come from two sources\n // 1) error object - we do not control it and should remove it and retry\n // 2) properties supplied by telemetry caller - that's a bug that should be addressed!\n let payload: string;\n try {\n payload = JSON.stringify(newEvent);\n } catch (error) {\n newEvent.error = undefined;\n payload = JSON.stringify(newEvent);\n }\n\n if (payload === \"{}\") {\n payload = \"\";\n }\n\n // Force errors out, to help with diagnostics\n if (isError) {\n logger.enabled = true;\n }\n\n // Print multi-line.\n logger(`${name} ${payload} ${tick} ${stack}`);\n }\n}\n"]}
@@ -1,9 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- *
5
- * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
- */
7
- export declare const pkgName = "@fluidframework/telemetry-utils";
8
- export declare const pkgVersion = "1.4.0-121020";
9
- //# sourceMappingURL=packageVersion.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"packageVersion.d.ts","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,oCAAoC,CAAC;AACzD,eAAO,MAAM,UAAU,iBAAiB,CAAC"}
@@ -1,9 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- *
5
- * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
- */
7
- export const pkgName = "@fluidframework/telemetry-utils";
8
- export const pkgVersion = "1.4.0-121020";
9
- //# sourceMappingURL=packageVersion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,iCAAiC,CAAC;AACzD,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/telemetry-utils\";\nexport const pkgVersion = \"1.4.0-121020\";\n"]}
@@ -1,126 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
-
6
- import {
7
- ITelemetryBaseEvent,
8
- ITelemetryBaseLogger,
9
- ITelemetryProperties,
10
- } from "@fluidframework/common-definitions";
11
- import { performance } from "@fluidframework/common-utils";
12
- import { debug as registerDebug, IDebugger } from "debug";
13
- import { TelemetryLogger, MultiSinkLogger, ChildLogger, ITelemetryLoggerPropertyBags } from "./logger";
14
-
15
- /**
16
- * Implementation of debug logger
17
- */
18
- export class DebugLogger extends TelemetryLogger {
19
- /**
20
- * Create debug logger - all events are output to debug npm library
21
- * @param namespace - Telemetry event name prefix to add to all events
22
- * @param properties - Base properties to add to all events
23
- * @param propertyGetters - Getters to add additional properties to all events
24
- */
25
- public static create(
26
- namespace: string,
27
- properties?: ITelemetryLoggerPropertyBags,
28
- ): TelemetryLogger {
29
- // Setup base logger upfront, such that host can disable it (if needed)
30
- const debug = registerDebug(namespace);
31
-
32
- const debugErr = registerDebug(namespace);
33
- debugErr.log = console.error.bind(console);
34
- debugErr.enabled = true;
35
-
36
- return new DebugLogger(debug, debugErr, properties);
37
- }
38
-
39
- /**
40
- * Mix in debug logger with another logger.
41
- * Returned logger will output events to both newly created debug logger, as well as base logger
42
- * @param namespace - Telemetry event name prefix to add to all events
43
- * @param properties - Base properties to add to all events
44
- * @param propertyGetters - Getters to add additional properties to all events
45
- * @param baseLogger - Base logger to output events (in addition to debug logger being created). Can be undefined.
46
- */
47
- public static mixinDebugLogger(
48
- namespace: string,
49
- baseLogger?: ITelemetryBaseLogger,
50
- properties?: ITelemetryLoggerPropertyBags,
51
- ): TelemetryLogger {
52
- if (!baseLogger) {
53
- return DebugLogger.create(namespace, properties);
54
- }
55
-
56
- const multiSinkLogger = new MultiSinkLogger(undefined, properties);
57
- multiSinkLogger.addLogger(DebugLogger.create(namespace, this.tryGetBaseLoggerProps(baseLogger)));
58
- multiSinkLogger.addLogger(ChildLogger.create(baseLogger, namespace));
59
-
60
- return multiSinkLogger;
61
- }
62
-
63
- private static tryGetBaseLoggerProps(baseLogger?: ITelemetryBaseLogger) {
64
- if (baseLogger instanceof TelemetryLogger) {
65
- return (baseLogger as any as { properties: ITelemetryLoggerPropertyBags; }).properties;
66
- }
67
- return undefined;
68
- }
69
-
70
- constructor(
71
- private readonly debug: IDebugger,
72
- private readonly debugErr: IDebugger,
73
- properties?: ITelemetryLoggerPropertyBags,
74
- ) {
75
- super(undefined, properties);
76
- }
77
-
78
- /**
79
- * Send an event to debug loggers
80
- *
81
- * @param event - the event to send
82
- */
83
- public send(event: ITelemetryBaseEvent): void {
84
- const newEvent: ITelemetryProperties = this.prepareEvent(event);
85
- const isError = newEvent.category === "error";
86
- let logger = isError ? this.debugErr : this.debug;
87
-
88
- // Use debug's coloring schema for base of the event
89
- const index = event.eventName.lastIndexOf(TelemetryLogger.eventNamespaceSeparator);
90
- const name = event.eventName.substring(index + 1);
91
- if (index > 0) {
92
- logger = logger.extend(event.eventName.substring(0, index));
93
- }
94
- newEvent.eventName = undefined;
95
-
96
- let tick = "";
97
- tick = `tick=${TelemetryLogger.formatTick(performance.now())}`;
98
-
99
- // Extract stack to put it last, but also to avoid escaping '\n' in it by JSON.stringify below
100
- const stack = newEvent.stack ? newEvent.stack : "";
101
- newEvent.stack = undefined;
102
-
103
- // Watch out for circular references - they can come from two sources
104
- // 1) error object - we do not control it and should remove it and retry
105
- // 2) properties supplied by telemetry caller - that's a bug that should be addressed!
106
- let payload: string;
107
- try {
108
- payload = JSON.stringify(newEvent);
109
- } catch (error) {
110
- newEvent.error = undefined;
111
- payload = JSON.stringify(newEvent);
112
- }
113
-
114
- if (payload === "{}") {
115
- payload = "";
116
- }
117
-
118
- // Force errors out, to help with diagnostics
119
- if (isError) {
120
- logger.enabled = true;
121
- }
122
-
123
- // Print multi-line.
124
- logger(`${name} ${payload} ${tick} ${stack}`);
125
- }
126
- }
@@ -1,9 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- *
5
- * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
- */
7
-
8
- export const pkgName = "@fluidframework/telemetry-utils";
9
- export const pkgVersion = "1.4.0-121020";