@azure/msal-browser 3.5.0 → 3.5.1-beta.1

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 (195) hide show
  1. package/dist/app/IPublicClientApplication.d.ts +51 -51
  2. package/dist/app/IPublicClientApplication.mjs +102 -102
  3. package/dist/app/PublicClientApplication.d.ts +268 -268
  4. package/dist/app/PublicClientApplication.mjs +333 -333
  5. package/dist/app/PublicClientNext.d.ts +273 -273
  6. package/dist/app/PublicClientNext.mjs +351 -351
  7. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +62 -62
  8. package/dist/broker/nativeBroker/NativeMessageHandler.mjs +254 -254
  9. package/dist/broker/nativeBroker/NativeRequest.d.ts +44 -44
  10. package/dist/broker/nativeBroker/NativeResponse.d.ts +48 -48
  11. package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +7 -7
  12. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +11 -11
  13. package/dist/cache/AsyncMemoryStorage.d.ts +51 -51
  14. package/dist/cache/AsyncMemoryStorage.mjs +132 -132
  15. package/dist/cache/BrowserCacheManager.d.ts +383 -383
  16. package/dist/cache/BrowserCacheManager.mjs +1262 -1262
  17. package/dist/cache/BrowserStorage.d.ts +11 -11
  18. package/dist/cache/BrowserStorage.mjs +32 -32
  19. package/dist/cache/CryptoKeyStore.d.ts +18 -18
  20. package/dist/cache/CryptoKeyStore.mjs +40 -40
  21. package/dist/cache/DatabaseStorage.d.ts +56 -56
  22. package/dist/cache/DatabaseStorage.mjs +190 -190
  23. package/dist/cache/IAsyncMemoryStorage.d.ts +27 -27
  24. package/dist/cache/ITokenCache.d.ts +11 -11
  25. package/dist/cache/IWindowStorage.d.ts +27 -27
  26. package/dist/cache/MemoryStorage.d.ts +11 -11
  27. package/dist/cache/MemoryStorage.mjs +31 -31
  28. package/dist/cache/TokenCache.d.ts +77 -77
  29. package/dist/cache/TokenCache.mjs +224 -224
  30. package/dist/config/Configuration.d.ts +206 -206
  31. package/dist/config/Configuration.mjs +128 -128
  32. package/dist/controllers/ControllerFactory.d.ts +4 -4
  33. package/dist/controllers/ControllerFactory.mjs +29 -29
  34. package/dist/controllers/IController.d.ts +61 -61
  35. package/dist/controllers/NestedAppAuthController.d.ts +95 -95
  36. package/dist/controllers/NestedAppAuthController.d.ts.map +1 -1
  37. package/dist/controllers/NestedAppAuthController.mjs +335 -333
  38. package/dist/controllers/NestedAppAuthController.mjs.map +1 -1
  39. package/dist/controllers/StandardController.d.ts +407 -407
  40. package/dist/controllers/StandardController.d.ts.map +1 -1
  41. package/dist/controllers/StandardController.mjs +1293 -1291
  42. package/dist/controllers/StandardController.mjs.map +1 -1
  43. package/dist/controllers/UnknownOperatingContextController.d.ts +87 -87
  44. package/dist/controllers/UnknownOperatingContextController.mjs +264 -264
  45. package/dist/crypto/BrowserCrypto.d.ts +44 -44
  46. package/dist/crypto/BrowserCrypto.mjs +93 -93
  47. package/dist/crypto/CryptoOps.d.ts +63 -63
  48. package/dist/crypto/CryptoOps.mjs +145 -145
  49. package/dist/crypto/PkceGenerator.d.ts +8 -8
  50. package/dist/crypto/PkceGenerator.mjs +54 -54
  51. package/dist/crypto/SignedHttpRequest.d.ts +30 -30
  52. package/dist/crypto/SignedHttpRequest.mjs +39 -39
  53. package/dist/encode/Base64Decode.d.ts +9 -9
  54. package/dist/encode/Base64Decode.mjs +36 -36
  55. package/dist/encode/Base64Encode.d.ts +19 -19
  56. package/dist/encode/Base64Encode.mjs +43 -43
  57. package/dist/error/BrowserAuthError.d.ts +250 -250
  58. package/dist/error/BrowserAuthError.mjs +258 -258
  59. package/dist/error/BrowserAuthErrorCodes.d.ts +45 -45
  60. package/dist/error/BrowserAuthErrorCodes.mjs +49 -49
  61. package/dist/error/BrowserConfigurationAuthError.d.ts +33 -33
  62. package/dist/error/BrowserConfigurationAuthError.mjs +40 -40
  63. package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +3 -3
  64. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +7 -7
  65. package/dist/error/NativeAuthError.d.ts +29 -29
  66. package/dist/error/NativeAuthError.mjs +60 -60
  67. package/dist/error/NativeAuthErrorCodes.d.ts +2 -2
  68. package/dist/error/NativeAuthErrorCodes.mjs +6 -6
  69. package/dist/error/NestedAppAuthError.d.ts +14 -14
  70. package/dist/error/NestedAppAuthError.mjs +23 -23
  71. package/dist/event/EventHandler.d.ts +41 -41
  72. package/dist/event/EventHandler.mjs +119 -119
  73. package/dist/event/EventMessage.d.ts +25 -25
  74. package/dist/event/EventMessage.mjs +68 -68
  75. package/dist/event/EventType.d.ts +28 -28
  76. package/dist/event/EventType.mjs +31 -31
  77. package/dist/index.d.ts +39 -39
  78. package/dist/index.mjs +1 -1
  79. package/dist/interaction_client/BaseInteractionClient.d.ts +54 -54
  80. package/dist/interaction_client/BaseInteractionClient.mjs +152 -152
  81. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
  82. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +10 -10
  83. package/dist/interaction_client/NativeInteractionClient.d.ts +140 -140
  84. package/dist/interaction_client/NativeInteractionClient.mjs +548 -548
  85. package/dist/interaction_client/PopupClient.d.ts +105 -105
  86. package/dist/interaction_client/PopupClient.mjs +432 -432
  87. package/dist/interaction_client/RedirectClient.d.ts +49 -49
  88. package/dist/interaction_client/RedirectClient.mjs +311 -311
  89. package/dist/interaction_client/SilentAuthCodeClient.d.ts +23 -23
  90. package/dist/interaction_client/SilentAuthCodeClient.mjs +57 -57
  91. package/dist/interaction_client/SilentCacheClient.d.ts +24 -24
  92. package/dist/interaction_client/SilentCacheClient.mjs +61 -61
  93. package/dist/interaction_client/SilentIframeClient.d.ts +32 -32
  94. package/dist/interaction_client/SilentIframeClient.mjs +96 -96
  95. package/dist/interaction_client/SilentRefreshClient.d.ts +20 -20
  96. package/dist/interaction_client/SilentRefreshClient.mjs +43 -43
  97. package/dist/interaction_client/StandardInteractionClient.d.ts +54 -54
  98. package/dist/interaction_client/StandardInteractionClient.mjs +222 -222
  99. package/dist/interaction_handler/InteractionHandler.d.ts +33 -33
  100. package/dist/interaction_handler/InteractionHandler.mjs +93 -93
  101. package/dist/interaction_handler/RedirectHandler.d.ts +32 -32
  102. package/dist/interaction_handler/RedirectHandler.mjs +134 -134
  103. package/dist/interaction_handler/SilentHandler.d.ts +13 -13
  104. package/dist/interaction_handler/SilentHandler.mjs +133 -133
  105. package/dist/naa/AccountInfo.d.ts +11 -12
  106. package/dist/naa/AccountInfo.d.ts.map +1 -1
  107. package/dist/naa/AccountRequests.d.ts +9 -9
  108. package/dist/naa/AuthBridge.d.ts +5 -5
  109. package/dist/naa/BridgeCapabilities.d.ts +3 -3
  110. package/dist/naa/BridgeError.d.ts +9 -9
  111. package/dist/naa/BridgeError.d.ts.map +1 -1
  112. package/dist/naa/BridgeError.mjs +7 -7
  113. package/dist/naa/BridgeError.mjs.map +1 -1
  114. package/dist/naa/BridgeProxy.d.ts +72 -71
  115. package/dist/naa/BridgeProxy.d.ts.map +1 -1
  116. package/dist/naa/BridgeProxy.mjs +152 -149
  117. package/dist/naa/BridgeProxy.mjs.map +1 -1
  118. package/dist/naa/BridgeRequest.d.ts +6 -6
  119. package/dist/naa/BridgeRequestEnvelope.d.ts +13 -13
  120. package/dist/naa/BridgeResponseEnvelope.d.ts +10 -10
  121. package/dist/naa/BridgeStatusCode.d.ts +10 -10
  122. package/dist/naa/BridgeStatusCode.mjs +15 -15
  123. package/dist/naa/IBridgeProxy.d.ts +12 -10
  124. package/dist/naa/IBridgeProxy.d.ts.map +1 -1
  125. package/dist/naa/InitializeBridgeResponse.d.ts +6 -6
  126. package/dist/naa/InitializeBridgeResponse.d.ts.map +1 -1
  127. package/dist/naa/TokenRequest.d.ts +19 -21
  128. package/dist/naa/TokenRequest.d.ts.map +1 -1
  129. package/dist/naa/TokenResponse.d.ts +15 -16
  130. package/dist/naa/TokenResponse.d.ts.map +1 -1
  131. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +23 -25
  132. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
  133. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +142 -170
  134. package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -1
  135. package/dist/navigation/INavigationClient.d.ts +16 -16
  136. package/dist/navigation/NavigationClient.d.ts +22 -22
  137. package/dist/navigation/NavigationClient.mjs +40 -40
  138. package/dist/navigation/NavigationOptions.d.ts +12 -12
  139. package/dist/network/FetchClient.d.ts +26 -26
  140. package/dist/network/FetchClient.mjs +99 -99
  141. package/dist/operatingcontext/BaseOperatingContext.d.ts +40 -40
  142. package/dist/operatingcontext/BaseOperatingContext.mjs +44 -44
  143. package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
  144. package/dist/operatingcontext/StandardOperatingContext.mjs +43 -43
  145. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +32 -32
  146. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts.map +1 -1
  147. package/dist/operatingcontext/TeamsAppOperatingContext.mjs +85 -82
  148. package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -1
  149. package/dist/operatingcontext/UnknownOperatingContext.d.ts +25 -25
  150. package/dist/operatingcontext/UnknownOperatingContext.mjs +42 -42
  151. package/dist/packageMetadata.d.ts +2 -2
  152. package/dist/packageMetadata.d.ts.map +1 -1
  153. package/dist/packageMetadata.mjs +4 -4
  154. package/dist/packageMetadata.mjs.map +1 -1
  155. package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
  156. package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
  157. package/dist/request/ClearCacheRequest.d.ts +10 -10
  158. package/dist/request/EndSessionPopupRequest.d.ts +18 -18
  159. package/dist/request/EndSessionRequest.d.ts +15 -15
  160. package/dist/request/PopupRequest.d.ts +34 -34
  161. package/dist/request/PopupWindowAttributes.d.ts +15 -15
  162. package/dist/request/RedirectRequest.d.ts +35 -35
  163. package/dist/request/SilentRequest.d.ts +32 -32
  164. package/dist/request/SsoSilentRequest.d.ts +29 -29
  165. package/dist/response/AuthenticationResult.d.ts +4 -4
  166. package/dist/response/ResponseHandler.d.ts +7 -7
  167. package/dist/response/ResponseHandler.mjs +36 -36
  168. package/dist/telemetry/BrowserPerformanceClient.d.ts +36 -36
  169. package/dist/telemetry/BrowserPerformanceClient.mjs +125 -125
  170. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
  171. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +92 -92
  172. package/dist/utils/BrowserConstants.d.ts +176 -176
  173. package/dist/utils/BrowserConstants.mjs +204 -204
  174. package/dist/utils/BrowserProtocolUtils.d.ts +11 -11
  175. package/dist/utils/BrowserProtocolUtils.mjs +21 -21
  176. package/dist/utils/BrowserUtils.d.ts +56 -56
  177. package/dist/utils/BrowserUtils.mjs +125 -125
  178. package/lib/msal-browser.cjs +17922 -17928
  179. package/lib/msal-browser.cjs.map +1 -1
  180. package/lib/msal-browser.js +17922 -17928
  181. package/lib/msal-browser.js.map +1 -1
  182. package/lib/msal-browser.min.js +59 -59
  183. package/package.json +102 -102
  184. package/src/controllers/NestedAppAuthController.ts +8 -3
  185. package/src/controllers/StandardController.ts +3 -1
  186. package/src/naa/AccountInfo.ts +3 -4
  187. package/src/naa/BridgeError.ts +4 -4
  188. package/src/naa/BridgeProxy.ts +6 -2
  189. package/src/naa/IBridgeProxy.ts +2 -0
  190. package/src/naa/InitializeBridgeResponse.ts +1 -1
  191. package/src/naa/TokenRequest.ts +0 -2
  192. package/src/naa/TokenResponse.ts +1 -2
  193. package/src/naa/mapping/NestedAppAuthAdapter.ts +72 -80
  194. package/src/operatingcontext/TeamsAppOperatingContext.ts +4 -1
  195. package/src/packageMetadata.ts +1 -1
