@azure/msal-browser 5.4.0 → 5.6.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 (443) hide show
  1. package/README.md +1 -0
  2. package/dist/app/IPublicClientApplication.mjs +1 -1
  3. package/dist/app/PublicClientApplication.mjs +1 -1
  4. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +1 -1
  5. package/dist/broker/nativeBroker/PlatformAuthDOMHandler.d.ts.map +1 -1
  6. package/dist/broker/nativeBroker/PlatformAuthDOMHandler.mjs +27 -12
  7. package/dist/broker/nativeBroker/PlatformAuthDOMHandler.mjs.map +1 -1
  8. package/dist/broker/nativeBroker/PlatformAuthExtensionHandler.mjs +1 -1
  9. package/dist/broker/nativeBroker/PlatformAuthProvider.mjs +1 -1
  10. package/dist/broker/nativeBroker/PlatformAuthRequest.d.ts +1 -0
  11. package/dist/broker/nativeBroker/PlatformAuthRequest.d.ts.map +1 -1
  12. package/dist/cache/AccountManager.d.ts.map +1 -1
  13. package/dist/cache/AccountManager.mjs +1 -5
  14. package/dist/cache/AccountManager.mjs.map +1 -1
  15. package/dist/cache/AsyncMemoryStorage.mjs +1 -1
  16. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  17. package/dist/cache/BrowserCacheManager.mjs +4 -1
  18. package/dist/cache/BrowserCacheManager.mjs.map +1 -1
  19. package/dist/cache/CacheHelpers.mjs +1 -1
  20. package/dist/cache/CacheKeys.mjs +1 -1
  21. package/dist/cache/CookieStorage.mjs +1 -1
  22. package/dist/cache/DatabaseStorage.mjs +1 -1
  23. package/dist/cache/EncryptedData.mjs +1 -1
  24. package/dist/cache/LocalStorage.mjs +1 -1
  25. package/dist/cache/MemoryStorage.mjs +1 -1
  26. package/dist/cache/SessionStorage.mjs +1 -1
  27. package/dist/cache/TokenCache.mjs +1 -1
  28. package/dist/config/Configuration.d.ts +4 -0
  29. package/dist/config/Configuration.d.ts.map +1 -1
  30. package/dist/config/Configuration.mjs +2 -1
  31. package/dist/config/Configuration.mjs.map +1 -1
  32. package/dist/controllers/NestedAppAuthController.d.ts.map +1 -1
  33. package/dist/controllers/NestedAppAuthController.mjs +12 -2
  34. package/dist/controllers/NestedAppAuthController.mjs.map +1 -1
  35. package/dist/controllers/StandardController.d.ts.map +1 -1
  36. package/dist/controllers/StandardController.mjs +11 -8
  37. package/dist/controllers/StandardController.mjs.map +1 -1
  38. package/dist/crypto/BrowserCrypto.mjs +1 -1
  39. package/dist/crypto/CryptoOps.mjs +1 -1
  40. package/dist/crypto/PkceGenerator.mjs +1 -1
  41. package/dist/crypto/SignedHttpRequest.mjs +1 -1
  42. package/dist/custom-auth-path/app/PublicClientApplication.mjs +1 -1
  43. package/dist/custom-auth-path/broker/nativeBroker/NativeStatusCodes.mjs +1 -1
  44. package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthDOMHandler.d.ts.map +1 -1
  45. package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthDOMHandler.mjs +27 -12
  46. package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthDOMHandler.mjs.map +1 -1
  47. package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthExtensionHandler.mjs +1 -1
  48. package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthProvider.mjs +1 -1
  49. package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthRequest.d.ts +1 -0
  50. package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthRequest.d.ts.map +1 -1
  51. package/dist/custom-auth-path/cache/AccountManager.d.ts.map +1 -1
  52. package/dist/custom-auth-path/cache/AccountManager.mjs +1 -5
  53. package/dist/custom-auth-path/cache/AccountManager.mjs.map +1 -1
  54. package/dist/custom-auth-path/cache/AsyncMemoryStorage.mjs +1 -1
  55. package/dist/custom-auth-path/cache/BrowserCacheManager.d.ts.map +1 -1
  56. package/dist/custom-auth-path/cache/BrowserCacheManager.mjs +4 -1
  57. package/dist/custom-auth-path/cache/BrowserCacheManager.mjs.map +1 -1
  58. package/dist/custom-auth-path/cache/CacheHelpers.mjs +1 -1
  59. package/dist/custom-auth-path/cache/CacheKeys.mjs +1 -1
  60. package/dist/custom-auth-path/cache/CookieStorage.mjs +1 -1
  61. package/dist/custom-auth-path/cache/DatabaseStorage.mjs +1 -1
  62. package/dist/custom-auth-path/cache/EncryptedData.mjs +1 -1
  63. package/dist/custom-auth-path/cache/LocalStorage.mjs +1 -1
  64. package/dist/custom-auth-path/cache/MemoryStorage.mjs +1 -1
  65. package/dist/custom-auth-path/cache/SessionStorage.mjs +1 -1
  66. package/dist/custom-auth-path/config/Configuration.d.ts +4 -0
  67. package/dist/custom-auth-path/config/Configuration.d.ts.map +1 -1
  68. package/dist/custom-auth-path/config/Configuration.mjs +2 -1
  69. package/dist/custom-auth-path/config/Configuration.mjs.map +1 -1
  70. package/dist/custom-auth-path/controllers/NestedAppAuthController.d.ts.map +1 -1
  71. package/dist/custom-auth-path/controllers/StandardController.d.ts.map +1 -1
  72. package/dist/custom-auth-path/controllers/StandardController.mjs +11 -8
  73. package/dist/custom-auth-path/controllers/StandardController.mjs.map +1 -1
  74. package/dist/custom-auth-path/crypto/BrowserCrypto.mjs +1 -1
  75. package/dist/custom-auth-path/crypto/CryptoOps.mjs +1 -1
  76. package/dist/custom-auth-path/crypto/PkceGenerator.mjs +1 -1
  77. package/dist/custom-auth-path/custom_auth/CustomAuthConstants.d.ts +1 -1
  78. package/dist/custom-auth-path/custom_auth/CustomAuthConstants.mjs +1 -1
  79. package/dist/custom-auth-path/custom_auth/CustomAuthPublicClientApplication.mjs +1 -1
  80. package/dist/custom-auth-path/custom_auth/controller/CustomAuthStandardController.mjs +1 -1
  81. package/dist/custom-auth-path/custom_auth/core/CustomAuthAuthority.mjs +1 -1
  82. package/dist/custom-auth-path/custom_auth/core/auth_flow/AuthFlowErrorBase.mjs +1 -1
  83. package/dist/custom-auth-path/custom_auth/core/auth_flow/AuthFlowResultBase.mjs +1 -1
  84. package/dist/custom-auth-path/custom_auth/core/auth_flow/AuthFlowState.mjs +1 -1
  85. package/dist/custom-auth-path/custom_auth/core/auth_flow/AuthFlowStateTypes.mjs +1 -1
  86. package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/error_type/AuthMethodRegistrationError.mjs +1 -1
  87. package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/result/AuthMethodRegistrationChallengeMethodResult.mjs +1 -1
  88. package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/result/AuthMethodRegistrationSubmitChallengeResult.mjs +1 -1
  89. package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/state/AuthMethodRegistrationCompletedState.mjs +1 -1
  90. package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/state/AuthMethodRegistrationFailedState.mjs +1 -1
  91. package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/state/AuthMethodRegistrationState.mjs +1 -1
  92. package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/error_type/MfaError.mjs +1 -1
  93. package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/result/MfaRequestChallengeResult.mjs +1 -1
  94. package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/result/MfaSubmitChallengeResult.mjs +1 -1
  95. package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/state/MfaCompletedState.mjs +1 -1
  96. package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/state/MfaFailedState.mjs +1 -1
  97. package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/state/MfaState.mjs +1 -1
  98. package/dist/custom-auth-path/custom_auth/core/error/CustomAuthApiError.mjs +1 -1
  99. package/dist/custom-auth-path/custom_auth/core/error/CustomAuthError.mjs +1 -1
  100. package/dist/custom-auth-path/custom_auth/core/error/HttpError.mjs +1 -1
  101. package/dist/custom-auth-path/custom_auth/core/error/HttpErrorCodes.mjs +1 -1
  102. package/dist/custom-auth-path/custom_auth/core/error/InvalidArgumentError.mjs +1 -1
  103. package/dist/custom-auth-path/custom_auth/core/error/InvalidConfigurationError.mjs +1 -1
  104. package/dist/custom-auth-path/custom_auth/core/error/InvalidConfigurationErrorCodes.mjs +1 -1
  105. package/dist/custom-auth-path/custom_auth/core/error/MethodNotImplementedError.mjs +1 -1
  106. package/dist/custom-auth-path/custom_auth/core/error/MsalCustomAuthError.mjs +1 -1
  107. package/dist/custom-auth-path/custom_auth/core/error/NoCachedAccountFoundError.mjs +1 -1
  108. package/dist/custom-auth-path/custom_auth/core/error/ParsedUrlError.mjs +1 -1
  109. package/dist/custom-auth-path/custom_auth/core/error/ParsedUrlErrorCodes.mjs +1 -1
  110. package/dist/custom-auth-path/custom_auth/core/error/UnexpectedError.mjs +1 -1
  111. package/dist/custom-auth-path/custom_auth/core/error/UnsupportedEnvironmentError.mjs +1 -1
  112. package/dist/custom-auth-path/custom_auth/core/error/UserAccountAttributeError.mjs +1 -1
  113. package/dist/custom-auth-path/custom_auth/core/error/UserAlreadySignedInError.mjs +1 -1
  114. package/dist/custom-auth-path/custom_auth/core/interaction_client/CustomAuthInteractionClientBase.mjs +1 -1
  115. package/dist/custom-auth-path/custom_auth/core/interaction_client/CustomAuthInterationClientFactory.mjs +1 -1
  116. package/dist/custom-auth-path/custom_auth/core/interaction_client/jit/JitClient.mjs +1 -1
  117. package/dist/custom-auth-path/custom_auth/core/interaction_client/jit/result/JitActionResult.mjs +1 -1
  118. package/dist/custom-auth-path/custom_auth/core/interaction_client/mfa/MfaClient.mjs +1 -1
  119. package/dist/custom-auth-path/custom_auth/core/interaction_client/mfa/result/MfaActionResult.mjs +1 -1
  120. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/BaseApiClient.mjs +1 -1
  121. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/CustomAuthApiClient.mjs +1 -1
  122. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/CustomAuthApiEndpoint.mjs +1 -1
  123. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/RegisterApiClient.mjs +1 -1
  124. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/ResetPasswordApiClient.mjs +1 -1
  125. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/SignInApiClient.mjs +1 -1
  126. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/SignupApiClient.mjs +1 -1
  127. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/types/ApiErrorCodes.mjs +1 -1
  128. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/types/ApiSuberrors.mjs +1 -1
  129. package/dist/custom-auth-path/custom_auth/core/network_client/http_client/FetchHttpClient.mjs +1 -1
  130. package/dist/custom-auth-path/custom_auth/core/network_client/http_client/IHttpClient.mjs +1 -1
  131. package/dist/custom-auth-path/custom_auth/core/telemetry/PublicApiId.mjs +1 -1
  132. package/dist/custom-auth-path/custom_auth/core/utils/ArgumentValidator.mjs +1 -1
  133. package/dist/custom-auth-path/custom_auth/core/utils/UrlUtils.mjs +1 -1
  134. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/CustomAuthAccountData.mjs +1 -1
  135. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/error_type/GetAccountError.mjs +1 -1
  136. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/result/GetAccessTokenResult.mjs +1 -1
  137. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/result/GetAccountResult.mjs +1 -1
  138. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/result/SignOutResult.mjs +1 -1
  139. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/state/GetAccessTokenState.mjs +1 -1
  140. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/state/GetAccountState.mjs +1 -1
  141. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/state/SignOutState.mjs +1 -1
  142. package/dist/custom-auth-path/custom_auth/get_account/interaction_client/CustomAuthSilentCacheClient.mjs +1 -1
  143. package/dist/custom-auth-path/custom_auth/index.mjs +1 -1
  144. package/dist/custom-auth-path/custom_auth/operating_context/CustomAuthOperatingContext.mjs +1 -1
  145. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/error_type/ResetPasswordError.mjs +1 -1
  146. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/result/ResetPasswordResendCodeResult.mjs +1 -1
  147. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/result/ResetPasswordStartResult.mjs +1 -1
  148. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/result/ResetPasswordSubmitCodeResult.mjs +1 -1
  149. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/result/ResetPasswordSubmitPasswordResult.mjs +1 -1
  150. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordCodeRequiredState.mjs +1 -1
  151. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordCompletedState.mjs +1 -1
  152. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordFailedState.mjs +1 -1
  153. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordPasswordRequiredState.mjs +1 -1
  154. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordState.mjs +1 -1
  155. package/dist/custom-auth-path/custom_auth/reset_password/interaction_client/ResetPasswordClient.mjs +1 -1
  156. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/SignInScenario.mjs +1 -1
  157. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/error_type/SignInError.mjs +1 -1
  158. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/result/SignInResendCodeResult.mjs +1 -1
  159. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/result/SignInResult.mjs +1 -1
  160. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/result/SignInSubmitCodeResult.mjs +1 -1
  161. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/result/SignInSubmitPasswordResult.mjs +1 -1
  162. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInCodeRequiredState.mjs +1 -1
  163. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInCompletedState.mjs +1 -1
  164. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInContinuationState.mjs +1 -1
  165. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInFailedState.mjs +1 -1
  166. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInPasswordRequiredState.mjs +1 -1
  167. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInState.mjs +1 -1
  168. package/dist/custom-auth-path/custom_auth/sign_in/interaction_client/SignInClient.mjs +1 -1
  169. package/dist/custom-auth-path/custom_auth/sign_in/interaction_client/result/SignInActionResult.mjs +1 -1
  170. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/error_type/SignUpError.mjs +1 -1
  171. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpResendCodeResult.mjs +1 -1
  172. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpResult.mjs +1 -1
  173. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpSubmitAttributesResult.mjs +1 -1
  174. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpSubmitCodeResult.mjs +1 -1
  175. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpSubmitPasswordResult.mjs +1 -1
  176. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpAttributesRequiredState.mjs +1 -1
  177. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpCodeRequiredState.mjs +1 -1
  178. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpCompletedState.mjs +1 -1
  179. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpFailedState.mjs +1 -1
  180. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpPasswordRequiredState.mjs +1 -1
  181. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpState.mjs +1 -1
  182. package/dist/custom-auth-path/custom_auth/sign_up/interaction_client/SignUpClient.mjs +1 -1
  183. package/dist/custom-auth-path/custom_auth/sign_up/interaction_client/result/SignUpActionResult.mjs +1 -1
  184. package/dist/custom-auth-path/encode/Base64Decode.mjs +1 -1
  185. package/dist/custom-auth-path/encode/Base64Encode.mjs +1 -1
  186. package/dist/custom-auth-path/error/BrowserAuthError.mjs +1 -1
  187. package/dist/custom-auth-path/error/BrowserAuthErrorCodes.mjs +1 -1
  188. package/dist/custom-auth-path/error/BrowserConfigurationAuthError.mjs +1 -1
  189. package/dist/custom-auth-path/error/BrowserConfigurationAuthErrorCodes.mjs +1 -1
  190. package/dist/custom-auth-path/error/NativeAuthError.mjs +1 -1
  191. package/dist/custom-auth-path/error/NativeAuthErrorCodes.mjs +1 -1
  192. package/dist/custom-auth-path/event/EventHandler.mjs +1 -1
  193. package/dist/custom-auth-path/event/EventType.mjs +1 -1
  194. package/dist/custom-auth-path/index.d.ts +1 -1
  195. package/dist/custom-auth-path/index.d.ts.map +1 -1
  196. package/dist/custom-auth-path/interaction_client/BaseInteractionClient.mjs +1 -1
  197. package/dist/custom-auth-path/interaction_client/HybridSpaAuthorizationCodeClient.mjs +1 -1
  198. package/dist/custom-auth-path/interaction_client/PlatformAuthInteractionClient.d.ts.map +1 -1
  199. package/dist/custom-auth-path/interaction_client/PlatformAuthInteractionClient.mjs +2 -1
  200. package/dist/custom-auth-path/interaction_client/PlatformAuthInteractionClient.mjs.map +1 -1
  201. package/dist/custom-auth-path/interaction_client/PopupClient.d.ts.map +1 -1
  202. package/dist/custom-auth-path/interaction_client/PopupClient.mjs +5 -5
  203. package/dist/custom-auth-path/interaction_client/PopupClient.mjs.map +1 -1
  204. package/dist/custom-auth-path/interaction_client/RedirectClient.mjs +1 -1
  205. package/dist/custom-auth-path/interaction_client/SilentAuthCodeClient.mjs +1 -1
  206. package/dist/custom-auth-path/interaction_client/SilentCacheClient.mjs +1 -1
  207. package/dist/custom-auth-path/interaction_client/SilentIframeClient.d.ts.map +1 -1
  208. package/dist/custom-auth-path/interaction_client/SilentIframeClient.mjs +3 -3
  209. package/dist/custom-auth-path/interaction_client/SilentIframeClient.mjs.map +1 -1
  210. package/dist/custom-auth-path/interaction_client/SilentRefreshClient.mjs +1 -1
  211. package/dist/custom-auth-path/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  212. package/dist/custom-auth-path/interaction_client/StandardInteractionClient.mjs +6 -1
  213. package/dist/custom-auth-path/interaction_client/StandardInteractionClient.mjs.map +1 -1
  214. package/dist/custom-auth-path/interaction_handler/InteractionHandler.mjs +1 -1
  215. package/dist/custom-auth-path/interaction_handler/SilentHandler.mjs +1 -1
  216. package/dist/custom-auth-path/log-strings-mapping.json +19 -7
  217. package/dist/custom-auth-path/naa/TokenRequest.d.ts +1 -0
  218. package/dist/custom-auth-path/naa/TokenRequest.d.ts.map +1 -1
  219. package/dist/custom-auth-path/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
  220. package/dist/custom-auth-path/navigation/NavigationClient.mjs +1 -1
  221. package/dist/custom-auth-path/network/FetchClient.mjs +1 -1
  222. package/dist/custom-auth-path/operatingcontext/BaseOperatingContext.mjs +1 -1
  223. package/dist/custom-auth-path/operatingcontext/StandardOperatingContext.mjs +1 -1
  224. package/dist/custom-auth-path/packageMetadata.d.ts +1 -1
  225. package/dist/custom-auth-path/packageMetadata.mjs +2 -2
  226. package/dist/custom-auth-path/protocol/Authorize.d.ts +33 -0
  227. package/dist/custom-auth-path/protocol/Authorize.d.ts.map +1 -1
  228. package/dist/custom-auth-path/protocol/Authorize.mjs +62 -2
  229. package/dist/custom-auth-path/protocol/Authorize.mjs.map +1 -1
  230. package/dist/custom-auth-path/request/RequestHelpers.mjs +1 -1
  231. package/dist/custom-auth-path/response/ResponseHandler.mjs +1 -1
  232. package/dist/custom-auth-path/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  233. package/dist/custom-auth-path/telemetry/BrowserPerformanceEvents.mjs +1 -1
  234. package/dist/custom-auth-path/telemetry/BrowserRootPerformanceEvents.mjs +1 -1
  235. package/dist/custom-auth-path/utils/BrowserConstants.mjs +1 -1
  236. package/dist/custom-auth-path/utils/BrowserProtocolUtils.mjs +1 -1
  237. package/dist/custom-auth-path/utils/BrowserUtils.d.ts +2 -2
  238. package/dist/custom-auth-path/utils/BrowserUtils.d.ts.map +1 -1
  239. package/dist/custom-auth-path/utils/BrowserUtils.mjs +12 -2
  240. package/dist/custom-auth-path/utils/BrowserUtils.mjs.map +1 -1
  241. package/dist/custom-auth-path/utils/Helpers.mjs +1 -1
  242. package/dist/custom-auth-path/utils/MsalFrameStatsUtils.d.ts +10 -0
  243. package/dist/custom-auth-path/utils/MsalFrameStatsUtils.d.ts.map +1 -1
  244. package/dist/custom-auth-path/utils/MsalFrameStatsUtils.mjs +5 -1
  245. package/dist/custom-auth-path/utils/MsalFrameStatsUtils.mjs.map +1 -1
  246. package/dist/custom_auth/CustomAuthConstants.d.ts +1 -1
  247. package/dist/encode/Base64Decode.mjs +1 -1
  248. package/dist/encode/Base64Encode.mjs +1 -1
  249. package/dist/error/BrowserAuthError.mjs +1 -1
  250. package/dist/error/BrowserAuthErrorCodes.mjs +1 -1
  251. package/dist/error/BrowserConfigurationAuthError.mjs +1 -1
  252. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +1 -1
  253. package/dist/error/NativeAuthError.mjs +1 -1
  254. package/dist/error/NativeAuthErrorCodes.mjs +1 -1
  255. package/dist/error/NestedAppAuthError.mjs +1 -1
  256. package/dist/event/EventHandler.mjs +1 -1
  257. package/dist/event/EventMessage.mjs +1 -1
  258. package/dist/event/EventType.mjs +1 -1
  259. package/dist/index.d.ts +1 -1
  260. package/dist/index.d.ts.map +1 -1
  261. package/dist/index.mjs +2 -2
  262. package/dist/interaction_client/BaseInteractionClient.mjs +1 -1
  263. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +1 -1
  264. package/dist/interaction_client/PlatformAuthInteractionClient.d.ts.map +1 -1
  265. package/dist/interaction_client/PlatformAuthInteractionClient.mjs +2 -1
  266. package/dist/interaction_client/PlatformAuthInteractionClient.mjs.map +1 -1
  267. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  268. package/dist/interaction_client/PopupClient.mjs +5 -5
  269. package/dist/interaction_client/PopupClient.mjs.map +1 -1
  270. package/dist/interaction_client/RedirectClient.mjs +1 -1
  271. package/dist/interaction_client/SilentAuthCodeClient.mjs +1 -1
  272. package/dist/interaction_client/SilentCacheClient.mjs +1 -1
  273. package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
  274. package/dist/interaction_client/SilentIframeClient.mjs +3 -3
  275. package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
  276. package/dist/interaction_client/SilentRefreshClient.mjs +1 -1
  277. package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  278. package/dist/interaction_client/StandardInteractionClient.mjs +6 -1
  279. package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
  280. package/dist/interaction_handler/InteractionHandler.mjs +1 -1
  281. package/dist/interaction_handler/SilentHandler.mjs +1 -1
  282. package/dist/log-strings-mapping.json +23 -11
  283. package/dist/naa/BridgeError.mjs +1 -1
  284. package/dist/naa/BridgeProxy.mjs +1 -1
  285. package/dist/naa/BridgeStatusCode.mjs +1 -1
  286. package/dist/naa/TokenRequest.d.ts +1 -0
  287. package/dist/naa/TokenRequest.d.ts.map +1 -1
  288. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
  289. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +2 -1
  290. package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -1
  291. package/dist/navigation/NavigationClient.mjs +1 -1
  292. package/dist/network/FetchClient.mjs +1 -1
  293. package/dist/operatingcontext/BaseOperatingContext.mjs +1 -1
  294. package/dist/operatingcontext/NestedAppOperatingContext.mjs +1 -1
  295. package/dist/operatingcontext/StandardOperatingContext.mjs +1 -1
  296. package/dist/packageMetadata.d.ts +1 -1
  297. package/dist/packageMetadata.mjs +2 -2
  298. package/dist/protocol/Authorize.d.ts +33 -0
  299. package/dist/protocol/Authorize.d.ts.map +1 -1
  300. package/dist/protocol/Authorize.mjs +62 -2
  301. package/dist/protocol/Authorize.mjs.map +1 -1
  302. package/dist/redirect-bridge/broker/nativeBroker/PlatformAuthDOMHandler.d.ts.map +1 -1
  303. package/dist/redirect-bridge/broker/nativeBroker/PlatformAuthRequest.d.ts +1 -0
  304. package/dist/redirect-bridge/broker/nativeBroker/PlatformAuthRequest.d.ts.map +1 -1
  305. package/dist/redirect-bridge/cache/AccountManager.d.ts.map +1 -1
  306. package/dist/redirect-bridge/cache/BrowserCacheManager.d.ts.map +1 -1
  307. package/dist/redirect-bridge/cache/CacheKeys.mjs +1 -1
  308. package/dist/redirect-bridge/config/Configuration.d.ts +4 -0
  309. package/dist/redirect-bridge/config/Configuration.d.ts.map +1 -1
  310. package/dist/redirect-bridge/config/Configuration.mjs +1 -1
  311. package/dist/redirect-bridge/controllers/NestedAppAuthController.d.ts.map +1 -1
  312. package/dist/redirect-bridge/controllers/StandardController.d.ts.map +1 -1
  313. package/dist/redirect-bridge/custom_auth/CustomAuthConstants.d.ts +1 -1
  314. package/dist/redirect-bridge/encode/Base64Decode.mjs +1 -1
  315. package/dist/redirect-bridge/error/BrowserAuthError.mjs +1 -1
  316. package/dist/redirect-bridge/error/BrowserAuthErrorCodes.mjs +1 -1
  317. package/dist/redirect-bridge/index.d.ts +1 -1
  318. package/dist/redirect-bridge/index.d.ts.map +1 -1
  319. package/dist/redirect-bridge/interaction_client/PlatformAuthInteractionClient.d.ts.map +1 -1
  320. package/dist/redirect-bridge/interaction_client/PopupClient.d.ts.map +1 -1
  321. package/dist/redirect-bridge/interaction_client/SilentIframeClient.d.ts.map +1 -1
  322. package/dist/redirect-bridge/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  323. package/dist/redirect-bridge/naa/TokenRequest.d.ts +1 -0
  324. package/dist/redirect-bridge/naa/TokenRequest.d.ts.map +1 -1
  325. package/dist/redirect-bridge/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
  326. package/dist/redirect-bridge/navigation/NavigationClient.mjs +1 -1
  327. package/dist/redirect-bridge/packageMetadata.d.ts +1 -1
  328. package/dist/redirect-bridge/protocol/Authorize.d.ts +33 -0
  329. package/dist/redirect-bridge/protocol/Authorize.d.ts.map +1 -1
  330. package/dist/redirect-bridge/redirect_bridge/index.mjs +1 -1
  331. package/dist/redirect-bridge/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  332. package/dist/redirect-bridge/utils/BrowserConstants.mjs +1 -1
  333. package/dist/redirect-bridge/utils/BrowserUtils.d.ts +2 -2
  334. package/dist/redirect-bridge/utils/BrowserUtils.d.ts.map +1 -1
  335. package/dist/redirect-bridge/utils/BrowserUtils.mjs +1 -1
  336. package/dist/redirect-bridge/utils/BrowserUtils.mjs.map +1 -1
  337. package/dist/redirect-bridge/utils/MsalFrameStatsUtils.d.ts +10 -0
  338. package/dist/redirect-bridge/utils/MsalFrameStatsUtils.d.ts.map +1 -1
  339. package/dist/request/RequestHelpers.mjs +1 -1
  340. package/dist/response/ResponseHandler.mjs +1 -1
  341. package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  342. package/dist/telemetry/BrowserPerformanceClient.mjs +5 -1
  343. package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -1
  344. package/dist/telemetry/BrowserPerformanceEvents.mjs +1 -1
  345. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +1 -1
  346. package/dist/telemetry/BrowserRootPerformanceEvents.mjs +1 -1
  347. package/dist/utils/BrowserConstants.mjs +1 -1
  348. package/dist/utils/BrowserProtocolUtils.mjs +1 -1
  349. package/dist/utils/BrowserUtils.d.ts +2 -2
  350. package/dist/utils/BrowserUtils.d.ts.map +1 -1
  351. package/dist/utils/BrowserUtils.mjs +12 -2
  352. package/dist/utils/BrowserUtils.mjs.map +1 -1
  353. package/dist/utils/Helpers.mjs +1 -1
  354. package/dist/utils/MsalFrameStatsUtils.d.ts +10 -0
  355. package/dist/utils/MsalFrameStatsUtils.d.ts.map +1 -1
  356. package/dist/utils/MsalFrameStatsUtils.mjs +18 -2
  357. package/dist/utils/MsalFrameStatsUtils.mjs.map +1 -1
  358. package/lib/custom-auth-path/log-strings-mapping.json +19 -7
  359. package/lib/custom-auth-path/msal-custom-auth.cjs +264 -96
  360. package/lib/custom-auth-path/msal-custom-auth.cjs.map +1 -1
  361. package/lib/custom-auth-path/types/broker/nativeBroker/PlatformAuthDOMHandler.d.ts.map +1 -1
  362. package/lib/custom-auth-path/types/broker/nativeBroker/PlatformAuthRequest.d.ts +1 -0
  363. package/lib/custom-auth-path/types/broker/nativeBroker/PlatformAuthRequest.d.ts.map +1 -1
  364. package/lib/custom-auth-path/types/cache/AccountManager.d.ts.map +1 -1
  365. package/lib/custom-auth-path/types/cache/BrowserCacheManager.d.ts.map +1 -1
  366. package/lib/custom-auth-path/types/config/Configuration.d.ts +4 -0
  367. package/lib/custom-auth-path/types/config/Configuration.d.ts.map +1 -1
  368. package/lib/custom-auth-path/types/controllers/NestedAppAuthController.d.ts.map +1 -1
  369. package/lib/custom-auth-path/types/controllers/StandardController.d.ts.map +1 -1
  370. package/lib/custom-auth-path/types/custom_auth/CustomAuthConstants.d.ts +1 -1
  371. package/lib/custom-auth-path/types/index.d.ts +1 -1
  372. package/lib/custom-auth-path/types/index.d.ts.map +1 -1
  373. package/lib/custom-auth-path/types/interaction_client/PlatformAuthInteractionClient.d.ts.map +1 -1
  374. package/lib/custom-auth-path/types/interaction_client/PopupClient.d.ts.map +1 -1
  375. package/lib/custom-auth-path/types/interaction_client/SilentIframeClient.d.ts.map +1 -1
  376. package/lib/custom-auth-path/types/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  377. package/lib/custom-auth-path/types/naa/TokenRequest.d.ts +1 -0
  378. package/lib/custom-auth-path/types/naa/TokenRequest.d.ts.map +1 -1
  379. package/lib/custom-auth-path/types/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
  380. package/lib/custom-auth-path/types/packageMetadata.d.ts +1 -1
  381. package/lib/custom-auth-path/types/protocol/Authorize.d.ts +33 -0
  382. package/lib/custom-auth-path/types/protocol/Authorize.d.ts.map +1 -1
  383. package/lib/custom-auth-path/types/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  384. package/lib/custom-auth-path/types/utils/BrowserUtils.d.ts +2 -2
  385. package/lib/custom-auth-path/types/utils/BrowserUtils.d.ts.map +1 -1
  386. package/lib/custom-auth-path/types/utils/MsalFrameStatsUtils.d.ts +10 -0
  387. package/lib/custom-auth-path/types/utils/MsalFrameStatsUtils.d.ts.map +1 -1
  388. package/lib/log-strings-mapping.json +23 -11
  389. package/lib/msal-browser.cjs +302 -100
  390. package/lib/msal-browser.cjs.map +1 -1
  391. package/lib/msal-browser.js +302 -100
  392. package/lib/msal-browser.js.map +1 -1
  393. package/lib/msal-browser.min.js +2 -2
  394. package/lib/redirect-bridge/msal-redirect-bridge.js +10 -10
  395. package/lib/redirect-bridge/msal-redirect-bridge.js.map +1 -1
  396. package/lib/redirect-bridge/msal-redirect-bridge.min.js +1 -1
  397. package/lib/types/broker/nativeBroker/PlatformAuthDOMHandler.d.ts.map +1 -1
  398. package/lib/types/broker/nativeBroker/PlatformAuthRequest.d.ts +1 -0
  399. package/lib/types/broker/nativeBroker/PlatformAuthRequest.d.ts.map +1 -1
  400. package/lib/types/cache/AccountManager.d.ts.map +1 -1
  401. package/lib/types/cache/BrowserCacheManager.d.ts.map +1 -1
  402. package/lib/types/config/Configuration.d.ts +4 -0
  403. package/lib/types/config/Configuration.d.ts.map +1 -1
  404. package/lib/types/controllers/NestedAppAuthController.d.ts.map +1 -1
  405. package/lib/types/controllers/StandardController.d.ts.map +1 -1
  406. package/lib/types/custom_auth/CustomAuthConstants.d.ts +1 -1
  407. package/lib/types/index.d.ts +1 -1
  408. package/lib/types/index.d.ts.map +1 -1
  409. package/lib/types/interaction_client/PlatformAuthInteractionClient.d.ts.map +1 -1
  410. package/lib/types/interaction_client/PopupClient.d.ts.map +1 -1
  411. package/lib/types/interaction_client/SilentIframeClient.d.ts.map +1 -1
  412. package/lib/types/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  413. package/lib/types/naa/TokenRequest.d.ts +1 -0
  414. package/lib/types/naa/TokenRequest.d.ts.map +1 -1
  415. package/lib/types/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
  416. package/lib/types/packageMetadata.d.ts +1 -1
  417. package/lib/types/protocol/Authorize.d.ts +33 -0
  418. package/lib/types/protocol/Authorize.d.ts.map +1 -1
  419. package/lib/types/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  420. package/lib/types/utils/BrowserUtils.d.ts +2 -2
  421. package/lib/types/utils/BrowserUtils.d.ts.map +1 -1
  422. package/lib/types/utils/MsalFrameStatsUtils.d.ts +10 -0
  423. package/lib/types/utils/MsalFrameStatsUtils.d.ts.map +1 -1
  424. package/package.json +2 -2
  425. package/src/broker/nativeBroker/PlatformAuthDOMHandler.ts +34 -17
  426. package/src/broker/nativeBroker/PlatformAuthRequest.ts +1 -0
  427. package/src/cache/AccountManager.ts +0 -5
  428. package/src/cache/BrowserCacheManager.ts +4 -0
  429. package/src/config/Configuration.ts +5 -0
  430. package/src/controllers/NestedAppAuthController.ts +14 -0
  431. package/src/controllers/StandardController.ts +13 -6
  432. package/src/index.ts +1 -0
  433. package/src/interaction_client/PlatformAuthInteractionClient.ts +1 -0
  434. package/src/interaction_client/PopupClient.ts +8 -4
  435. package/src/interaction_client/SilentIframeClient.ts +4 -2
  436. package/src/interaction_client/StandardInteractionClient.ts +11 -0
  437. package/src/naa/TokenRequest.ts +1 -0
  438. package/src/naa/mapping/NestedAppAuthAdapter.ts +1 -0
  439. package/src/packageMetadata.ts +1 -1
  440. package/src/protocol/Authorize.ts +100 -0
  441. package/src/telemetry/BrowserPerformanceClient.ts +4 -0
  442. package/src/utils/BrowserUtils.ts +24 -1
  443. package/src/utils/MsalFrameStatsUtils.ts +27 -0
