@azure/msal-browser 4.29.0 → 4.29.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 (311) hide show
  1. package/README.md +25 -25
  2. package/dist/app/IPublicClientApplication.mjs +1 -1
  3. package/dist/app/PublicClientApplication.mjs +1 -1
  4. package/dist/app/PublicClientNext.mjs +1 -1
  5. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +1 -1
  6. package/dist/broker/nativeBroker/PlatformAuthDOMHandler.d.ts.map +1 -1
  7. package/dist/broker/nativeBroker/PlatformAuthDOMHandler.mjs +23 -9
  8. package/dist/broker/nativeBroker/PlatformAuthDOMHandler.mjs.map +1 -1
  9. package/dist/broker/nativeBroker/PlatformAuthExtensionHandler.mjs +1 -1
  10. package/dist/broker/nativeBroker/PlatformAuthProvider.mjs +1 -1
  11. package/dist/cache/AccountManager.mjs +1 -1
  12. package/dist/cache/AsyncMemoryStorage.mjs +1 -1
  13. package/dist/cache/BrowserCacheManager.mjs +1 -1
  14. package/dist/cache/CacheHelpers.mjs +1 -1
  15. package/dist/cache/CacheKeys.mjs +1 -1
  16. package/dist/cache/CookieStorage.mjs +1 -1
  17. package/dist/cache/DatabaseStorage.mjs +1 -1
  18. package/dist/cache/EncryptedData.mjs +1 -1
  19. package/dist/cache/LocalStorage.mjs +1 -1
  20. package/dist/cache/MemoryStorage.mjs +1 -1
  21. package/dist/cache/SessionStorage.mjs +1 -1
  22. package/dist/cache/TokenCache.mjs +1 -1
  23. package/dist/config/Configuration.mjs +1 -1
  24. package/dist/controllers/ControllerFactory.mjs +1 -1
  25. package/dist/controllers/NestedAppAuthController.mjs +1 -1
  26. package/dist/controllers/StandardController.d.ts +4 -2
  27. package/dist/controllers/StandardController.d.ts.map +1 -1
  28. package/dist/controllers/StandardController.mjs +55 -21
  29. package/dist/controllers/StandardController.mjs.map +1 -1
  30. package/dist/controllers/UnknownOperatingContextController.mjs +1 -1
  31. package/dist/crypto/BrowserCrypto.mjs +1 -1
  32. package/dist/crypto/CryptoOps.mjs +1 -1
  33. package/dist/crypto/PkceGenerator.mjs +1 -1
  34. package/dist/crypto/SignedHttpRequest.mjs +1 -1
  35. package/dist/custom-auth-path/app/PublicClientApplication.mjs +1 -1
  36. package/dist/custom-auth-path/broker/nativeBroker/NativeStatusCodes.mjs +1 -1
  37. package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthDOMHandler.d.ts.map +1 -1
  38. package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthDOMHandler.mjs +23 -9
  39. package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthDOMHandler.mjs.map +1 -1
  40. package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthExtensionHandler.mjs +1 -1
  41. package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthProvider.mjs +1 -1
  42. package/dist/custom-auth-path/cache/AccountManager.mjs +1 -1
  43. package/dist/custom-auth-path/cache/AsyncMemoryStorage.mjs +1 -1
  44. package/dist/custom-auth-path/cache/BrowserCacheManager.mjs +1 -1
  45. package/dist/custom-auth-path/cache/CacheHelpers.mjs +1 -1
  46. package/dist/custom-auth-path/cache/CacheKeys.mjs +1 -1
  47. package/dist/custom-auth-path/cache/CookieStorage.mjs +1 -1
  48. package/dist/custom-auth-path/cache/DatabaseStorage.mjs +1 -1
  49. package/dist/custom-auth-path/cache/EncryptedData.mjs +1 -1
  50. package/dist/custom-auth-path/cache/LocalStorage.mjs +1 -1
  51. package/dist/custom-auth-path/cache/MemoryStorage.mjs +1 -1
  52. package/dist/custom-auth-path/cache/SessionStorage.mjs +1 -1
  53. package/dist/custom-auth-path/cache/TokenCache.mjs +1 -1
  54. package/dist/custom-auth-path/config/Configuration.mjs +1 -1
  55. package/dist/custom-auth-path/controllers/ControllerFactory.mjs +1 -1
  56. package/dist/custom-auth-path/controllers/StandardController.d.ts +4 -2
  57. package/dist/custom-auth-path/controllers/StandardController.d.ts.map +1 -1
  58. package/dist/custom-auth-path/controllers/StandardController.mjs +55 -21
  59. package/dist/custom-auth-path/controllers/StandardController.mjs.map +1 -1
  60. package/dist/custom-auth-path/crypto/BrowserCrypto.mjs +1 -1
  61. package/dist/custom-auth-path/crypto/CryptoOps.mjs +1 -1
  62. package/dist/custom-auth-path/crypto/PkceGenerator.mjs +1 -1
  63. package/dist/custom-auth-path/custom_auth/CustomAuthConstants.d.ts +1 -1
  64. package/dist/custom-auth-path/custom_auth/CustomAuthConstants.mjs +1 -1
  65. package/dist/custom-auth-path/custom_auth/CustomAuthPublicClientApplication.mjs +1 -1
  66. package/dist/custom-auth-path/custom_auth/controller/CustomAuthStandardController.mjs +1 -1
  67. package/dist/custom-auth-path/custom_auth/core/CustomAuthAuthority.mjs +1 -1
  68. package/dist/custom-auth-path/custom_auth/core/auth_flow/AuthFlowErrorBase.mjs +1 -1
  69. package/dist/custom-auth-path/custom_auth/core/auth_flow/AuthFlowResultBase.mjs +1 -1
  70. package/dist/custom-auth-path/custom_auth/core/auth_flow/AuthFlowState.mjs +1 -1
  71. package/dist/custom-auth-path/custom_auth/core/auth_flow/AuthFlowStateTypes.mjs +1 -1
  72. package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/error_type/AuthMethodRegistrationError.mjs +1 -1
  73. package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/result/AuthMethodRegistrationChallengeMethodResult.mjs +1 -1
  74. package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/result/AuthMethodRegistrationSubmitChallengeResult.mjs +1 -1
  75. package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/state/AuthMethodRegistrationCompletedState.mjs +1 -1
  76. package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/state/AuthMethodRegistrationFailedState.mjs +1 -1
  77. package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/state/AuthMethodRegistrationState.mjs +1 -1
  78. package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/error_type/MfaError.mjs +1 -1
  79. package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/result/MfaRequestChallengeResult.mjs +1 -1
  80. package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/result/MfaSubmitChallengeResult.mjs +1 -1
  81. package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/state/MfaCompletedState.mjs +1 -1
  82. package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/state/MfaFailedState.mjs +1 -1
  83. package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/state/MfaState.mjs +1 -1
  84. package/dist/custom-auth-path/custom_auth/core/error/CustomAuthApiError.mjs +1 -1
  85. package/dist/custom-auth-path/custom_auth/core/error/CustomAuthError.mjs +1 -1
  86. package/dist/custom-auth-path/custom_auth/core/error/HttpError.mjs +1 -1
  87. package/dist/custom-auth-path/custom_auth/core/error/HttpErrorCodes.mjs +1 -1
  88. package/dist/custom-auth-path/custom_auth/core/error/InvalidArgumentError.mjs +1 -1
  89. package/dist/custom-auth-path/custom_auth/core/error/InvalidConfigurationError.mjs +1 -1
  90. package/dist/custom-auth-path/custom_auth/core/error/InvalidConfigurationErrorCodes.mjs +1 -1
  91. package/dist/custom-auth-path/custom_auth/core/error/MethodNotImplementedError.mjs +1 -1
  92. package/dist/custom-auth-path/custom_auth/core/error/MsalCustomAuthError.mjs +1 -1
  93. package/dist/custom-auth-path/custom_auth/core/error/NoCachedAccountFoundError.mjs +1 -1
  94. package/dist/custom-auth-path/custom_auth/core/error/ParsedUrlError.mjs +1 -1
  95. package/dist/custom-auth-path/custom_auth/core/error/ParsedUrlErrorCodes.mjs +1 -1
  96. package/dist/custom-auth-path/custom_auth/core/error/UnexpectedError.mjs +1 -1
  97. package/dist/custom-auth-path/custom_auth/core/error/UnsupportedEnvironmentError.mjs +1 -1
  98. package/dist/custom-auth-path/custom_auth/core/error/UserAccountAttributeError.mjs +1 -1
  99. package/dist/custom-auth-path/custom_auth/core/error/UserAlreadySignedInError.mjs +1 -1
  100. package/dist/custom-auth-path/custom_auth/core/interaction_client/CustomAuthInteractionClientBase.mjs +1 -1
  101. package/dist/custom-auth-path/custom_auth/core/interaction_client/CustomAuthInterationClientFactory.mjs +1 -1
  102. package/dist/custom-auth-path/custom_auth/core/interaction_client/jit/JitClient.mjs +1 -1
  103. package/dist/custom-auth-path/custom_auth/core/interaction_client/jit/result/JitActionResult.mjs +1 -1
  104. package/dist/custom-auth-path/custom_auth/core/interaction_client/mfa/MfaClient.mjs +1 -1
  105. package/dist/custom-auth-path/custom_auth/core/interaction_client/mfa/result/MfaActionResult.mjs +1 -1
  106. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/BaseApiClient.mjs +1 -1
  107. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/CustomAuthApiClient.mjs +1 -1
  108. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/CustomAuthApiEndpoint.mjs +1 -1
  109. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/RegisterApiClient.mjs +1 -1
  110. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/ResetPasswordApiClient.mjs +1 -1
  111. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/SignInApiClient.mjs +1 -1
  112. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/SignupApiClient.mjs +1 -1
  113. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/types/ApiErrorCodes.mjs +1 -1
  114. package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/types/ApiSuberrors.mjs +1 -1
  115. package/dist/custom-auth-path/custom_auth/core/network_client/http_client/FetchHttpClient.mjs +1 -1
  116. package/dist/custom-auth-path/custom_auth/core/network_client/http_client/IHttpClient.mjs +1 -1
  117. package/dist/custom-auth-path/custom_auth/core/telemetry/PublicApiId.mjs +1 -1
  118. package/dist/custom-auth-path/custom_auth/core/utils/ArgumentValidator.mjs +1 -1
  119. package/dist/custom-auth-path/custom_auth/core/utils/UrlUtils.mjs +1 -1
  120. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/CustomAuthAccountData.mjs +1 -1
  121. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/error_type/GetAccountError.mjs +1 -1
  122. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/result/GetAccessTokenResult.mjs +1 -1
  123. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/result/GetAccountResult.mjs +1 -1
  124. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/result/SignOutResult.mjs +1 -1
  125. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/state/GetAccessTokenState.mjs +1 -1
  126. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/state/GetAccountState.mjs +1 -1
  127. package/dist/custom-auth-path/custom_auth/get_account/auth_flow/state/SignOutState.mjs +1 -1
  128. package/dist/custom-auth-path/custom_auth/get_account/interaction_client/CustomAuthSilentCacheClient.mjs +1 -1
  129. package/dist/custom-auth-path/custom_auth/index.mjs +1 -1
  130. package/dist/custom-auth-path/custom_auth/operating_context/CustomAuthOperatingContext.mjs +1 -1
  131. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/error_type/ResetPasswordError.mjs +1 -1
  132. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/result/ResetPasswordResendCodeResult.mjs +1 -1
  133. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/result/ResetPasswordStartResult.mjs +1 -1
  134. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/result/ResetPasswordSubmitCodeResult.mjs +1 -1
  135. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/result/ResetPasswordSubmitPasswordResult.mjs +1 -1
  136. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordCodeRequiredState.mjs +1 -1
  137. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordCompletedState.mjs +1 -1
  138. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordFailedState.mjs +1 -1
  139. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordPasswordRequiredState.mjs +1 -1
  140. package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordState.mjs +1 -1
  141. package/dist/custom-auth-path/custom_auth/reset_password/interaction_client/ResetPasswordClient.mjs +1 -1
  142. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/SignInScenario.mjs +1 -1
  143. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/error_type/SignInError.mjs +1 -1
  144. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/result/SignInResendCodeResult.mjs +1 -1
  145. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/result/SignInResult.mjs +1 -1
  146. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/result/SignInSubmitCodeResult.mjs +1 -1
  147. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/result/SignInSubmitPasswordResult.mjs +1 -1
  148. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInCodeRequiredState.mjs +1 -1
  149. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInCompletedState.mjs +1 -1
  150. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInContinuationState.mjs +1 -1
  151. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInFailedState.mjs +1 -1
  152. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInPasswordRequiredState.mjs +1 -1
  153. package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInState.mjs +1 -1
  154. package/dist/custom-auth-path/custom_auth/sign_in/interaction_client/SignInClient.mjs +1 -1
  155. package/dist/custom-auth-path/custom_auth/sign_in/interaction_client/result/SignInActionResult.mjs +1 -1
  156. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/error_type/SignUpError.mjs +1 -1
  157. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpResendCodeResult.mjs +1 -1
  158. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpResult.mjs +1 -1
  159. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpSubmitAttributesResult.mjs +1 -1
  160. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpSubmitCodeResult.mjs +1 -1
  161. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpSubmitPasswordResult.mjs +1 -1
  162. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpAttributesRequiredState.mjs +1 -1
  163. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpCodeRequiredState.mjs +1 -1
  164. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpCompletedState.mjs +1 -1
  165. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpFailedState.mjs +1 -1
  166. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpPasswordRequiredState.mjs +1 -1
  167. package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpState.mjs +1 -1
  168. package/dist/custom-auth-path/custom_auth/sign_up/interaction_client/SignUpClient.mjs +1 -1
  169. package/dist/custom-auth-path/custom_auth/sign_up/interaction_client/result/SignUpActionResult.mjs +1 -1
  170. package/dist/custom-auth-path/encode/Base64Decode.mjs +1 -1
  171. package/dist/custom-auth-path/encode/Base64Encode.mjs +1 -1
  172. package/dist/custom-auth-path/error/BrowserAuthError.mjs +1 -1
  173. package/dist/custom-auth-path/error/BrowserAuthErrorCodes.mjs +1 -1
  174. package/dist/custom-auth-path/error/BrowserConfigurationAuthError.mjs +1 -1
  175. package/dist/custom-auth-path/error/BrowserConfigurationAuthErrorCodes.mjs +1 -1
  176. package/dist/custom-auth-path/error/NativeAuthError.mjs +1 -1
  177. package/dist/custom-auth-path/error/NativeAuthErrorCodes.mjs +1 -1
  178. package/dist/custom-auth-path/event/EventHandler.mjs +1 -1
  179. package/dist/custom-auth-path/event/EventType.mjs +1 -1
  180. package/dist/custom-auth-path/interaction_client/BaseInteractionClient.mjs +1 -1
  181. package/dist/custom-auth-path/interaction_client/HybridSpaAuthorizationCodeClient.mjs +1 -1
  182. package/dist/custom-auth-path/interaction_client/PlatformAuthInteractionClient.mjs +1 -1
  183. package/dist/custom-auth-path/interaction_client/PopupClient.mjs +1 -1
  184. package/dist/custom-auth-path/interaction_client/RedirectClient.mjs +1 -1
  185. package/dist/custom-auth-path/interaction_client/SilentAuthCodeClient.mjs +1 -1
  186. package/dist/custom-auth-path/interaction_client/SilentCacheClient.mjs +1 -1
  187. package/dist/custom-auth-path/interaction_client/SilentIframeClient.mjs +1 -1
  188. package/dist/custom-auth-path/interaction_client/SilentRefreshClient.mjs +1 -1
  189. package/dist/custom-auth-path/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  190. package/dist/custom-auth-path/interaction_client/StandardInteractionClient.mjs +5 -1
  191. package/dist/custom-auth-path/interaction_client/StandardInteractionClient.mjs.map +1 -1
  192. package/dist/custom-auth-path/interaction_handler/InteractionHandler.mjs +1 -1
  193. package/dist/custom-auth-path/interaction_handler/SilentHandler.d.ts.map +1 -1
  194. package/dist/custom-auth-path/interaction_handler/SilentHandler.mjs +15 -2
  195. package/dist/custom-auth-path/interaction_handler/SilentHandler.mjs.map +1 -1
  196. package/dist/custom-auth-path/navigation/NavigationClient.mjs +1 -1
  197. package/dist/custom-auth-path/network/FetchClient.mjs +1 -1
  198. package/dist/custom-auth-path/operatingcontext/BaseOperatingContext.mjs +1 -1
  199. package/dist/custom-auth-path/operatingcontext/StandardOperatingContext.mjs +1 -1
  200. package/dist/custom-auth-path/packageMetadata.d.ts +1 -1
  201. package/dist/custom-auth-path/packageMetadata.mjs +2 -2
  202. package/dist/custom-auth-path/protocol/Authorize.mjs +1 -1
  203. package/dist/custom-auth-path/request/RequestHelpers.mjs +1 -1
  204. package/dist/custom-auth-path/response/ResponseHandler.mjs +1 -1
  205. package/dist/custom-auth-path/telemetry/BrowserPerformanceClient.d.ts +1 -0
  206. package/dist/custom-auth-path/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  207. package/dist/custom-auth-path/utils/BrowserConstants.mjs +1 -1
  208. package/dist/custom-auth-path/utils/BrowserProtocolUtils.mjs +1 -1
  209. package/dist/custom-auth-path/utils/BrowserUtils.mjs +1 -1
  210. package/dist/custom-auth-path/utils/Helpers.mjs +1 -1
  211. package/dist/custom-auth-path/utils/MsalFrameStatsUtils.d.ts +10 -0
  212. package/dist/custom-auth-path/utils/MsalFrameStatsUtils.d.ts.map +1 -1
  213. package/dist/custom-auth-path/utils/MsalFrameStatsUtils.mjs +5 -1
  214. package/dist/custom-auth-path/utils/MsalFrameStatsUtils.mjs.map +1 -1
  215. package/dist/custom_auth/CustomAuthConstants.d.ts +1 -1
  216. package/dist/encode/Base64Decode.mjs +1 -1
  217. package/dist/encode/Base64Encode.mjs +1 -1
  218. package/dist/error/BrowserAuthError.mjs +1 -1
  219. package/dist/error/BrowserAuthErrorCodes.mjs +1 -1
  220. package/dist/error/BrowserConfigurationAuthError.mjs +1 -1
  221. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +1 -1
  222. package/dist/error/NativeAuthError.mjs +1 -1
  223. package/dist/error/NativeAuthErrorCodes.mjs +1 -1
  224. package/dist/error/NestedAppAuthError.mjs +1 -1
  225. package/dist/event/EventHandler.mjs +1 -1
  226. package/dist/event/EventMessage.mjs +1 -1
  227. package/dist/event/EventType.mjs +1 -1
  228. package/dist/index.mjs +1 -1
  229. package/dist/interaction_client/BaseInteractionClient.mjs +1 -1
  230. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +1 -1
  231. package/dist/interaction_client/PlatformAuthInteractionClient.mjs +1 -1
  232. package/dist/interaction_client/PopupClient.mjs +1 -1
  233. package/dist/interaction_client/RedirectClient.mjs +1 -1
  234. package/dist/interaction_client/SilentAuthCodeClient.mjs +1 -1
  235. package/dist/interaction_client/SilentCacheClient.mjs +1 -1
  236. package/dist/interaction_client/SilentIframeClient.mjs +1 -1
  237. package/dist/interaction_client/SilentRefreshClient.mjs +1 -1
  238. package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  239. package/dist/interaction_client/StandardInteractionClient.mjs +5 -1
  240. package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
  241. package/dist/interaction_handler/InteractionHandler.mjs +1 -1
  242. package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
  243. package/dist/interaction_handler/SilentHandler.mjs +15 -2
  244. package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
  245. package/dist/naa/BridgeError.mjs +1 -1
  246. package/dist/naa/BridgeProxy.mjs +1 -1
  247. package/dist/naa/BridgeStatusCode.mjs +1 -1
  248. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +1 -1
  249. package/dist/navigation/NavigationClient.mjs +1 -1
  250. package/dist/network/FetchClient.mjs +1 -1
  251. package/dist/operatingcontext/BaseOperatingContext.mjs +1 -1
  252. package/dist/operatingcontext/NestedAppOperatingContext.mjs +1 -1
  253. package/dist/operatingcontext/StandardOperatingContext.mjs +1 -1
  254. package/dist/operatingcontext/UnknownOperatingContext.mjs +1 -1
  255. package/dist/packageMetadata.d.ts +1 -1
  256. package/dist/packageMetadata.mjs +2 -2
  257. package/dist/protocol/Authorize.mjs +1 -1
  258. package/dist/request/RequestHelpers.mjs +1 -1
  259. package/dist/response/ResponseHandler.mjs +1 -1
  260. package/dist/telemetry/BrowserPerformanceClient.d.ts +1 -0
  261. package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  262. package/dist/telemetry/BrowserPerformanceClient.mjs +10 -1
  263. package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -1
  264. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +1 -1
  265. package/dist/utils/BrowserConstants.mjs +1 -1
  266. package/dist/utils/BrowserProtocolUtils.mjs +1 -1
  267. package/dist/utils/BrowserUtils.mjs +1 -1
  268. package/dist/utils/Helpers.mjs +1 -1
  269. package/dist/utils/MsalFrameStatsUtils.d.ts +10 -0
  270. package/dist/utils/MsalFrameStatsUtils.d.ts.map +1 -1
  271. package/dist/utils/MsalFrameStatsUtils.mjs +18 -2
  272. package/dist/utils/MsalFrameStatsUtils.mjs.map +1 -1
  273. package/lib/custom-auth-path/msal-custom-auth.cjs +228 -109
  274. package/lib/custom-auth-path/msal-custom-auth.cjs.map +1 -1
  275. package/lib/custom-auth-path/msal-custom-auth.js +228 -109
  276. package/lib/custom-auth-path/msal-custom-auth.js.map +1 -1
  277. package/lib/custom-auth-path/types/broker/nativeBroker/PlatformAuthDOMHandler.d.ts.map +1 -1
  278. package/lib/custom-auth-path/types/controllers/StandardController.d.ts +4 -2
  279. package/lib/custom-auth-path/types/controllers/StandardController.d.ts.map +1 -1
  280. package/lib/custom-auth-path/types/custom_auth/CustomAuthConstants.d.ts +1 -1
  281. package/lib/custom-auth-path/types/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  282. package/lib/custom-auth-path/types/interaction_handler/SilentHandler.d.ts.map +1 -1
  283. package/lib/custom-auth-path/types/packageMetadata.d.ts +1 -1
  284. package/lib/custom-auth-path/types/telemetry/BrowserPerformanceClient.d.ts +1 -0
  285. package/lib/custom-auth-path/types/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  286. package/lib/custom-auth-path/types/utils/MsalFrameStatsUtils.d.ts +10 -0
  287. package/lib/custom-auth-path/types/utils/MsalFrameStatsUtils.d.ts.map +1 -1
  288. package/lib/msal-browser.cjs +255 -111
  289. package/lib/msal-browser.cjs.map +1 -1
  290. package/lib/msal-browser.js +255 -111
  291. package/lib/msal-browser.js.map +1 -1
  292. package/lib/msal-browser.min.js +62 -62
  293. package/lib/types/broker/nativeBroker/PlatformAuthDOMHandler.d.ts.map +1 -1
  294. package/lib/types/controllers/StandardController.d.ts +4 -2
  295. package/lib/types/controllers/StandardController.d.ts.map +1 -1
  296. package/lib/types/custom_auth/CustomAuthConstants.d.ts +1 -1
  297. package/lib/types/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  298. package/lib/types/interaction_handler/SilentHandler.d.ts.map +1 -1
  299. package/lib/types/packageMetadata.d.ts +1 -1
  300. package/lib/types/telemetry/BrowserPerformanceClient.d.ts +1 -0
  301. package/lib/types/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  302. package/lib/types/utils/MsalFrameStatsUtils.d.ts +10 -0
  303. package/lib/types/utils/MsalFrameStatsUtils.d.ts.map +1 -1
  304. package/package.json +2 -2
  305. package/src/broker/nativeBroker/PlatformAuthDOMHandler.ts +24 -13
  306. package/src/controllers/StandardController.ts +74 -41
  307. package/src/interaction_client/StandardInteractionClient.ts +12 -0
  308. package/src/interaction_handler/SilentHandler.ts +21 -1
  309. package/src/packageMetadata.ts +1 -1
  310. package/src/telemetry/BrowserPerformanceClient.ts +10 -0
  311. package/src/utils/MsalFrameStatsUtils.ts +27 -0