@@ -1,133 +1,133 @@
1
- /*! @azure/msal-browser v3.5.0 2023-11-07 */
1
+ /*! @azure/msal-browser v3.5.1-beta.1 2023-11-14 */
2
2
  'use strict';
3
3
  import { PerformanceClient, Constants, Logger } from '@azure/msal-common';
4
4
  import { BrowserPerformanceMeasurement } from './BrowserPerformanceMeasurement.mjs';
5
5
  import { name, version } from '../packageMetadata.mjs';
6
6
 
7
- /*
8
- * Copyright (c) Microsoft Corporation. All rights reserved.
9
- * Licensed under the MIT License.
10
- */
11
- class BrowserPerformanceClient extends PerformanceClient {
12
- constructor(configuration, intFields) {
13
- super(configuration.auth.clientId, configuration.auth.authority || `${Constants.DEFAULT_AUTHORITY}`, new Logger(configuration.system?.loggerOptions || {}, name, version), name, version, configuration.telemetry?.application || {
14
- appName: "",
15
- appVersion: "",
16
- }, intFields);
17
- }
18
- startPerformanceMeasurement(measureName, correlationId) {
19
- return new BrowserPerformanceMeasurement(measureName, correlationId);
20
- }
21
- generateId() {
22
- return window.crypto.randomUUID();
23
- }
24
- getPageVisibility() {
25
- return document.visibilityState?.toString() || null;
26
- }
27
- deleteIncompleteSubMeasurements(inProgressEvent) {
28
- const rootEvent = this.eventsByCorrelationId.get(inProgressEvent.event.correlationId);
29
- const isRootEvent = rootEvent && rootEvent.eventId === inProgressEvent.event.eventId;
30
- const incompleteMeasurements = [];
31
- if (isRootEvent && rootEvent?.incompleteSubMeasurements) {
32
- rootEvent.incompleteSubMeasurements.forEach((subMeasurement) => {
33
- incompleteMeasurements.push({ ...subMeasurement });
34
- });
35
- }
36
- // Clean up remaining marks for incomplete sub-measurements
37
- if (incompleteMeasurements.length > 0) {
38
- BrowserPerformanceMeasurement.flushMeasurements(inProgressEvent.event.correlationId, incompleteMeasurements);
39
- }
40
- }
41
- supportsBrowserPerformanceNow() {
42
- return (typeof window !== "undefined" &&
43
- typeof window.performance !== "undefined" &&
44
- typeof window.performance.now === "function");
45
- }
46
- /**
47
- * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.
48
- * Also captures browser page visibilityState.
49
- *
50
- * @param {PerformanceEvents} measureName
51
- * @param {?string} [correlationId]
52
- * @returns {((event?: Partial<PerformanceEvent>) => PerformanceEvent| null)}
53
- */
54
- startMeasurement(measureName, correlationId) {
55
- // Capture page visibilityState and then invoke start/end measurement
56
- const startPageVisibility = this.getPageVisibility();
57
- const inProgressEvent = super.startMeasurement(measureName, correlationId);
58
- return {
59
- ...inProgressEvent,
60
- end: (event) => {
61
- const res = inProgressEvent.end({
62
- startPageVisibility,
63
- endPageVisibility: this.getPageVisibility(),
64
- ...event,
65
- });
66
- this.deleteIncompleteSubMeasurements(inProgressEvent);
67
- return res;
68
- },
69
- discard: () => {
70
- inProgressEvent.discard();
71
- this.deleteIncompleteSubMeasurements(inProgressEvent);
72
- inProgressEvent.measurement.flushMeasurement();
73
- },
74
- };
75
- }
76
- /**
77
- * Adds pre-queue time to preQueueTimeByCorrelationId map.
78
- * @param {PerformanceEvents} eventName
79
- * @param {?string} correlationId
80
- * @returns
81
- */
82
- setPreQueueTime(eventName, correlationId) {
83
- if (!this.supportsBrowserPerformanceNow()) {
84
- this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to set telemetry queue time for ${eventName}`);
85
- return;
86
- }
87
- if (!correlationId) {
88
- this.logger.trace(`BrowserPerformanceClient: correlationId for ${eventName} not provided, unable to set telemetry queue time`);
89
- return;
90
- }
91
- const preQueueEvent = this.preQueueTimeByCorrelationId.get(correlationId);
92
- /**
93
- * Manually complete queue measurement if there is an incomplete pre-queue event.
94
- * Incomplete pre-queue events are instrumentation bugs that should be fixed.
95
- */
96
- if (preQueueEvent) {
97
- this.logger.trace(`BrowserPerformanceClient: Incomplete pre-queue ${preQueueEvent.name} found`, correlationId);
98
- this.addQueueMeasurement(preQueueEvent.name, correlationId, undefined, true);
99
- }
100
- this.preQueueTimeByCorrelationId.set(correlationId, {
101
- name: eventName,
102
- time: window.performance.now(),
103
- });
104
- }
105
- /**
106
- * Calculates and adds queue time measurement for given performance event.
107
- *
108
- * @param {PerformanceEvents} eventName
109
- * @param {?string} correlationId
110
- * @param {?number} queueTime
111
- * @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements
112
- * @returns
113
- */
114
- addQueueMeasurement(eventName, correlationId, queueTime, manuallyCompleted) {
115
- if (!this.supportsBrowserPerformanceNow()) {
116
- this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to add queue measurement for ${eventName}`);
117
- return;
118
- }
119
- if (!correlationId) {
120
- this.logger.trace(`BrowserPerformanceClient: correlationId for ${eventName} not provided, unable to add queue measurement`);
121
- return;
122
- }
123
- const preQueueTime = super.getPreQueueTime(eventName, correlationId);
124
- if (!preQueueTime) {
125
- return;
126
- }
127
- const currentTime = window.performance.now();
128
- const resQueueTime = queueTime || super.calculateQueuedTime(preQueueTime, currentTime);
129
- return super.addQueueMeasurement(eventName, correlationId, resQueueTime, manuallyCompleted);
130
- }
7
+ /*
8
+ * Copyright (c) Microsoft Corporation. All rights reserved.
9
+ * Licensed under the MIT License.
10
+ */
11
+ class BrowserPerformanceClient extends PerformanceClient {
12
+ constructor(configuration, intFields) {
13
+ super(configuration.auth.clientId, configuration.auth.authority || `${Constants.DEFAULT_AUTHORITY}`, new Logger(configuration.system?.loggerOptions || {}, name, version), name, version, configuration.telemetry?.application || {
14
+ appName: "",
15
+ appVersion: "",
16
+ }, intFields);
17
+ }
18
+ startPerformanceMeasurement(measureName, correlationId) {
19
+ return new BrowserPerformanceMeasurement(measureName, correlationId);
20
+ }
21
+ generateId() {
22
+ return window.crypto.randomUUID();
23
+ }
24
+ getPageVisibility() {
25
+ return document.visibilityState?.toString() || null;
26
+ }
27
+ deleteIncompleteSubMeasurements(inProgressEvent) {
28
+ const rootEvent = this.eventsByCorrelationId.get(inProgressEvent.event.correlationId);
29
+ const isRootEvent = rootEvent && rootEvent.eventId === inProgressEvent.event.eventId;
30
+ const incompleteMeasurements = [];
31
+ if (isRootEvent && rootEvent?.incompleteSubMeasurements) {
32
+ rootEvent.incompleteSubMeasurements.forEach((subMeasurement) => {
33
+ incompleteMeasurements.push({ ...subMeasurement });
34
+ });
35
+ }
36
+ // Clean up remaining marks for incomplete sub-measurements
37
+ if (incompleteMeasurements.length > 0) {
38
+ BrowserPerformanceMeasurement.flushMeasurements(inProgressEvent.event.correlationId, incompleteMeasurements);
39
+ }
40
+ }
41
+ supportsBrowserPerformanceNow() {
42
+ return (typeof window !== "undefined" &&
43
+ typeof window.performance !== "undefined" &&
44
+ typeof window.performance.now === "function");
45
+ }
46
+ /**
47
+ * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.
48
+ * Also captures browser page visibilityState.
49
+ *
50
+ * @param {PerformanceEvents} measureName
51
+ * @param {?string} [correlationId]
52
+ * @returns {((event?: Partial<PerformanceEvent>) => PerformanceEvent| null)}
53
+ */
54
+ startMeasurement(measureName, correlationId) {
55
+ // Capture page visibilityState and then invoke start/end measurement
56
+ const startPageVisibility = this.getPageVisibility();
57
+ const inProgressEvent = super.startMeasurement(measureName, correlationId);
58
+ return {
59
+ ...inProgressEvent,
60
+ end: (event) => {
61
+ const res = inProgressEvent.end({
62
+ startPageVisibility,
63
+ endPageVisibility: this.getPageVisibility(),
64
+ ...event,
65
+ });
66
+ this.deleteIncompleteSubMeasurements(inProgressEvent);
67
+ return res;
68
+ },
69
+ discard: () => {
70
+ inProgressEvent.discard();
71
+ this.deleteIncompleteSubMeasurements(inProgressEvent);
72
+ inProgressEvent.measurement.flushMeasurement();
73
+ },
74
+ };
75
+ }
76
+ /**
77
+ * Adds pre-queue time to preQueueTimeByCorrelationId map.
78
+ * @param {PerformanceEvents} eventName
79
+ * @param {?string} correlationId
80
+ * @returns
81
+ */
82
+ setPreQueueTime(eventName, correlationId) {
83
+ if (!this.supportsBrowserPerformanceNow()) {
84
+ this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to set telemetry queue time for ${eventName}`);
85
+ return;
86
+ }
87
+ if (!correlationId) {
88
+ this.logger.trace(`BrowserPerformanceClient: correlationId for ${eventName} not provided, unable to set telemetry queue time`);
89
+ return;
90
+ }
91
+ const preQueueEvent = this.preQueueTimeByCorrelationId.get(correlationId);
92
+ /**
93
+ * Manually complete queue measurement if there is an incomplete pre-queue event.
94
+ * Incomplete pre-queue events are instrumentation bugs that should be fixed.
95
+ */
96
+ if (preQueueEvent) {
97
+ this.logger.trace(`BrowserPerformanceClient: Incomplete pre-queue ${preQueueEvent.name} found`, correlationId);
98
+ this.addQueueMeasurement(preQueueEvent.name, correlationId, undefined, true);
99
+ }
100
+ this.preQueueTimeByCorrelationId.set(correlationId, {
101
+ name: eventName,
102
+ time: window.performance.now(),
103
+ });
104
+ }
105
+ /**
106
+ * Calculates and adds queue time measurement for given performance event.
107
+ *
108
+ * @param {PerformanceEvents} eventName
109
+ * @param {?string} correlationId
110
+ * @param {?number} queueTime
111
+ * @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements
112
+ * @returns
113
+ */
114
+ addQueueMeasurement(eventName, correlationId, queueTime, manuallyCompleted) {
115
+ if (!this.supportsBrowserPerformanceNow()) {
116
+ this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to add queue measurement for ${eventName}`);
117
+ return;
118
+ }
119
+ if (!correlationId) {
120
+ this.logger.trace(`BrowserPerformanceClient: correlationId for ${eventName} not provided, unable to add queue measurement`);
121
+ return;
122
+ }
123
+ const preQueueTime = super.getPreQueueTime(eventName, correlationId);
124
+ if (!preQueueTime) {
125
+ return;
126
+ }
127
+ const currentTime = window.performance.now();
128
+ const resQueueTime = queueTime || super.calculateQueuedTime(preQueueTime, currentTime);
129
+ return super.addQueueMeasurement(eventName, correlationId, resQueueTime, manuallyCompleted);
130
+ }
131
131
  }