@@ -44,6 +44,99 @@ import { EventHandler } from "../event/EventHandler.js";
44
44
  import { decryptEarResponse } from "../crypto/BrowserCrypto.js";
45
45
  import { IPlatformAuthHandler } from "../broker/nativeBroker/IPlatformAuthHandler.js";
46
46
 
47
+ /**
48
+ * Parsed representation of the clientdata response parameter from the /authorize endpoint.
49
+ *
50
+ * Format: urlencoded(account_type|error|sub_error|cloud_instance|caller_data_boundary)
51
+ */
52
+ type ClientData = {
53
+ /** Account type: MSA, AAD */
54
+ accountType: string;
55
+ /** Error code string (e.g. "0x8004345C" for MSA) */
56
+ error: string;
57
+ /** Sub-error code string (e.g. "0x80043588" for MSA) */
58
+ subError: string;
59
+ /** Cloud instance hostname (e.g. "login.microsoftonline.com") */
60
+ cloudInstance: string;
61
+ /** Caller data boundary (e.g. "none" for MSA) */
62
+ callerDataBoundary: string;
63
+ };
64
+
65
+ const clientDataAccountTypeMapping = new Map([
66
+ ["e", "AAD"],
67
+ ["m", "MSA"],
68
+ ]);
69
+
70
+ /**
71
+ * Parses the clientdata response parameter from the /authorize endpoint.
72
+ *
73
+ * Logically, the clientdata value is URL-encoded and pipe-delimited:
74
+ * urlencoded(account_type | error | sub_error | cloud_instance | caller_data_boundary)
75
+ *
76
+ * In normal browser flows, this value may already have been URL-decoded
77
+ * (e.g. by URLSearchParams). This function will only apply decodeURIComponent
78
+ * when the string appears to contain percent-encoded sequences to avoid
79
+ * double-decoding.
80
+ *
81
+ * @param clientdata - The raw clientdata string from the authorize response
82
+ * @returns Parsed ClientData object, or null if the input is empty/invalid
83
+ */
84
+ export function parseClientData(clientdata?: string): ClientData | null {
85
+ if (!clientdata) {
86
+ return null;
87
+ }
88
+
89
+ try {
90
+ // Only decode when the string appears to contain percent-encoded sequences
91
+ const shouldDecode = /%(?:[0-9A-Fa-f]{2})/.test(clientdata);
92
+ const decoded = shouldDecode
93
+ ? decodeURIComponent(clientdata)
94
+ : clientdata;
95
+ const parts = decoded.split("|");
96
+
97
+ if (parts.length < 5) {
98
+ return null;
99
+ }
100
+
101
+ return {
102
+ accountType:
103
+ clientDataAccountTypeMapping.get(parts[0]?.trim() || "") || "",
104
+ error: parts[1]?.trim() || "",
105
+ subError: parts[2]?.trim() || "",
106
+ cloudInstance: parts[3]?.trim() || "",
107
+ callerDataBoundary: parts[4]?.trim() || "",
108
+ };
109
+ } catch {
110
+ return null;
111
+ }
112
+ }
113
+
114
+ /**
115
+ * Instruments account type, error, and suberror from clientdata
116
+ */
117
+ function instrumentClientData(
118
+ response: AuthorizeResponse,
119
+ correlationId: string,
120
+ performanceClient: IPerformanceClient
121
+ ): void {
122
+ const parsed = parseClientData(response.clientdata);
123
+ parsed?.accountType &&
124
+ performanceClient.addFields(
125
+ { accountType: parsed.accountType },
126
+ correlationId
127
+ );
128
+ parsed?.error &&
129
+ performanceClient.addFields(
130
+ { serverErrorNo: parsed.error },
131
+ correlationId
132
+ );
133
+ parsed?.subError &&
134
+ performanceClient.addFields(
135
+ { serverSubErrorNo: parsed.subError },
136
+ correlationId
137
+ );
138
+ }
139
+
47
140
  /**
48
141
  * Returns map of parameters that are applicable to all calls to /authorize whether using PKCE or EAR
49
142
  * @param config
@@ -407,6 +500,10 @@ export async function handleResponseCode(
407
500
  config.auth.clientId,
408
501
  request
409
502
  );
503
+
504
+ // Instrument clientdata telemetry fields from the authorize response
505
+ instrumentClientData(response, request.correlationId, performanceClient);
506
+
410
507
  if (response.accountId) {
411
508
  return invokeAsync(
412
509
  handleResponsePlatformBroker,
@@ -487,6 +584,9 @@ export async function handleResponseEAR(
487
584
  request
488
585
  );
489
586
 
587
+ // Instrument clientdata telemetry fields from the authorize response
588
+ instrumentClientData(response, request.correlationId, performanceClient);
589
+
490
590
  // Validate state & check response for errors
491
591
  AuthorizeProtocol.validateAuthorizationResponse(response, request.state);
492
592
 
@@ -18,6 +18,7 @@ import { name, version } from "../packageMetadata.js";
18
18
  import { BrowserCacheLocation } from "../utils/BrowserConstants.js";
19
19
  import * as BrowserCrypto from "../crypto/BrowserCrypto.js";
20
20
  import { BROWSER_PERF_ENABLED_KEY } from "../cache/CacheKeys.js";
21
+ import { getNetworkInfo } from "../utils/MsalFrameStatsUtils.js";
21
22
 
22
23
  /**
23
24
  * Returns browser performance measurement module if session flag is enabled. Returns undefined otherwise.
@@ -160,12 +161,15 @@ export class BrowserPerformanceClient
160
161
  error?: unknown,
161
162
  account?: AccountInfo
162
163
  ): PerformanceEvent | null => {
164
+ const networkInfo = getNetworkInfo();
163
165
  const res = inProgressEvent.end(
164
166
  {
165
167
  ...event,
166
168
  startPageVisibility,
167
169
  endPageVisibility: this.getPageVisibility(),
168
170
  durationMs: getPerfDurationMs(startTime),
171
+ networkEffectiveType: networkInfo.effectiveType,
172
+ networkRtt: networkInfo.rtt,
169
173
  },
170
174
  error,
171
175
  account
@@ -10,6 +10,7 @@ import {
10
10
  UrlUtils,
11
11
  RequestParameterBuilder,
12
12
  ICrypto,
13
+ IPerformanceClient,
13
14
  Logger,
14
15
  CommonAuthorizationUrlRequest,
15
16
  CommonEndSessionRequest,
@@ -234,7 +235,8 @@ export async function waitForBridgeResponse(
234
235
  timeoutMs: number,
235
236
  logger: Logger,
236
237
  browserCrypto: ICrypto,
237
- request: CommonAuthorizationUrlRequest | CommonEndSessionRequest
238
+ request: CommonAuthorizationUrlRequest | CommonEndSessionRequest,
239
+ performanceClient: IPerformanceClient
238
240
  ): Promise<string> {
239
241
  return new Promise<string>((resolve, reject) => {
240
242
  logger.verbose(
@@ -242,6 +244,15 @@ export async function waitForBridgeResponse(
242
244
  request.correlationId
243
245
  );
244
246
 
247
+ const correlationId = request.correlationId;
248
+
249
+ performanceClient.addFields(
250
+ {
251
+ redirectBridgeTimeoutMs: timeoutMs,
252
+ },
253
+ correlationId
254
+ );
255
+
245
256
  const { libraryState } = ProtocolUtils.parseRequestState(
246
257
  browserCrypto.base64Decode,
247
258
  request.state || ""
@@ -272,6 +283,18 @@ export async function waitForBridgeResponse(
272
283
  channel.onmessage = (event) => {
273
284
  responseString = event.data.payload;
274
285
 
286
+ const messageVersion =
287
+ event?.data && typeof event.data.v === "number"
288
+ ? event.data.v
289
+ : undefined;
290
+
291
+ performanceClient.addFields(
292
+ {
293
+ redirectBridgeMessageVersion: messageVersion,
294
+ },
295
+ correlationId
296
+ );
297
+
275
298
  // Clear the active monitor
276
299
  activeBridgeMonitor = null;
277
300
 
@@ -5,6 +5,33 @@
5
5
 
6
6
  import { InProgressPerformanceEvent, Logger } from "@azure/msal-common/browser";
7
7
 
8
+ interface NetworkConnection {
9
+ effectiveType?: string;
10
+ rtt?: number;
11
+ }
12
+
13
+ /**
14
+ * Get network information for telemetry purposes. This is only supported in Chromium-based browsers.
15
+ * @returns Network connection information, or an empty object if not available.
16
+ */
17
+ export function getNetworkInfo(): NetworkConnection {
18
+ if (typeof window === "undefined" || !window.navigator) {
19
+ return {};
20
+ }
21
+ const connection: NetworkConnection | undefined =
22
+ "connection" in window.navigator
23
+ ? (
24
+ window.navigator as Navigator & {
25
+ connection: NetworkConnection;
26
+ }
27
+ ).connection
28
+ : undefined;
29
+ return {
30
+ effectiveType: connection?.effectiveType,
31
+ rtt: connection?.rtt,
32
+ };
33
+ }
34
+
8
35
  export function collectInstanceStats(
9
36
  currentClientId: string,
10
37
  performanceEvent: InProgressPerformanceEvent,