@@ -1,8 +1,8 @@
1
- /*! @azure/msal-browser v4.29.0 2026-02-23 */
1
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
2
2
  'use strict';
3
3
  'use strict';
4
4
 
5
- /*! @azure/msal-common v15.15.0 2026-02-23 */
5
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
6
6
  /*
7
7
  * Copyright (c) Microsoft Corporation. All rights reserved.
8
8
  * Licensed under the MIT License.
@@ -276,7 +276,7 @@ const JsonWebTokenTypes = {
276
276
  // Token renewal offset default in seconds
277
277
  const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
278
278
 
279
- /*! @azure/msal-common v15.15.0 2026-02-23 */
279
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
280
280
  /*
281
281
  * Copyright (c) Microsoft Corporation. All rights reserved.
282
282
  * Licensed under the MIT License.
@@ -287,7 +287,7 @@ const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
287
287
  const unexpectedError = "unexpected_error";
288
288
  const postRequestFailed$1 = "post_request_failed";
289
289
 
290
- /*! @azure/msal-common v15.15.0 2026-02-23 */
290
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
291
291
 
292
292
  /*
293
293
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -322,7 +322,7 @@ function createAuthError(code, additionalMessage) {
322
322
  : AuthErrorMessages[code]);
323
323
  }
324
324
 
325
- /*! @azure/msal-common v15.15.0 2026-02-23 */
325
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
326
326
  /*
327
327
  * Copyright (c) Microsoft Corporation. All rights reserved.
328
328
  * Licensed under the MIT License.
@@ -373,7 +373,7 @@ const methodNotImplemented = "method_not_implemented";
373
373
  const nestedAppAuthBridgeDisabled = "nested_app_auth_bridge_disabled";
374
374
  const platformBrokerError = "platform_broker_error";
375
375
 
376
- /*! @azure/msal-common v15.15.0 2026-02-23 */
376
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
377
377
 