132
132
 
133
133
  export { BrowserPerformanceClient };
@@ -1,22 +1,22 @@
1
- import { IPerformanceMeasurement, SubMeasurement } from "@azure/msal-common";
2
- export declare class BrowserPerformanceMeasurement implements IPerformanceMeasurement {
3
- private readonly measureName;
4
- private readonly correlationId;
5
- private readonly startMark;
6
- private readonly endMark;
7
- constructor(name: string, correlationId: string);
8
- private static makeMeasureName;
9
- private static makeStartMark;
10
- private static makeEndMark;
11
- static supportsBrowserPerformance(): boolean;
12
- /**
13
- * Flush browser marks and measurements.
14
- * @param {string} correlationId
15
- * @param {SubMeasurement} measurements
16
- */
17
- static flushMeasurements(correlationId: string, measurements: SubMeasurement[]): void;
18
- startMeasurement(): void;
19
- endMeasurement(): void;
20
- flushMeasurement(): number | null;
21
- }
1
+ import { IPerformanceMeasurement, SubMeasurement } from "@azure/msal-common";
2
+ export declare class BrowserPerformanceMeasurement implements IPerformanceMeasurement {
3
+ private readonly measureName;
4
+ private readonly correlationId;
5
+ private readonly startMark;
6
+ private readonly endMark;
7
+ constructor(name: string, correlationId: string);
8
+ private static makeMeasureName;
9
+ private static makeStartMark;
10
+ private static makeEndMark;
11
+ static supportsBrowserPerformance(): boolean;
12
+ /**
13
+ * Flush browser marks and measurements.
14
+ * @param {string} correlationId
15
+ * @param {SubMeasurement} measurements
16
+ */
17
+ static flushMeasurements(correlationId: string, measurements: SubMeasurement[]): void;
18
+ startMeasurement(): void;
19
+ endMeasurement(): void;
20
+ flushMeasurement(): number | null;
21
+ }
22
22
  //# sourceMappingURL=BrowserPerformanceMeasurement.d.ts.map
