@microsoft/sp-diagnostics 1.22.0-beta.2 → 1.22.0-beta.4

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 (138) hide show
  1. package/dist/78359e4b-07c2-43c6-8d0b-d060b4d577e8.manifest.json +3 -3
  2. package/dist/{sp-diagnostics_none_a5c0c2a17bce8b457f0d.js → sp-diagnostics_none_f723633aa801623e45a1.js} +1 -1
  3. package/lib/Api/Engagement/EngagementLogger.d.ts +75 -0
  4. package/lib/Api/Engagement/EngagementLogger.d.ts.map +1 -0
  5. package/lib/Api/Engagement/EngagementLogger.js +143 -0
  6. package/lib/Api/Engagement/IEngagementHandler.d.ts +87 -0
  7. package/lib/Api/Engagement/IEngagementHandler.d.ts.map +1 -0
  8. package/lib/Api/Engagement/IEngagementHandler.js +2 -0
  9. package/lib/Api/ExecutionQueue.d.ts +55 -0
  10. package/lib/Api/ExecutionQueue.d.ts.map +1 -0
  11. package/lib/Api/ExecutionQueue.js +133 -0
  12. package/lib/Api/ILogData.d.ts +36 -0
  13. package/lib/Api/ILogData.d.ts.map +1 -0
  14. package/lib/Api/ILogData.js +3 -0
  15. package/lib/Api/ILogEntry.d.ts +29 -0
  16. package/lib/Api/ILogEntry.d.ts.map +1 -0
  17. package/lib/Api/ILogEntry.js +2 -0
  18. package/lib/Api/ILogErrorData.d.ts +21 -0
  19. package/lib/Api/ILogErrorData.d.ts.map +1 -0
  20. package/lib/Api/ILogErrorData.js +3 -0
  21. package/lib/Api/ILogSource.d.ts +10 -0
  22. package/lib/Api/ILogSource.d.ts.map +1 -0
  23. package/lib/Api/ILogSource.js +3 -0
  24. package/lib/Api/ILogVerboseData.d.ts +12 -0
  25. package/lib/Api/ILogVerboseData.d.ts.map +1 -0
  26. package/lib/Api/ILogVerboseData.js +3 -0
  27. package/lib/Api/Log/LogHandler.d.ts +12 -0
  28. package/lib/Api/Log/LogHandler.d.ts.map +1 -0
  29. package/lib/Api/Log/LogHandler.js +41 -0
  30. package/lib/Api/LogEntry.d.ts +29 -0
  31. package/lib/Api/LogEntry.d.ts.map +1 -0
  32. package/lib/Api/LogEntry.js +51 -0
  33. package/lib/Api/LogFeature.d.ts +7 -0
  34. package/lib/Api/LogFeature.d.ts.map +1 -0
  35. package/lib/Api/LogFeature.js +11 -0
  36. package/lib/Api/LogLevel.d.ts +23 -0
  37. package/lib/Api/LogLevel.d.ts.map +1 -0
  38. package/lib/Api/LogLevel.js +24 -0
  39. package/lib/Api/LogManager/CircularBuffer.d.ts +36 -0
  40. package/lib/Api/LogManager/CircularBuffer.d.ts.map +1 -0
  41. package/lib/Api/LogManager/CircularBuffer.js +98 -0
  42. package/lib/Api/LogManager/LogManager.d.ts +47 -0
  43. package/lib/Api/LogManager/LogManager.d.ts.map +1 -0
  44. package/lib/Api/LogManager/LogManager.js +121 -0
  45. package/lib/Api/LogSource.d.ts +24 -0
  46. package/lib/Api/LogSource.d.ts.map +1 -0
  47. package/lib/Api/LogSource.js +40 -0
  48. package/lib/Api/LogType.d.ts +21 -0
  49. package/lib/Api/LogType.d.ts.map +1 -0
  50. package/lib/Api/LogType.js +23 -0
  51. package/lib/Api/Qos/AutoAlertableQosMonitor.d.ts +72 -0
  52. package/lib/Api/Qos/AutoAlertableQosMonitor.d.ts.map +1 -0
  53. package/lib/Api/Qos/AutoAlertableQosMonitor.js +93 -0
  54. package/lib/Api/Qos/CustomerPromiseInterfaces/ICustomerPromiseErrorDetails.d.ts +39 -0
  55. package/lib/Api/Qos/CustomerPromiseInterfaces/ICustomerPromiseErrorDetails.d.ts.map +1 -0
  56. package/lib/Api/Qos/CustomerPromiseInterfaces/ICustomerPromiseErrorDetails.js +2 -0
  57. package/lib/Api/Qos/CustomerPromiseInterfaces/IExtraDataForCustomerPromise.d.ts +12 -0
  58. package/lib/Api/Qos/CustomerPromiseInterfaces/IExtraDataForCustomerPromise.d.ts.map +1 -0
  59. package/lib/Api/Qos/CustomerPromiseInterfaces/IExtraDataForCustomerPromise.js +2 -0
  60. package/lib/Api/Qos/IQos.d.ts +17 -0
  61. package/lib/Api/Qos/IQos.d.ts.map +1 -0
  62. package/lib/Api/Qos/IQos.js +2 -0
  63. package/lib/Api/Qos/IQosEndEvent.d.ts +13 -0
  64. package/lib/Api/Qos/IQosEndEvent.d.ts.map +1 -0
  65. package/lib/Api/Qos/IQosEndEvent.js +2 -0
  66. package/lib/Api/Qos/IQosExtraData.d.ts +50 -0
  67. package/lib/Api/Qos/IQosExtraData.d.ts.map +1 -0
  68. package/lib/Api/Qos/IQosExtraData.js +2 -0
  69. package/lib/Api/Qos/IQosStartEvent.d.ts +8 -0
  70. package/lib/Api/Qos/IQosStartEvent.d.ts.map +1 -0
  71. package/lib/Api/Qos/IQosStartEvent.js +2 -0
  72. package/lib/Api/Qos/QosLogger.d.ts +27 -0
  73. package/lib/Api/Qos/QosLogger.d.ts.map +1 -0
  74. package/lib/Api/Qos/QosLogger.js +74 -0
  75. package/lib/Api/Qos/QosMonitor.d.ts +74 -0
  76. package/lib/Api/Qos/QosMonitor.d.ts.map +1 -0
  77. package/lib/Api/Qos/QosMonitor.js +304 -0
  78. package/lib/Api/Qos/QosMonitorShareFailureWithCP.d.ts +50 -0
  79. package/lib/Api/Qos/QosMonitorShareFailureWithCP.d.ts.map +1 -0
  80. package/lib/Api/Qos/QosMonitorShareFailureWithCP.js +114 -0
  81. package/lib/Api/Qos/QosResultType.d.ts +15 -0
  82. package/lib/Api/Qos/QosResultType.d.ts.map +1 -0
  83. package/lib/Api/Qos/QosResultType.js +11 -0
  84. package/lib/Api/Trace/DefaultTraceHandler.d.ts +15 -0
  85. package/lib/Api/Trace/DefaultTraceHandler.d.ts.map +1 -0
  86. package/lib/Api/Trace/DefaultTraceHandler.js +30 -0
  87. package/lib/Api/Trace/ITraceHandler.d.ts +29 -0
  88. package/lib/Api/Trace/ITraceHandler.d.ts.map +1 -0
  89. package/lib/Api/Trace/ITraceHandler.js +2 -0
  90. package/lib/Api/Trace/ITraceLogger.d.ts +13 -0
  91. package/lib/Api/Trace/ITraceLogger.d.ts.map +1 -0
  92. package/lib/Api/Trace/ITraceLogger.js +2 -0
  93. package/lib/Api/Trace/LogEvent.d.ts +49 -0
  94. package/lib/Api/Trace/LogEvent.d.ts.map +1 -0
  95. package/lib/Api/Trace/LogEvent.js +147 -0
  96. package/lib/Api/Trace/TraceLogger.d.ts +102 -0
  97. package/lib/Api/Trace/TraceLogger.d.ts.map +1 -0
  98. package/lib/Api/Trace/TraceLogger.js +197 -0
  99. package/lib/Diagnostics.d.ts +47 -0
  100. package/lib/Diagnostics.d.ts.map +1 -0
  101. package/lib/Diagnostics.js +82 -0
  102. package/lib/DiagnosticsSettingsManager.d.ts +19 -0
  103. package/lib/DiagnosticsSettingsManager.d.ts.map +1 -0
  104. package/lib/DiagnosticsSettingsManager.js +62 -0
  105. package/lib/IDiagnosticsSettings.d.ts +87 -0
  106. package/lib/IDiagnosticsSettings.d.ts.map +1 -0
  107. package/lib/IDiagnosticsSettings.js +2 -0
  108. package/lib/common/Killswitches.d.ts +3 -0
  109. package/lib/common/Killswitches.d.ts.map +1 -0
  110. package/lib/common/Killswitches.js +14 -0
  111. package/lib/extraData/DisplayApp.d.ts +6 -0
  112. package/lib/extraData/DisplayApp.d.ts.map +1 -0
  113. package/lib/extraData/DisplayApp.js +6 -0
  114. package/lib/extraData/IDiagnosticContextInfo.d.ts +18 -0
  115. package/lib/extraData/IDiagnosticContextInfo.d.ts.map +1 -0
  116. package/lib/extraData/IDiagnosticContextInfo.js +2 -0
  117. package/lib/extraData/IPageExtraData.d.ts +16 -0
  118. package/lib/extraData/IPageExtraData.d.ts.map +1 -0
  119. package/lib/extraData/IPageExtraData.js +2 -0
  120. package/lib/extraData/PageType.d.ts +13 -0
  121. package/lib/extraData/PageType.d.ts.map +1 -0
  122. package/lib/extraData/PageType.js +16 -0
  123. package/lib/extraData/PromotedState.d.ts +16 -0
  124. package/lib/extraData/PromotedState.d.ts.map +1 -0
  125. package/lib/extraData/PromotedState.js +17 -0
  126. package/lib/extraData/WebTemplateId.d.ts +8 -0
  127. package/lib/extraData/WebTemplateId.d.ts.map +1 -0
  128. package/lib/extraData/WebTemplateId.js +10 -0
  129. package/lib/extraData/setPageExtraData.d.ts +5 -0
  130. package/lib/extraData/setPageExtraData.d.ts.map +1 -0
  131. package/lib/extraData/setPageExtraData.js +66 -0
  132. package/lib/index.d.ts +42 -0
  133. package/lib/index.d.ts.map +1 -0
  134. package/lib/index.js +27 -0
  135. package/lib/sp-diagnostics.manifest.json +8 -0
  136. package/lib-commonjs/common/Killswitches.js +8 -1
  137. package/lib-commonjs/extraData/setPageExtraData.js +4 -0
  138. package/package.json +6 -6