378
378
  /*
379
379
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -448,7 +448,7 @@ function createClientAuthError(errorCode, additionalMessage) {
448
448
  return new ClientAuthError(errorCode, additionalMessage);
449
449
  }
450
450
 
451
- /*! @azure/msal-common v15.15.0 2026-02-23 */
451
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
452
452
 
453
453
  /*
454
454
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -487,7 +487,7 @@ const DEFAULT_CRYPTO_IMPLEMENTATION = {
487
487
  },
488
488
  };
489
489
 
490
- /*! @azure/msal-common v15.15.0 2026-02-23 */
490
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
491
491
 
492
492
  /*
493
493
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -678,12 +678,12 @@ class Logger {
678
678
  }
679
679
  }
680
680
 
681
- /*! @azure/msal-common v15.15.0 2026-02-23 */
681
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
682
682
  /* eslint-disable header/header */
683
683
  const name$1 = "@azure/msal-common";
684
- const version$1 = "15.15.0";
684
+ const version$1 = "15.16.1";
685
685
 
686
- /*! @azure/msal-common v15.15.0 2026-02-23 */
686
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
687
687
  /*
688
688
  * Copyright (c) Microsoft Corporation. All rights reserved.
689
689
  * Licensed under the MIT License.
@@ -692,7 +692,7 @@ const AzureCloudInstance = {
692
692
  // AzureCloudInstance is not specified.
693
693
  None: "none"};
694
694
 
695
- /*! @azure/msal-common v15.15.0 2026-02-23 */
695
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
696
696
  /*
697
697
  * Copyright (c) Microsoft Corporation. All rights reserved.
698
698
  * Licensed under the MIT License.
@@ -722,7 +722,7 @@ const invalidRequestMethodForEAR = "invalid_request_method_for_EAR";
722
722
  const invalidAuthorizePostBodyParameters = "invalid_authorize_post_body_parameters";
723
723
  const invalidPlatformBrokerConfiguration = "invalid_platform_broker_configuration";
724
724
 
725
- /*! @azure/msal-common v15.15.0 2026-02-23 */
725
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
726
726
 