@@ -1,96 +1,96 @@
1
- /*! @azure/msal-browser v3.5.0 2023-11-07 */
1
+ /*! @azure/msal-browser v3.5.1-beta.1 2023-11-14 */
2
2
  'use strict';
3
- /*
4
- * Copyright (c) Microsoft Corporation. All rights reserved.
5
- * Licensed under the MIT License.
6
- */
7
- class BrowserPerformanceMeasurement {
8
- constructor(name, correlationId) {
9
- this.correlationId = correlationId;
10
- this.measureName = BrowserPerformanceMeasurement.makeMeasureName(name, correlationId);
11
- this.startMark = BrowserPerformanceMeasurement.makeStartMark(name, correlationId);
12
- this.endMark = BrowserPerformanceMeasurement.makeEndMark(name, correlationId);
13
- }
14
- static makeMeasureName(name, correlationId) {
15
- return `msal.measure.${name}.${correlationId}`;
16
- }
17
- static makeStartMark(name, correlationId) {
18
- return `msal.start.${name}.${correlationId}`;
19
- }
20
- static makeEndMark(name, correlationId) {
21
- return `msal.end.${name}.${correlationId}`;
22
- }
23
- static supportsBrowserPerformance() {
24
- return (typeof window !== "undefined" &&
25
- typeof window.performance !== "undefined" &&
26
- typeof window.performance.mark === "function" &&
27
- typeof window.performance.measure === "function" &&
28
- typeof window.performance.clearMarks === "function" &&
29
- typeof window.performance.clearMeasures === "function" &&
30
- typeof window.performance.getEntriesByName === "function");
31
- }
32
- /**
33
- * Flush browser marks and measurements.
34
- * @param {string} correlationId
35
- * @param {SubMeasurement} measurements
36
- */
37
- static flushMeasurements(correlationId, measurements) {
38
- if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {
39
- try {
40
- measurements.forEach((measurement) => {
41
- const measureName = BrowserPerformanceMeasurement.makeMeasureName(measurement.name, correlationId);
42
- const entriesForMeasurement = window.performance.getEntriesByName(measureName, "measure");
43
- if (entriesForMeasurement.length > 0) {
44
- window.performance.clearMeasures(measureName);
45
- window.performance.clearMarks(BrowserPerformanceMeasurement.makeStartMark(measureName, correlationId));
46
- window.performance.clearMarks(BrowserPerformanceMeasurement.makeEndMark(measureName, correlationId));
47
- }
48
- });
49
- }
50
- catch (e) {
51
- // Silently catch and return null
52
- }
53
- }
54
- }
55
- startMeasurement() {
56
- if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {
57
- try {
58
- window.performance.mark(this.startMark);
59
- }
60
- catch (e) {
61
- // Silently catch
62
- }
63
- }
64
- }
65
- endMeasurement() {
66
- if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {
67
- try {
68
- window.performance.mark(this.endMark);
69
- window.performance.measure(this.measureName, this.startMark, this.endMark);
70
- }
71
- catch (e) {
72
- // Silently catch
73
- }
74
- }
75
- }
76
- flushMeasurement() {
77
- if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {
78
- try {
79
- const entriesForMeasurement = window.performance.getEntriesByName(this.measureName, "measure");
80
- if (entriesForMeasurement.length > 0) {
81
- const durationMs = entriesForMeasurement[0].duration;
82
- window.performance.clearMeasures(this.measureName);
83
- window.performance.clearMarks(this.startMark);
84
- window.performance.clearMarks(this.endMark);
85
- return durationMs;
86
- }
87
- }
88
- catch (e) {
89
- // Silently catch and return null
90
- }
91
- }
92
- return null;
93
- }
3
+ /*
4
+ * Copyright (c) Microsoft Corporation. All rights reserved.
5
+ * Licensed under the MIT License.
6
+ */
7
+ class BrowserPerformanceMeasurement {
8
+ constructor(name, correlationId) {
9
+ this.correlationId = correlationId;
10
+ this.measureName = BrowserPerformanceMeasurement.makeMeasureName(name, correlationId);
11
+ this.startMark = BrowserPerformanceMeasurement.makeStartMark(name, correlationId);
12
+ this.endMark = BrowserPerformanceMeasurement.makeEndMark(name, correlationId);
13
+ }
14
+ static makeMeasureName(name, correlationId) {
15
+ return `msal.measure.${name}.${correlationId}`;
16
+ }
17
+ static makeStartMark(name, correlationId) {
18
+ return `msal.start.${name}.${correlationId}`;
19
+ }
20
+ static makeEndMark(name, correlationId) {
21
+ return `msal.end.${name}.${correlationId}`;
22
+ }
23
+ static supportsBrowserPerformance() {
24
+ return (typeof window !== "undefined" &&
25
+ typeof window.performance !== "undefined" &&
26
+ typeof window.performance.mark === "function" &&
27
+ typeof window.performance.measure === "function" &&
28
+ typeof window.performance.clearMarks === "function" &&
29
+ typeof window.performance.clearMeasures === "function" &&
30
+ typeof window.performance.getEntriesByName === "function");
31
+ }
32
+ /**
33
+ * Flush browser marks and measurements.
34
+ * @param {string} correlationId
35
+ * @param {SubMeasurement} measurements
36
+ */
37
+ static flushMeasurements(correlationId, measurements) {
38
+ if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {
39
+ try {
40
+ measurements.forEach((measurement) => {
41
+ const measureName = BrowserPerformanceMeasurement.makeMeasureName(measurement.name, correlationId);
42
+ const entriesForMeasurement = window.performance.getEntriesByName(measureName, "measure");
43
+ if (entriesForMeasurement.length > 0) {
44
+ window.performance.clearMeasures(measureName);
45
+ window.performance.clearMarks(BrowserPerformanceMeasurement.makeStartMark(measureName, correlationId));
46
+ window.performance.clearMarks(BrowserPerformanceMeasurement.makeEndMark(measureName, correlationId));
47
+ }
48
+ });
49
+ }
50
+ catch (e) {
51
+ // Silently catch and return null
52
+ }
53
+ }
54
+ }
55
+ startMeasurement() {
56
+ if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {
57
+ try {
58
+ window.performance.mark(this.startMark);
59
+ }
60
+ catch (e) {
61
+ // Silently catch
62
+ }
63
+ }
64
+ }
65
+ endMeasurement() {
66
+ if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {
67
+ try {
68
+ window.performance.mark(this.endMark);
69
+ window.performance.measure(this.measureName, this.startMark, this.endMark);
70
+ }
71
+ catch (e) {
72
+ // Silently catch
73
+ }
74
+ }
75
+ }
76
+ flushMeasurement() {
77
+ if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {
78
+ try {
79
+ const entriesForMeasurement = window.performance.getEntriesByName(this.measureName, "measure");
80
+ if (entriesForMeasurement.length > 0) {
81
+ const durationMs = entriesForMeasurement[0].duration;
82
+ window.performance.clearMeasures(this.measureName);
83
+ window.performance.clearMarks(this.startMark);
84
+ window.performance.clearMarks(this.endMark);
85
+ return durationMs;
86
+ }
87
+ }
88
+ catch (e) {
89
+ // Silently catch and return null
90
+ }
91
+ }
92
+ return null;
93
+ }
94
94
  }
95
95
 
96
96
  export { BrowserPerformanceMeasurement };