@@ -0,0 +1,47 @@
1
+ import type IDiagnosticsSettings from './IDiagnosticsSettings';
2
+ import type { IClearSettingsOptions, IExtraDiagnosticInfo } from './IDiagnosticsSettings';
3
+ /**
4
+ * Diagnostics class initializes the diagnostics pipeline and connect to backend server.
5
+ * Diagnostics contains a set of internal APIs that collects data and reports data via
6
+ * the pipeline. The APIs consist of
7
+ * -- TraceLogger - for logging diagnostic information
8
+ *
9
+ * @internal
10
+ */
11
+ export default class Diagnostics {
12
+ private static _isInitialized;
13
+ /**
14
+ * Initializes the diagnostics pipelines
15
+ */
16
+ static initialize(settings: IDiagnosticsSettings): void;
17
+ /**
18
+ * Returns true if diagnostics has been already initialized.
19
+ */
20
+ static get isInitialized(): boolean;
21
+ /**
22
+ * Used to refresh the telemetry settings when they change from the application
23
+ * (i.e. when an in-place navigation to a different site happens)
24
+ * @param settings - the subset of the telemetry settings to be updated
25
+ */
26
+ static updateSettings(settings: Partial<IDiagnosticsSettings>): void;
27
+ /**
28
+ * Get the authoring session client count info from the extraDiagnosticsInfo from Diagnostics settings
29
+ * @deprecated - Read from @see getExtraDiagnosticInfo
30
+ * @returns the number of clients in the authoring session
31
+ */
32
+ static getAuthoringSessionClientCountInfo(): number | undefined;
33
+ /**
34
+ * Get the extra diagnostic info for logging purpose.
35
+ * @internal
36
+ * @returns @see IExtraDiagnosticInfo
37
+ */
38
+ static _getExtraDiagnosticInfo(): IExtraDiagnosticInfo | undefined;
39
+ /**
40
+ * Used to delete telemetry settings when they are no longer needed or need to be reset.
41
+ * The current updateSettings implementation does not support un-setting previously
42
+ * set settings values.
43
+ * @param settings - the subset of the telemetry settings to be cleared.
44
+ */
45
+ static clearSettings(settings: IClearSettingsOptions): void;
46
+ }
47
+ //# sourceMappingURL=Diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Diagnostics.d.ts","sourceRoot":"","sources":["../src/Diagnostics.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,oBAAoB,MAAM,wBAAwB,CAAC;AAG/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE1F;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,OAAO,CAAC,MAAM,CAAC,cAAc,CAAkB;IAE/C;;OAEG;WACW,UAAU,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAoB9D;;OAEG;IACH,WAAkB,aAAa,IAAI,OAAO,CAEzC;IAED;;;;OAIG;WACW,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;IAI3E;;;;OAIG;WACW,kCAAkC,IAAI,MAAM,GAAG,SAAS;IAItE;;;;OAIG;WACW,uBAAuB,IAAI,oBAAoB,GAAG,SAAS;IAIzE;;;;;OAKG;WACW,aAAa,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;CAGnE"}
@@ -0,0 +1,82 @@
1
+ import { Log } from '@microsoft/sp-core-library';
2
+ import DiagnosticsSettingsManager from './DiagnosticsSettingsManager';
3
+ import TraceLogger from './Api/Trace/TraceLogger';
4
+ /**
5
+ * Diagnostics class initializes the diagnostics pipeline and connect to backend server.
6
+ * Diagnostics contains a set of internal APIs that collects data and reports data via
7
+ * the pipeline. The APIs consist of
8
+ * -- TraceLogger - for logging diagnostic information
9
+ *
10
+ * @internal
11
+ */
12
+ var Diagnostics = /** @class */ (function () {
13
+ function Diagnostics() {
14
+ }
15
+ /**
16
+ * Initializes the diagnostics pipelines
17
+ */
18
+ Diagnostics.initialize = function (settings) {
19
+ if (!Diagnostics._isInitialized) {
20
+ DiagnosticsSettingsManager.initialize(settings);
21
+ TraceLogger.shouldWriteToConsole = settings.enableConsoleLog;
22
+ TraceLogger._addHandler({
23
+ log: function (traceEvent) {
24
+ Log.info(traceEvent.eventName, "EventName:".concat(traceEvent.data.toString(), ", ResultCode: ").concat(traceEvent.resultCode));
25
+ },
26
+ verbose: function (traceEvent) {
27
+ Log.verbose(traceEvent.eventName, traceEvent.data.toString());
28
+ }
29
+ });
30
+ Diagnostics._isInitialized = true;
31
+ }
32
+ };
33
+ Object.defineProperty(Diagnostics, "isInitialized", {
34
+ /**
35
+ * Returns true if diagnostics has been already initialized.
36
+ */
37
+ get: function () {
38
+ return this._isInitialized;
39
+ },
40
+ enumerable: false,
41
+ configurable: true
42
+ });
43
+ /**
44
+ * Used to refresh the telemetry settings when they change from the application
45
+ * (i.e. when an in-place navigation to a different site happens)
46
+ * @param settings - the subset of the telemetry settings to be updated
47
+ */
48
+ Diagnostics.updateSettings = function (settings) {
49
+ DiagnosticsSettingsManager.updateSettings(settings);
50
+ };
51
+ /**
52
+ * Get the authoring session client count info from the extraDiagnosticsInfo from Diagnostics settings
53
+ * @deprecated - Read from @see getExtraDiagnosticInfo
54
+ * @returns the number of clients in the authoring session
55
+ */
56
+ Diagnostics.getAuthoringSessionClientCountInfo = function () {
57
+ var _a, _b;
58
+ return (_b = (_a = DiagnosticsSettingsManager.settings) === null || _a === void 0 ? void 0 : _a.extraDiagnosticInfo) === null || _b === void 0 ? void 0 : _b.authoringSessionClientCount;
59
+ };
60
+ /**
61
+ * Get the extra diagnostic info for logging purpose.
62
+ * @internal
63
+ * @returns @see IExtraDiagnosticInfo
64
+ */
65
+ Diagnostics._getExtraDiagnosticInfo = function () {
66
+ var _a;
67
+ return (_a = DiagnosticsSettingsManager.settings) === null || _a === void 0 ? void 0 : _a.extraDiagnosticInfo;
68
+ };
69
+ /**
70
+ * Used to delete telemetry settings when they are no longer needed or need to be reset.
71
+ * The current updateSettings implementation does not support un-setting previously
72
+ * set settings values.
73
+ * @param settings - the subset of the telemetry settings to be cleared.
74
+ */
75
+ Diagnostics.clearSettings = function (settings) {
76
+ DiagnosticsSettingsManager.clearSettings(settings);
77
+ };
78
+ Diagnostics._isInitialized = false;
79
+ return Diagnostics;
80
+ }());
81
+ export default Diagnostics;
82
+ //# sourceMappingURL=Diagnostics.js.map
@@ -0,0 +1,19 @@
1
+ import type IDiagnosticsSettings from './IDiagnosticsSettings';
2
+ import type { IClearSettingsOptions } from './IDiagnosticsSettings';
3
+ /**
4
+ * TelemetrySettingsManager stores the configuration for Telemetry passed
5
+ * down by the calling application during bootstrapping.
6
+ *
7
+ * @internal
8
+ */
9
+ export default class DiagnosticsSettingsManager {
10
+ static settings: IDiagnosticsSettings;
11
+ private static _initialized;
12
+ static initialize(settings: IDiagnosticsSettings): void;
13
+ static updateSettings(settings: Partial<IDiagnosticsSettings>): void;
14
+ static clearSettings(settings: IClearSettingsOptions): void;
15
+ static get isInitialized(): boolean;
16
+ private static _normalizeId;
17
+ private static _normalizeContextIds;
18
+ }
19
+ //# sourceMappingURL=DiagnosticsSettingsManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiagnosticsSettingsManager.d.ts","sourceRoot":"","sources":["../src/DiagnosticsSettingsManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,oBAAoB,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,0BAA0B;IAC7C,OAAc,QAAQ,EAAE,oBAAoB,CAAC;IAC7C,OAAO,CAAC,MAAM,CAAC,YAAY,CAAkB;WAE/B,UAAU,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;WAMhD,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;WAK7D,aAAa,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAgBlE,WAAkB,aAAa,IAAI,OAAO,CAEzC;IAED,OAAO,CAAC,MAAM,CAAC,YAAY;IAK3B,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAYpC"}
@@ -0,0 +1,62 @@
1
+ import { Guid } from '@microsoft/sp-core-library';
2
+ import { cloneDeep, merge } from '@microsoft/sp-lodash-subset';
3
+ /**
4
+ * TelemetrySettingsManager stores the configuration for Telemetry passed
5
+ * down by the calling application during bootstrapping.
6
+ *
7
+ * @internal
8
+ */
9
+ var DiagnosticsSettingsManager = /** @class */ (function () {
10
+ function DiagnosticsSettingsManager() {
11
+ }
12
+ DiagnosticsSettingsManager.initialize = function (settings) {
13
+ this.settings = cloneDeep(settings);
14
+ this._initialized = true;
15
+ this._normalizeContextIds();
16
+ };
17
+ DiagnosticsSettingsManager.updateSettings = function (settings) {
18
+ this.settings = merge(this.settings, settings);
19
+ this._normalizeContextIds();
20
+ };
21
+ DiagnosticsSettingsManager.clearSettings = function (settings) {
22
+ var _this = this;
23
+ if (settings.diagnosticSettings) {
24
+ settings.diagnosticSettings.forEach(function (setting) {
25
+ delete _this.settings[setting];
26
+ });
27
+ }
28
+ if (settings.extraDiagnosticInfo) {
29
+ settings.extraDiagnosticInfo.forEach(function (info) {
30
+ if (_this.settings.extraDiagnosticInfo && _this.settings.extraDiagnosticInfo[info]) {
31
+ delete _this.settings.extraDiagnosticInfo[info];
32
+ }
33
+ });
34
+ }
35
+ };
36
+ Object.defineProperty(DiagnosticsSettingsManager, "isInitialized", {
37
+ get: function () {
38
+ return this._initialized;
39
+ },
40
+ enumerable: false,
41
+ configurable: true
42
+ });
43
+ DiagnosticsSettingsManager._normalizeId = function (id) {
44
+ var guid = Guid.tryParse(id);
45
+ return (guid === null || guid === void 0 ? void 0 : guid.toString()) || id;
46
+ };
47
+ DiagnosticsSettingsManager._normalizeContextIds = function () {
48
+ this.settings.siteId = this._normalizeId(this.settings.siteId);
49
+ this.settings.webId = this._normalizeId(this.settings.webId);
50
+ this.settings.correlationId = this._normalizeId(this.settings.correlationId);
51
+ if (this.settings.listId) {
52
+ this.settings.listId = this._normalizeId(this.settings.listId);
53
+ if (this.settings.listItemUniqueId) {
54
+ this.settings.listItemUniqueId = this._normalizeId(this.settings.listItemUniqueId);
55
+ }
56
+ }
57
+ };
58
+ DiagnosticsSettingsManager._initialized = false;
59
+ return DiagnosticsSettingsManager;
60
+ }());
61
+ export default DiagnosticsSettingsManager;
62
+ //# sourceMappingURL=DiagnosticsSettingsManager.js.map
@@ -0,0 +1,87 @@
1
+ import type { IDiagnosticContextInfo } from './extraData/IDiagnosticContextInfo';
2
+ /**
3
+ * Diagnostics configuration
4
+ *
5
+ * @internal
6
+ */
7
+ export interface IDiagnosticsSettings {
8
+ /**
9
+ * Flag to enable logging of Diagnostics to the console
10
+ */
11
+ enableConsoleLog: boolean;
12
+ /**
13
+ * The current site id (GUID)
14
+ * Example: `"{440067a7-8e96-4446-8e0e-fafef7a9e9d9}"`
15
+ */
16
+ siteId: string;
17
+ /**
18
+ * The current web id (GUID)
19
+ * Example: `"{b29e6452-fe31-4967-872b-ea5d23dbfe07}"`
20
+ */
21
+ webId: string;
22
+ /**
23
+ * The current list id (GUID)
24
+ * Example: `"{b29e6452-fe31-4967-872b-ea5d23dbfe07}"`
25
+ */
26
+ listId?: string;
27
+ /**
28
+ * The current list item unique id (GUID)
29
+ * Example: `"{b29e6452-fe31-4967-872b-ea5d23dbfe07}"`
30
+ */
31
+ listItemUniqueId?: string;
32
+ /**
33
+ * The current correlationId (GUID)
34
+ * Example: `"{b29e6452-fe31-4967-872b-ea5d23dbfe07}"`
35
+ */
36
+ correlationId: string;
37
+ /**
38
+ * Page context info
39
+ */
40
+ contextInfo?: IDiagnosticContextInfo;
41
+ /**
42
+ * Extra diagnostic info
43
+ */
44
+ extraDiagnosticInfo?: IExtraDiagnosticInfo;
45
+ }
46
+ /**
47
+ * Extra diagnostic information not related to core configuration
48
+ *
49
+ * @internal
50
+ */
51
+ export interface IExtraDiagnosticInfo {
52
+ /**
53
+ * The id of the authoring session if user is currently editing the page.
54
+ * Session id is same across all users collaborating on the same page.
55
+ * Example: `"{b29e6452-fe31-4967-872b-ea5d23dbfe07}"`
56
+ */
57
+ authoringSessionId?: string;
58
+ /**
59
+ * Only valid in authoring session, the id of the last op that has been received by the current client.
60
+ * This id is unique and is incremented globally across the authoring session so this can be used to align
61
+ * the timing of multiple users rather than relying on browser time from different devices.
62
+ * Example: `5`
63
+ */
64
+ authoringOpSequenceId?: number;
65
+ /**
66
+ * Only valid in authoring session. This represents the number of concurrent clients in an authoring session.
67
+ * It will be updated as and when users join and leave a page edit session.
68
+ */
69
+ authoringSessionClientCount?: number;
70
+ /**
71
+ * Indicating the current authoring phase of the page.
72
+ */
73
+ hasAuthoringStarted?: boolean;
74
+ /**
75
+ * Indicating if DDS (Distributed Data Structure) is used in authoring.
76
+ */
77
+ isAuthoringUsingDDS?: boolean;
78
+ }
79
+ /**
80
+ * Options for clearing telemetry settings including top level and nested properties
81
+ */
82
+ export interface IClearSettingsOptions {
83
+ diagnosticSettings?: (keyof IDiagnosticsSettings)[];
84
+ extraDiagnosticInfo?: (keyof IExtraDiagnosticInfo)[];
85
+ }
86
+ export default IDiagnosticsSettings;
87
+ //# sourceMappingURL=IDiagnosticsSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDiagnosticsSettings.d.ts","sourceRoot":"","sources":["../src/IDiagnosticsSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAEjF;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAC;IAErC;;OAEG;IACH,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;CAC5C;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;;OAGG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,CAAC,EAAE,CAAC,MAAM,oBAAoB,CAAC,EAAE,CAAC;IACpD,mBAAmB,CAAC,EAAE,CAAC,MAAM,oBAAoB,CAAC,EAAE,CAAC;CACtD;AAED,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IDiagnosticsSettings.js.map
@@ -0,0 +1,3 @@
1
+ export declare function isAppendSuffixIfBrowserIsOfflineAtLoggingTimeKsActive(): boolean;
2
+ export declare function isTrackCopilotLicenseKSActivated(): boolean;
3
+ //# sourceMappingURL=Killswitches.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Killswitches.d.ts","sourceRoot":"","sources":["../../src/common/Killswitches.ts"],"names":[],"mappings":"AAGA,wBAAgB,qDAAqD,IAAI,OAAO,CAK/E;AAGD,wBAAgB,gCAAgC,IAAI,OAAO,CAK1D"}
@@ -0,0 +1,14 @@
1
+ import { _SPKillSwitch } from '@microsoft/sp-core-library';
2
+ // cross-project: also in sp-edit-customer-promise
3
+ export function isAppendSuffixIfBrowserIsOfflineAtLoggingTimeKsActive() {
4
+ return _SPKillSwitch.isActivated('c125685f-83e7-44c8-b602-5c21f5b748ae'
5
+ /* '06/25/2025', 'atagle -appends the " (offline)" suffix to the ASHA error code name the browser is offline at the time of logging' */
6
+ );
7
+ }
8
+ // Cross-project KS
9
+ export function isTrackCopilotLicenseKSActivated() {
10
+ return _SPKillSwitch.isActivated('2f310bfc-1afe-4707-88eb-b7e51292a330'
11
+ /* '10/08/2025', 'AntonLa - track copilot license usage across telemetry' */
12
+ );
13
+ }
14
+ //# sourceMappingURL=Killswitches.js.map
@@ -0,0 +1,6 @@
1
+ export declare const DisplayApp: {
2
+ readonly Sharepoint: "Sharepoint";
3
+ readonly Teams: "Teams";
4
+ };
5
+ export type DisplayApp = typeof DisplayApp[keyof typeof DisplayApp];
6
+ //# sourceMappingURL=DisplayApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisplayApp.d.ts","sourceRoot":"","sources":["../../src/extraData/DisplayApp.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ // eslint-disable-next-line @typescript-eslint/typedef
2
+ export var DisplayApp = {
3
+ Sharepoint: 'Sharepoint',
4
+ Teams: 'Teams'
5
+ };
6
+ //# sourceMappingURL=DisplayApp.js.map
@@ -0,0 +1,18 @@
1
+ import type { PromotedState } from './PromotedState';
2
+ import type { PageType } from './PageType';
3
+ /**
4
+ * Diagnostics context info
5
+ *
6
+ * @internal
7
+ */
8
+ export interface IDiagnosticContextInfo {
9
+ pageId: string | undefined;
10
+ isHubSite: boolean;
11
+ hubSiteId: string | undefined;
12
+ webTemplate: string;
13
+ pageType: PageType | undefined;
14
+ promotedState: PromotedState | undefined;
15
+ isEduClass: boolean | undefined;
16
+ hasCopilotLicense: boolean | undefined;
17
+ }
18
+ //# sourceMappingURL=IDiagnosticContextInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDiagnosticContextInfo.d.ts","sourceRoot":"","sources":["../../src/extraData/IDiagnosticContextInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC/B,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IACzC,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IDiagnosticContextInfo.js.map
@@ -0,0 +1,16 @@
1
+ import type { DisplayApp } from './DisplayApp';
2
+ import type { SiteType } from '../Api/Engagement/IEngagementHandler';
3
+ import type { PageType } from './PageType';
4
+ export interface IPageExtraData {
5
+ displayApp: DisplayApp;
6
+ hubSiteId: string | undefined;
7
+ isAssociatedSite: boolean;
8
+ isHub: boolean;
9
+ pageType: PageType;
10
+ pageId: string;
11
+ siteType: SiteType;
12
+ userAgent: string;
13
+ webTemplate: string;
14
+ isEduClass: boolean | undefined;
15
+ }
16
+ //# sourceMappingURL=IPageExtraData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPageExtraData.d.ts","sourceRoot":"","sources":["../../src/extraData/IPageExtraData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IPageExtraData.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Page Type
3
+ *
4
+ * @internal
5
+ */
6
+ export declare enum PageType {
7
+ News = "News",
8
+ Article = "Article",
9
+ Home = "Home",
10
+ Space = "Space",
11
+ NewsDigest = "NewsDigest"
12
+ }
13
+ //# sourceMappingURL=PageType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageType.d.ts","sourceRoot":"","sources":["../../src/extraData/PageType.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,oBAAY,QAAQ;IAClB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,UAAU,eAAe;CAC1B"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Page Type
3
+ *
4
+ * @internal
5
+ */
6
+ // This is quite similar to CurrentPage but these are simplified names that
7
+ // we want to build dashboards with.
8
+ export var PageType;
9
+ (function (PageType) {
10
+ PageType["News"] = "News";
11
+ PageType["Article"] = "Article";
12
+ PageType["Home"] = "Home";
13
+ PageType["Space"] = "Space";
14
+ PageType["NewsDigest"] = "NewsDigest";
15
+ })(PageType || (PageType = {}));
16
+ //# sourceMappingURL=PageType.js.map
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Promoted state
3
+ *
4
+ * @internal
5
+ */
6
+ export declare enum PromotedState {
7
+ /**
8
+ * Regular page (can later be promoted to news)
9
+ */
10
+ NotPromoted = 0,
11
+ /**
12
+ * News post (a page with special notifications sent out upon publishing)
13
+ */
14
+ Promoted = 2
15
+ }
16
+ //# sourceMappingURL=PromotedState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromotedState.d.ts","sourceRoot":"","sources":["../../src/extraData/PromotedState.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,oBAAY,aAAa;IACvB;;OAEG;IACH,WAAW,IAAI;IACf;;OAEG;IACH,QAAQ,IAAI;CACb"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Promoted state
3
+ *
4
+ * @internal
5
+ */
6
+ export var PromotedState;
7
+ (function (PromotedState) {
8
+ /**
9
+ * Regular page (can later be promoted to news)
10
+ */
11
+ PromotedState[PromotedState["NotPromoted"] = 0] = "NotPromoted";
12
+ /**
13
+ * News post (a page with special notifications sent out upon publishing)
14
+ */
15
+ PromotedState[PromotedState["Promoted"] = 2] = "Promoted";
16
+ })(PromotedState || (PromotedState = {}));
17
+ //# sourceMappingURL=PromotedState.js.map
@@ -0,0 +1,8 @@
1
+ export declare const WebTemplateId: {
2
+ readonly TeamSite: "1";
3
+ readonly MySite: "21";
4
+ readonly GroupSite: "64";
5
+ readonly SitePagePublishing: "68";
6
+ };
7
+ export type WebTemplateId = typeof WebTemplateId[keyof typeof WebTemplateId];
8
+ //# sourceMappingURL=WebTemplateId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebTemplateId.d.ts","sourceRoot":"","sources":["../../src/extraData/WebTemplateId.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ // One place to find the list is at
2
+ // https://onedrive.visualstudio.com/SPIN/_git/FFTScripts?path=%2Fsrc%2FCreateDBScripts%2FFFTDashboard-WebTemplateNames.sql&version=GBmaster
3
+ // eslint-disable-next-line @typescript-eslint/typedef
4
+ export var WebTemplateId = {
5
+ TeamSite: '1',
6
+ MySite: '21',
7
+ GroupSite: '64',
8
+ SitePagePublishing: '68'
9
+ };
10
+ //# sourceMappingURL=WebTemplateId.js.map
@@ -0,0 +1,5 @@
1
+ import type { IDiagnosticContextInfo } from './IDiagnosticContextInfo';
2
+ export declare function setPageExtraData(contextInfo: IDiagnosticContextInfo, extraData: {
3
+ [key: string]: unknown;
4
+ }): void;
5
+ //# sourceMappingURL=setPageExtraData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setPageExtraData.d.ts","sourceRoot":"","sources":["../../src/extraData/setPageExtraData.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGvE,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,sBAAsB,EACnC,SAAS,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACpC,IAAI,CAwDN"}
@@ -0,0 +1,66 @@
1
+ import { _BrowserUtilities } from '@microsoft/sp-core-library';
2
+ import { DisplayApp } from './DisplayApp';
3
+ import { WebTemplateId } from './WebTemplateId';
4
+ import { PromotedState } from './PromotedState';
5
+ import { PageType } from './PageType';
6
+ import { isTrackCopilotLicenseKSActivated } from '../common/Killswitches';
7
+ export function setPageExtraData(contextInfo, extraData) {
8
+ extraData.pageId = contextInfo.pageId;
9
+ extraData.isHub = contextInfo.isHubSite;
10
+ if (contextInfo.isHubSite) {
11
+ extraData.hubSiteId = contextInfo.hubSiteId;
12
+ extraData.isAssociatedSite = false;
13
+ }
14
+ else if (!contextInfo.isHubSite && contextInfo.hubSiteId) {
15
+ // If isHubSite is false, but hubSiteId is set, we call it associatedSite
16
+ extraData.isAssociatedSite = true;
17
+ }
18
+ else {
19
+ extraData.isAssociatedSite = false;
20
+ }
21
+ if (!extraData.displayApp) {
22
+ if (_BrowserUtilities.isTeamsHosted()) {
23
+ extraData.displayApp = DisplayApp.Teams;
24
+ if (contextInfo.isEduClass) {
25
+ extraData.isEduClass = true;
26
+ }
27
+ }
28
+ else {
29
+ extraData.displayApp = DisplayApp.Sharepoint;
30
+ }
31
+ }
32
+ extraData.userAgent = navigator.userAgent;
33
+ var webTemplate = contextInfo.webTemplate;
34
+ extraData.webTemplate = webTemplate;
35
+ var siteType;
36
+ if (webTemplate === WebTemplateId.TeamSite) {
37
+ siteType = 'TeamSite';
38
+ }
39
+ else if (webTemplate === WebTemplateId.GroupSite) {
40
+ siteType = 'GroupSite';
41
+ }
42
+ else if (webTemplate === WebTemplateId.SitePagePublishing) {
43
+ siteType = 'CommunicationSite';
44
+ }
45
+ else if (webTemplate === WebTemplateId.MySite) {
46
+ siteType = 'MySite';
47
+ }
48
+ var promotedState = contextInfo.promotedState;
49
+ var pageLayoutType = contextInfo.pageType;
50
+ var pageType = pageLayoutType;
51
+ if (pageLayoutType === PageType.Article) {
52
+ if (promotedState === PromotedState.NotPromoted || promotedState === undefined) {
53
+ pageType = PageType.Article;
54
+ }
55
+ else {
56
+ pageType = PageType.News;
57
+ }
58
+ }
59
+ extraData.siteType = siteType;
60
+ extraData.pageType = pageType;
61
+ extraData.isDebug = !!_BrowserUtilities.safelyAccessSessionStorage('spfx-debug');
62
+ extraData.hasCopilotLicense = !isTrackCopilotLicenseKSActivated()
63
+ ? !!contextInfo.hasCopilotLicense
64
+ : undefined;
65
+ }
66
+ //# sourceMappingURL=setPageExtraData.js.map
package/lib/index.d.ts ADDED
@@ -0,0 +1,42 @@
1
+ /**
2
+ * This package defines the internal diagnostics tools for the SharePoint Framework,
3
+ * including monitoring, trace, user engagement and performance logging.
4
+ *
5
+ * @packagedocumentation
6
+ */
7
+ export { default as _TraceLogger } from './Api/Trace/TraceLogger';
8
+ export type { ITraceHandler as _ITraceHandler, ITraceLogEvent as _ITraceLogEvent, IVerboseTraceLogEvent as _IVerboseTraceLogEvent } from './Api/Trace/ITraceHandler';
9
+ export type { default as _ILogData } from './Api/ILogData';
10
+ export type { default as _ILogErrorData } from './Api/ILogErrorData';
11
+ export type { default as _ILogVerboseData } from './Api/ILogVerboseData';
12
+ export type { default as _ILogEntry } from './Api/ILogEntry';
13
+ export type { default as _ILogSource } from './Api/ILogSource';
14
+ export type { default as _ITraceLogger } from './Api/Trace/ITraceLogger';
15
+ export { default as _LogEntry } from './Api/LogEntry';
16
+ export { default as _LogFeature } from './Api/LogFeature';
17
+ export { default as _LogSource, logSourceServiceKey as _logSourceServiceKey } from './Api/LogSource';
18
+ export { default as _LogType } from './Api/LogType';
19
+ export { default as _Diagnostics } from './Diagnostics';
20
+ export type { IDiagnosticsSettings as _IDiagnosticsSettings, IExtraDiagnosticInfo as _IExtraDiagnosticInfo } from './IDiagnosticsSettings';
21
+ export type { IDiagnosticContextInfo as _IDiagnosticContextInfo } from './extraData/IDiagnosticContextInfo';
22
+ export { PromotedState as _PromotedState } from './extraData/PromotedState';
23
+ export { PageType as _PageType } from './extraData/PageType';
24
+ export { default as _LogEvent } from './Api/Trace/LogEvent';
25
+ export { LogLevel as _LogLevel } from './Api/LogLevel';
26
+ export { default as _CircularBuffer } from './Api/LogManager/CircularBuffer';
27
+ export { default as _LogManager } from './Api/LogManager/LogManager';
28
+ export { default as _EngagementLogger } from './Api/Engagement/EngagementLogger';
29
+ export type { IEngagementHandler as _IEngagementHandler, IEngagementData as _IEngagementData, IABExperiment as _IABExperiment, SiteType as _SiteType, CurrentPage as _CurrentPage, Feature as _Feature, Component as _Component, UsageType as _UsageType } from './Api/Engagement/IEngagementHandler';
30
+ export { default as _LogHandler } from './Api/Log/LogHandler';
31
+ export { default as _QosMonitor } from './Api/Qos/QosMonitor';
32
+ export { AutoAlertableQosMonitor as _AutoAlertableQosMonitor, AutoAlertableMonitorType as _AutoAlertableMonitorType } from './Api/Qos/AutoAlertableQosMonitor';
33
+ export { QosMonitorShareFailureWithCP as _QosMonitorShareFailureWithCP } from './Api/Qos/QosMonitorShareFailureWithCP';
34
+ export type { ICustomerPromiseErrorDetails as _ICustomerPromiseErrorDetails } from './Api/Qos/CustomerPromiseInterfaces/ICustomerPromiseErrorDetails';
35
+ export type { IExtraDataForCustomerPromise as _IExtraDataForCustomerPromise } from './Api/Qos/CustomerPromiseInterfaces/IExtraDataForCustomerPromise';
36
+ export { default as _QosLogger } from './Api/Qos/QosLogger';
37
+ export type { IQosExtraData as _IQosExtraData } from './Api/Qos/IQosExtraData';
38
+ export type { IQos as _IQos } from './Api/Qos/IQos';
39
+ export type { IQosStartEvent as _IQosStartEvent } from './Api/Qos/IQosStartEvent';
40
+ export { QosResultType as _QosResultType } from './Api/Qos/QosResultType';
41
+ export { default as _ExecutionQueue } from './Api/ExecutionQueue';
42
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}