727
727
  /*
728
728
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -768,7 +768,7 @@ function createClientConfigurationError(errorCode) {
768
768
  return new ClientConfigurationError(errorCode);
769
769
  }
770
770
 
771
- /*! @azure/msal-common v15.15.0 2026-02-23 */
771
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
772
772
  /*
773
773
  * Copyright (c) Microsoft Corporation. All rights reserved.
774
774
  * Licensed under the MIT License.
@@ -863,9 +863,48 @@ class StringUtils {
863
863
  .replace(/\?/g, "\\?"));
864
864
  return regex.test(input);
865
865
  }
866
+ /**
867
+ * Tests if a given string matches a given pattern using stricter, anchored matching semantics.
868
+ *
869
+ * Differences from `matchPattern` (legacy):
870
+ * - All regex metacharacters (including `.`) in the pattern are treated as literals,
871
+ * so `example.com` matches only `example.com` and not `exampleXcom`.
872
+ * - The generated regex is anchored with `^` and `$` so partial/substring matches
873
+ * are not allowed.
874
+ * - `*` is the only supported wildcard. Its behaviour depends on the URL component:
875
+ * - `host` component: `*` matches any sequence of characters that does NOT include
876
+ * a dot (`.`), keeping wildcards within a single DNS label boundary.
877
+ * - All other components: `*` matches any sequence of characters (including `/`).
878
+ *
879
+ * @param pattern - The `protectedResourceMap` key pattern to match against. `*` is a
880
+ * multi-character wildcard; all other characters are treated as literals.
881
+ * @param input - The URL component value (e.g. host, pathname) extracted from the
882
+ * outgoing request URL to test against the pattern.
883
+ * @param options - Optional. Provide `component` to enable component-aware wildcard
884
+ * semantics. Accepted values: `"host"`, `"path"`, `"protocol"`, `"search"`,
885
+ * `"hash"`. Defaults to path-style (permissive) matching when omitted.
886
+ * @returns `true` if the full input string matches the pattern; `false` otherwise.
887
+ */
888
+ static matchPatternStrict(pattern, input, options) {
889
+ const component = options?.component;
890
+ // Step 1: Escape all regex special characters so literals are matched literally.
891
+ let regexBody = pattern.replace(/[.+^${}()|[\]\\*?]/g, "\\$&");
892
+ // Step 2: Replace the escaped '*' with its component-aware regex equivalent.
893
+ if (component === "host") {
894
+ regexBody = regexBody.replace(/\\\*/g, "[^.]*");
895
+ }
896
+ else {
897
+ // PATH, PROTOCOL, SEARCH, HASH, or unspecified: '*' matches any characters.
898
+ regexBody = regexBody.replace(/\\\*/g, ".*");
899
+ }
900
+ // Step 3: Anchor for full-string matching.
901
+ // eslint-disable-next-line security/detect-non-literal-regexp
902
+ const regex = new RegExp(`^${regexBody}$`);
903
+ return regex.test(input);
904
+ }
866
905
  }
867
906
 
868
- /*! @azure/msal-common v15.15.0 2026-02-23 */
907
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
869
908
 
870
909
  /*
871
910
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1060,7 +1099,7 @@ class ScopeSet {
1060
1099
  }
1061
1100
  }
1062
1101
 
1063
- /*! @azure/msal-common v15.15.0 2026-02-23 */
1102
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
1064
1103
 
1065
1104
  /*
1066
1105
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1100,7 +1139,7 @@ function buildClientInfoFromHomeAccountId(homeAccountId) {
1100
1139
  };
1101
1140
  }
1102
1141
 
1103
- /*! @azure/msal-common v15.15.0 2026-02-23 */
1142
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
1104
1143
  /*
1105
1144
  * Copyright (c) Microsoft Corporation. All rights reserved.
1106
1145
  * Licensed under the MIT License.
@@ -1182,7 +1221,7 @@ function updateAccountTenantProfileData(baseAccountInfo, tenantProfile, idTokenC
1182
1221
  return updatedAccountInfo;
1183
1222
  }
1184
1223
 
1185
- /*! @azure/msal-common v15.15.0 2026-02-23 */
1224
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
1186
1225
  /*
1187
1226
  * Copyright (c) Microsoft Corporation. All rights reserved.
1188
1227
  * Licensed under the MIT License.
@@ -1197,7 +1236,7 @@ const AuthorityType = {
1197
1236
  Ciam: 3,
1198
1237
  };
1199
1238
 
1200
- /*! @azure/msal-common v15.15.0 2026-02-23 */
1239
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
1201
1240
  /*
1202
1241
  * Copyright (c) Microsoft Corporation. All rights reserved.
1203
1242
  * Licensed under the MIT License.
@@ -1219,7 +1258,7 @@ function getTenantIdFromIdTokenClaims(idTokenClaims) {
1219
1258
  return null;
1220
1259
  }
1221
1260
 
1222
- /*! @azure/msal-common v15.15.0 2026-02-23 */
1261
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
1223
1262
  /*
1224
1263
  * Copyright (c) Microsoft Corporation. All rights reserved.
1225
1264
  * Licensed under the MIT License.
@@ -1243,7 +1282,7 @@ const ProtocolMode = {
1243
1282
  EAR: "EAR",
1244
1283
  };
1245
1284
 
1246
- /*! @azure/msal-common v15.15.0 2026-02-23 */
1285
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
1247
1286
 
