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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/dist/app/IPublicClientApplication.d.ts +51 -51
  2. package/dist/app/IPublicClientApplication.mjs +102 -102
  3. package/dist/app/IPublicClientApplication.mjs.map +1 -1
  4. package/dist/app/PublicClientApplication.d.ts +269 -268
  5. package/dist/app/PublicClientApplication.d.ts.map +1 -1
  6. package/dist/app/PublicClientApplication.mjs +333 -333
  7. package/dist/app/PublicClientApplication.mjs.map +1 -1
  8. package/dist/app/PublicClientNext.d.ts +273 -273
  9. package/dist/app/PublicClientNext.mjs +351 -351
  10. package/dist/app/PublicClientNext.mjs.map +1 -1
  11. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +62 -62
  12. package/dist/broker/nativeBroker/NativeMessageHandler.mjs +254 -254
  13. package/dist/broker/nativeBroker/NativeMessageHandler.mjs.map +1 -1
  14. package/dist/broker/nativeBroker/NativeRequest.d.ts +44 -44
  15. package/dist/broker/nativeBroker/NativeResponse.d.ts +48 -48
  16. package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +7 -7
  17. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +11 -11
  18. package/dist/broker/nativeBroker/NativeStatusCodes.mjs.map +1 -1
  19. package/dist/cache/AsyncMemoryStorage.d.ts +51 -51
  20. package/dist/cache/AsyncMemoryStorage.mjs +132 -132
  21. package/dist/cache/AsyncMemoryStorage.mjs.map +1 -1
  22. package/dist/cache/BrowserCacheManager.d.ts +395 -383
  23. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  24. package/dist/cache/BrowserCacheManager.mjs +1283 -1263
  25. package/dist/cache/BrowserCacheManager.mjs.map +1 -1
  26. package/dist/cache/BrowserStorage.d.ts +11 -11
  27. package/dist/cache/BrowserStorage.mjs +32 -32
  28. package/dist/cache/BrowserStorage.mjs.map +1 -1
  29. package/dist/cache/CryptoKeyStore.d.ts +18 -18
  30. package/dist/cache/CryptoKeyStore.mjs +40 -40
  31. package/dist/cache/CryptoKeyStore.mjs.map +1 -1
  32. package/dist/cache/DatabaseStorage.d.ts +56 -56
  33. package/dist/cache/DatabaseStorage.mjs +190 -190
  34. package/dist/cache/DatabaseStorage.mjs.map +1 -1
  35. package/dist/cache/IAsyncMemoryStorage.d.ts +27 -27
  36. package/dist/cache/ITokenCache.d.ts +11 -11
  37. package/dist/cache/IWindowStorage.d.ts +27 -27
  38. package/dist/cache/MemoryStorage.d.ts +11 -11
  39. package/dist/cache/MemoryStorage.mjs +31 -31
  40. package/dist/cache/MemoryStorage.mjs.map +1 -1
  41. package/dist/cache/TokenCache.d.ts +77 -77
  42. package/dist/cache/TokenCache.d.ts.map +1 -1
  43. package/dist/cache/TokenCache.mjs +223 -225
  44. package/dist/cache/TokenCache.mjs.map +1 -1
  45. package/dist/config/Configuration.d.ts +206 -206
  46. package/dist/config/Configuration.d.ts.map +1 -1
  47. package/dist/config/Configuration.mjs +128 -128
  48. package/dist/config/Configuration.mjs.map +1 -1
  49. package/dist/controllers/ControllerFactory.d.ts +4 -4
  50. package/dist/controllers/ControllerFactory.d.ts.map +1 -1
  51. package/dist/controllers/ControllerFactory.mjs +29 -29
  52. package/dist/controllers/ControllerFactory.mjs.map +1 -1
  53. package/dist/controllers/IController.d.ts +61 -61
  54. package/dist/controllers/NestedAppAuthController.d.ts +95 -95
  55. package/dist/controllers/NestedAppAuthController.mjs +334 -334
  56. package/dist/controllers/NestedAppAuthController.mjs.map +1 -1
  57. package/dist/controllers/StandardController.d.ts +407 -407
  58. package/dist/controllers/StandardController.d.ts.map +1 -1
  59. package/dist/controllers/StandardController.mjs +1307 -1294
  60. package/dist/controllers/StandardController.mjs.map +1 -1
  61. package/dist/controllers/UnknownOperatingContextController.d.ts +87 -87
  62. package/dist/controllers/UnknownOperatingContextController.mjs +264 -264
  63. package/dist/controllers/UnknownOperatingContextController.mjs.map +1 -1
  64. package/dist/crypto/BrowserCrypto.d.ts +44 -44
  65. package/dist/crypto/BrowserCrypto.mjs +93 -93
  66. package/dist/crypto/BrowserCrypto.mjs.map +1 -1
  67. package/dist/crypto/CryptoOps.d.ts +63 -63
  68. package/dist/crypto/CryptoOps.mjs +145 -145
  69. package/dist/crypto/CryptoOps.mjs.map +1 -1
  70. package/dist/crypto/PkceGenerator.d.ts +8 -8
  71. package/dist/crypto/PkceGenerator.mjs +54 -54
  72. package/dist/crypto/PkceGenerator.mjs.map +1 -1
  73. package/dist/crypto/SignedHttpRequest.d.ts +30 -30
  74. package/dist/crypto/SignedHttpRequest.mjs +39 -39
  75. package/dist/crypto/SignedHttpRequest.mjs.map +1 -1
  76. package/dist/encode/Base64Decode.d.ts +9 -9
  77. package/dist/encode/Base64Decode.mjs +36 -36
  78. package/dist/encode/Base64Decode.mjs.map +1 -1
  79. package/dist/encode/Base64Encode.d.ts +19 -19
  80. package/dist/encode/Base64Encode.mjs +43 -43
  81. package/dist/encode/Base64Encode.mjs.map +1 -1
  82. package/dist/error/BrowserAuthError.d.ts +250 -250
  83. package/dist/error/BrowserAuthError.mjs +258 -258
  84. package/dist/error/BrowserAuthError.mjs.map +1 -1
  85. package/dist/error/BrowserAuthErrorCodes.d.ts +45 -45
  86. package/dist/error/BrowserAuthErrorCodes.mjs +49 -49
  87. package/dist/error/BrowserAuthErrorCodes.mjs.map +1 -1
  88. package/dist/error/BrowserConfigurationAuthError.d.ts +33 -33
  89. package/dist/error/BrowserConfigurationAuthError.mjs +40 -40
  90. package/dist/error/BrowserConfigurationAuthError.mjs.map +1 -1
  91. package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +3 -3
  92. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +7 -7
  93. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs.map +1 -1
  94. package/dist/error/NativeAuthError.d.ts +29 -29
  95. package/dist/error/NativeAuthError.mjs +60 -60
  96. package/dist/error/NativeAuthError.mjs.map +1 -1
  97. package/dist/error/NativeAuthErrorCodes.d.ts +2 -2
  98. package/dist/error/NativeAuthErrorCodes.mjs +6 -6
  99. package/dist/error/NativeAuthErrorCodes.mjs.map +1 -1
  100. package/dist/error/NestedAppAuthError.d.ts +14 -14
  101. package/dist/error/NestedAppAuthError.mjs +23 -23
  102. package/dist/error/NestedAppAuthError.mjs.map +1 -1
  103. package/dist/event/EventHandler.d.ts +41 -41
  104. package/dist/event/EventHandler.mjs +119 -119
  105. package/dist/event/EventHandler.mjs.map +1 -1
  106. package/dist/event/EventMessage.d.ts +25 -25
  107. package/dist/event/EventMessage.mjs +68 -68
  108. package/dist/event/EventMessage.mjs.map +1 -1
  109. package/dist/event/EventType.d.ts +28 -28
  110. package/dist/event/EventType.mjs +31 -31
  111. package/dist/event/EventType.mjs.map +1 -1
  112. package/dist/index.d.ts +39 -39
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.mjs +1 -1
  115. package/dist/interaction_client/BaseInteractionClient.d.ts +54 -54
  116. package/dist/interaction_client/BaseInteractionClient.mjs +152 -152
  117. package/dist/interaction_client/BaseInteractionClient.mjs.map +1 -1
  118. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
  119. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +10 -10
  120. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs.map +1 -1
  121. package/dist/interaction_client/NativeInteractionClient.d.ts +140 -140
  122. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  123. package/dist/interaction_client/NativeInteractionClient.mjs +541 -549
  124. package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
  125. package/dist/interaction_client/PopupClient.d.ts +105 -105
  126. package/dist/interaction_client/PopupClient.mjs +432 -432
  127. package/dist/interaction_client/PopupClient.mjs.map +1 -1
  128. package/dist/interaction_client/RedirectClient.d.ts +49 -49
  129. package/dist/interaction_client/RedirectClient.mjs +311 -311
  130. package/dist/interaction_client/RedirectClient.mjs.map +1 -1
  131. package/dist/interaction_client/SilentAuthCodeClient.d.ts +23 -23
  132. package/dist/interaction_client/SilentAuthCodeClient.mjs +57 -57
  133. package/dist/interaction_client/SilentAuthCodeClient.mjs.map +1 -1
  134. package/dist/interaction_client/SilentCacheClient.d.ts +24 -24
  135. package/dist/interaction_client/SilentCacheClient.mjs +61 -61
  136. package/dist/interaction_client/SilentCacheClient.mjs.map +1 -1
  137. package/dist/interaction_client/SilentIframeClient.d.ts +32 -32
  138. package/dist/interaction_client/SilentIframeClient.mjs +96 -96
  139. package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
  140. package/dist/interaction_client/SilentRefreshClient.d.ts +20 -20
  141. package/dist/interaction_client/SilentRefreshClient.d.ts.map +1 -1
  142. package/dist/interaction_client/SilentRefreshClient.mjs +47 -43
  143. package/dist/interaction_client/SilentRefreshClient.mjs.map +1 -1
  144. package/dist/interaction_client/StandardInteractionClient.d.ts +54 -54
  145. package/dist/interaction_client/StandardInteractionClient.mjs +222 -222
  146. package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
  147. package/dist/interaction_handler/InteractionHandler.d.ts +33 -33
  148. package/dist/interaction_handler/InteractionHandler.mjs +93 -93
  149. package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
  150. package/dist/interaction_handler/RedirectHandler.d.ts +32 -32
  151. package/dist/interaction_handler/RedirectHandler.mjs +134 -134
  152. package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
  153. package/dist/interaction_handler/SilentHandler.d.ts +13 -13
  154. package/dist/interaction_handler/SilentHandler.mjs +133 -133
  155. package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
  156. package/dist/naa/AccountInfo.d.ts +11 -11
  157. package/dist/naa/AuthBridge.d.ts +8 -5
  158. package/dist/naa/AuthBridge.d.ts.map +1 -1
  159. package/dist/naa/AuthResult.d.ts +7 -0
  160. package/dist/naa/AuthResult.d.ts.map +1 -0
  161. package/dist/naa/BridgeCapabilities.d.ts +3 -3
  162. package/dist/naa/BridgeError.d.ts +9 -9
  163. package/dist/naa/BridgeError.mjs +7 -7
  164. package/dist/naa/BridgeError.mjs.map +1 -1
  165. package/dist/naa/BridgeProxy.d.ts +68 -72
  166. package/dist/naa/BridgeProxy.d.ts.map +1 -1
  167. package/dist/naa/BridgeProxy.mjs +155 -152
  168. package/dist/naa/BridgeProxy.mjs.map +1 -1
  169. package/dist/naa/BridgeRequest.d.ts +7 -6
  170. package/dist/naa/BridgeRequest.d.ts.map +1 -1
  171. package/dist/naa/BridgeRequestEnvelope.d.ts +12 -13
  172. package/dist/naa/BridgeRequestEnvelope.d.ts.map +1 -1
  173. package/dist/naa/BridgeResponseEnvelope.d.ts +13 -10
  174. package/dist/naa/BridgeResponseEnvelope.d.ts.map +1 -1
  175. package/dist/naa/BridgeStatusCode.d.ts +11 -10
  176. package/dist/naa/BridgeStatusCode.d.ts.map +1 -1
  177. package/dist/naa/BridgeStatusCode.mjs +15 -16
  178. package/dist/naa/BridgeStatusCode.mjs.map +1 -1
  179. package/dist/naa/IBridgeProxy.d.ts +10 -12
  180. package/dist/naa/IBridgeProxy.d.ts.map +1 -1
  181. package/dist/naa/{InitializeBridgeResponse.d.ts → InitContext.d.ts} +7 -7
  182. package/dist/naa/InitContext.d.ts.map +1 -0
  183. package/dist/naa/TokenRequest.d.ts +18 -19
  184. package/dist/naa/TokenRequest.d.ts.map +1 -1
  185. package/dist/naa/TokenResponse.d.ts +13 -15
  186. package/dist/naa/TokenResponse.d.ts.map +1 -1
  187. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +23 -23
  188. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
  189. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +141 -141
  190. package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -1
  191. package/dist/navigation/INavigationClient.d.ts +16 -16
  192. package/dist/navigation/NavigationClient.d.ts +22 -22
  193. package/dist/navigation/NavigationClient.mjs +40 -40
  194. package/dist/navigation/NavigationClient.mjs.map +1 -1
  195. package/dist/navigation/NavigationOptions.d.ts +12 -12
  196. package/dist/network/FetchClient.d.ts +26 -26
  197. package/dist/network/FetchClient.mjs +99 -99
  198. package/dist/network/FetchClient.mjs.map +1 -1
  199. package/dist/operatingcontext/BaseOperatingContext.d.ts +41 -40
  200. package/dist/operatingcontext/BaseOperatingContext.d.ts.map +1 -1
  201. package/dist/operatingcontext/BaseOperatingContext.mjs +96 -45
  202. package/dist/operatingcontext/BaseOperatingContext.mjs.map +1 -1
  203. package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
  204. package/dist/operatingcontext/StandardOperatingContext.mjs +43 -43
  205. package/dist/operatingcontext/StandardOperatingContext.mjs.map +1 -1
  206. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +32 -32
  207. package/dist/operatingcontext/TeamsAppOperatingContext.mjs +85 -85
  208. package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -1
  209. package/dist/operatingcontext/UnknownOperatingContext.d.ts +25 -25
  210. package/dist/operatingcontext/UnknownOperatingContext.mjs +42 -42
  211. package/dist/operatingcontext/UnknownOperatingContext.mjs.map +1 -1
  212. package/dist/packageMetadata.d.ts +2 -2
  213. package/dist/packageMetadata.d.ts.map +1 -1
  214. package/dist/packageMetadata.mjs +4 -4
  215. package/dist/packageMetadata.mjs.map +1 -1
  216. package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
  217. package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
  218. package/dist/request/ClearCacheRequest.d.ts +10 -10
  219. package/dist/request/EndSessionPopupRequest.d.ts +18 -18
  220. package/dist/request/EndSessionRequest.d.ts +15 -15
  221. package/dist/request/PopupRequest.d.ts +34 -34
  222. package/dist/request/PopupWindowAttributes.d.ts +15 -15
  223. package/dist/request/RedirectRequest.d.ts +35 -35
  224. package/dist/request/SilentRequest.d.ts +32 -32
  225. package/dist/request/SsoSilentRequest.d.ts +29 -29
  226. package/dist/response/AuthenticationResult.d.ts +4 -4
  227. package/dist/response/ResponseHandler.d.ts +7 -7
  228. package/dist/response/ResponseHandler.mjs +36 -36
  229. package/dist/response/ResponseHandler.mjs.map +1 -1
  230. package/dist/telemetry/BrowserPerformanceClient.d.ts +34 -36
  231. package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  232. package/dist/telemetry/BrowserPerformanceClient.mjs +163 -126
  233. package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -1
  234. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
  235. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +92 -92
  236. package/dist/telemetry/BrowserPerformanceMeasurement.mjs.map +1 -1
  237. package/dist/utils/BrowserConstants.d.ts +180 -176
  238. package/dist/utils/BrowserConstants.d.ts.map +1 -1
  239. package/dist/utils/BrowserConstants.mjs +213 -205
  240. package/dist/utils/BrowserConstants.mjs.map +1 -1
  241. package/dist/utils/BrowserProtocolUtils.d.ts +11 -11
  242. package/dist/utils/BrowserProtocolUtils.mjs +21 -21
  243. package/dist/utils/BrowserProtocolUtils.mjs.map +1 -1
  244. package/dist/utils/BrowserUtils.d.ts +56 -56
  245. package/dist/utils/BrowserUtils.mjs +125 -125
  246. package/dist/utils/BrowserUtils.mjs.map +1 -1
  247. package/lib/msal-browser.cjs +18304 -17929
  248. package/lib/msal-browser.cjs.map +1 -1
  249. package/lib/msal-browser.js +18304 -17929
  250. package/lib/msal-browser.js.map +1 -1
  251. package/lib/msal-browser.min.js +66 -68
  252. package/package.json +103 -102
  253. package/src/app/PublicClientApplication.ts +2 -1
  254. package/src/cache/BrowserCacheManager.ts +38 -23
  255. package/src/cache/DatabaseStorage.ts +1 -1
  256. package/src/cache/TokenCache.ts +34 -29
  257. package/src/config/Configuration.ts +1 -1
  258. package/src/controllers/ControllerFactory.ts +3 -5
  259. package/src/controllers/StandardController.ts +53 -26
  260. package/src/crypto/CryptoOps.ts +1 -1
  261. package/src/crypto/SignedHttpRequest.ts +1 -1
  262. package/src/index.ts +1 -0
  263. package/src/interaction_client/BaseInteractionClient.ts +2 -2
  264. package/src/interaction_client/NativeInteractionClient.ts +24 -20
  265. package/src/interaction_client/PopupClient.ts +1 -1
  266. package/src/interaction_client/RedirectClient.ts +3 -3
  267. package/src/interaction_client/SilentAuthCodeClient.ts +1 -1
  268. package/src/interaction_client/SilentRefreshClient.ts +8 -0
  269. package/src/interaction_client/StandardInteractionClient.ts +1 -1
  270. package/src/interaction_handler/SilentHandler.ts +2 -2
  271. package/src/naa/AuthBridge.ts +3 -2
  272. package/src/naa/AuthResult.ts +12 -0
  273. package/src/naa/BridgeProxy.ts +64 -71
  274. package/src/naa/BridgeRequest.ts +6 -2
  275. package/src/naa/BridgeRequestEnvelope.ts +1 -13
  276. package/src/naa/BridgeResponseEnvelope.ts +5 -7
  277. package/src/naa/BridgeStatusCode.ts +12 -10
  278. package/src/naa/IBridgeProxy.ts +3 -14
  279. package/src/naa/{InitializeBridgeResponse.ts → InitContext.ts} +1 -1
  280. package/src/naa/TokenRequest.ts +1 -2
  281. package/src/naa/TokenResponse.ts +1 -4
  282. package/src/naa/mapping/NestedAppAuthAdapter.ts +19 -19
  283. package/src/operatingcontext/BaseOperatingContext.ts +64 -7
  284. package/src/packageMetadata.ts +1 -1
  285. package/src/telemetry/BrowserPerformanceClient.ts +95 -42
  286. package/src/utils/BrowserConstants.ts +11 -0
  287. package/dist/naa/AccountRequests.d.ts +0 -10
  288. package/dist/naa/AccountRequests.d.ts.map +0 -1
  289. package/dist/naa/InitializeBridgeResponse.d.ts.map +0 -1
  290. package/src/naa/AccountRequests.ts +0 -16