1248
1287
  /*
1249
1288
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1478,7 +1517,7 @@ class AccountEntity {
1478
1517
  }
1479
1518
  }
1480
1519
 
1481
- /*! @azure/msal-common v15.15.0 2026-02-23 */
1520
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
1482
1521
 
1483
1522
  /*
1484
1523
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1559,7 +1598,7 @@ function checkMaxAge(authTime, maxAge) {
1559
1598
  }
1560
1599
  }
1561
1600
 
1562
- /*! @azure/msal-common v15.15.0 2026-02-23 */
1601
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
1563
1602
 
1564
1603
  /*
1565
1604
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1675,7 +1714,7 @@ function normalizeUrlForComparison(url) {
1675
1714
  }
1676
1715
  }
1677
1716
 
1678
- /*! @azure/msal-common v15.15.0 2026-02-23 */
1717
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
1679
1718
 
1680
1719
  /*
1681
1720
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1839,7 +1878,7 @@ class UrlString {
1839
1878
  }
1840
1879
  }
1841
1880
 
1842
- /*! @azure/msal-common v15.15.0 2026-02-23 */
1881
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
1843
1882
 
1844
1883
  /*
1845
1884
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -2014,7 +2053,7 @@ function getCloudDiscoveryMetadataFromNetworkResponse(response, authorityHost) {
2014
2053
  return null;
2015
2054
  }
2016
2055
 
2017
- /*! @azure/msal-common v15.15.0 2026-02-23 */
2056
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
2018
2057
  /*
2019
2058
  * Copyright (c) Microsoft Corporation. All rights reserved.
2020
2059
  * Licensed under the MIT License.
@@ -2022,7 +2061,7 @@ function getCloudDiscoveryMetadataFromNetworkResponse(response, authorityHost) {
2022
2061
  const cacheQuotaExceeded = "cache_quota_exceeded";
2023
2062
  const cacheErrorUnknown = "cache_error_unknown";
2024
2063
 
2025
- /*! @azure/msal-common v15.15.0 2026-02-23 */
2064
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
2026
2065
 
2027
2066
  /*
2028
2067
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -2067,7 +2106,7 @@ function createCacheError(e) {
2067
2106
  }
2068
2107
  }
2069
2108
 
2070
- /*! @azure/msal-common v15.15.0 2026-02-23 */
2109
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
2071
2110
 
2072
2111
  /*
2073
2112
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -3177,7 +3216,7 @@ class DefaultStorageClass extends CacheManager {
3177
3216
  }
3178
3217
  }
3179
3218
 
3180
- /*! @azure/msal-common v15.15.0 2026-02-23 */
3219
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
3181
3220
  /*
3182
3221
  * Copyright (c) Microsoft Corporation. All rights reserved.
3183
3222
  * Licensed under the MIT License.
@@ -3454,7 +3493,7 @@ const PerformanceEvents = {
3454
3493
  const PerformanceEventStatus = {
3455
3494
  InProgress: 1};
3456
3495
 
3457
- /*! @azure/msal-common v15.15.0 2026-02-23 */
3496
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
3458
3497
 
3459
3498
  /*
3460
3499
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -3533,7 +3572,7 @@ class StubPerformanceClient {
3533
3572
  }
3534
3573
  }
3535
3574
 
3536
- /*! @azure/msal-common v15.15.0 2026-02-23 */
3575
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
3537
3576
 
3538
3577
  /*
3539
3578
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -3633,7 +3672,7 @@ function isOidcProtocolMode(config) {
3633
3672
  return (config.authOptions.authority.options.protocolMode === ProtocolMode.OIDC);
3634
3673
  }
3635
3674
 
3636
- /*! @azure/msal-common v15.15.0 2026-02-23 */
3675
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
3637
3676
  /*
3638
3677
  * Copyright (c) Microsoft Corporation. All rights reserved.
3639
3678
  * Licensed under the MIT License.
@@ -3643,7 +3682,7 @@ const CcsCredentialType = {
3643
3682
  UPN: "UPN",
3644
3683
  };
3645
3684
 
3646
- /*! @azure/msal-common v15.15.0 2026-02-23 */
3685
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
3647
3686
  /*
3648
3687
  * Copyright (c) Microsoft Corporation. All rights reserved.
3649
3688
  * Licensed under the MIT License.
@@ -3693,7 +3732,7 @@ const INSTANCE_AWARE = "instance_aware";
3693
3732
  const EAR_JWK = "ear_jwk";
3694
3733
  const EAR_JWE_CRYPTO = "ear_jwe_crypto";
3695
3734
 
3696
- /*! @azure/msal-common v15.15.0 2026-02-23 */
3735
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
3697
3736
 
3698
3737
  /*
3699
3738
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -4073,7 +4112,7 @@ function addPostBodyParameters(parameters, bodyParameters) {
4073
4112
  });
4074
4113
  }
4075
4114
 
4076
- /*! @azure/msal-common v15.15.0 2026-02-23 */
4115
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
4077
4116
  /*
4078
4117
  * Copyright (c) Microsoft Corporation. All rights reserved.
4079
4118
  * Licensed under the MIT License.
@@ -4085,7 +4124,7 @@ function isOpenIdConfigResponse(response) {
4085
4124
  response.hasOwnProperty("jwks_uri"));
4086
4125
  }
4087
4126
 
4088
- /*! @azure/msal-common v15.15.0 2026-02-23 */
4127
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
4089
4128
  /*
4090
4129
  * Copyright (c) Microsoft Corporation. All rights reserved.
4091
4130
  * Licensed under the MIT License.
@@ -4095,7 +4134,7 @@ function isCloudInstanceDiscoveryResponse(response) {
4095
4134
  response.hasOwnProperty("metadata"));
4096
4135
  }
4097
4136
 
4098
- /*! @azure/msal-common v15.15.0 2026-02-23 */
4137
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
4099
4138
  /*
4100
4139
  * Copyright (c) Microsoft Corporation. All rights reserved.
4101
4140
  * Licensed under the MIT License.
@@ -4105,7 +4144,7 @@ function isCloudInstanceDiscoveryErrorResponse(response) {
4105
4144
  response.hasOwnProperty("error_description"));
4106
4145
  }
4107
4146
 
4108
- /*! @azure/msal-common v15.15.0 2026-02-23 */
4147
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
4109
4148
  /*
4110
4149
  * Copyright (c) Microsoft Corporation. All rights reserved.
4111
4150
  * Licensed under the MIT License.
@@ -4201,7 +4240,7 @@ const invokeAsync = (callback, eventName, logger, telemetryClient, correlationId
4201
4240
  };
4202
4241
  };
4203
4242
 
4204
- /*! @azure/msal-common v15.15.0 2026-02-23 */
4243
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
4205
4244
 
4206
4245
  /*
4207
4246
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -4307,7 +4346,7 @@ RegionDiscovery.IMDS_OPTIONS = {
4307
4346
  },
4308
4347
  };
4309
4348
 
4310
- /*! @azure/msal-common v15.15.0 2026-02-23 */
4349
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
4311
4350
  /*
4312
4351
  * Copyright (c) Microsoft Corporation. All rights reserved.
4313
4352
  * Licensed under the MIT License.
@@ -4372,7 +4411,7 @@ function wasClockTurnedBack(cachedAt) {
4372
4411
  return cachedAtSec > nowSeconds();
4373
4412
  }
4374
4413
 
4375
- /*! @azure/msal-common v15.15.0 2026-02-23 */
4414
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
4376
4415
 
4377
4416
  /*
4378
4417
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -4634,7 +4673,7 @@ function isAuthorityMetadataExpired(metadata) {
4634
4673
  return metadata.expiresAt <= nowSeconds();
4635
4674
  }
4636
4675
 
4637
- /*! @azure/msal-common v15.15.0 2026-02-23 */
4676
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
4638
4677
 
4639
4678
  /*
4640
4679
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -5473,7 +5512,7 @@ function buildStaticAuthorityOptions(authOptions) {
5473
5512
  };
5474
5513
  }
5475
5514
 
5476
- /*! @azure/msal-common v15.15.0 2026-02-23 */
5515
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
5477
5516
 
5478
5517
  /*
5479
5518
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -5504,7 +5543,7 @@ async function createDiscoveredInstance(authorityUri, networkClient, cacheManage
5504
5543
  }
5505
5544
  }
5506
5545
 
5507
- /*! @azure/msal-common v15.15.0 2026-02-23 */
5546
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
5508
5547
 
5509
5548
  /*
5510
5549
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -5523,7 +5562,7 @@ class ServerError extends AuthError {
5523
5562
  }
5524
5563
  }
5525
5564
 
5526
- /*! @azure/msal-common v15.15.0 2026-02-23 */
5565
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
5527
5566
  /*
5528
5567
  * Copyright (c) Microsoft Corporation. All rights reserved.
5529
5568
  * Licensed under the MIT License.
@@ -5544,7 +5583,7 @@ function getRequestThumbprint(clientId, request, homeAccountId) {
5544
5583
  };
5545
5584
  }
5546
5585
 
5547
- /*! @azure/msal-common v15.15.0 2026-02-23 */
5586
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
5548
5587
 
5549
5588
  /*
5550
5589
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -5631,7 +5670,7 @@ class ThrottlingUtils {
5631
5670
  }
5632
5671
  }
5633
5672
 
5634
- /*! @azure/msal-common v15.15.0 2026-02-23 */
5673
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
5635
5674
 
5636
5675
  /*
5637
5676
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -5662,7 +5701,7 @@ function createNetworkError(error, httpStatus, responseHeaders, additionalError)
5662
5701
  return new NetworkError(error, httpStatus, responseHeaders);
5663
5702
  }
5664
5703
 
5665
- /*! @azure/msal-common v15.15.0 2026-02-23 */
5704
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
5666
5705
 
5667
5706
  /*
5668
5707
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -5810,7 +5849,7 @@ class BaseClient {
5810
5849
  }
5811
5850
  }
5812
5851
 
5813
- /*! @azure/msal-common v15.15.0 2026-02-23 */
5852
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
5814
5853
  /*
5815
5854
  * Copyright (c) Microsoft Corporation. All rights reserved.
5816
5855
  * Licensed under the MIT License.
@@ -5861,7 +5900,7 @@ const badToken = "bad_token";
5861
5900
  */
5862
5901
  const interruptedUser = "interrupted_user";
5863
5902
 
5864
- /*! @azure/msal-common v15.15.0 2026-02-23 */
5903
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
5865
5904
 
5866
5905
  /*
5867
5906
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -5936,7 +5975,7 @@ function createInteractionRequiredAuthError(errorCode) {
5936
5975
  return new InteractionRequiredAuthError(errorCode, InteractionRequiredAuthErrorMessages[errorCode]);
5937
5976
  }
5938
5977
 
5939
- /*! @azure/msal-common v15.15.0 2026-02-23 */
5978
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
5940
5979
 
5941
5980
  /*
5942
5981
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6008,7 +6047,7 @@ class ProtocolUtils {
6008
6047
  }
6009
6048
  }
6010
6049
 
6011
- /*! @azure/msal-common v15.15.0 2026-02-23 */
6050
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
6012
6051
 
6013
6052
  /*
6014
6053
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6090,7 +6129,7 @@ class PopTokenGenerator {
6090
6129
  }
6091
6130
  }
6092
6131
 
6093
- /*! @azure/msal-common v15.15.0 2026-02-23 */
6132
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
6094
6133
  /*
6095
6134
  * Copyright (c) Microsoft Corporation. All rights reserved.
6096
6135
  * Licensed under the MIT License.
@@ -6117,7 +6156,7 @@ class PopTokenGenerator {
6117
6156
  }
6118
6157
  }
6119
6158
 
6120
- /*! @azure/msal-common v15.15.0 2026-02-23 */
6159
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
6121
6160
 
6122
6161
  /*
6123
6162
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6456,7 +6495,7 @@ function buildAccountToCache(cacheStorage, authority, homeAccountId, base64Decod
6456
6495
  return baseAccount;
6457
6496
  }
6458
6497
 
6459
- /*! @azure/msal-common v15.15.0 2026-02-23 */
6498
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
6460
6499
  /*
6461
6500
  * Copyright (c) Microsoft Corporation. All rights reserved.
6462
6501
  * Licensed under the MIT License.
@@ -6474,7 +6513,7 @@ async function getClientAssertion(clientAssertion, clientId, tokenEndpoint) {
6474
6513
  }
6475
6514
  }
6476
6515
 
6477
- /*! @azure/msal-common v15.15.0 2026-02-23 */
6516
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
6478
6517
 
6479
6518
  /*
6480
6519
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6623,11 +6662,6 @@ class AuthorizationCodeClient extends BaseClient {
6623
6662
  throw createClientConfigurationError(missingSshJwk);
6624
6663
  }
6625
6664
  }
6626
- if (!StringUtils.isEmptyObj(request.claims) ||
6627
- (this.config.authOptions.clientCapabilities &&
6628
- this.config.authOptions.clientCapabilities.length > 0)) {
6629
- addClaims(parameters, request.claims, this.config.authOptions.clientCapabilities);
6630
- }
6631
6665
  let ccsCred = undefined;
6632
6666
  if (request.clientInfo) {
6633
6667
  try {
@@ -6677,6 +6711,15 @@ class AuthorizationCodeClient extends BaseClient {
6677
6711
  });
6678
6712
  }
6679
6713
  instrumentBrokerParams(parameters, request.correlationId, this.performanceClient);
6714
+ // ignore config claims if skipBrokerClaims is set to true and this is a brokered authentication flow
6715
+ const configClaims = request.skipBrokerClaims &&
6716
+ parameters.has(BROKER_CLIENT_ID)
6717
+ ? undefined
6718
+ : this.config.authOptions.clientCapabilities;
6719
+ if (!StringUtils.isEmptyObj(request.claims) ||
6720
+ (configClaims && configClaims.length > 0)) {
6721
+ addClaims(parameters, request.claims, configClaims);
6722
+ }
6680
6723
  return mapToQueryString(parameters);
6681
6724
  }
6682
6725
  /**
@@ -6710,7 +6753,7 @@ class AuthorizationCodeClient extends BaseClient {
6710
6753
  }
6711
6754
  }
6712
6755
 
6713
- /*! @azure/msal-common v15.15.0 2026-02-23 */
6756
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
6714
6757
 
6715
6758
  /*
6716
6759
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6888,11 +6931,6 @@ class RefreshTokenClient extends BaseClient {
6888
6931
  throw createClientConfigurationError(missingSshJwk);
6889
6932
  }
6890
6933
  }
6891
- if (!StringUtils.isEmptyObj(request.claims) ||
6892
- (this.config.authOptions.clientCapabilities &&
6893
- this.config.authOptions.clientCapabilities.length > 0)) {
6894
- addClaims(parameters, request.claims, this.config.authOptions.clientCapabilities);
6895
- }
6896
6934
  if (this.config.systemOptions.preventCorsPreflight &&
6897
6935
  request.ccsCredential) {
6898
6936
  switch (request.ccsCredential.type) {
@@ -6918,11 +6956,20 @@ class RefreshTokenClient extends BaseClient {
6918
6956
  addExtraQueryParameters(parameters, request.tokenBodyParameters);
6919
6957
  }
6920
6958
  instrumentBrokerParams(parameters, request.correlationId, this.performanceClient);
6959
+ // ignore config claims if skipBrokerClaims is set to true and this is a brokered authentication flow
6960
+ const configClaims = request.skipBrokerClaims &&
6961
+ parameters.has(BROKER_CLIENT_ID)
6962
+ ? undefined
6963
+ : this.config.authOptions.clientCapabilities;
6964
+ if (!StringUtils.isEmptyObj(request.claims) ||
6965
+ (configClaims && configClaims.length > 0)) {
6966
+ addClaims(parameters, request.claims, configClaims);
6967
+ }
6921
6968
  return mapToQueryString(parameters);
6922
6969
  }
6923
6970
  }
6924
6971
 
6925
- /*! @azure/msal-common v15.15.0 2026-02-23 */
6972
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
6926
6973
 