@@ -1,133 +1,170 @@
1
- /*! @azure/msal-browser v3.5.1-beta.1 2023-11-14 */
1
+ /*! @azure/msal-browser v3.7.0 2024-01-09 */
2
2
  'use strict';
3
3
  import { PerformanceClient, Constants, Logger } from '@azure/msal-common';
4
- import { BrowserPerformanceMeasurement } from './BrowserPerformanceMeasurement.mjs';
5
4
  import { name, version } from '../packageMetadata.mjs';
5
+ import { BrowserCacheLocation, BROWSER_PERF_ENABLED_KEY } from '../utils/BrowserConstants.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
+ /**
12
+ * Returns browser performance measurement module if session flag is enabled. Returns undefined otherwise.
13
+ */
14
+ function getPerfMeasurementModule() {
15
+ let sessionStorage;
16
+ try {
17
+ sessionStorage = window[BrowserCacheLocation.SessionStorage];
18
+ const perfEnabled = sessionStorage?.getItem(BROWSER_PERF_ENABLED_KEY);
19
+ if (Number(perfEnabled) === 1) {
20
+ return import('./BrowserPerformanceMeasurement.mjs');
21
+ }
22
+ // Mute errors if it's a non-browser environment or cookies are blocked.
23
+ }
24
+ catch (e) { }
25
+ return undefined;
26
+ }
27
+ /**
28
+ * Returns boolean, indicating whether browser supports window.performance.now() function.
29
+ */
30
+ function supportsBrowserPerformanceNow() {
31
+ return (typeof window !== "undefined" &&
32
+ typeof window.performance !== "undefined" &&
33
+ typeof window.performance.now === "function");
34
+ }
35
+ /**
36
+ * Returns event duration in milliseconds using window performance API if available. Returns undefined otherwise.
37
+ * @param startTime {DOMHighResTimeStamp | undefined}
38
+ * @returns {number | undefined}
39
+ */
40
+ function getPerfDurationMs(startTime) {
41
+ if (!startTime || !supportsBrowserPerformanceNow()) {
42
+ return undefined;
43
+ }
44
+ return Math.round(window.performance.now() - startTime);
45
+ }
46
+ class BrowserPerformanceClient extends PerformanceClient {
47
+ constructor(configuration, intFields) {
48
+ super(configuration.auth.clientId, configuration.auth.authority || `${Constants.DEFAULT_AUTHORITY}`, new Logger(configuration.system?.loggerOptions || {}, name, version), name, version, configuration.telemetry?.application || {
49
+ appName: "",
50
+ appVersion: "",
51
+ }, intFields);
52
+ }
53
+ generateId() {
54
+ return window.crypto.randomUUID();
55
+ }
56
+ getPageVisibility() {
57
+ return document.visibilityState?.toString() || null;
58
+ }
59
+ deleteIncompleteSubMeasurements(inProgressEvent) {
60
+ void getPerfMeasurementModule()?.then((module) => {
61
+ const rootEvent = this.eventsByCorrelationId.get(inProgressEvent.event.correlationId);
62
+ const isRootEvent = rootEvent &&
63
+ rootEvent.eventId === inProgressEvent.event.eventId;
64
+ const incompleteMeasurements = [];
65
+ if (isRootEvent && rootEvent?.incompleteSubMeasurements) {
66
+ rootEvent.incompleteSubMeasurements.forEach((subMeasurement) => {
67
+ incompleteMeasurements.push({ ...subMeasurement });
68
+ });
69
+ }
70
+ // Clean up remaining marks for incomplete sub-measurements
71
+ module.BrowserPerformanceMeasurement.flushMeasurements(inProgressEvent.event.correlationId, incompleteMeasurements);
72
+ });
73
+ }
74
+ /**
75
+ * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.
76
+ * Also captures browser page visibilityState.
77
+ *
78
+ * @param {PerformanceEvents} measureName
79
+ * @param {?string} [correlationId]
80
+ * @returns {((event?: Partial<PerformanceEvent>) => PerformanceEvent| null)}
81
+ */
82
+ startMeasurement(measureName, correlationId) {
83
+ // Capture page visibilityState and then invoke start/end measurement
84
+ const startPageVisibility = this.getPageVisibility();
85
+ const inProgressEvent = super.startMeasurement(measureName, correlationId);
86
+ const startTime = supportsBrowserPerformanceNow()
87
+ ? window.performance.now()
88
+ : undefined;
89
+ const browserMeasurement = getPerfMeasurementModule()?.then((module) => {
90
+ return new module.BrowserPerformanceMeasurement(measureName, inProgressEvent.event.correlationId);
91
+ });
92
+ void browserMeasurement?.then((measurement) => measurement.startMeasurement());
93
+ return {
94
+ ...inProgressEvent,
95
+ end: (event) => {
96
+ const res = inProgressEvent.end({
97
+ ...event,
98
+ startPageVisibility,
99
+ endPageVisibility: this.getPageVisibility(),
100
+ durationMs: getPerfDurationMs(startTime),
101
+ });
102
+ void browserMeasurement?.then((measurement) => measurement.endMeasurement());
103
+ this.deleteIncompleteSubMeasurements(inProgressEvent);
104
+ return res;
105
+ },
106
+ discard: () => {
107
+ inProgressEvent.discard();
108
+ void browserMeasurement?.then((measurement) => measurement.flushMeasurement());
109
+ this.deleteIncompleteSubMeasurements(inProgressEvent);
110
+ },
111
+ };
112
+ }
113
+ /**
114
+ * Adds pre-queue time to preQueueTimeByCorrelationId map.
115
+ * @param {PerformanceEvents} eventName
116
+ * @param {?string} correlationId
117
+ * @returns
118
+ */
119
+ setPreQueueTime(eventName, correlationId) {
120
+ if (!supportsBrowserPerformanceNow()) {
121
+ this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to set telemetry queue time for ${eventName}`);
122
+ return;
123
+ }
124
+ if (!correlationId) {
125
+ this.logger.trace(`BrowserPerformanceClient: correlationId for ${eventName} not provided, unable to set telemetry queue time`);
126
+ return;
127
+ }
128
+ const preQueueEvent = this.preQueueTimeByCorrelationId.get(correlationId);
129
+ /**
130
+ * Manually complete queue measurement if there is an incomplete pre-queue event.
131
+ * Incomplete pre-queue events are instrumentation bugs that should be fixed.
132
+ */
133
+ if (preQueueEvent) {
134
+ this.logger.trace(`BrowserPerformanceClient: Incomplete pre-queue ${preQueueEvent.name} found`, correlationId);
135
+ this.addQueueMeasurement(preQueueEvent.name, correlationId, undefined, true);
136
+ }
137
+ this.preQueueTimeByCorrelationId.set(correlationId, {
138
+ name: eventName,
139
+ time: window.performance.now(),
140
+ });
141
+ }
142
+ /**
143
+ * Calculates and adds queue time measurement for given performance event.
144
+ *
145
+ * @param {PerformanceEvents} eventName
146
+ * @param {?string} correlationId
147
+ * @param {?number} queueTime
148
+ * @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements
149
+ * @returns
150
+ */
151
+ addQueueMeasurement(eventName, correlationId, queueTime, manuallyCompleted) {
152
+ if (!supportsBrowserPerformanceNow()) {
153
+ this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to add queue measurement for ${eventName}`);
154
+ return;
155
+ }
156
+ if (!correlationId) {
157
+ this.logger.trace(`BrowserPerformanceClient: correlationId for ${eventName} not provided, unable to add queue measurement`);
158
+ return;
159
+ }
160
+ const preQueueTime = super.getPreQueueTime(eventName, correlationId);
161
+ if (!preQueueTime) {
162
+ return;
163
+ }
164
+ const currentTime = window.performance.now();
165
+ const resQueueTime = queueTime || super.calculateQueuedTime(preQueueTime, currentTime);
166
+ return super.addQueueMeasurement(eventName, correlationId, resQueueTime, manuallyCompleted);
167
+ }
131
168
  }
132
169
 
133
170
  export { BrowserPerformanceClient };
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserPerformanceClient.mjs","sources":["../../src/telemetry/BrowserPerformanceClient.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAKA;AAaA;AAGA;;AAsCI,MAAuC,wBAAA,SAAA,iBAAA,CAAA;AAuBvC,IAAA,WAAA,CAAA,aAAA,EAAA,SAAwC,EAAA;AAQxC,QAAA,KAAA,CAAA,aAAA,CAAA,IAAA,CAAA,QAAA,EAAA,aAAA,CAAA,IAAA,CAAA,SAAA,IAAA,CAAA,EAAA,SAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,IAAA,MAAA,CAAA,aAAA,CAAA,MAAA,EAAA,aAAA,IAAA,EAAA,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,IAAA,EAAA,OAAA,EAAA,aAAA,CAAA,SAAA,EAAA,WAAA,IAAA;;;;;;;AAOG,KAAA;IACH,UAAgB,GAAA;AAkChB,QAAA,OAAA,MAAA,CAAA,MAAA,CAAA,UAAA,EAAA,CAAA;;;;;AAKG,IAAA,+BAAA,CAAA,eAAA,EAAA;QACY,MAAA,SACF,GAAA,IAAA,CAAE,yCACW,CAAA,KACnB,CAAA,aAAA,CAAA,CAAA;AAuCP,QAAA,MAAA,WAAA,GAAA,SAAA,IAAA,SAAA,CAAA,OAAA,KAAA,eAAA,CAAA,KAAA,CAAA,OAAA,CAAA;;;;;;;;AAQG,QAAA,IAAA,sBAAA,CAAA,MAAA,GAAA,CAAA,EAAA;YACgB,6BACE,kBACD,CAAM,gBACb,mBACT,EAAA,sBACG,CAAA,CAAA;AA+BV,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"BrowserPerformanceClient.mjs","sources":["../../src/telemetry/BrowserPerformanceClient.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -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.1-beta.1 2023-11-14 */
1
+ /*! @azure/msal-browser v3.7.0 2024-01-09 */
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 };
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserPerformanceMeasurement.mjs","sources":["../../src/telemetry/BrowserPerformanceMeasurement.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;AAEA;AACI;AACA;AACA,MAAQ,6BAA2B,CAAA;AACnC,IAAA,WAAQ,CAAA,IAAQ,EAAC,aAAgB,EAAA;AAErB,QAAA,IAAA,CAAA,aAAM,GAAQ,aAAA,CAAa;QAgBhC,IAAC,CAAM,WAAgB,GAAA,6BAAA,CAAA,eAAA,CAAA,IAAA,EAAA,aAAA,CAAA,CAAA;QAIvB,IAAC,CAAM,SAAc,GAAA,6BAAA,CAAA,aAAA,CAAA,IAAA,EAAA,aAAA,CAAA,CAAA;QAIrB,IAAC,CAAM,OAAY,GAAA,6BAAA,CAAA,WAAA,CAAA,IAAA,EAAA,aAAA,CAAA,CAAA;KAIpB;AAYN,IAAA,OAAA,eAAA,CAAA,IAAA,EAAA,aAAA,EAAA;;;;AAIG,QAAA,OAAA,CAAA,WAAA,EAAA,IAAA,CAAA,CAAA,EAAA,aAAA,CAAA,CAAA,CAAA;;AAwCH,IAAA,OAAA,gBAAwB,EAAA,aAAA,EAAA;AAUxB,QAAA,OAAA,CAAA,SAAsB,EAAA,IAAA,CAAA,CAAA,EAAA,aAAA,CAAA,CAAA,CAAA;KAeN;AAqBnB,IAAA,OAAA,0BAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"BrowserPerformanceMeasurement.mjs","sources":["../../src/telemetry/BrowserPerformanceMeasurement.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;MAIU,6BAA6B,CAAA;IAMtC,WAAY,CAAA,IAAY,EAAE,aAAqB,EAAA;AAC3C,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC,eAAe,CAC5D,IAAI,EACJ,aAAa,CAChB,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,6BAA6B,CAAC,aAAa,CACxD,IAAI,EACJ,aAAa,CAChB,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,6BAA6B,CAAC,WAAW,CACpD,IAAI,EACJ,aAAa,CAChB,CAAC;KACL;AAEO,IAAA,OAAO,eAAe,CAAC,IAAY,EAAE,aAAqB,EAAA;AAC9D,QAAA,OAAO,CAAgB,aAAA,EAAA,IAAI,CAAI,CAAA,EAAA,aAAa,EAAE,CAAC;KAClD;AAEO,IAAA,OAAO,aAAa,CAAC,IAAY,EAAE,aAAqB,EAAA;AAC5D,QAAA,OAAO,CAAc,WAAA,EAAA,IAAI,CAAI,CAAA,EAAA,aAAa,EAAE,CAAC;KAChD;AAEO,IAAA,OAAO,WAAW,CAAC,IAAY,EAAE,aAAqB,EAAA;AAC1D,QAAA,OAAO,CAAY,SAAA,EAAA,IAAI,CAAI,CAAA,EAAA,aAAa,EAAE,CAAC;KAC9C;AAED,IAAA,OAAO,0BAA0B,GAAA;AAC7B,QAAA,QACI,OAAO,MAAM,KAAK,WAAW;AAC7B,YAAA,OAAO,MAAM,CAAC,WAAW,KAAK,WAAW;AACzC,YAAA,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU;AAC7C,YAAA,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,KAAK,UAAU;AAChD,YAAA,OAAO,MAAM,CAAC,WAAW,CAAC,UAAU,KAAK,UAAU;AACnD,YAAA,OAAO,MAAM,CAAC,WAAW,CAAC,aAAa,KAAK,UAAU;YACtD,OAAO,MAAM,CAAC,WAAW,CAAC,gBAAgB,KAAK,UAAU,EAC3D;KACL;AAED;;;;AAIG;AACI,IAAA,OAAO,iBAAiB,CAC3B,aAAqB,EACrB,YAA8B,EAAA;AAE9B,QAAA,IAAI,6BAA6B,CAAC,0BAA0B,EAAE,EAAE;YAC5D,IAAI;AACA,gBAAA,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,KAAI;AACjC,oBAAA,MAAM,WAAW,GACb,6BAA6B,CAAC,eAAe,CACzC,WAAW,CAAC,IAAI,EAChB,aAAa,CAChB,CAAC;AACN,oBAAA,MAAM,qBAAqB,GACvB,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAC/B,WAAW,EACX,SAAS,CACZ,CAAC;AACN,oBAAA,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,wBAAA,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAC9C,wBAAA,MAAM,CAAC,WAAW,CAAC,UAAU,CACzB,6BAA6B,CAAC,aAAa,CACvC,WAAW,EACX,aAAa,CAChB,CACJ,CAAC;AACF,wBAAA,MAAM,CAAC,WAAW,CAAC,UAAU,CACzB,6BAA6B,CAAC,WAAW,CACrC,WAAW,EACX,aAAa,CAChB,CACJ,CAAC;AACL,qBAAA;AACL,iBAAC,CAAC,CAAC;AACN,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;;AAEX,aAAA;AACJ,SAAA;KACJ;IAED,gBAAgB,GAAA;AACZ,QAAA,IAAI,6BAA6B,CAAC,0BAA0B,EAAE,EAAE;YAC5D,IAAI;gBACA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3C,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;;AAEX,aAAA;AACJ,SAAA;KACJ;IAED,cAAc,GAAA;AACV,QAAA,IAAI,6BAA6B,CAAC,0BAA0B,EAAE,EAAE;YAC5D,IAAI;gBACA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtC,gBAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CACtB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,OAAO,CACf,CAAC;AACL,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;;AAEX,aAAA;AACJ,SAAA;KACJ;IAED,gBAAgB,GAAA;AACZ,QAAA,IAAI,6BAA6B,CAAC,0BAA0B,EAAE,EAAE;YAC5D,IAAI;AACA,gBAAA,MAAM,qBAAqB,GACvB,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAC/B,IAAI,CAAC,WAAW,EAChB,SAAS,CACZ,CAAC;AACN,gBAAA,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClC,MAAM,UAAU,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACrD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACnD,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC9C,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5C,oBAAA,OAAO,UAAU,CAAC;AACrB,iBAAA;AACJ,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;;AAEX,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AACJ;;;;"}