6927
6974
  /*
6928
6975
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7020,7 +7067,7 @@ class SilentFlowClient extends BaseClient {
7020
7067
  }
7021
7068
  }
7022
7069
 
7023
- /*! @azure/msal-common v15.15.0 2026-02-23 */
7070
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
7024
7071
 
7025
7072
  /*
7026
7073
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7035,7 +7082,7 @@ const StubbedNetworkModule = {
7035
7082
  },
7036
7083
  };
7037
7084
 
7038
- /*! @azure/msal-common v15.15.0 2026-02-23 */
7085
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
7039
7086
 
7040
7087
  /*
7041
7088
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7156,14 +7203,17 @@ function getStandardAuthorizeRequestParameters(authOptions, request, logger, per
7156
7203
  if (request.state) {
7157
7204
  addState(parameters, request.state);
7158
7205
  }
7159
- if (request.claims ||
7160
- (authOptions.clientCapabilities &&
7161
- authOptions.clientCapabilities.length > 0)) {
7162
- addClaims(parameters, request.claims, authOptions.clientCapabilities);
7163
- }
7164
7206
  if (request.embeddedClientId) {
7165
7207
  addBrokerParameters(parameters, authOptions.clientId, authOptions.redirectUri);
7166
7208
  }
7209
+ // ignore config claims if skipBrokerClaims is set to true and this is a brokered authentication flow
7210
+ const configClaims = request.skipBrokerClaims &&
7211
+ parameters.has(BROKER_CLIENT_ID)
7212
+ ? undefined
7213
+ : authOptions.clientCapabilities;
7214
+ if (request.claims || (configClaims && configClaims.length > 0)) {
7215
+ addClaims(parameters, request.claims, configClaims);
7216
+ }
7167
7217
  // If extraQueryParameters includes instance_aware its value will be added when extraQueryParameters are added
7168
7218
  if (authOptions.instanceAware &&
7169
7219
  (!request.extraQueryParameters ||
@@ -7259,7 +7309,7 @@ function extractLoginHint(account) {
7259
7309
  return account.loginHint || account.idTokenClaims?.login_hint || null;
7260
7310
  }
7261
7311
 
7262
- /*! @azure/msal-common v15.15.0 2026-02-23 */
7312
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
7263
7313
 
7264
7314
  /*
7265
7315
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7522,7 +7572,7 @@ class ServerTelemetryManager {
7522
7572
  }
7523
7573
  }
7524
7574
 
7525
- /*! @azure/msal-common v15.15.0 2026-02-23 */
7575
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
7526
7576
  /*
7527
7577
  * Copyright (c) Microsoft Corporation. All rights reserved.
7528
7578
  * Licensed under the MIT License.
@@ -7530,7 +7580,7 @@ class ServerTelemetryManager {
7530
7580
  const missingKidError = "missing_kid_error";
7531
7581
  const missingAlgError = "missing_alg_error";
7532
7582
 
7533
- /*! @azure/msal-common v15.15.0 2026-02-23 */
7583
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
7534
7584
 
7535
7585
  /*
7536
7586
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7555,7 +7605,7 @@ function createJoseHeaderError(code) {
7555
7605
  return new JoseHeaderError(code, JoseHeaderErrorMessages[code]);
7556
7606
  }
7557
7607
 
7558
- /*! @azure/msal-common v15.15.0 2026-02-23 */
7608
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
7559
7609
 
7560
7610
  /*
7561
7611
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7990,7 +8040,7 @@ function ensureArgumentIsJSONString(argName, argValue, correlationId) {
7990
8040
 
7991
8041
  /* eslint-disable header/header */
7992
8042
  const name = "@azure/msal-browser";
7993
- const version = "4.29.0";
8043
+ const version = "4.29.1";
7994
8044
 
7995
8045
  /*
7996
8046
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -9758,6 +9808,10 @@ class StandardInteractionClient extends BaseInteractionClient {
9758
9808
  async initializeAuthorizationRequest(request, interactionType) {
9759
9809
  this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.correlationId);
9760
9810
  const redirectUri = this.getRedirectUri(request.redirectUri);
9811
+ if (new URL(redirectUri).origin !== new URL(window.location.href).origin) {
9812
+ this.logger.warning("The origin of the redirect URI does not match the origin of the current page. This is likely to cause issues with authentication.", this.correlationId);
9813
+ this.performanceClient.addFields({ isRedirectUriCrossOrigin: true }, this.correlationId);
9814
+ }
9761
9815
  const browserState = {
9762
9816
  interactionType: interactionType,
9763
9817
  };
@@ -18319,14 +18373,28 @@ class PlatformAuthDOMHandler {
18319
18373
  return nativeResponse;
18320
18374
  }
18321
18375
  getDOMExtraParams(extraParameters) {
18322
- const stringifiedParams = Object.entries(extraParameters).reduce((record, [key, value]) => {
18323
- record[key] = String(value);
18324
- return record;
18325
- }, {});
18326
- const validExtraParams = {
18327
- ...stringifiedParams,
18328
- };
18329
- return validExtraParams;
18376
+ try {
18377
+ const stringifiedProperties = {};
18378
+ for (const [key, value] of Object.entries(extraParameters)) {
18379
+ if (!value) {
18380
+ continue;
18381
+ }
18382
+ if (typeof value === "object") {
18383
+ stringifiedProperties[key] = JSON.stringify(value);
18384
+ }
18385
+ else {
18386
+ stringifiedProperties[key] = String(value);
18387
+ }
18388
+ }
18389
+ return stringifiedProperties;
18390
+ }
18391
+ catch (e) {
18392
+ this.logger.error(this.platformAuthType + " - Error stringifying extra parameters");
18393
+ this.logger.errorPii(this.platformAuthType +
18394
+ " - Error stringifying extra parameters: " +
18395
+ e);
18396
+ return {};
18397
+ }
18330
18398
  }
18331
18399
  }
18332
18400
 
@@ -19377,6 +19445,12 @@ async function initiateEarRequest(config, authority, request, logger, performanc
19377
19445
  */
19378
19446
  async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, performanceClient, logger, correlationId, responseType) {
19379
19447
  performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerMonitorIframeForHash, correlationId);
19448
+ performanceClient.addFields({
19449
+ iframePollIntervalMs: pollIntervalMilliseconds,
19450
+ iframeTimeoutMs: timeout,
19451
+ }, correlationId);
19452
+ let totalTickCount = 0;
19453
+ let crossOriginTickCount = 0;
19380
19454
  return new Promise((resolve, reject) => {
19381
19455
  if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {
19382
19456
  logger.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${timeout}ms) than the default (${DEFAULT_IFRAME_TIMEOUT_MS}ms). This may result in timeouts.`);
@@ -19390,6 +19464,7 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
19390
19464
  reject(createBrowserAuthError(monitorWindowTimeout));
19391
19465
  }, timeout);
19392
19466
  const intervalId = window.setInterval(() => {
19467
+ totalTickCount++;
19393
19468
  let href = "";
19394
19469
  const contentWindow = iframe.contentWindow;
19395
19470
  try {
@@ -19400,7 +19475,9 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
19400
19475
  */
19401
19476
  href = contentWindow ? contentWindow.location.href : "";
19402
19477
  }
19403
- catch (e) { }
19478
+ catch (e) {
19479
+ crossOriginTickCount++;
19480
+ }
19404
19481
  if (!href || href === "about:blank") {
19405
19482
  return;
19406
19483
  }
@@ -19418,6 +19495,10 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
19418
19495
  resolve(responseString);
19419
19496
  }, pollIntervalMilliseconds);
19420
19497
  }).finally(() => {
19498
+ performanceClient.addFields({
19499
+ iframeTickCount: totalTickCount,
19500
+ crossOriginTickCount: crossOriginTickCount,
19501
+ }, correlationId);
19421
19502
  invoke(removeHiddenIframe, PerformanceEvents.RemoveHiddenIframe, logger, performanceClient, correlationId)(iframe);
19422
19503
  });
19423
19504
  }
@@ -20045,6 +20126,10 @@ class SilentAuthCodeClient extends StandardInteractionClient {
20045
20126
  * Copyright (c) Microsoft Corporation. All rights reserved.
20046
20127
  * Licensed under the MIT License.
20047
20128
  */
20129
+ /**
20130
+ * Get network information for telemetry purposes. This is only supported in Chromium-based browsers.
20131
+ * @returns Network connection information, or an empty object if not available.
20132
+ */
20048
20133
  function collectInstanceStats(currentClientId, performanceEvent, logger) {
20049
20134
  const frameInstances =
20050
20135
  // @ts-ignore
@@ -20138,22 +20223,30 @@ class StandardController {
20138
20223
  this.tokenCache = new TokenCache(this.config, this.browserStorage, this.logger, this.browserCrypto, this.performanceClient);
20139
20224
  this.activeSilentTokenRequests = new Map();
20140
20225
  // Register listener functions
20141
- this.trackPageVisibility = this.trackPageVisibility.bind(this);
20142
- // Register listener functions
20143
- this.trackPageVisibilityWithMeasurement =
20144
- this.trackPageVisibilityWithMeasurement.bind(this);
20226
+ this.trackStateChangeWithMeasurement =
20227
+ this.trackStateChangeWithMeasurement.bind(this);
20145
20228
  }
20146
20229
  static async createController(operatingContext, request) {
20147
20230
  const controller = new StandardController(operatingContext);
20148
20231
  await controller.initialize(request);
20149
20232
  return controller;
20150
20233
  }
20151
- trackPageVisibility(correlationId) {
20234
+ trackStateChange(correlationId, event) {
20152
20235
  if (!correlationId) {
20153
20236
  return;
20154
20237
  }
20155
- this.logger.info("Perf: Visibility change detected");
20156
- this.performanceClient.incrementFields({ visibilityChangeCount: 1 }, correlationId);
20238
+ if (event.type === "visibilitychange") {
20239
+ this.logger.info("Perf: Visibility change detected");
20240
+ this.performanceClient.incrementFields({ visibilityChangeCount: 1 }, correlationId);
20241
+ }
20242
+ else if (event.type === "online") {
20243
+ this.logger.info("Perf: Online status change detected");
20244
+ this.performanceClient.incrementFields({ onlineStatusChangeCount: 1 }, correlationId);
20245
+ }
20246
+ else if (event.type === "offline") {
20247
+ this.logger.info("Perf: Offline status change detected");
20248
+ this.performanceClient.incrementFields({ onlineStatusChangeCount: 1 }, correlationId);
20249
+ }
20157
20250
  }
20158
20251
  /**
20159
20252
  * Initializer function to perform async startup tasks such as connecting to WAM extension
@@ -20559,16 +20652,40 @@ class StandardController {
20559
20652
  }
20560
20653
  });
20561
20654
  }
20562
- trackPageVisibilityWithMeasurement() {
20655
+ trackStateChangeWithMeasurement(event) {
20563
20656
  const measurement = this.ssoSilentMeasurement ||
20564
20657
  this.acquireTokenByCodeAsyncMeasurement;
20565
20658
  if (!measurement) {
20566
20659
  return;
20567
20660
  }
20568
- this.logger.info("Perf: Visibility change detected in ", measurement.event.name);
20569
- measurement.increment({
20570
- visibilityChangeCount: 1,
20571
- });
20661
+ if (event.type === "visibilitychange") {
20662
+ this.logger.info("Perf: Visibility change detected in ", measurement.event.name);
20663
+ measurement.increment({
20664
+ visibilityChangeCount: 1,
20665
+ });
20666
+ }
20667
+ else if (event.type === "online") {
20668
+ this.logger.info("Perf: Online status change detected in ", measurement.event.name);
20669
+ measurement.increment({
20670
+ onlineStatusChangeCount: 1,
20671
+ });
20672
+ }
20673
+ else if (event.type === "offline") {
20674
+ this.logger.info("Perf: Offline status change detected in ", measurement.event.name);
20675
+ measurement.increment({
20676
+ onlineStatusChangeCount: 1,
20677
+ });
20678
+ }
20679
+ }
20680
+ addStateChangeListeners(listener) {
20681
+ document.addEventListener("visibilitychange", listener);
20682
+ window.addEventListener("online", listener);
20683
+ window.addEventListener("offline", listener);
20684
+ }
20685
+ removeStateChangeListeners(listener) {
20686
+ document.removeEventListener("visibilitychange", listener);
20687
+ window.removeEventListener("online", listener);
20688
+ window.removeEventListener("offline", listener);
20572
20689
  }
20573
20690
  /**
20574
20691
  * SSO capability verification in the background.
@@ -20649,8 +20766,9 @@ class StandardController {
20649
20766
  preflightCheck(this.initialized, this.ssoSilentMeasurement, request.account);
20650
20767
  this.ssoSilentMeasurement?.increment({
20651
20768
  visibilityChangeCount: 0,
20769
+ onlineStatusChangeCount: 0,
20652
20770
  });
20653
- document.addEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
20771
+ this.addStateChangeListeners(this.trackStateChangeWithMeasurement);
20654
20772
  this.logger.verbose("ssoSilent called", correlationId);
20655
20773
  this.eventHandler.emitEvent(EventType.SSO_SILENT_START, InteractionType.Silent, validRequest);
20656
20774
  let result;
@@ -20694,7 +20812,7 @@ class StandardController {
20694
20812
  throw e;
20695
20813
  })
20696
20814
  .finally(() => {
20697
- document.removeEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
20815
+ this.removeStateChangeListeners(this.trackStateChangeWithMeasurement);
20698
20816
  });
20699
20817
  }
20700
20818
  /**
@@ -20806,8 +20924,9 @@ class StandardController {
20806
20924
  this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCodeAsync, request.correlationId);
20807
20925
  this.acquireTokenByCodeAsyncMeasurement?.increment({
20808
20926
  visibilityChangeCount: 0,
20927
+ onlineStatusChangeCount: 0,
20809
20928
  });
20810
- document.addEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
20929
+ this.addStateChangeListeners(this.trackStateChangeWithMeasurement);
20811
20930
  const silentAuthCodeClient = this.createSilentAuthCodeClient(request.correlationId);
20812
20931
  const silentTokenResult = await silentAuthCodeClient
20813
20932
  .acquireToken(request)
@@ -20825,7 +20944,7 @@ class StandardController {
20825
20944
  throw tokenRenewalError;
20826
20945
  })
20827
20946
  .finally(() => {
20828
- document.removeEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
20947
+ this.removeStateChangeListeners(this.trackStateChangeWithMeasurement);
20829
20948
  });
20830
20949
  return silentTokenResult;
20831
20950
  }
@@ -21370,13 +21489,13 @@ class StandardController {
21370
21489
  * @returns {Promise.<AuthenticationResult>} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse}
21371
21490
  */
21372
21491
  async acquireTokenSilentAsync(request, account) {
21373
- const trackPageVisibility = () => this.trackPageVisibility(request.correlationId);
21492
+ const trackStateChange = (event) => this.trackStateChange(request.correlationId, event);
21374
21493
  this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenSilentAsync, request.correlationId);
21375
21494
  this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);
21376
21495
  if (request.correlationId) {
21377
- this.performanceClient.incrementFields({ visibilityChangeCount: 0 }, request.correlationId);
21496
+ this.performanceClient.incrementFields({ visibilityChangeCount: 0, onlineStatusChangeCount: 0 }, request.correlationId);
21378
21497
  }
21379
- document.addEventListener("visibilitychange", trackPageVisibility);
21498
+ this.addStateChangeListeners(trackStateChange);
21380
21499
  const silentRequest = await invokeAsync(initializeSilentRequest, PerformanceEvents.InitializeSilentRequest, this.logger, this.performanceClient, request.correlationId)(request, account, this.config, this.performanceClient, this.logger);
21381
21500
  const cacheLookupPolicy = request.cacheLookupPolicy || CacheLookupPolicy.Default;
21382
21501
  const result = this.acquireTokenSilentNoIframe(silentRequest, cacheLookupPolicy).catch(async (refreshTokenError) => {
@@ -21455,7 +21574,7 @@ class StandardController {
21455
21574
  throw tokenRenewalError;
21456
21575
  })
21457
21576
  .finally(() => {
21458
- document.removeEventListener("visibilitychange", trackPageVisibility);
21577
+ this.removeStateChangeListeners(trackStateChange);
21459
21578
  });
21460
21579
  }
21461
21580
  /**