@azure/msal-browser 3.0.0-beta.1 → 3.0.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 (237) hide show
  1. package/README.md +19 -80
  2. package/dist/app/IPublicClientApplication.d.ts +1 -0
  3. package/dist/app/IPublicClientApplication.d.ts.map +1 -1
  4. package/dist/app/{IPublicClientApplication.js → IPublicClientApplication.mjs} +6 -3
  5. package/dist/app/IPublicClientApplication.mjs.map +1 -0
  6. package/dist/app/PublicClientApplication.d.ts +7 -0
  7. package/dist/app/PublicClientApplication.d.ts.map +1 -1
  8. package/dist/app/{PublicClientApplication.js → PublicClientApplication.mjs} +14 -5
  9. package/dist/app/PublicClientApplication.mjs.map +1 -0
  10. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts.map +1 -1
  11. package/dist/broker/nativeBroker/{NativeMessageHandler.js → NativeMessageHandler.mjs} +9 -9
  12. package/dist/broker/nativeBroker/NativeMessageHandler.mjs.map +1 -0
  13. package/dist/broker/nativeBroker/NativeRequest.d.ts +2 -1
  14. package/dist/broker/nativeBroker/NativeRequest.d.ts.map +1 -1
  15. package/dist/cache/{AsyncMemoryStorage.js → AsyncMemoryStorage.mjs} +5 -5
  16. package/dist/cache/AsyncMemoryStorage.mjs.map +1 -0
  17. package/dist/cache/BrowserCacheManager.d.ts +8 -0
  18. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  19. package/dist/cache/{BrowserCacheManager.js → BrowserCacheManager.mjs} +25 -8
  20. package/dist/cache/BrowserCacheManager.mjs.map +1 -0
  21. package/dist/cache/{BrowserStorage.js → BrowserStorage.mjs} +4 -4
  22. package/dist/cache/BrowserStorage.mjs.map +1 -0
  23. package/dist/cache/CryptoKeyStore.d.ts +1 -1
  24. package/dist/cache/CryptoKeyStore.d.ts.map +1 -1
  25. package/dist/cache/{CryptoKeyStore.js → CryptoKeyStore.mjs} +3 -3
  26. package/dist/cache/CryptoKeyStore.mjs.map +1 -0
  27. package/dist/cache/{DatabaseStorage.js → DatabaseStorage.mjs} +4 -4
  28. package/dist/cache/DatabaseStorage.mjs.map +1 -0
  29. package/dist/cache/ITokenCache.d.ts.map +1 -1
  30. package/dist/cache/{MemoryStorage.js → MemoryStorage.mjs} +2 -2
  31. package/dist/cache/MemoryStorage.mjs.map +1 -0
  32. package/dist/cache/TokenCache.d.ts.map +1 -1
  33. package/dist/cache/{TokenCache.js → TokenCache.mjs} +22 -20
  34. package/dist/cache/TokenCache.mjs.map +1 -0
  35. package/dist/config/Configuration.d.ts +10 -2
  36. package/dist/config/Configuration.d.ts.map +1 -1
  37. package/dist/config/{Configuration.js → Configuration.mjs} +41 -8
  38. package/dist/config/Configuration.mjs.map +1 -0
  39. package/dist/controllers/{ControllerFactory.js → ControllerFactory.mjs} +7 -7
  40. package/dist/controllers/ControllerFactory.mjs.map +1 -0
  41. package/dist/controllers/IController.d.ts +1 -0
  42. package/dist/controllers/IController.d.ts.map +1 -1
  43. package/dist/controllers/StandardController.d.ts +7 -0
  44. package/dist/controllers/StandardController.d.ts.map +1 -1
  45. package/dist/controllers/{StandardController.js → StandardController.mjs} +77 -60
  46. package/dist/controllers/StandardController.mjs.map +1 -0
  47. package/dist/crypto/{BrowserCrypto.js → BrowserCrypto.mjs} +5 -5
  48. package/dist/crypto/BrowserCrypto.mjs.map +1 -0
  49. package/dist/crypto/CryptoOps.d.ts.map +1 -1
  50. package/dist/crypto/{CryptoOps.js → CryptoOps.mjs} +12 -12
  51. package/dist/crypto/CryptoOps.mjs.map +1 -0
  52. package/dist/crypto/{GuidGenerator.js → GuidGenerator.mjs} +3 -3
  53. package/dist/crypto/GuidGenerator.mjs.map +1 -0
  54. package/dist/crypto/{ModernBrowserCrypto.js → ModernBrowserCrypto.mjs} +3 -3
  55. package/dist/crypto/ModernBrowserCrypto.mjs.map +1 -0
  56. package/dist/crypto/{PkceGenerator.js → PkceGenerator.mjs} +4 -4
  57. package/dist/crypto/PkceGenerator.mjs.map +1 -0
  58. package/dist/crypto/{SignedHttpRequest.js → SignedHttpRequest.mjs} +4 -4
  59. package/dist/crypto/SignedHttpRequest.mjs.map +1 -0
  60. package/dist/encode/{Base64Decode.js → Base64Decode.mjs} +3 -3
  61. package/dist/encode/Base64Decode.mjs.map +1 -0
  62. package/dist/encode/{Base64Encode.js → Base64Encode.mjs} +3 -3
  63. package/dist/encode/Base64Encode.mjs.map +1 -0
  64. package/dist/error/BrowserAuthError.d.ts +2 -2
  65. package/dist/error/BrowserAuthError.d.ts.map +1 -1
  66. package/dist/error/{BrowserAuthError.js → BrowserAuthError.mjs} +7 -7
  67. package/dist/error/BrowserAuthError.mjs.map +1 -0
  68. package/dist/error/{BrowserConfigurationAuthError.js → BrowserConfigurationAuthError.mjs} +2 -2
  69. package/dist/error/BrowserConfigurationAuthError.mjs.map +1 -0
  70. package/dist/error/NativeAuthError.d.ts +1 -1
  71. package/dist/error/NativeAuthError.d.ts.map +1 -1
  72. package/dist/error/{NativeAuthError.js → NativeAuthError.mjs} +3 -3
  73. package/dist/error/NativeAuthError.mjs.map +1 -0
  74. package/dist/event/{EventHandler.js → EventHandler.mjs} +3 -3
  75. package/dist/event/EventHandler.mjs.map +1 -0
  76. package/dist/event/EventMessage.d.ts.map +1 -1
  77. package/dist/event/{EventMessage.js → EventMessage.mjs} +4 -4
  78. package/dist/event/EventMessage.mjs.map +1 -0
  79. package/dist/event/EventType.d.ts +1 -1
  80. package/dist/event/EventType.d.ts.map +1 -1
  81. package/dist/event/{EventType.js → EventType.mjs} +3 -3
  82. package/dist/event/EventType.mjs.map +1 -0
  83. package/dist/index.d.ts +3 -1
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/{index.js → index.mjs} +18 -16
  86. package/dist/index.mjs.map +1 -0
  87. package/dist/interaction_client/BaseInteractionClient.d.ts.map +1 -1
  88. package/dist/interaction_client/{BaseInteractionClient.js → BaseInteractionClient.mjs} +6 -5
  89. package/dist/interaction_client/BaseInteractionClient.mjs.map +1 -0
  90. package/dist/interaction_client/{HybridSpaAuthorizationCodeClient.js → HybridSpaAuthorizationCodeClient.mjs} +2 -2
  91. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs.map +1 -0
  92. package/dist/interaction_client/NativeInteractionClient.d.ts +7 -10
  93. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  94. package/dist/interaction_client/{NativeInteractionClient.js → NativeInteractionClient.mjs} +58 -33
  95. package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -0
  96. package/dist/interaction_client/PopupClient.d.ts +4 -0
  97. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  98. package/dist/interaction_client/{PopupClient.js → PopupClient.mjs} +57 -18
  99. package/dist/interaction_client/PopupClient.mjs.map +1 -0
  100. package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
  101. package/dist/interaction_client/{RedirectClient.js → RedirectClient.mjs} +23 -11
  102. package/dist/interaction_client/RedirectClient.mjs.map +1 -0
  103. package/dist/interaction_client/{SilentAuthCodeClient.js → SilentAuthCodeClient.mjs} +7 -7
  104. package/dist/interaction_client/SilentAuthCodeClient.mjs.map +1 -0
  105. package/dist/interaction_client/{SilentCacheClient.js → SilentCacheClient.mjs} +9 -9
  106. package/dist/interaction_client/SilentCacheClient.mjs.map +1 -0
  107. package/dist/interaction_client/{SilentIframeClient.js → SilentIframeClient.mjs} +11 -11
  108. package/dist/interaction_client/SilentIframeClient.mjs.map +1 -0
  109. package/dist/interaction_client/{SilentRefreshClient.js → SilentRefreshClient.mjs} +8 -8
  110. package/dist/interaction_client/SilentRefreshClient.mjs.map +1 -0
  111. package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  112. package/dist/interaction_client/{StandardInteractionClient.js → StandardInteractionClient.mjs} +14 -12
  113. package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -0
  114. package/dist/interaction_handler/{InteractionHandler.js → InteractionHandler.mjs} +5 -5
  115. package/dist/interaction_handler/InteractionHandler.mjs.map +1 -0
  116. package/dist/interaction_handler/{RedirectHandler.js → RedirectHandler.mjs} +6 -6
  117. package/dist/interaction_handler/RedirectHandler.mjs.map +1 -0
  118. package/dist/interaction_handler/{SilentHandler.js → SilentHandler.mjs} +5 -5
  119. package/dist/interaction_handler/SilentHandler.mjs.map +1 -0
  120. package/dist/internals.d.ts +1 -3
  121. package/dist/internals.d.ts.map +1 -1
  122. package/dist/internals.mjs +28 -0
  123. package/dist/internals.mjs.map +1 -0
  124. package/dist/navigation/{NavigationClient.js → NavigationClient.mjs} +2 -2
  125. package/dist/navigation/NavigationClient.mjs.map +1 -0
  126. package/dist/network/{FetchClient.js → FetchClient.mjs} +4 -4
  127. package/dist/network/FetchClient.mjs.map +1 -0
  128. package/dist/network/{XhrClient.js → XhrClient.mjs} +4 -4
  129. package/dist/network/XhrClient.mjs.map +1 -0
  130. package/dist/operatingcontext/{BaseOperatingContext.js → BaseOperatingContext.mjs} +4 -4
  131. package/dist/operatingcontext/BaseOperatingContext.mjs.map +1 -0
  132. package/dist/operatingcontext/{StandardOperatingContext.js → StandardOperatingContext.mjs} +3 -3
  133. package/dist/operatingcontext/StandardOperatingContext.mjs.map +1 -0
  134. package/dist/operatingcontext/{TeamsAppOperatingContext.js → TeamsAppOperatingContext.mjs} +3 -3
  135. package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -0
  136. package/dist/packageMetadata.d.ts +1 -1
  137. package/dist/packageMetadata.d.ts.map +1 -1
  138. package/dist/packageMetadata.mjs +8 -0
  139. package/dist/packageMetadata.mjs.map +1 -0
  140. package/dist/request/PopupRequest.d.ts +3 -1
  141. package/dist/request/PopupRequest.d.ts.map +1 -1
  142. package/dist/request/RedirectRequest.d.ts +3 -1
  143. package/dist/request/RedirectRequest.d.ts.map +1 -1
  144. package/dist/request/SilentRequest.d.ts +2 -0
  145. package/dist/request/SilentRequest.d.ts.map +1 -1
  146. package/dist/request/SsoSilentRequest.d.ts +5 -2
  147. package/dist/request/SsoSilentRequest.d.ts.map +1 -1
  148. package/dist/response/AuthenticationResult.d.ts.map +1 -1
  149. package/dist/telemetry/BrowserPerformanceClient.d.ts +3 -2
  150. package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  151. package/dist/telemetry/{BrowserPerformanceClient.js → BrowserPerformanceClient.mjs} +16 -12
  152. package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -0
  153. package/dist/telemetry/{BrowserPerformanceMeasurement.js → BrowserPerformanceMeasurement.mjs} +2 -2
  154. package/dist/telemetry/BrowserPerformanceMeasurement.mjs.map +1 -0
  155. package/dist/utils/BrowserConstants.d.ts +10 -10
  156. package/dist/utils/BrowserConstants.d.ts.map +1 -1
  157. package/dist/utils/{BrowserConstants.js → BrowserConstants.mjs} +2 -2
  158. package/dist/utils/BrowserConstants.mjs.map +1 -0
  159. package/dist/utils/{BrowserProtocolUtils.js → BrowserProtocolUtils.mjs} +2 -2
  160. package/dist/utils/BrowserProtocolUtils.mjs.map +1 -0
  161. package/dist/utils/{BrowserStringUtils.js → BrowserStringUtils.mjs} +2 -2
  162. package/dist/utils/BrowserStringUtils.mjs.map +1 -0
  163. package/dist/utils/BrowserUtils.d.ts +2 -3
  164. package/dist/utils/BrowserUtils.d.ts.map +1 -1
  165. package/dist/utils/{BrowserUtils.js → BrowserUtils.mjs} +10 -11
  166. package/dist/utils/BrowserUtils.mjs.map +1 -0
  167. package/dist/utils/{MathUtils.js → MathUtils.mjs} +2 -2
  168. package/dist/utils/MathUtils.mjs.map +1 -0
  169. package/lib/{msal-browser.cjs.js → msal-browser.cjs} +989 -672
  170. package/lib/msal-browser.cjs.map +1 -0
  171. package/lib/msal-browser.js +988 -671
  172. package/lib/msal-browser.js.map +1 -1
  173. package/lib/msal-browser.min.js +62 -62
  174. package/package.json +19 -15
  175. package/dist/app/IPublicClientApplication.js.map +0 -1
  176. package/dist/app/PublicClientApplication.js.map +0 -1
  177. package/dist/broker/nativeBroker/NativeMessageHandler.js.map +0 -1
  178. package/dist/cache/AsyncMemoryStorage.js.map +0 -1
  179. package/dist/cache/BrowserCacheManager.js.map +0 -1
  180. package/dist/cache/BrowserStorage.js.map +0 -1
  181. package/dist/cache/CryptoKeyStore.js.map +0 -1
  182. package/dist/cache/DatabaseStorage.js.map +0 -1
  183. package/dist/cache/MemoryStorage.js.map +0 -1
  184. package/dist/cache/TokenCache.js.map +0 -1
  185. package/dist/cache/entities/CacheRecord.d.ts +0 -6
  186. package/dist/cache/entities/CacheRecord.d.ts.map +0 -1
  187. package/dist/cache/entities/CacheRecord.js +0 -17
  188. package/dist/cache/entities/CacheRecord.js.map +0 -1
  189. package/dist/config/Configuration.js.map +0 -1
  190. package/dist/controllers/ControllerFactory.js.map +0 -1
  191. package/dist/controllers/StandardController.js.map +0 -1
  192. package/dist/crypto/BrowserCrypto.js.map +0 -1
  193. package/dist/crypto/CryptoOps.js.map +0 -1
  194. package/dist/crypto/GuidGenerator.js.map +0 -1
  195. package/dist/crypto/ModernBrowserCrypto.js.map +0 -1
  196. package/dist/crypto/PkceGenerator.js.map +0 -1
  197. package/dist/crypto/SignedHttpRequest.js.map +0 -1
  198. package/dist/encode/Base64Decode.js.map +0 -1
  199. package/dist/encode/Base64Encode.js.map +0 -1
  200. package/dist/error/BrowserAuthError.js.map +0 -1
  201. package/dist/error/BrowserConfigurationAuthError.js.map +0 -1
  202. package/dist/error/NativeAuthError.js.map +0 -1
  203. package/dist/event/EventHandler.js.map +0 -1
  204. package/dist/event/EventMessage.js.map +0 -1
  205. package/dist/event/EventType.js.map +0 -1
  206. package/dist/index.js.map +0 -1
  207. package/dist/interaction_client/BaseInteractionClient.js.map +0 -1
  208. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.js.map +0 -1
  209. package/dist/interaction_client/NativeInteractionClient.js.map +0 -1
  210. package/dist/interaction_client/PopupClient.js.map +0 -1
  211. package/dist/interaction_client/RedirectClient.js.map +0 -1
  212. package/dist/interaction_client/SilentAuthCodeClient.js.map +0 -1
  213. package/dist/interaction_client/SilentCacheClient.js.map +0 -1
  214. package/dist/interaction_client/SilentIframeClient.js.map +0 -1
  215. package/dist/interaction_client/SilentRefreshClient.js.map +0 -1
  216. package/dist/interaction_client/StandardInteractionClient.js.map +0 -1
  217. package/dist/interaction_handler/InteractionHandler.js.map +0 -1
  218. package/dist/interaction_handler/RedirectHandler.js.map +0 -1
  219. package/dist/interaction_handler/SilentHandler.js.map +0 -1
  220. package/dist/internals.js +0 -25
  221. package/dist/internals.js.map +0 -1
  222. package/dist/navigation/NavigationClient.js.map +0 -1
  223. package/dist/network/FetchClient.js.map +0 -1
  224. package/dist/network/XhrClient.js.map +0 -1
  225. package/dist/operatingcontext/BaseOperatingContext.js.map +0 -1
  226. package/dist/operatingcontext/StandardOperatingContext.js.map +0 -1
  227. package/dist/operatingcontext/TeamsAppOperatingContext.js.map +0 -1
  228. package/dist/packageMetadata.js +0 -8
  229. package/dist/packageMetadata.js.map +0 -1
  230. package/dist/telemetry/BrowserPerformanceClient.js.map +0 -1
  231. package/dist/telemetry/BrowserPerformanceMeasurement.js.map +0 -1
  232. package/dist/utils/BrowserConstants.js.map +0 -1
  233. package/dist/utils/BrowserProtocolUtils.js.map +0 -1
  234. package/dist/utils/BrowserStringUtils.js.map +0 -1
  235. package/dist/utils/BrowserUtils.js.map +0 -1
  236. package/dist/utils/MathUtils.js.map +0 -1
  237. package/lib/msal-browser.cjs.js.map +0 -1
@@ -1,63 +1,63 @@
1
- /*! @azure/msal-browser v3.0.0-beta.1 2023-07-06 */
1
+ /*! @azure/msal-browser v3.0.1 2023-08-11 */
2
2
  "use strict";!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).msal={})}(this,(function(e){
3
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */
4
- const t={LIBRARY_NAME:"MSAL.JS",SKU:"msal.js.common",CACHE_PREFIX:"msal",DEFAULT_AUTHORITY:"https://login.microsoftonline.com/common/",DEFAULT_AUTHORITY_HOST:"login.microsoftonline.com",DEFAULT_COMMON_TENANT:"common",ADFS:"adfs",DSTS:"dstsv2",AAD_INSTANCE_DISCOVERY_ENDPT:"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=",CIAM_AUTH_URL:".ciamlogin.com",AAD_TENANT_DOMAIN_SUFFIX:".onmicrosoft.com",RESOURCE_DELIM:"|",NO_ACCOUNT:"NO_ACCOUNT",CLAIMS:"claims",CONSUMER_UTID:"9188040d-6c67-4c5b-b112-36a304b66dad",OPENID_SCOPE:"openid",PROFILE_SCOPE:"profile",OFFLINE_ACCESS_SCOPE:"offline_access",EMAIL_SCOPE:"email",CODE_RESPONSE_TYPE:"code",CODE_GRANT_TYPE:"authorization_code",RT_GRANT_TYPE:"refresh_token",FRAGMENT_RESPONSE_MODE:"fragment",S256_CODE_CHALLENGE_METHOD:"S256",URL_FORM_CONTENT_TYPE:"application/x-www-form-urlencoded;charset=utf-8",AUTHORIZATION_PENDING:"authorization_pending",NOT_DEFINED:"not_defined",EMPTY_STRING:"",NOT_APPLICABLE:"N/A",FORWARD_SLASH:"/",IMDS_ENDPOINT:"http://169.254.169.254/metadata/instance/compute/location",IMDS_VERSION:"2020-06-01",IMDS_TIMEOUT:2e3,AZURE_REGION_AUTO_DISCOVER_FLAG:"TryAutoDetect",REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX:"login.microsoft.com",REGIONAL_AUTH_NON_MSI_QUERY_STRING:"allowestsrnonmsi=true",KNOWN_PUBLIC_CLOUDS:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"],TOKEN_RESPONSE_TYPE:"token",ID_TOKEN_RESPONSE_TYPE:"id_token",SHR_NONCE_VALIDITY:240,INVALID_INSTANCE:"invalid_instance"},r=[t.OPENID_SCOPE,t.PROFILE_SCOPE,t.OFFLINE_ACCESS_SCOPE],o=[...r,t.EMAIL_SCOPE],n="Content-Type",i="Retry-After",a="X-AnchorMailbox",s="WWW-Authenticate",c="Authentication-Info",d="x-ms-request-id",l="x-ms-httpver",h="idtoken",u="client.info",g="adal.idtoken",p="error",m="error.description",f="active-account",y="active-account-filters",C="common",v="organizations",w="consumers",T="client_id",E="redirect_uri",I="response_type",_="response_mode",k="grant_type",S="claims",A="scope",R="refresh_token",b="state",P="nonce",M="prompt",N="code",O="code_challenge",q="code_challenge_method",U="code_verifier",H="client-request-id",L="x-client-SKU",x="x-client-VER",F="x-client-OS",D="x-client-CPU",B="x-client-current-telemetry",K="x-client-last-telemetry",G="x-ms-lib-capability",$="x-app-name",z="x-app-ver",Q="post_logout_redirect_uri",j="id_token_hint",Y="device_code",W="client_secret",V="client_assertion",J="client_assertion_type",X="token_type",Z="req_cnf",ee="assertion",te="requested_token_use",re="return_spa_code",oe="nativebroker",ne="logout_hint",ie="access_token",ae="xms_cc",se={LOGIN:"login",SELECT_ACCOUNT:"select_account",CONSENT:"consent",NONE:"none",CREATE:"create",NO_SESSION:"no_session"},ce="sid",de="login_hint",le="domain_hint",he={PLAIN:"plain",S256:"S256"},ue="query",ge="fragment",pe="authorization_code",me="refresh_token",fe="MSSTS",ye="ADFS",Ce="MSA",ve="Generic",we={CACHE_KEY_SEPARATOR:"-",CLIENT_INFO_SEPARATOR:"."},Te={ID_TOKEN:"IdToken",ACCESS_TOKEN:"AccessToken",ACCESS_TOKEN_WITH_AUTH_SCHEME:"AccessToken_With_AuthScheme",REFRESH_TOKEN:"RefreshToken"},Ee=1001,Ie=1002,_e=1003,ke=1004,Se=2001,Ae=2002,Re=2003,be="appmetadata",Pe="1",Me="authority-metadata",Ne=86400,Oe="config",qe="cache",Ue="network",He="hardcoded_values",Le={SCHEMA_VERSION:5,MAX_CUR_HEADER_BYTES:80,MAX_LAST_HEADER_BYTES:330,MAX_CACHED_ERRORS:50,CACHE_KEY:"server-telemetry",CATEGORY_SEPARATOR:"|",VALUE_SEPARATOR:",",OVERFLOW_TRUE:"1",OVERFLOW_FALSE:"0",UNKNOWN_ERROR:"unknown_error"},xe={BEARER:"Bearer",POP:"pop",SSH:"ssh-cert"},Fe=60,De=3600,Be="throttling",Ke="retry-after, h429",Ge="invalid_grant",$e="client_mismatch",ze="username",Qe="password",je=200,Ye=400,We="1",Ve="3",Je="4",Xe="2",Ze="4",et="5",tt="0",rt="1",ot="2",nt="3",it="4",at="pop",st={unexpectedError:{code:"unexpected_error",desc:"Unexpected error in authentication."},postRequestFailed:{code:"post_request_failed",desc:"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details."}};class ct extends Error{constructor(e,r,o){super(r?`${e}: ${r}`:e),Object.setPrototypeOf(this,ct.prototype),this.errorCode=e||t.EMPTY_STRING,this.errorMessage=r||t.EMPTY_STRING,this.subError=o||t.EMPTY_STRING,this.name="AuthError"}setCorrelationId(e){this.correlationId=e}static createUnexpectedError(e){return new ct(st.unexpectedError.code,`${st.unexpectedError.desc}: ${e}`)}static createPostRequestFailed(e){return new ct(st.postRequestFailed.code,`${st.postRequestFailed.desc}: ${e}`)}}
5
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */const dt={createNewGuid:()=>{throw ct.createUnexpectedError("Crypto interface - createNewGuid() has not been implemented")},base64Decode:()=>{throw ct.createUnexpectedError("Crypto interface - base64Decode() has not been implemented")},base64Encode:()=>{throw ct.createUnexpectedError("Crypto interface - base64Encode() has not been implemented")},async generatePkceCodes(){throw ct.createUnexpectedError("Crypto interface - generatePkceCodes() has not been implemented")},async getPublicKeyThumbprint(){throw ct.createUnexpectedError("Crypto interface - getPublicKeyThumbprint() has not been implemented")},async removeTokenBindingKey(){throw ct.createUnexpectedError("Crypto interface - removeTokenBindingKey() has not been implemented")},async clearKeystore(){throw ct.createUnexpectedError("Crypto interface - clearKeystore() has not been implemented")},async signJwt(){throw ct.createUnexpectedError("Crypto interface - signJwt() has not been implemented")},async hashString(){throw ct.createUnexpectedError("Crypto interface - hashString() has not been implemented")}},lt={clientInfoDecodingError:{code:"client_info_decoding_error",desc:"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause."},clientInfoEmptyError:{code:"client_info_empty_error",desc:"The client info was empty. Please review the trace to determine the root cause."},tokenParsingError:{code:"token_parsing_error",desc:"Token cannot be parsed. Please review stack trace to determine root cause."},nullOrEmptyToken:{code:"null_or_empty_token",desc:"The token is null or empty. Please review the trace to determine the root cause."},endpointResolutionError:{code:"endpoints_resolution_error",desc:"Error: could not resolve endpoints. Please check network and try again."},networkError:{code:"network_error",desc:"Network request failed. Please check network trace to determine root cause."},unableToGetOpenidConfigError:{code:"openid_config_error",desc:"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints."},hashNotDeserialized:{code:"hash_not_deserialized",desc:"The hash parameters could not be deserialized. Please review the trace to determine the root cause."},blankGuidGenerated:{code:"blank_guid_generated",desc:"The guid generated was blank. Please review the trace to determine the root cause."},invalidStateError:{code:"invalid_state",desc:"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState()."},stateMismatchError:{code:"state_mismatch",desc:"State mismatch error. Please check your network. Continued requests may cause cache overflow."},stateNotFoundError:{code:"state_not_found",desc:"State not found"},nonceMismatchError:{code:"nonce_mismatch",desc:"Nonce mismatch error. This may be caused by a race condition in concurrent requests."},nonceNotFoundError:{code:"nonce_not_found",desc:"nonce not found"},authTimeNotFoundError:{code:"auth_time_not_found",desc:"Max Age was requested and the ID token is missing the auth_time variable. auth_time is an optional claim and is not enabled by default - it must be enabled. See https://aka.ms/msaljs/optional-claims for more information."},maxAgeTranspiredError:{code:"max_age_transpired",desc:"Max Age is set to 0, or too much time has elapsed since the last end-user authentication."},noTokensFoundError:{code:"no_tokens_found",desc:"No tokens were found for the given scopes, and no authorization code was passed to acquireToken. You must retrieve an authorization code before making a call to acquireToken()."},multipleMatchingTokens:{code:"multiple_matching_tokens",desc:"The cache contains multiple tokens satisfying the requirements. Call AcquireToken again providing more requirements such as authority or account."},multipleMatchingAccounts:{code:"multiple_matching_accounts",desc:"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account"},multipleMatchingAppMetadata:{code:"multiple_matching_appMetadata",desc:"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata"},tokenRequestCannotBeMade:{code:"request_cannot_be_made",desc:"Token request cannot be made without authorization code or refresh token."},appendEmptyScopeError:{code:"cannot_append_empty_scope",desc:"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info."},removeEmptyScopeError:{code:"cannot_remove_empty_scope",desc:"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info."},appendScopeSetError:{code:"cannot_append_scopeset",desc:"Cannot append ScopeSet due to error."},emptyInputScopeSetError:{code:"empty_input_scopeset",desc:"Empty input ScopeSet cannot be processed."},DeviceCodePollingCancelled:{code:"device_code_polling_cancelled",desc:"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true."},DeviceCodeExpired:{code:"device_code_expired",desc:"Device code is expired."},DeviceCodeUnknownError:{code:"device_code_unknown_error",desc:"Device code stopped polling for unknown reasons."},NoAccountInSilentRequest:{code:"no_account_in_silent_request",desc:"Please pass an account object, silent flow is not supported without account information"},invalidCacheRecord:{code:"invalid_cache_record",desc:"Cache record object was null or undefined."},invalidCacheEnvironment:{code:"invalid_cache_environment",desc:"Invalid environment when attempting to create cache entry"},noAccountFound:{code:"no_account_found",desc:"No account found in cache for given key."},CachePluginError:{code:"no cache plugin set on CacheManager",desc:"ICachePlugin needs to be set before using readFromStorage or writeFromStorage"},noCryptoObj:{code:"no_crypto_object",desc:"No crypto object detected. This is required for the following operation: "},invalidCacheType:{code:"invalid_cache_type",desc:"Invalid cache type"},unexpectedAccountType:{code:"unexpected_account_type",desc:"Unexpected account type."},unexpectedCredentialType:{code:"unexpected_credential_type",desc:"Unexpected credential type."},invalidAssertion:{code:"invalid_assertion",desc:"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515"},invalidClientCredential:{code:"invalid_client_credential",desc:"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential"},tokenRefreshRequired:{code:"token_refresh_required",desc:"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired."},userTimeoutReached:{code:"user_timeout_reached",desc:"User defined timeout for device code polling reached"},tokenClaimsRequired:{code:"token_claims_cnf_required_for_signedjwt",desc:"Cannot generate a POP jwt if the token_claims are not populated"},noAuthorizationCodeFromServer:{code:"authorization_code_missing_from_server_response",desc:"Server response does not contain an authorization code to proceed"},noAzureRegionDetected:{code:"no_azure_region_detected",desc:"No azure region was detected and no fallback was made available"},accessTokenEntityNullError:{code:"access_token_entity_null",desc:"Access token entity is null, please check logs and cache to ensure a valid access token is present."},bindingKeyNotRemovedError:{code:"binding_key_not_removed",desc:"Could not remove the credential's binding key from storage."},logoutNotSupported:{code:"end_session_endpoint_not_supported",desc:"Provided authority does not support logout."},keyIdMissing:{code:"key_id_missing",desc:"A keyId value is missing from the requested bound token's cache record and is required to match the token to it's stored binding key."},noNetworkConnectivity:{code:"no_network_connectivity",desc:"No network connectivity. Check your internet connection."},userCanceledError:{code:"user_canceled",desc:"User canceled the flow."},missingTenantIdError:{code:"missing_tenant_id_error",desc:"A tenant id - not common, organizations, or consumers - must be specified when using the client_credentials flow."}};
6
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class ht extends ct{constructor(e,t){super(e,t),this.name="ClientAuthError",Object.setPrototypeOf(this,ht.prototype)}static createClientInfoDecodingError(e){return new ht(lt.clientInfoDecodingError.code,`${lt.clientInfoDecodingError.desc} Failed with error: ${e}`)}static createClientInfoEmptyError(){return new ht(lt.clientInfoEmptyError.code,`${lt.clientInfoEmptyError.desc}`)}static createTokenParsingError(e){return new ht(lt.tokenParsingError.code,`${lt.tokenParsingError.desc} Failed with error: ${e}`)}static createTokenNullOrEmptyError(e){return new ht(lt.nullOrEmptyToken.code,`${lt.nullOrEmptyToken.desc} Raw Token Value: ${e}`)}static createEndpointDiscoveryIncompleteError(e){return new ht(lt.endpointResolutionError.code,`${lt.endpointResolutionError.desc} Detail: ${e}`)}static createNetworkError(e,t){return new ht(lt.networkError.code,`${lt.networkError.desc} | Fetch client threw: ${t} | Attempted to reach: ${e.split("?")[0]}`)}static createUnableToGetOpenidConfigError(e){return new ht(lt.unableToGetOpenidConfigError.code,`${lt.unableToGetOpenidConfigError.desc} Attempted to retrieve endpoints from: ${e}`)}static createHashNotDeserializedError(e){return new ht(lt.hashNotDeserialized.code,`${lt.hashNotDeserialized.desc} Given Object: ${e}`)}static createInvalidStateError(e,t){return new ht(lt.invalidStateError.code,`${lt.invalidStateError.desc} Invalid State: ${e}, Root Err: ${t}`)}static createStateMismatchError(){return new ht(lt.stateMismatchError.code,lt.stateMismatchError.desc)}static createStateNotFoundError(e){return new ht(lt.stateNotFoundError.code,`${lt.stateNotFoundError.desc}: ${e}`)}static createNonceMismatchError(){return new ht(lt.nonceMismatchError.code,lt.nonceMismatchError.desc)}static createAuthTimeNotFoundError(){return new ht(lt.authTimeNotFoundError.code,lt.authTimeNotFoundError.desc)}static createMaxAgeTranspiredError(){return new ht(lt.maxAgeTranspiredError.code,lt.maxAgeTranspiredError.desc)}static createNonceNotFoundError(e){return new ht(lt.nonceNotFoundError.code,`${lt.nonceNotFoundError.desc}: ${e}`)}static createMultipleMatchingTokensInCacheError(){return new ht(lt.multipleMatchingTokens.code,`${lt.multipleMatchingTokens.desc}.`)}static createMultipleMatchingAccountsInCacheError(){return new ht(lt.multipleMatchingAccounts.code,lt.multipleMatchingAccounts.desc)}static createMultipleMatchingAppMetadataInCacheError(){return new ht(lt.multipleMatchingAppMetadata.code,lt.multipleMatchingAppMetadata.desc)}static createTokenRequestCannotBeMadeError(){return new ht(lt.tokenRequestCannotBeMade.code,lt.tokenRequestCannotBeMade.desc)}static createAppendEmptyScopeToSetError(e){return new ht(lt.appendEmptyScopeError.code,`${lt.appendEmptyScopeError.desc} Given Scope: ${e}`)}static createRemoveEmptyScopeFromSetError(e){return new ht(lt.removeEmptyScopeError.code,`${lt.removeEmptyScopeError.desc} Given Scope: ${e}`)}static createAppendScopeSetError(e){return new ht(lt.appendScopeSetError.code,`${lt.appendScopeSetError.desc} Detail Error: ${e}`)}static createEmptyInputScopeSetError(){return new ht(lt.emptyInputScopeSetError.code,`${lt.emptyInputScopeSetError.desc}`)}static createDeviceCodeCancelledError(){return new ht(lt.DeviceCodePollingCancelled.code,`${lt.DeviceCodePollingCancelled.desc}`)}static createDeviceCodeExpiredError(){return new ht(lt.DeviceCodeExpired.code,`${lt.DeviceCodeExpired.desc}`)}static createDeviceCodeUnknownError(){return new ht(lt.DeviceCodeUnknownError.code,`${lt.DeviceCodeUnknownError.desc}`)}static createNoAccountInSilentRequestError(){return new ht(lt.NoAccountInSilentRequest.code,`${lt.NoAccountInSilentRequest.desc}`)}static createNullOrUndefinedCacheRecord(){return new ht(lt.invalidCacheRecord.code,lt.invalidCacheRecord.desc)}static createInvalidCacheEnvironmentError(){return new ht(lt.invalidCacheEnvironment.code,lt.invalidCacheEnvironment.desc)}static createNoAccountFoundError(){return new ht(lt.noAccountFound.code,lt.noAccountFound.desc)}static createCachePluginError(){return new ht(lt.CachePluginError.code,`${lt.CachePluginError.desc}`)}static createNoCryptoObjectError(e){return new ht(lt.noCryptoObj.code,`${lt.noCryptoObj.desc}${e}`)}static createInvalidCacheTypeError(){return new ht(lt.invalidCacheType.code,`${lt.invalidCacheType.desc}`)}static createUnexpectedAccountTypeError(){return new ht(lt.unexpectedAccountType.code,`${lt.unexpectedAccountType.desc}`)}static createUnexpectedCredentialTypeError(){return new ht(lt.unexpectedCredentialType.code,`${lt.unexpectedCredentialType.desc}`)}static createInvalidAssertionError(){return new ht(lt.invalidAssertion.code,`${lt.invalidAssertion.desc}`)}static createInvalidCredentialError(){return new ht(lt.invalidClientCredential.code,`${lt.invalidClientCredential.desc}`)}static createRefreshRequiredError(){return new ht(lt.tokenRefreshRequired.code,lt.tokenRefreshRequired.desc)}static createUserTimeoutReachedError(){return new ht(lt.userTimeoutReached.code,lt.userTimeoutReached.desc)}static createTokenClaimsRequiredError(){return new ht(lt.tokenClaimsRequired.code,lt.tokenClaimsRequired.desc)}static createNoAuthCodeInServerResponseError(){return new ht(lt.noAuthorizationCodeFromServer.code,lt.noAuthorizationCodeFromServer.desc)}static createBindingKeyNotRemovedError(){return new ht(lt.bindingKeyNotRemovedError.code,lt.bindingKeyNotRemovedError.desc)}static createLogoutNotSupportedError(){return new ht(lt.logoutNotSupported.code,lt.logoutNotSupported.desc)}static createKeyIdMissingError(){return new ht(lt.keyIdMissing.code,lt.keyIdMissing.desc)}static createNoNetworkConnectivityError(){return new ht(lt.noNetworkConnectivity.code,lt.noNetworkConnectivity.desc)}static createUserCanceledError(){return new ht(lt.userCanceledError.code,lt.userCanceledError.desc)}static createMissingTenantIdError(){return new ct(lt.missingTenantIdError.code,lt.missingTenantIdError.desc)}}
7
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class ut{static decodeAuthToken(e){if(ut.isEmpty(e))throw ht.createTokenNullOrEmptyError(e);const t=/^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/.exec(e);if(!t||t.length<4)throw ht.createTokenParsingError(`Given token is malformed: ${JSON.stringify(e)}`);return{header:t[1],JWSPayload:t[2],JWSSig:t[3]}}static isEmpty(e){return void 0===e||!e||0===e.length}static isEmptyObj(e){if(e&&!ut.isEmpty(e))try{const t=JSON.parse(e);return 0===Object.keys(t).length}catch(e){}return!0}static startsWith(e,t){return 0===e.indexOf(t)}static endsWith(e,t){return e.length>=t.length&&e.lastIndexOf(t)===e.length-t.length}static queryStringToObject(e){const t={},r=e.split("&"),o=e=>decodeURIComponent(e.replace(/\+/g," "));return r.forEach((e=>{if(e.trim()){const[r,n]=e.split(/=(.+)/g,2);r&&n&&(t[o(r)]=o(n))}})),t}static trimArrayEntries(e){return e.map((e=>e.trim()))}static removeEmptyStringsFromArray(e){return e.filter((e=>!ut.isEmpty(e)))}static jsonParseHelper(e){try{return JSON.parse(e)}catch(e){return null}}static matchPattern(e,t){return new RegExp(e.replace(/\\/g,"\\\\").replace(/\*/g,"[^ ]*").replace(/\?/g,"\\?")).test(t)}}
8
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */var gt;e.LogLevel=void 0,(gt=e.LogLevel||(e.LogLevel={}))[gt.Error=0]="Error",gt[gt.Warning=1]="Warning",gt[gt.Info=2]="Info",gt[gt.Verbose=3]="Verbose",gt[gt.Trace=4]="Trace";class pt{constructor(r,o,n){this.level=e.LogLevel.Info;const i=r||pt.createDefaultLoggerOptions();this.localCallback=i.loggerCallback||(()=>{}),this.piiLoggingEnabled=i.piiLoggingEnabled||!1,this.level="number"==typeof i.logLevel?i.logLevel:e.LogLevel.Info,this.correlationId=i.correlationId||t.EMPTY_STRING,this.packageName=o||t.EMPTY_STRING,this.packageVersion=n||t.EMPTY_STRING}static createDefaultLoggerOptions(){return{loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:e.LogLevel.Info}}clone(e,t,r){return new pt({loggerCallback:this.localCallback,piiLoggingEnabled:this.piiLoggingEnabled,logLevel:this.level,correlationId:r||this.correlationId},e,t)}logMessage(t,r){if(r.logLevel>this.level||!this.piiLoggingEnabled&&r.containsPii)return;const o=(new Date).toUTCString();let n;n=ut.isEmpty(r.correlationId)?ut.isEmpty(this.correlationId)?`[${o}]`:`[${o}] : [${this.correlationId}]`:`[${o}] : [${r.correlationId}]`;const i=`${n} : ${this.packageName}@${this.packageVersion} : ${e.LogLevel[r.logLevel]} - ${t}`;this.executeCallback(r.logLevel,i,r.containsPii||!1)}executeCallback(e,t,r){this.localCallback&&this.localCallback(e,t,r)}error(r,o){this.logMessage(r,{logLevel:e.LogLevel.Error,containsPii:!1,correlationId:o||t.EMPTY_STRING})}errorPii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Error,containsPii:!0,correlationId:o||t.EMPTY_STRING})}warning(r,o){this.logMessage(r,{logLevel:e.LogLevel.Warning,containsPii:!1,correlationId:o||t.EMPTY_STRING})}warningPii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Warning,containsPii:!0,correlationId:o||t.EMPTY_STRING})}info(r,o){this.logMessage(r,{logLevel:e.LogLevel.Info,containsPii:!1,correlationId:o||t.EMPTY_STRING})}infoPii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Info,containsPii:!0,correlationId:o||t.EMPTY_STRING})}verbose(r,o){this.logMessage(r,{logLevel:e.LogLevel.Verbose,containsPii:!1,correlationId:o||t.EMPTY_STRING})}verbosePii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Verbose,containsPii:!0,correlationId:o||t.EMPTY_STRING})}trace(r,o){this.logMessage(r,{logLevel:e.LogLevel.Trace,containsPii:!1,correlationId:o||t.EMPTY_STRING})}tracePii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Trace,containsPii:!0,correlationId:o||t.EMPTY_STRING})}isPiiLoggingEnabled(){return this.piiLoggingEnabled||!1}}
9
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */const mt="@azure/msal-common",ft="14.0.0-beta.1",yt={None:"none",AzurePublic:"https://login.microsoftonline.com",AzurePpe:"https://login.windows-ppe.net",AzureChina:"https://login.chinacloudapi.cn",AzureGermany:"https://login.microsoftonline.de",AzureUsGovernment:"https://login.microsoftonline.us"},Ct={redirectUriNotSet:{code:"redirect_uri_empty",desc:"A redirect URI is required for all calls, and none has been set."},postLogoutUriNotSet:{code:"post_logout_uri_empty",desc:"A post logout redirect has not been set."},claimsRequestParsingError:{code:"claims_request_parsing_error",desc:"Could not parse the given claims request object."},authorityUriInsecure:{code:"authority_uri_insecure",desc:"Authority URIs must use https. Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options"},urlParseError:{code:"url_parse_error",desc:"URL could not be parsed into appropriate segments."},urlEmptyError:{code:"empty_url_error",desc:"URL was empty or null."},emptyScopesError:{code:"empty_input_scopes_error",desc:"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token."},nonArrayScopesError:{code:"nonarray_input_scopes_error",desc:"Scopes cannot be passed as non-array."},clientIdSingleScopeError:{code:"clientid_input_scopes_error",desc:"Client ID can only be provided as a single scope."},invalidPrompt:{code:"invalid_prompt_value",desc:"Supported prompt values are 'login', 'select_account', 'consent', 'create', 'none' and 'no_session'. Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest"},invalidClaimsRequest:{code:"invalid_claims",desc:"Given claims parameter must be a stringified JSON object."},tokenRequestEmptyError:{code:"token_request_empty",desc:"Token request was empty and not found in cache."},logoutRequestEmptyError:{code:"logout_request_empty",desc:"The logout request was null or undefined."},invalidCodeChallengeMethod:{code:"invalid_code_challenge_method",desc:'code_challenge_method passed is invalid. Valid values are "plain" and "S256".'},invalidCodeChallengeParams:{code:"pkce_params_missing",desc:"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request"},invalidCloudDiscoveryMetadata:{code:"invalid_cloud_discovery_metadata",desc:"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields"},invalidAuthorityMetadata:{code:"invalid_authority_metadata",desc:"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields."},untrustedAuthority:{code:"untrusted_authority",desc:"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter."},invalidAzureCloudInstance:{code:"invalid_azure_cloud_instance",desc:"Invalid AzureCloudInstance provided. Please refer MSAL JS docs: aks.ms/msaljs/azure_cloud_instance for valid values"},missingSshJwk:{code:"missing_ssh_jwk",desc:"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme."},missingSshKid:{code:"missing_ssh_kid",desc:"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme."},missingNonceAuthenticationHeader:{code:"missing_nonce_authentication_header",desc:"Unable to find an authentication header containing server nonce. Either the Authentication-Info or WWW-Authenticate headers must be present in order to obtain a server nonce."},invalidAuthenticationHeader:{code:"invalid_authentication_header",desc:"Invalid authentication header provided"},authorityMismatch:{code:"authority_mismatch",desc:"Authority mismatch error. Authority provided in login request or PublicClientApplication config does not match the environment of the provided account. Please use a matching account or make an interactive request to login to this authority."}};class vt extends ht{constructor(e,t){super(e,t),this.name="ClientConfigurationError",Object.setPrototypeOf(this,vt.prototype)}static createRedirectUriEmptyError(){return new vt(Ct.redirectUriNotSet.code,Ct.redirectUriNotSet.desc)}static createPostLogoutRedirectUriEmptyError(){return new vt(Ct.postLogoutUriNotSet.code,Ct.postLogoutUriNotSet.desc)}static createClaimsRequestParsingError(e){return new vt(Ct.claimsRequestParsingError.code,`${Ct.claimsRequestParsingError.desc} Given value: ${e}`)}static createInsecureAuthorityUriError(e){return new vt(Ct.authorityUriInsecure.code,`${Ct.authorityUriInsecure.desc} Given URI: ${e}`)}static createUrlParseError(e){return new vt(Ct.urlParseError.code,`${Ct.urlParseError.desc} Given Error: ${e}`)}static createUrlEmptyError(){return new vt(Ct.urlEmptyError.code,Ct.urlEmptyError.desc)}static createEmptyScopesArrayError(){return new vt(Ct.emptyScopesError.code,`${Ct.emptyScopesError.desc}`)}static createClientIdSingleScopeError(e){return new vt(Ct.clientIdSingleScopeError.code,`${Ct.clientIdSingleScopeError.desc} Given Scopes: ${e}`)}static createInvalidPromptError(e){return new vt(Ct.invalidPrompt.code,`${Ct.invalidPrompt.desc} Given value: ${e}`)}static createInvalidClaimsRequestError(){return new vt(Ct.invalidClaimsRequest.code,Ct.invalidClaimsRequest.desc)}static createEmptyLogoutRequestError(){return new vt(Ct.logoutRequestEmptyError.code,Ct.logoutRequestEmptyError.desc)}static createEmptyTokenRequestError(){return new vt(Ct.tokenRequestEmptyError.code,Ct.tokenRequestEmptyError.desc)}static createInvalidCodeChallengeMethodError(){return new vt(Ct.invalidCodeChallengeMethod.code,Ct.invalidCodeChallengeMethod.desc)}static createInvalidCodeChallengeParamsError(){return new vt(Ct.invalidCodeChallengeParams.code,Ct.invalidCodeChallengeParams.desc)}static createInvalidCloudDiscoveryMetadataError(){return new vt(Ct.invalidCloudDiscoveryMetadata.code,Ct.invalidCloudDiscoveryMetadata.desc)}static createInvalidAuthorityMetadataError(){return new vt(Ct.invalidAuthorityMetadata.code,Ct.invalidAuthorityMetadata.desc)}static createUntrustedAuthorityError(){return new vt(Ct.untrustedAuthority.code,Ct.untrustedAuthority.desc)}static createInvalidAzureCloudInstanceError(){return new vt(Ct.invalidAzureCloudInstance.code,Ct.invalidAzureCloudInstance.desc)}static createMissingSshJwkError(){return new vt(Ct.missingSshJwk.code,Ct.missingSshJwk.desc)}static createMissingSshKidError(){return new vt(Ct.missingSshKid.code,Ct.missingSshKid.desc)}static createMissingNonceAuthenticationHeadersError(){return new vt(Ct.missingNonceAuthenticationHeader.code,Ct.missingNonceAuthenticationHeader.desc)}static createInvalidAuthenticationHeaderError(e,t){return new vt(Ct.invalidAuthenticationHeader.code,`${Ct.invalidAuthenticationHeader.desc}. Invalid header: ${e}. Details: ${t}`)}static createAuthorityMismatchError(){return new vt(Ct.authorityMismatch.code,Ct.authorityMismatch.desc)}}
10
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class wt{constructor(e){const t=e?ut.trimArrayEntries([...e]):[],r=t?ut.removeEmptyStringsFromArray(t):[];this.validateInputScopes(r),this.scopes=new Set,r.forEach((e=>this.scopes.add(e)))}static fromString(e){const r=(e||t.EMPTY_STRING).split(" ");return new wt(r)}static createSearchScopes(e){const r=new wt(e);return r.containsOnlyOIDCScopes()?r.removeScope(t.OFFLINE_ACCESS_SCOPE):r.removeOIDCScopes(),r}validateInputScopes(e){if(!e||e.length<1)throw vt.createEmptyScopesArrayError()}containsScope(e){const t=this.printScopesLowerCase().split(" "),r=new wt(t);return!ut.isEmpty(e)&&r.scopes.has(e.toLowerCase())}containsScopeSet(e){return!(!e||e.scopes.size<=0)&&(this.scopes.size>=e.scopes.size&&e.asArray().every((e=>this.containsScope(e))))}containsOnlyOIDCScopes(){let e=0;return o.forEach((t=>{this.containsScope(t)&&(e+=1)})),this.scopes.size===e}appendScope(e){ut.isEmpty(e)||this.scopes.add(e.trim())}appendScopes(e){try{e.forEach((e=>this.appendScope(e)))}catch(e){throw ht.createAppendScopeSetError(e)}}removeScope(e){if(ut.isEmpty(e))throw ht.createRemoveEmptyScopeFromSetError(e);this.scopes.delete(e.trim())}removeOIDCScopes(){o.forEach((e=>{this.scopes.delete(e)}))}unionScopeSets(e){if(!e)throw ht.createEmptyInputScopeSetError();const t=new Set;return e.scopes.forEach((e=>t.add(e.toLowerCase()))),this.scopes.forEach((e=>t.add(e.toLowerCase()))),t}intersectingScopeSets(e){if(!e)throw ht.createEmptyInputScopeSetError();e.containsOnlyOIDCScopes()||e.removeOIDCScopes();const t=this.unionScopeSets(e),r=e.getScopeCount(),o=this.getScopeCount();return t.size<o+r}getScopeCount(){return this.scopes.size}asArray(){const e=[];return this.scopes.forEach((t=>e.push(t))),e}printScopes(){if(this.scopes){return this.asArray().join(" ")}return t.EMPTY_STRING}printScopesLowerCase(){return this.printScopes().toLowerCase()}}
11
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */function Tt(e,t){if(ut.isEmpty(e))throw ht.createClientInfoEmptyError();try{const r=t.base64Decode(e);return JSON.parse(r)}catch(e){throw ht.createClientInfoDecodingError(e.message)}}function Et(e){if(ut.isEmpty(e))throw ht.createClientInfoDecodingError("Home account ID was empty.");const r=e.split(we.CLIENT_INFO_SEPARATOR,2);return{uid:r[0],utid:r.length<2?t.EMPTY_STRING:r[1]}}
12
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */const It=0,_t=1,kt=2,St=3;
13
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class At{generateAccountId(){return[this.homeAccountId,this.environment].join(we.CACHE_KEY_SEPARATOR).toLowerCase()}generateAccountKey(){return At.generateAccountCacheKey({homeAccountId:this.homeAccountId,environment:this.environment,tenantId:this.realm,username:this.username,localAccountId:this.localAccountId})}generateType(){switch(this.authorityType){case ye:return Ee;case Ce:return Ie;case fe:return _e;case ve:return ke;default:throw ht.createUnexpectedAccountTypeError()}}getAccountInfo(){return{homeAccountId:this.homeAccountId,environment:this.environment,tenantId:this.realm,username:this.username,localAccountId:this.localAccountId,name:this.name,idTokenClaims:this.idTokenClaims,nativeAccountId:this.nativeAccountId}}static generateAccountCacheKey(e){return[e.homeAccountId,e.environment||t.EMPTY_STRING,e.tenantId||t.EMPTY_STRING].join(we.CACHE_KEY_SEPARATOR).toLowerCase()}static createAccount(e,r,o,n,i,a,s,c){const d=new At;d.authorityType=fe,d.clientInfo=e,d.homeAccountId=r,d.nativeAccountId=c;const l=s||n&&n.getPreferredCache();if(!l)throw ht.createInvalidCacheEnvironmentError();if(d.environment=l,d.realm=o?.claims?.tid||t.EMPTY_STRING,o){d.idTokenClaims=o.claims,d.localAccountId=o?.claims?.oid||o?.claims?.sub||t.EMPTY_STRING;const e=o?.claims?.preferred_username,r=o?.claims?.emails?o.claims.emails[0]:null;d.username=e||r||t.EMPTY_STRING,d.name=o?.claims?.name}return d.cloudGraphHostName=i,d.msGraphHost=a,d}static createGenericAccount(e,r,o,n,i,a){const s=new At;s.authorityType=o&&o.authorityType===_t?ye:ve,s.homeAccountId=e,s.realm=t.EMPTY_STRING;const c=a||o&&o.getPreferredCache();if(!c)throw ht.createInvalidCacheEnvironmentError();return r&&(s.localAccountId=r?.claims?.oid||r?.claims?.sub||t.EMPTY_STRING,s.username=r?.claims?.upn||t.EMPTY_STRING,s.name=r?.claims?.name||t.EMPTY_STRING,s.idTokenClaims=r?.claims),s.environment=c,s.cloudGraphHostName=n,s.msGraphHost=i,s}static generateHomeAccountId(e,r,o,n,i){const a=i?.claims?.sub?i.claims.sub:t.EMPTY_STRING;if(r===_t||r===kt)return a;if(e)try{const t=Tt(e,n);if(!ut.isEmpty(t.uid)&&!ut.isEmpty(t.utid))return`${t.uid}${we.CLIENT_INFO_SEPARATOR}${t.utid}`}catch(e){}return o.verbose("No client info in response"),a}static isAccountEntity(e){return!!e&&(e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("realm")&&e.hasOwnProperty("localAccountId")&&e.hasOwnProperty("username")&&e.hasOwnProperty("authorityType"))}static accountInfoIsEqual(e,t,r){if(!e||!t)return!1;let o=!0;if(r){const r=e.idTokenClaims||{},n=t.idTokenClaims||{};o=r.iat===n.iat&&r.nonce===n.nonce}return e.homeAccountId===t.homeAccountId&&e.localAccountId===t.localAccountId&&e.username===t.username&&e.tenantId===t.tenantId&&e.environment===t.environment&&e.nativeAccountId===t.nativeAccountId&&o}}
14
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class Rt{constructor(e,t){if(ut.isEmpty(e))throw ht.createTokenNullOrEmptyError(e);this.rawToken=e,this.claims=Rt.extractTokenClaims(e,t)}static extractTokenClaims(e,t){const r=ut.decodeAuthToken(e);try{const e=r.JWSPayload,o=t.base64Decode(e);return JSON.parse(o)}catch(e){throw ht.createTokenParsingError(e)}}static checkMaxAge(e,t){if(0===t||Date.now()-3e5>e+t)throw ht.createMaxAgeTranspiredError()}}
15
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class bt{constructor(e,t,r){this.clientId=e,this.cryptoImpl=t,this.commonLogger=r.clone(mt,ft)}getAllAccounts(){const e=this.getAccountKeys();if(e.length<1)return[];const t=e.reduce(((e,t)=>{const r=this.getAccount(t);return r?(e.push(r),e):e}),[]);if(t.length<1)return[];return t.map((e=>this.getAccountInfoFromEntity(e)))}getAccountInfoFilteredBy(e){const t=this.getAccountsFilteredBy(e);return t.length>0?this.getAccountInfoFromEntity(t[0]):null}getAccountInfoFromEntity(e){const t=e.getAccountInfo(),r=this.getIdToken(t);return r&&(t.idToken=r.secret,t.idTokenClaims=new Rt(r.secret,this.cryptoImpl).claims),t}async saveCacheRecord(e){if(!e)throw ht.createNullOrUndefinedCacheRecord();e.account&&this.setAccount(e.account),e.idToken&&this.setIdTokenCredential(e.idToken),e.accessToken&&await this.saveAccessToken(e.accessToken),e.refreshToken&&this.setRefreshTokenCredential(e.refreshToken),e.appMetadata&&this.setAppMetadata(e.appMetadata)}async saveAccessToken(e){const t={clientId:e.clientId,credentialType:e.credentialType,environment:e.environment,homeAccountId:e.homeAccountId,realm:e.realm,tokenType:e.tokenType,requestedClaimsHash:e.requestedClaimsHash},r=this.getTokenKeys(),o=wt.fromString(e.target),n=[];r.accessToken.forEach((e=>{if(!this.accessTokenKeyMatchesFilter(e,t,!1))return;const r=this.getAccessTokenCredential(e);if(r&&this.credentialMatchesFilter(r,t)){wt.fromString(r.target).intersectingScopeSets(o)&&n.push(this.removeAccessToken(e))}})),await Promise.all(n),this.setAccessTokenCredential(e)}getAccountsFilteredBy(e){const t=this.getAccountKeys(),r=[];return t.forEach((t=>{if(!this.isAccountKey(t,e.homeAccountId,e.realm))return;const o=this.getAccount(t);o&&(e.homeAccountId&&!this.matchHomeAccountId(o,e.homeAccountId)||e.localAccountId&&!this.matchLocalAccountId(o,e.localAccountId)||e.username&&!this.matchUsername(o,e.username)||e.environment&&!this.matchEnvironment(o,e.environment)||e.realm&&!this.matchRealm(o,e.realm)||e.nativeAccountId&&!this.matchNativeAccountId(o,e.nativeAccountId)||r.push(o))})),r}isAccountKey(e,t,r){return!(e.split(we.CACHE_KEY_SEPARATOR).length<3)&&(!(t&&!e.toLowerCase().includes(t.toLowerCase()))&&!(r&&!e.toLowerCase().includes(r.toLowerCase())))}isCredentialKey(e){if(e.split(we.CACHE_KEY_SEPARATOR).length<6)return!1;const t=e.toLowerCase();if(-1===t.indexOf(Te.ID_TOKEN.toLowerCase())&&-1===t.indexOf(Te.ACCESS_TOKEN.toLowerCase())&&-1===t.indexOf(Te.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase())&&-1===t.indexOf(Te.REFRESH_TOKEN.toLowerCase()))return!1;if(t.indexOf(Te.REFRESH_TOKEN.toLowerCase())>-1){const e=`${Te.REFRESH_TOKEN}${we.CACHE_KEY_SEPARATOR}${this.clientId}${we.CACHE_KEY_SEPARATOR}`,r=`${Te.REFRESH_TOKEN}${we.CACHE_KEY_SEPARATOR}${Pe}${we.CACHE_KEY_SEPARATOR}`;if(-1===t.indexOf(e.toLowerCase())&&-1===t.indexOf(r.toLowerCase()))return!1}else if(-1===t.indexOf(this.clientId.toLowerCase()))return!1;return!0}credentialMatchesFilter(e,t){if(t.clientId&&!this.matchClientId(e,t.clientId))return!1;if(t.userAssertionHash&&!this.matchUserAssertionHash(e,t.userAssertionHash))return!1;if("string"==typeof t.homeAccountId&&!this.matchHomeAccountId(e,t.homeAccountId))return!1;if(t.environment&&!this.matchEnvironment(e,t.environment))return!1;if(t.realm&&!this.matchRealm(e,t.realm))return!1;if(t.credentialType&&!this.matchCredentialType(e,t.credentialType))return!1;if(t.familyId&&!this.matchFamilyId(e,t.familyId))return!1;if(t.target&&!this.matchTarget(e,t.target))return!1;if((t.requestedClaimsHash||e.requestedClaimsHash)&&e.requestedClaimsHash!==t.requestedClaimsHash)return!1;if(e.credentialType===Te.ACCESS_TOKEN_WITH_AUTH_SCHEME){if(t.tokenType&&!this.matchTokenType(e,t.tokenType))return!1;if(t.tokenType===xe.SSH&&t.keyId&&!this.matchKeyId(e,t.keyId))return!1}return!0}getAppMetadataFilteredBy(e){return this.getAppMetadataFilteredByInternal(e.environment,e.clientId)}getAppMetadataFilteredByInternal(e,t){const r=this.getKeys(),o={};return r.forEach((r=>{if(!this.isAppMetadata(r))return;const n=this.getAppMetadata(r);n&&(e&&!this.matchEnvironment(n,e)||t&&!this.matchClientId(n,t)||(o[r]=n))})),o}getAuthorityMetadataByAlias(e){const t=this.getAuthorityMetadataKeys();let r=null;return t.forEach((t=>{if(!this.isAuthorityMetadata(t)||-1===t.indexOf(this.clientId))return;const o=this.getAuthorityMetadata(t);o&&-1!==o.aliases.indexOf(e)&&(r=o)})),r}async removeAllAccounts(){const e=this.getAccountKeys(),t=[];e.forEach((e=>{t.push(this.removeAccount(e))})),await Promise.all(t)}async removeAccount(e){const t=this.getAccount(e);t&&(await this.removeAccountContext(t),this.removeItem(e))}async removeAccountContext(e){const t=this.getTokenKeys(),r=e.generateAccountId(),o=[];t.idToken.forEach((e=>{0===e.indexOf(r)&&this.removeIdToken(e)})),t.accessToken.forEach((e=>{0===e.indexOf(r)&&o.push(this.removeAccessToken(e))})),t.refreshToken.forEach((e=>{0===e.indexOf(r)&&this.removeRefreshToken(e)})),await Promise.all(o)}async removeAccessToken(e){const t=this.getAccessTokenCredential(e);if(t){if(t.credentialType.toLowerCase()===Te.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()&&t.tokenType===xe.POP){const e=t.keyId;if(e)try{await this.cryptoImpl.removeTokenBindingKey(e)}catch(e){throw ht.createBindingKeyNotRemovedError()}}return this.removeItem(e)}}removeAppMetadata(){return this.getKeys().forEach((e=>{this.isAppMetadata(e)&&this.removeItem(e)})),!0}readCacheRecord(e,t,r){const o=this.getTokenKeys(),n=this.readAccountFromCache(e),i=this.getIdToken(e,o),a=this.getAccessToken(e,t,o),s=this.getRefreshToken(e,!1,o),c=this.readAppMetadataFromCache(r);return n&&i&&(n.idTokenClaims=new Rt(i.secret,this.cryptoImpl).claims),{account:n,idToken:i,accessToken:a,refreshToken:s,appMetadata:c}}readAccountFromCache(e){const t=At.generateAccountCacheKey(e);return this.getAccount(t)}getIdToken(e,t){this.commonLogger.trace("CacheManager - getIdToken called");const r={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:Te.ID_TOKEN,clientId:this.clientId,realm:e.tenantId},o=this.getIdTokensByFilter(r,t),n=o.length;if(n<1)return this.commonLogger.info("CacheManager:getIdToken - No token found"),null;if(n>1)throw ht.createMultipleMatchingTokensInCacheError();return this.commonLogger.info("CacheManager:getIdToken - Returning id token"),o[0]}getIdTokensByFilter(e,t){const r=t&&t.idToken||this.getTokenKeys().idToken,o=[];return r.forEach((t=>{if(!this.idTokenKeyMatchesFilter(t,{clientId:this.clientId,...e}))return;const r=this.getIdTokenCredential(t);r&&this.credentialMatchesFilter(r,e)&&o.push(r)})),o}idTokenKeyMatchesFilter(e,t){const r=e.toLowerCase();return(!t.clientId||-1!==r.indexOf(t.clientId.toLowerCase()))&&(!t.homeAccountId||-1!==r.indexOf(t.homeAccountId.toLowerCase()))}removeIdToken(e){this.removeItem(e)}removeRefreshToken(e){this.removeItem(e)}getAccessToken(e,t,r){this.commonLogger.trace("CacheManager - getAccessToken called");const o=wt.createSearchScopes(t.scopes),n=t.authenticationScheme||xe.BEARER,i=n&&n.toLowerCase()!==xe.BEARER.toLowerCase()?Te.ACCESS_TOKEN_WITH_AUTH_SCHEME:Te.ACCESS_TOKEN,a={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:i,clientId:this.clientId,realm:e.tenantId,target:o,tokenType:n,keyId:t.sshKid,requestedClaimsHash:t.requestedClaimsHash},s=r&&r.accessToken||this.getTokenKeys().accessToken,c=[];s.forEach((e=>{if(this.accessTokenKeyMatchesFilter(e,a,!0)){const t=this.getAccessTokenCredential(e);t&&this.credentialMatchesFilter(t,a)&&c.push(t)}}));const d=c.length;if(d<1)return this.commonLogger.info("CacheManager:getAccessToken - No token found"),null;if(d>1)throw ht.createMultipleMatchingTokensInCacheError();return this.commonLogger.info("CacheManager:getAccessToken - Returning access token"),c[0]}accessTokenKeyMatchesFilter(e,t,r){const o=e.toLowerCase();if(t.clientId&&-1===o.indexOf(t.clientId.toLowerCase()))return!1;if(t.homeAccountId&&-1===o.indexOf(t.homeAccountId.toLowerCase()))return!1;if(t.realm&&-1===o.indexOf(t.realm.toLowerCase()))return!1;if(t.requestedClaimsHash&&-1===o.indexOf(t.requestedClaimsHash.toLowerCase()))return!1;if(t.target){const e=t.target.asArray();for(let t=0;t<e.length;t++){if(r&&!o.includes(e[t].toLowerCase()))return!1;if(!r&&o.includes(e[t].toLowerCase()))return!0}}return!0}getAccessTokensByFilter(e){const t=this.getTokenKeys(),r=[];return t.accessToken.forEach((t=>{if(!this.accessTokenKeyMatchesFilter(t,e,!0))return;const o=this.getAccessTokenCredential(t);o&&this.credentialMatchesFilter(o,e)&&r.push(o)})),r}getRefreshToken(e,t,r){this.commonLogger.trace("CacheManager - getRefreshToken called");const o=t?Pe:void 0,n={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:Te.REFRESH_TOKEN,clientId:this.clientId,familyId:o},i=r&&r.refreshToken||this.getTokenKeys().refreshToken,a=[];i.forEach((e=>{if(this.refreshTokenKeyMatchesFilter(e,n)){const t=this.getRefreshTokenCredential(e);t&&this.credentialMatchesFilter(t,n)&&a.push(t)}}));return a.length<1?(this.commonLogger.info("CacheManager:getRefreshToken - No refresh token found."),null):(this.commonLogger.info("CacheManager:getRefreshToken - returning refresh token"),a[0])}refreshTokenKeyMatchesFilter(e,t){const r=e.toLowerCase();return(!t.familyId||-1!==r.indexOf(t.familyId.toLowerCase()))&&(!(!t.familyId&&t.clientId&&-1===r.indexOf(t.clientId.toLowerCase()))&&(!t.homeAccountId||-1!==r.indexOf(t.homeAccountId.toLowerCase())))}readAppMetadataFromCache(e){const t={environment:e,clientId:this.clientId},r=this.getAppMetadataFilteredBy(t),o=Object.keys(r).map((e=>r[e])),n=o.length;if(n<1)return null;if(n>1)throw ht.createMultipleMatchingAppMetadataInCacheError();return o[0]}isAppMetadataFOCI(e){const t=this.readAppMetadataFromCache(e);return!(!t||t.familyId!==Pe)}matchHomeAccountId(e,t){return!("string"!=typeof e.homeAccountId||t!==e.homeAccountId)}matchLocalAccountId(e,t){return!("string"!=typeof e.localAccountId||t!==e.localAccountId)}matchUsername(e,t){return!("string"!=typeof e.username||t.toLowerCase()!==e.username.toLowerCase())}matchUserAssertionHash(e,t){return!(!e.userAssertionHash||t!==e.userAssertionHash)}matchEnvironment(e,t){const r=this.getAuthorityMetadataByAlias(t);return!!(r&&r.aliases.indexOf(e.environment)>-1)}matchCredentialType(e,t){return e.credentialType&&t.toLowerCase()===e.credentialType.toLowerCase()}matchClientId(e,t){return!(!e.clientId||t!==e.clientId)}matchFamilyId(e,t){return!(!e.familyId||t!==e.familyId)}matchRealm(e,t){return!(!e.realm||t!==e.realm)}matchNativeAccountId(e,t){return!(!e.nativeAccountId||t!==e.nativeAccountId)}matchTarget(e,t){if(e.credentialType!==Te.ACCESS_TOKEN&&e.credentialType!==Te.ACCESS_TOKEN_WITH_AUTH_SCHEME||!e.target)return!1;return wt.fromString(e.target).containsScopeSet(t)}matchTokenType(e,t){return!(!e.tokenType||e.tokenType!==t)}matchKeyId(e,t){return!(!e.keyId||e.keyId!==t)}isAppMetadata(e){return-1!==e.indexOf(be)}isAuthorityMetadata(e){return-1!==e.indexOf(Me)}generateAuthorityMetadataCacheKey(e){return`${Me}-${this.clientId}-${e}`}static toObject(e,t){for(const r in t)e[r]=t[r];return e}}class Pt extends bt{setAccount(){throw ct.createUnexpectedError("Storage interface - setAccount() has not been implemented for the cacheStorage interface.")}getAccount(){throw ct.createUnexpectedError("Storage interface - getAccount() has not been implemented for the cacheStorage interface.")}setIdTokenCredential(){throw ct.createUnexpectedError("Storage interface - setIdTokenCredential() has not been implemented for the cacheStorage interface.")}getIdTokenCredential(){throw ct.createUnexpectedError("Storage interface - getIdTokenCredential() has not been implemented for the cacheStorage interface.")}setAccessTokenCredential(){throw ct.createUnexpectedError("Storage interface - setAccessTokenCredential() has not been implemented for the cacheStorage interface.")}getAccessTokenCredential(){throw ct.createUnexpectedError("Storage interface - getAccessTokenCredential() has not been implemented for the cacheStorage interface.")}setRefreshTokenCredential(){throw ct.createUnexpectedError("Storage interface - setRefreshTokenCredential() has not been implemented for the cacheStorage interface.")}getRefreshTokenCredential(){throw ct.createUnexpectedError("Storage interface - getRefreshTokenCredential() has not been implemented for the cacheStorage interface.")}setAppMetadata(){throw ct.createUnexpectedError("Storage interface - setAppMetadata() has not been implemented for the cacheStorage interface.")}getAppMetadata(){throw ct.createUnexpectedError("Storage interface - getAppMetadata() has not been implemented for the cacheStorage interface.")}setServerTelemetry(){throw ct.createUnexpectedError("Storage interface - setServerTelemetry() has not been implemented for the cacheStorage interface.")}getServerTelemetry(){throw ct.createUnexpectedError("Storage interface - getServerTelemetry() has not been implemented for the cacheStorage interface.")}setAuthorityMetadata(){throw ct.createUnexpectedError("Storage interface - setAuthorityMetadata() has not been implemented for the cacheStorage interface.")}getAuthorityMetadata(){throw ct.createUnexpectedError("Storage interface - getAuthorityMetadata() has not been implemented for the cacheStorage interface.")}getAuthorityMetadataKeys(){throw ct.createUnexpectedError("Storage interface - getAuthorityMetadataKeys() has not been implemented for the cacheStorage interface.")}setThrottlingCache(){throw ct.createUnexpectedError("Storage interface - setThrottlingCache() has not been implemented for the cacheStorage interface.")}getThrottlingCache(){throw ct.createUnexpectedError("Storage interface - getThrottlingCache() has not been implemented for the cacheStorage interface.")}removeItem(){throw ct.createUnexpectedError("Storage interface - removeItem() has not been implemented for the cacheStorage interface.")}containsKey(){throw ct.createUnexpectedError("Storage interface - containsKey() has not been implemented for the cacheStorage interface.")}getKeys(){throw ct.createUnexpectedError("Storage interface - getKeys() has not been implemented for the cacheStorage interface.")}getAccountKeys(){throw ct.createUnexpectedError("Storage interface - getAccountKeys() has not been implemented for the cacheStorage interface.")}getTokenKeys(){throw ct.createUnexpectedError("Storage interface - getTokenKeys() has not been implemented for the cacheStorage interface.")}async clear(){throw ct.createUnexpectedError("Storage interface - clear() has not been implemented for the cacheStorage interface.")}updateCredentialCacheKey(){throw ct.createUnexpectedError("Storage interface - updateCredentialCacheKey() has not been implemented for the cacheStorage interface.")}}
16
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */const Mt={tokenRenewalOffsetSeconds:300,preventCorsPreflight:!1},Nt={loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:e.LogLevel.Info,correlationId:t.EMPTY_STRING},Ot={claimsBasedCachingEnabled:!1},qt={async sendGetRequestAsync(){throw ct.createUnexpectedError("Network interface - sendGetRequestAsync() has not been implemented")},async sendPostRequestAsync(){throw ct.createUnexpectedError("Network interface - sendPostRequestAsync() has not been implemented")}},Ut={sku:t.SKU,version:ft,cpu:t.EMPTY_STRING,os:t.EMPTY_STRING},Ht={clientSecret:t.EMPTY_STRING,clientAssertion:void 0},Lt={azureCloudInstance:yt.None,tenant:`${t.DEFAULT_COMMON_TENANT}`},xt={application:{appName:"",appVersion:""}};
17
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */
18
- class Ft extends ct{constructor(e,t,r){super(e,t,r),this.name="ServerError",Object.setPrototypeOf(this,Ft.prototype)}}
19
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class Dt{static generateThrottlingStorageKey(e){return`${Be}.${JSON.stringify(e)}`}static preProcess(e,r){const o=Dt.generateThrottlingStorageKey(r),n=e.getThrottlingCache(o);if(n){if(n.throttleTime<Date.now())return void e.removeItem(o);throw new Ft(n.errorCodes?.join(" ")||t.EMPTY_STRING,n.errorMessage,n.subError)}}static postProcess(e,t,r){if(Dt.checkResponseStatus(r)||Dt.checkResponseForRetryAfter(r)){const o={throttleTime:Dt.calculateThrottleTime(parseInt(r.headers[i])),error:r.body.error,errorCodes:r.body.error_codes,errorMessage:r.body.error_description,subError:r.body.suberror};e.setThrottlingCache(Dt.generateThrottlingStorageKey(t),o)}}static checkResponseStatus(e){return 429===e.status||e.status>=500&&e.status<600}static checkResponseForRetryAfter(e){return!!e.headers&&(e.headers.hasOwnProperty(i)&&(e.status<200||e.status>=300))}static calculateThrottleTime(e){const t=e<=0?0:e,r=Date.now()/1e3;return Math.floor(1e3*Math.min(r+(t||Fe),r+De))}static removeThrottle(e,t,r,o){const n={clientId:t,authority:r.authority,scopes:r.scopes,homeAccountIdentifier:o,claims:r.claims,authenticationScheme:r.authenticationScheme,resourceRequestMethod:r.resourceRequestMethod,resourceRequestUri:r.resourceRequestUri,shrClaims:r.shrClaims,sshKid:r.sshKid},i=this.generateThrottlingStorageKey(n);e.removeItem(i)}}
20
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class Bt{constructor(e,t){this.networkClient=e,this.cacheManager=t}async sendPostRequest(e,t,r){let o;Dt.preProcess(this.cacheManager,e);try{o=await this.networkClient.sendPostRequestAsync(t,r)}catch(e){throw e instanceof ct?e:ht.createNetworkError(t,e)}return Dt.postProcess(this.cacheManager,e,o),o}}
21
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */const Kt="home_account_id",Gt="UPN";
22
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class $t{static validateRedirectUri(e){if(ut.isEmpty(e))throw vt.createRedirectUriEmptyError()}static validatePrompt(e){const t=[];for(const e in se)t.push(se[e]);if(t.indexOf(e)<0)throw vt.createInvalidPromptError(e)}static validateClaims(e){try{JSON.parse(e)}catch(e){throw vt.createInvalidClaimsRequestError()}}static validateCodeChallengeParams(e,t){if(ut.isEmpty(e)||ut.isEmpty(t))throw vt.createInvalidCodeChallengeParamsError();this.validateCodeChallengeMethod(t)}static validateCodeChallengeMethod(e){if([he.PLAIN,he.S256].indexOf(e)<0)throw vt.createInvalidCodeChallengeMethodError()}static sanitizeEQParams(e,t){return e?(t.forEach(((t,r)=>{e[r]&&delete e[r]})),Object.fromEntries(Object.entries(e).filter((e=>""!==e[1])))):{}}}
23
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class zt{constructor(){this.parameters=new Map}addResponseTypeCode(){this.parameters.set(I,encodeURIComponent(t.CODE_RESPONSE_TYPE))}addResponseTypeForTokenAndIdToken(){this.parameters.set(I,encodeURIComponent(`${t.TOKEN_RESPONSE_TYPE} ${t.ID_TOKEN_RESPONSE_TYPE}`))}addResponseMode(e){this.parameters.set(_,encodeURIComponent(e||ue))}addNativeBroker(){this.parameters.set(oe,encodeURIComponent("1"))}addScopes(e,t=!0){const o=t?[...e||[],...r]:e||[],n=new wt(o);this.parameters.set(A,encodeURIComponent(n.printScopes()))}addClientId(e){this.parameters.set(T,encodeURIComponent(e))}addRedirectUri(e){$t.validateRedirectUri(e),this.parameters.set(E,encodeURIComponent(e))}addPostLogoutRedirectUri(e){$t.validateRedirectUri(e),this.parameters.set(Q,encodeURIComponent(e))}addIdTokenHint(e){this.parameters.set(j,encodeURIComponent(e))}addDomainHint(e){this.parameters.set(le,encodeURIComponent(e))}addLoginHint(e){this.parameters.set(de,encodeURIComponent(e))}addCcsUpn(e){this.parameters.set(a,encodeURIComponent(`UPN:${e}`))}addCcsOid(e){this.parameters.set(a,encodeURIComponent(`Oid:${e.uid}@${e.utid}`))}addSid(e){this.parameters.set(ce,encodeURIComponent(e))}addClaims(e,t){const r=this.addClientCapabilitiesToClaims(e,t);$t.validateClaims(r),this.parameters.set(S,encodeURIComponent(r))}addCorrelationId(e){this.parameters.set(H,encodeURIComponent(e))}addLibraryInfo(e){this.parameters.set(L,e.sku),this.parameters.set(x,e.version),e.os&&this.parameters.set(F,e.os),e.cpu&&this.parameters.set(D,e.cpu)}addApplicationTelemetry(e){e?.appName&&this.parameters.set($,e.appName),e?.appVersion&&this.parameters.set(z,e.appVersion)}addPrompt(e){$t.validatePrompt(e),this.parameters.set(`${M}`,encodeURIComponent(e))}addState(e){ut.isEmpty(e)||this.parameters.set(b,encodeURIComponent(e))}addNonce(e){this.parameters.set(P,encodeURIComponent(e))}addCodeChallengeParams(e,t){if($t.validateCodeChallengeParams(e,t),!e||!t)throw vt.createInvalidCodeChallengeParamsError();this.parameters.set(O,encodeURIComponent(e)),this.parameters.set(q,encodeURIComponent(t))}addAuthorizationCode(e){this.parameters.set(N,encodeURIComponent(e))}addDeviceCode(e){this.parameters.set(Y,encodeURIComponent(e))}addRefreshToken(e){this.parameters.set(R,encodeURIComponent(e))}addCodeVerifier(e){this.parameters.set(U,encodeURIComponent(e))}addClientSecret(e){this.parameters.set(W,encodeURIComponent(e))}addClientAssertion(e){ut.isEmpty(e)||this.parameters.set(V,encodeURIComponent(e))}addClientAssertionType(e){ut.isEmpty(e)||this.parameters.set(J,encodeURIComponent(e))}addOboAssertion(e){this.parameters.set(ee,encodeURIComponent(e))}addRequestTokenUse(e){this.parameters.set(te,encodeURIComponent(e))}addGrantType(e){this.parameters.set(k,encodeURIComponent(e))}addClientInfo(){this.parameters.set("client_info","1")}addExtraQueryParameters(e){const t=$t.sanitizeEQParams(e,this.parameters);Object.keys(t).forEach((t=>{this.parameters.set(t,e[t])}))}addClientCapabilitiesToClaims(e,t){let r;if(e)try{r=JSON.parse(e)}catch(e){throw vt.createInvalidClaimsRequestError()}else r={};return t&&t.length>0&&(r.hasOwnProperty(ie)||(r[ie]={}),r[ie][ae]={values:t}),JSON.stringify(r)}addUsername(e){this.parameters.set(ze,encodeURIComponent(e))}addPassword(e){this.parameters.set(Qe,encodeURIComponent(e))}addPopToken(e){ut.isEmpty(e)||(this.parameters.set(X,xe.POP),this.parameters.set(Z,encodeURIComponent(e)))}addSshJwk(e){ut.isEmpty(e)||(this.parameters.set(X,xe.SSH),this.parameters.set(Z,encodeURIComponent(e)))}addServerTelemetry(e){this.parameters.set(B,e.generateCurrentRequestHeaderValue()),this.parameters.set(K,e.generateLastRequestHeaderValue())}addThrottling(){this.parameters.set(G,Ke)}addLogoutHint(e){this.parameters.set(ne,encodeURIComponent(e))}createQueryString(){const e=new Array;return this.parameters.forEach(((t,r)=>{e.push(`${r}=${t}`)})),e.join("&")}}
24
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class Qt{constructor(e,t){this.config=function({authOptions:e,systemOptions:t,loggerOptions:r,cacheOptions:o,storageInterface:n,networkInterface:i,cryptoInterface:a,clientCredentials:s,libraryInfo:c,telemetry:d,serverTelemetryManager:l,persistencePlugin:h,serializableCache:u}){const g={...Nt,...r};return{authOptions:(p=e,{clientCapabilities:[],azureCloudOptions:Lt,skipAuthorityMetadataCache:!1,...p}),systemOptions:{...Mt,...t},loggerOptions:g,cacheOptions:{...Ot,...o},storageInterface:n||new Pt(e.clientId,dt,new pt(g)),networkInterface:i||qt,cryptoInterface:a||dt,clientCredentials:s||Ht,libraryInfo:{...Ut,...c},telemetry:{...xt,...d},serverTelemetryManager:l||null,persistencePlugin:h||null,serializableCache:u||null};var p}(e),this.logger=new pt(this.config.loggerOptions,mt,ft),this.cryptoUtils=this.config.cryptoInterface,this.cacheManager=this.config.storageInterface,this.networkClient=this.config.networkInterface,this.networkManager=new Bt(this.networkClient,this.cacheManager),this.serverTelemetryManager=this.config.serverTelemetryManager,this.authority=this.config.authOptions.authority,this.performanceClient=t}createTokenRequestHeaders(e){const r={};if(r[n]=t.URL_FORM_CONTENT_TYPE,!this.config.systemOptions.preventCorsPreflight&&e)switch(e.type){case Kt:try{const t=Et(e.credential);r[a]=`Oid:${t.uid}@${t.utid}`}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case Gt:r[a]=`UPN: ${e.credential}`}return r}async executePostToTokenEndpoint(e,t,r,o){const n=await this.networkManager.sendPostRequest(o,e,{body:t,headers:r});return this.config.serverTelemetryManager&&n.status<500&&429!==n.status&&this.config.serverTelemetryManager.clearTelemetryCache(),n}updateAuthority(e){if(!e.discoveryComplete())throw ht.createEndpointDiscoveryIncompleteError("Updated authority has not completed endpoint discovery.");this.authority=e}createTokenQueryParameters(e){const t=new zt;return e.tokenQueryParameters&&t.addExtraQueryParameters(e.tokenQueryParameters),t.createQueryString()}}
25
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class jt{generateAccountId(){return jt.generateAccountIdForCacheKey(this.homeAccountId,this.environment)}generateCredentialId(){return jt.generateCredentialIdForCacheKey(this.credentialType,this.clientId,this.realm,this.familyId)}generateTarget(){return jt.generateTargetForCacheKey(this.target)}generateCredentialKey(){return jt.generateCredentialCacheKey(this.homeAccountId,this.environment,this.credentialType,this.clientId,this.realm,this.target,this.familyId,this.tokenType,this.requestedClaimsHash)}generateType(){switch(this.credentialType){case Te.ID_TOKEN:return Re;case Te.ACCESS_TOKEN:case Te.ACCESS_TOKEN_WITH_AUTH_SCHEME:return Se;case Te.REFRESH_TOKEN:return Ae;default:throw ht.createUnexpectedCredentialTypeError()}}static generateCredentialCacheKey(e,t,r,o,n,i,a,s,c){return[this.generateAccountIdForCacheKey(e,t),this.generateCredentialIdForCacheKey(r,o,n,a),this.generateTargetForCacheKey(i),this.generateClaimsHashForCacheKey(c),this.generateSchemeForCacheKey(s)].join(we.CACHE_KEY_SEPARATOR).toLowerCase()}static generateAccountIdForCacheKey(e,t){return[e,t].join(we.CACHE_KEY_SEPARATOR).toLowerCase()}static generateCredentialIdForCacheKey(e,r,o,n){return[e,e===Te.REFRESH_TOKEN&&n||r,o||t.EMPTY_STRING].join(we.CACHE_KEY_SEPARATOR).toLowerCase()}static generateTargetForCacheKey(e){return(e||t.EMPTY_STRING).toLowerCase()}static generateClaimsHashForCacheKey(e){return(e||t.EMPTY_STRING).toLowerCase()}static generateSchemeForCacheKey(e){return e&&e.toLowerCase()!==xe.BEARER.toLowerCase()?e.toLowerCase():t.EMPTY_STRING}}
26
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class Yt extends jt{static createIdTokenEntity(e,t,r,o,n){const i=new Yt;return i.credentialType=Te.ID_TOKEN,i.homeAccountId=e,i.environment=t,i.clientId=o,i.secret=r,i.realm=n,i}static isIdTokenEntity(e){return!!e&&(e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("credentialType")&&e.hasOwnProperty("realm")&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("secret")&&e.credentialType===Te.ID_TOKEN)}}
27
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class Wt{static nowSeconds(){return Math.round((new Date).getTime()/1e3)}static isTokenExpired(e,t){const r=Number(e)||0;return Wt.nowSeconds()+t>r}static wasClockTurnedBack(e){return Number(e)>Wt.nowSeconds()}static delay(e,t){return new Promise((r=>setTimeout((()=>r(t)),e)))}}
28
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class Vt extends jt{static createAccessTokenEntity(e,t,r,o,n,i,a,s,c,d,l,h,u,g,p){const m=new Vt;m.homeAccountId=e,m.credentialType=Te.ACCESS_TOKEN,m.secret=r;const f=Wt.nowSeconds();if(m.cachedAt=f.toString(),m.expiresOn=a.toString(),m.extendedExpiresOn=s.toString(),d&&(m.refreshOn=d.toString()),m.environment=t,m.clientId=o,m.realm=n,m.target=i,m.userAssertionHash=h,m.tokenType=ut.isEmpty(l)?xe.BEARER:l,g&&(m.requestedClaims=g,m.requestedClaimsHash=p),m.tokenType?.toLowerCase()!==xe.BEARER.toLowerCase())switch(m.credentialType=Te.ACCESS_TOKEN_WITH_AUTH_SCHEME,m.tokenType){case xe.POP:const e=Rt.extractTokenClaims(r,c);if(!e?.cnf?.kid)throw ht.createTokenClaimsRequiredError();m.keyId=e.cnf.kid;break;case xe.SSH:m.keyId=u}return m}static isAccessTokenEntity(e){return!!e&&(e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("credentialType")&&e.hasOwnProperty("realm")&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("secret")&&e.hasOwnProperty("target")&&(e.credentialType===Te.ACCESS_TOKEN||e.credentialType===Te.ACCESS_TOKEN_WITH_AUTH_SCHEME))}}
29
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class Jt extends jt{static createRefreshTokenEntity(e,t,r,o,n,i){const a=new Jt;return a.clientId=o,a.credentialType=Te.REFRESH_TOKEN,a.environment=t,a.homeAccountId=e,a.secret=r,a.userAssertionHash=i,n&&(a.familyId=n),a}static isRefreshTokenEntity(e){return!!e&&(e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("credentialType")&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("secret")&&e.credentialType===Te.REFRESH_TOKEN)}}
30
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */const Xt=["interaction_required","consent_required","login_required"],Zt=["message_only","additional_action","basic_action","user_password_expired","consent_required"],er={noTokensFoundError:{code:"no_tokens_found",desc:"No refresh token found in the cache. Please sign-in."},native_account_unavailable:{code:"native_account_unavailable",desc:"The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API."}};class tr extends ct{constructor(e,r,o,n,i,a,s){super(e,r,o),Object.setPrototypeOf(this,tr.prototype),this.timestamp=n||t.EMPTY_STRING,this.traceId=i||t.EMPTY_STRING,this.correlationId=a||t.EMPTY_STRING,this.claims=s||t.EMPTY_STRING,this.name="InteractionRequiredAuthError"}static isInteractionRequiredError(e,t,r){const o=!!e&&Xt.indexOf(e)>-1,n=!!r&&Zt.indexOf(r)>-1,i=!!t&&Xt.some((e=>t.indexOf(e)>-1));return o||i||n}static createNoTokensFoundError(){return new tr(er.noTokensFoundError.code,er.noTokensFoundError.desc)}static createNativeAccountUnavailableError(){return new tr(er.native_account_unavailable.code,er.native_account_unavailable.desc)}}
31
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */let rr=class{constructor(e,t,r,o,n){this.account=e||null,this.idToken=t||null,this.accessToken=r||null,this.refreshToken=o||null,this.appMetadata=n||null}};
32
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class or{static setRequestState(e,r,o){const n=or.generateLibraryState(e,o);return ut.isEmpty(r)?n:`${n}${t.RESOURCE_DELIM}${r}`}static generateLibraryState(e,t){if(!e)throw ht.createNoCryptoObjectError("generateLibraryState");const r={id:e.createNewGuid()};t&&(r.meta=t);const o=JSON.stringify(r);return e.base64Encode(o)}static parseRequestState(e,r){if(!e)throw ht.createNoCryptoObjectError("parseRequestState");if(ut.isEmpty(r))throw ht.createInvalidStateError(r,"Null, undefined or empty state");try{const o=r.split(t.RESOURCE_DELIM),n=o[0],i=o.length>1?o.slice(1).join(t.RESOURCE_DELIM):t.EMPTY_STRING,a=e.base64Decode(n),s=JSON.parse(a);return{userRequestState:ut.isEmpty(i)?t.EMPTY_STRING:i,libraryState:s}}catch(e){throw ht.createInvalidStateError(r,e)}}}
33
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class nr{get urlString(){return this._urlString}constructor(e){if(this._urlString=e,ut.isEmpty(this._urlString))throw vt.createUrlEmptyError();ut.isEmpty(this.getHash())&&(this._urlString=nr.canonicalizeUri(e))}static canonicalizeUri(e){if(e){let t=e.toLowerCase();return ut.endsWith(t,"?")?t=t.slice(0,-1):ut.endsWith(t,"?/")&&(t=t.slice(0,-2)),ut.endsWith(t,"/")||(t+="/"),t}return e}validateAsUri(){let e;try{e=this.getUrlComponents()}catch(e){throw vt.createUrlParseError(e)}if(!e.HostNameAndPort||!e.PathSegments)throw vt.createUrlParseError(`Given url string: ${this.urlString}`);if(!e.Protocol||"https:"!==e.Protocol.toLowerCase())throw vt.createInsecureAuthorityUriError(this.urlString)}static appendQueryString(e,t){return ut.isEmpty(t)?e:e.indexOf("?")<0?`${e}?${t}`:`${e}&${t}`}static removeHashFromUrl(e){return nr.canonicalizeUri(e.split("#")[0])}replaceTenantPath(e){const t=this.getUrlComponents(),r=t.PathSegments;return!e||0===r.length||r[0]!==C&&r[0]!==v||(r[0]=e),nr.constructAuthorityUriFromObject(t)}getHash(){return nr.parseHash(this.urlString)}getUrlComponents(){const e=RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?"),t=this.urlString.match(e);if(!t)throw vt.createUrlParseError(`Given url string: ${this.urlString}`);const r={Protocol:t[1],HostNameAndPort:t[4],AbsolutePath:t[5],QueryString:t[7]};let o=r.AbsolutePath.split("/");return o=o.filter((e=>e&&e.length>0)),r.PathSegments=o,!ut.isEmpty(r.QueryString)&&r.QueryString.endsWith("/")&&(r.QueryString=r.QueryString.substring(0,r.QueryString.length-1)),r}static getDomainFromUrl(e){const t=RegExp("^([^:/?#]+://)?([^/?#]*)"),r=e.match(t);if(!r)throw vt.createUrlParseError(`Given url string: ${e}`);return r[2]}static getAbsoluteUrl(e,r){if(e[0]===t.FORWARD_SLASH){const t=new nr(r).getUrlComponents();return t.Protocol+"//"+t.HostNameAndPort+e}return e}static parseHash(e){const r=e.indexOf("#"),o=e.indexOf("#/");return o>-1?e.substring(o+2):r>-1?e.substring(r+1):t.EMPTY_STRING}static parseQueryString(e){const r=e.indexOf("?"),o=e.indexOf("/?");return o>-1?e.substring(o+2):r>-1?e.substring(r+1):t.EMPTY_STRING}static constructAuthorityUriFromObject(e){return new nr(e.Protocol+"//"+e.HostNameAndPort+"/"+e.PathSegments.join("/"))}static getDeserializedHash(e){if(ut.isEmpty(e))return{};const t=nr.parseHash(e),r=ut.queryStringToObject(ut.isEmpty(t)?e:t);if(!r)throw ht.createHashNotDeserializedError(JSON.stringify(r));return r}static getDeserializedQueryString(e){if(ut.isEmpty(e))return{};const t=nr.parseQueryString(e),r=ut.queryStringToObject(ut.isEmpty(t)?e:t);if(!r)throw ht.createHashNotDeserializedError(JSON.stringify(r));return r}static hashContainsKnownProperties(e){if(ut.isEmpty(e)||e.indexOf("=")<0)return!1;const t=nr.getDeserializedHash(e);return!!(t.code||t.error_description||t.error||t.state)}}
34
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */const ir={AcquireTokenByCode:"acquireTokenByCode",AcquireTokenByRefreshToken:"acquireTokenByRefreshToken",AcquireTokenSilent:"acquireTokenSilent",AcquireTokenSilentAsync:"acquireTokenSilentAsync",AcquireTokenPopup:"acquireTokenPopup",CryptoOptsGetPublicKeyThumbprint:"cryptoOptsGetPublicKeyThumbprint",CryptoOptsSignJwt:"cryptoOptsSignJwt",SilentCacheClientAcquireToken:"silentCacheClientAcquireToken",SilentIframeClientAcquireToken:"silentIframeClientAcquireToken",SilentRefreshClientAcquireToken:"silentRefreshClientAcquireToken",SsoSilent:"ssoSilent",StandardInteractionClientGetDiscoveredAuthority:"standardInteractionClientGetDiscoveredAuthority",FetchAccountIdWithNativeBroker:"fetchAccountIdWithNativeBroker",NativeInteractionClientAcquireToken:"nativeInteractionClientAcquireToken",BaseClientCreateTokenRequestHeaders:"baseClientCreateTokenRequestHeaders",BrokerHandhshake:"brokerHandshake",AcquireTokenByRefreshTokenInBroker:"acquireTokenByRefreshTokenInBroker",AcquireTokenByBroker:"acquireTokenByBroker",RefreshTokenClientExecuteTokenRequest:"refreshTokenClientExecuteTokenRequest",RefreshTokenClientAcquireToken:"refreshTokenClientAcquireToken",RefreshTokenClientAcquireTokenWithCachedRefreshToken:"refreshTokenClientAcquireTokenWithCachedRefreshToken",RefreshTokenClientAcquireTokenByRefreshToken:"refreshTokenClientAcquireTokenByRefreshToken",RefreshTokenClientCreateTokenRequestBody:"refreshTokenClientCreateTokenRequestBody",AcquireTokenFromCache:"acquireTokenFromCache",AcquireTokenBySilentIframe:"acquireTokenBySilentIframe",InitializeBaseRequest:"initializeBaseRequest",InitializeSilentRequest:"initializeSilentRequest",InitializeClientApplication:"initializeClientApplication",SilentIframeClientTokenHelper:"silentIframeClientTokenHelper",SilentHandlerInitiateAuthRequest:"silentHandlerInitiateAuthRequest",SilentHandlerMonitorIframeForHash:"silentHandlerMonitorIframeForHash",SilentHandlerLoadFrame:"silentHandlerLoadFrame",StandardInteractionClientCreateAuthCodeClient:"standardInteractionClientCreateAuthCodeClient",StandardInteractionClientGetClientConfiguration:"standardInteractionClientGetClientConfiguration",StandardInteractionClientInitializeAuthorizationRequest:"standardInteractionClientInitializeAuthorizationRequest",StandardInteractionClientInitializeAuthorizationCodeRequest:"standardInteractionClientInitializeAuthorizationCodeRequest",GetAuthCodeUrl:"getAuthCodeUrl",HandleCodeResponseFromServer:"handleCodeResponseFromServer",HandleCodeResponseFromHash:"handleCodeResponseFromHash",UpdateTokenEndpointAuthority:"updateTokenEndpointAuthority",AuthClientAcquireToken:"authClientAcquireToken",AuthClientExecuteTokenRequest:"authClientExecuteTokenRequest",AuthClientCreateTokenRequestBody:"authClientCreateTokenRequestBody",AuthClientCreateQueryString:"authClientCreateQueryString",PopTokenGenerateCnf:"popTokenGenerateCnf",PopTokenGenerateKid:"popTokenGenerateKid",HandleServerTokenResponse:"handleServerTokenResponse",AuthorityFactoryCreateDiscoveredInstance:"authorityFactoryCreateDiscoveredInstance",AuthorityResolveEndpointsAsync:"authorityResolveEndpointsAsync",AuthorityGetCloudDiscoveryMetadataFromNetwork:"authorityGetCloudDiscoveryMetadataFromNetwork",AuthorityUpdateCloudDiscoveryMetadata:"authorityUpdateCloudDiscoveryMetadata",AuthorityGetEndpointMetadataFromNetwork:"authorityGetEndpointMetadataFromNetwork",AuthorityUpdateEndpointMetadata:"authorityUpdateEndpointMetadata",AuthorityUpdateMetadataWithRegionalInformation:"authorityUpdateMetadataWithRegionalInformation",RegionDiscoveryDetectRegion:"regionDiscoveryDetectRegion",RegionDiscoveryGetRegionFromIMDS:"regionDiscoveryGetRegionFromIMDS",RegionDiscoveryGetCurrentVersion:"regionDiscoveryGetCurrentVersion",AcquireTokenByCodeAsync:"acquireTokenByCodeAsync",GetEndpointMetadataFromNetwork:"getEndpointMetadataFromNetwork",GetCloudDiscoveryMetadataFromNetworkMeasurement:"getCloudDiscoveryMetadataFromNetworkMeasurement",HandleRedirectPromiseMeasurement:"handleRedirectPromiseMeasurement",UpdateCloudDiscoveryMetadataMeasurement:"updateCloudDiscoveryMetadataMeasurement",UsernamePasswordClientAcquireToken:"usernamePasswordClientAcquireToken",NativeMessageHandlerHandshake:"nativeMessageHandlerHandshake"},ar=1,sr=2,cr=new Set(["accessTokenSize","durationMs","idTokenSize","matsSilentStatus","matsHttpStatus","refreshTokenSize","queuedTimeMs","startTimeMs","status"]),dr="sw";class lr{constructor(e,t){this.cryptoUtils=e,this.performanceClient=t}async generateCnf(e){this.performanceClient?.addQueueMeasurement(ir.PopTokenGenerateCnf,e.correlationId),this.performanceClient?.setPreQueueTime(ir.PopTokenGenerateKid,e.correlationId);const t=await this.generateKid(e),r=this.cryptoUtils.base64Encode(JSON.stringify(t));return{kid:t.kid,reqCnfString:r,reqCnfHash:await this.cryptoUtils.hashString(r)}}async generateKid(e){this.performanceClient?.addQueueMeasurement(ir.PopTokenGenerateKid,e.correlationId);return{kid:await this.cryptoUtils.getPublicKeyThumbprint(e),xms_ksl:dr}}async signPopToken(e,t,r){return this.signPayload(e,t,r)}async signPayload(e,t,r,o){const{resourceRequestMethod:n,resourceRequestUri:i,shrClaims:a,shrNonce:s}=r,c=i?new nr(i):void 0,d=c?.getUrlComponents();return await this.cryptoUtils.signJwt({at:e,ts:Wt.nowSeconds(),m:n?.toUpperCase(),u:d?.HostNameAndPort,nonce:s||this.cryptoUtils.createNewGuid(),p:d?.AbsolutePath,q:d?.QueryString?[[],d.QueryString]:void 0,client_claims:a||void 0,...o},t,r.correlationId)}}
35
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class hr{generateAppMetadataKey(){return hr.generateAppMetadataCacheKey(this.environment,this.clientId)}static generateAppMetadataCacheKey(e,t){return[be,e,t].join(we.CACHE_KEY_SEPARATOR).toLowerCase()}static createAppMetadataEntity(e,t,r){const o=new hr;return o.clientId=e,o.environment=t,r&&(o.familyId=r),o}static isAppMetadataEntity(e,t){return!!t&&(0===e.indexOf(be)&&t.hasOwnProperty("clientId")&&t.hasOwnProperty("environment"))}}
36
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class ur{constructor(e,t){this.cache=e,this.hasChanged=t}get cacheHasChanged(){return this.hasChanged}get tokenCache(){return this.cache}}
37
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class gr{constructor(e,t,r,o,n,i,a){this.clientId=e,this.cacheStorage=t,this.cryptoObj=r,this.logger=o,this.serializableCache=n,this.persistencePlugin=i,this.performanceClient=a}validateServerAuthorizationCodeResponse(e,r,o){if(!e.state||!r)throw e.state?ht.createStateNotFoundError("Cached State"):ht.createStateNotFoundError("Server State");if(decodeURIComponent(e.state)!==decodeURIComponent(r))throw ht.createStateMismatchError();if(e.error||e.error_description||e.suberror){if(tr.isInteractionRequiredError(e.error,e.error_description,e.suberror))throw new tr(e.error||t.EMPTY_STRING,e.error_description,e.suberror,e.timestamp||t.EMPTY_STRING,e.trace_id||t.EMPTY_STRING,e.correlation_id||t.EMPTY_STRING,e.claims||t.EMPTY_STRING);throw new Ft(e.error||t.EMPTY_STRING,e.error_description,e.suberror)}e.client_info&&Tt(e.client_info,o)}validateTokenResponse(e){if(e.error||e.error_description||e.suberror){if(tr.isInteractionRequiredError(e.error,e.error_description,e.suberror))throw new tr(e.error,e.error_description,e.suberror,e.timestamp||t.EMPTY_STRING,e.trace_id||t.EMPTY_STRING,e.correlation_id||t.EMPTY_STRING,e.claims||t.EMPTY_STRING);const r=`${e.error_codes} - [${e.timestamp}]: ${e.error_description} - Correlation ID: ${e.correlation_id} - Trace ID: ${e.trace_id}`;throw new Ft(e.error,r,e.suberror)}}async handleServerTokenResponse(e,r,o,n,i,a,s,c,d){let l,h;if(this.performanceClient?.addQueueMeasurement(ir.HandleServerTokenResponse,e.correlation_id),e.id_token){if(l=new Rt(e.id_token||t.EMPTY_STRING,this.cryptoObj),i&&!ut.isEmpty(i.nonce)&&l.claims.nonce!==i.nonce)throw ht.createNonceMismatchError();if(n.maxAge||0===n.maxAge){const e=l.claims.auth_time;if(!e)throw ht.createAuthTimeNotFoundError();Rt.checkMaxAge(e,n.maxAge)}}this.homeAccountIdentifier=At.generateHomeAccountId(e.client_info||t.EMPTY_STRING,r.authorityType,this.logger,this.cryptoObj,l),i&&i.state&&(h=or.parseRequestState(this.cryptoObj,i.state)),e.key_id=e.key_id||n.sshKid||void 0;const u=this.generateCacheRecord(e,r,o,n,l,a,i);let g;try{if(this.persistencePlugin&&this.serializableCache&&(this.logger.verbose("Persistence enabled, calling beforeCacheAccess"),g=new ur(this.serializableCache,!0),await this.persistencePlugin.beforeCacheAccess(g)),s&&!c&&u.account){const e=u.account.generateAccountKey();if(!this.cacheStorage.getAccount(e))return this.logger.warning("Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache"),gr.generateAuthenticationResult(this.cryptoObj,r,u,!1,n,l,h,void 0,d)}await this.cacheStorage.saveCacheRecord(u)}finally{this.persistencePlugin&&this.serializableCache&&g&&(this.logger.verbose("Persistence enabled, calling afterCacheAccess"),await this.persistencePlugin.afterCacheAccess(g))}return gr.generateAuthenticationResult(this.cryptoObj,r,u,!1,n,l,h,e,d)}generateCacheRecord(e,r,o,n,i,a,s){const c=r.getPreferredCache();if(ut.isEmpty(c))throw ht.createInvalidCacheEnvironmentError();let d,l;!ut.isEmpty(e.id_token)&&i&&(d=Yt.createIdTokenEntity(this.homeAccountIdentifier,c,e.id_token||t.EMPTY_STRING,this.clientId,i.claims.tid||t.EMPTY_STRING),l=this.generateAccountEntity(e,i,r,s));let h=null;if(!ut.isEmpty(e.access_token)){const s=e.scope?wt.fromString(e.scope):new wt(n.scopes||[]),d=("string"==typeof e.expires_in?parseInt(e.expires_in,10):e.expires_in)||0,l=("string"==typeof e.ext_expires_in?parseInt(e.ext_expires_in,10):e.ext_expires_in)||0,u=("string"==typeof e.refresh_in?parseInt(e.refresh_in,10):e.refresh_in)||void 0,g=o+d,p=g+l,m=u&&u>0?o+u:void 0;h=Vt.createAccessTokenEntity(this.homeAccountIdentifier,c,e.access_token||t.EMPTY_STRING,this.clientId,i?i.claims.tid||t.EMPTY_STRING:r.tenant,s.printScopes(),g,p,this.cryptoObj,m,e.token_type,a,e.key_id,n.claims,n.requestedClaimsHash)}let u=null;ut.isEmpty(e.refresh_token)||(u=Jt.createRefreshTokenEntity(this.homeAccountIdentifier,c,e.refresh_token||t.EMPTY_STRING,this.clientId,e.foci,a));let g=null;return ut.isEmpty(e.foci)||(g=hr.createAppMetadataEntity(this.clientId,c,e.foci)),new rr(l,d,h,u,g)}generateAccountEntity(e,r,o,n){const i=o.authorityType,a=n?n.cloud_graph_host_name:t.EMPTY_STRING,s=n?n.msgraph_host:t.EMPTY_STRING;if(i===_t)return this.logger.verbose("Authority type is ADFS, creating ADFS account"),At.createGenericAccount(this.homeAccountIdentifier,r,o,a,s);if(ut.isEmpty(e.client_info)&&"AAD"===o.protocolMode)throw ht.createClientInfoEmptyError();return e.client_info?At.createAccount(e.client_info,this.homeAccountIdentifier,r,o,a,s):At.createGenericAccount(this.homeAccountIdentifier,r,o,a,s)}static async generateAuthenticationResult(e,r,o,n,i,a,s,c,d){let l,h=t.EMPTY_STRING,u=[],g=null,p=t.EMPTY_STRING;if(o.accessToken){if(o.accessToken.tokenType===xe.POP){const t=new lr(e),{secret:r,keyId:n}=o.accessToken;if(!n)throw ht.createKeyIdMissingError();h=await t.signPopToken(r,n,i)}else h=o.accessToken.secret;u=wt.fromString(o.accessToken.target).asArray(),g=new Date(1e3*Number(o.accessToken.expiresOn)),l=new Date(1e3*Number(o.accessToken.extendedExpiresOn))}o.appMetadata&&(p=o.appMetadata.familyId===Pe?Pe:t.EMPTY_STRING);const m=a?.claims.oid||a?.claims.sub||t.EMPTY_STRING,f=a?.claims.tid||t.EMPTY_STRING;return c?.spa_accountid&&o.account&&(o.account.nativeAccountId=c?.spa_accountid),{authority:r.canonicalAuthority,uniqueId:m,tenantId:f,scopes:u,account:o.account?o.account.getAccountInfo():null,idToken:a?a.rawToken:t.EMPTY_STRING,idTokenClaims:a?a.claims:{},accessToken:h,fromCache:n,expiresOn:g,correlationId:i.correlationId,requestId:d||t.EMPTY_STRING,extExpiresOn:l,familyId:p,tokenType:o.accessToken?.tokenType||t.EMPTY_STRING,state:s?s.userRequestState:t.EMPTY_STRING,cloudGraphHostName:o.account?.cloudGraphHostName||t.EMPTY_STRING,msGraphHost:o.account?.msGraphHost||t.EMPTY_STRING,code:c?.spa_code,fromNativeBroker:!1}}}
38
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class pr extends Qt{constructor(e,t){super(e,t),this.includeRedirectUri=!0}async getAuthCodeUrl(e){this.performanceClient?.addQueueMeasurement(ir.GetAuthCodeUrl,e.correlationId),this.performanceClient?.setPreQueueTime(ir.AuthClientCreateQueryString,e.correlationId);const t=await this.createAuthCodeUrlQueryString(e);return nr.appendQueryString(this.authority.authorizationEndpoint,t)}async acquireToken(e,t){if(!e||!e.code)throw ht.createTokenRequestCannotBeMadeError();this.performanceClient?.addQueueMeasurement(ir.AuthClientAcquireToken,e.correlationId);const r=this.performanceClient?.startMeasurement("AuthCodeClientAcquireToken",e.correlationId);this.logger.info("in acquireToken call in auth-code client");const o=Wt.nowSeconds();this.performanceClient?.setPreQueueTime(ir.AuthClientExecuteTokenRequest,e.correlationId);const n=await this.executeTokenRequest(this.authority,e),i=n.headers?.[d],a=n.headers?.[l];a&&r?.addStaticFields({httpVerAuthority:a});const s=new gr(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin,this.performanceClient);return s.validateTokenResponse(n.body),this.performanceClient?.setPreQueueTime(ir.HandleServerTokenResponse,e.correlationId),s.handleServerTokenResponse(n.body,this.authority,o,e,t,void 0,void 0,void 0,i).then((e=>(r?.endMeasurement({success:!0}),e))).catch((t=>{throw this.logger.verbose("Error in fetching token in ACC",e.correlationId),r?.endMeasurement({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t}))}handleFragmentResponse(e,t){const r=new gr(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,null,null),o=new nr(e),n=nr.getDeserializedHash(o.getHash());if(r.validateServerAuthorizationCodeResponse(n,t,this.cryptoUtils),!n.code)throw ht.createNoAuthCodeInServerResponseError();return{...n,code:n.code}}getLogoutUri(e){if(!e)throw vt.createEmptyLogoutRequestError();const t=this.createLogoutUrlQueryString(e);return nr.appendQueryString(this.authority.endSessionEndpoint,t)}async executeTokenRequest(e,t){this.performanceClient?.addQueueMeasurement(ir.AuthClientExecuteTokenRequest,t.correlationId),this.performanceClient?.setPreQueueTime(ir.AuthClientCreateTokenRequestBody,t.correlationId);const r=this.createTokenQueryParameters(t),o=nr.appendQueryString(e.tokenEndpoint,r),n=await this.createTokenRequestBody(t);let i;if(t.clientInfo)try{const e=Tt(t.clientInfo,this.cryptoUtils);i={credential:`${e.uid}${we.CLIENT_INFO_SEPARATOR}${e.utid}`,type:Kt}}catch(e){this.logger.verbose("Could not parse client info for CCS Header: "+e)}const a=this.createTokenRequestHeaders(i||t.ccsCredential),s={clientId:this.config.authOptions.clientId,authority:e.canonicalAuthority,scopes:t.scopes,claims:t.claims,authenticationScheme:t.authenticationScheme,resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,sshKid:t.sshKid};return this.executePostToTokenEndpoint(o,n,a,s)}async createTokenRequestBody(e){this.performanceClient?.addQueueMeasurement(ir.AuthClientCreateTokenRequestBody,e.correlationId);const t=new zt;if(t.addClientId(this.config.authOptions.clientId),this.includeRedirectUri?t.addRedirectUri(e.redirectUri):$t.validateRedirectUri(e.redirectUri),t.addScopes(e.scopes),t.addAuthorizationCode(e.code),t.addLibraryInfo(this.config.libraryInfo),t.addApplicationTelemetry(this.config.telemetry.application),t.addThrottling(),this.serverTelemetryManager&&t.addServerTelemetry(this.serverTelemetryManager),e.codeVerifier&&t.addCodeVerifier(e.codeVerifier),this.config.clientCredentials.clientSecret&&t.addClientSecret(this.config.clientCredentials.clientSecret),this.config.clientCredentials.clientAssertion){const e=this.config.clientCredentials.clientAssertion;t.addClientAssertion(e.assertion),t.addClientAssertionType(e.assertionType)}if(t.addGrantType(pe),t.addClientInfo(),e.authenticationScheme===xe.POP){const r=new lr(this.cryptoUtils,this.performanceClient);this.performanceClient?.setPreQueueTime(ir.PopTokenGenerateCnf,e.correlationId);const o=await r.generateCnf(e);t.addPopToken(o.reqCnfString)}else if(e.authenticationScheme===xe.SSH){if(!e.sshJwk)throw vt.createMissingSshJwkError();t.addSshJwk(e.sshJwk)}const r=e.correlationId||this.config.cryptoInterface.createNewGuid();let o;if(t.addCorrelationId(r),(!ut.isEmptyObj(e.claims)||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&t.addClaims(e.claims,this.config.authOptions.clientCapabilities),e.clientInfo)try{const t=Tt(e.clientInfo,this.cryptoUtils);o={credential:`${t.uid}${we.CLIENT_INFO_SEPARATOR}${t.utid}`,type:Kt}}catch(e){this.logger.verbose("Could not parse client info for CCS Header: "+e)}else o=e.ccsCredential;if(this.config.systemOptions.preventCorsPreflight&&o)switch(o.type){case Kt:try{const e=Et(o.credential);t.addCcsOid(e)}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case Gt:t.addCcsUpn(o.credential)}return e.tokenBodyParameters&&t.addExtraQueryParameters(e.tokenBodyParameters),!e.enableSpaAuthorizationCode||e.tokenBodyParameters&&e.tokenBodyParameters[re]||t.addExtraQueryParameters({[re]:"1"}),t.createQueryString()}async createAuthCodeUrlQueryString(e){this.performanceClient?.addQueueMeasurement(ir.AuthClientCreateQueryString,e.correlationId);const t=new zt;t.addClientId(this.config.authOptions.clientId);const r=[...e.scopes||[],...e.extraScopesToConsent||[]];t.addScopes(r),t.addRedirectUri(e.redirectUri);const o=e.correlationId||this.config.cryptoInterface.createNewGuid();if(t.addCorrelationId(o),t.addResponseMode(e.responseMode),t.addResponseTypeCode(),t.addLibraryInfo(this.config.libraryInfo),t.addApplicationTelemetry(this.config.telemetry.application),t.addClientInfo(),e.codeChallenge&&e.codeChallengeMethod&&t.addCodeChallengeParams(e.codeChallenge,e.codeChallengeMethod),e.prompt&&t.addPrompt(e.prompt),e.domainHint&&t.addDomainHint(e.domainHint),e.prompt!==se.SELECT_ACCOUNT)if(e.sid&&e.prompt===se.NONE)this.logger.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from request"),t.addSid(e.sid);else if(e.account){const r=this.extractAccountSid(e.account),o=this.extractLoginHint(e.account);if(o){this.logger.verbose("createAuthCodeUrlQueryString: login_hint claim present on account"),t.addLoginHint(o);try{const r=Et(e.account.homeAccountId);t.addCcsOid(r)}catch(e){this.logger.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}else if(r&&e.prompt===se.NONE){this.logger.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from account"),t.addSid(r);try{const r=Et(e.account.homeAccountId);t.addCcsOid(r)}catch(e){this.logger.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}else if(e.loginHint)this.logger.verbose("createAuthCodeUrlQueryString: Adding login_hint from request"),t.addLoginHint(e.loginHint),t.addCcsUpn(e.loginHint);else if(e.account.username){this.logger.verbose("createAuthCodeUrlQueryString: Adding login_hint from account"),t.addLoginHint(e.account.username);try{const r=Et(e.account.homeAccountId);t.addCcsOid(r)}catch(e){this.logger.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}}else e.loginHint&&(this.logger.verbose("createAuthCodeUrlQueryString: No account, adding login_hint from request"),t.addLoginHint(e.loginHint),t.addCcsUpn(e.loginHint));else this.logger.verbose("createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints");if(e.nonce&&t.addNonce(e.nonce),e.state&&t.addState(e.state),(!ut.isEmpty(e.claims)||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&t.addClaims(e.claims,this.config.authOptions.clientCapabilities),e.extraQueryParameters&&t.addExtraQueryParameters(e.extraQueryParameters),e.nativeBroker&&(t.addNativeBroker(),e.authenticationScheme===xe.POP)){const r=new lr(this.cryptoUtils),o=await r.generateCnf(e);t.addPopToken(o.reqCnfHash)}return t.createQueryString()}createLogoutUrlQueryString(e){const t=new zt;return e.postLogoutRedirectUri&&t.addPostLogoutRedirectUri(e.postLogoutRedirectUri),e.correlationId&&t.addCorrelationId(e.correlationId),e.idTokenHint&&t.addIdTokenHint(e.idTokenHint),e.state&&t.addState(e.state),e.logoutHint&&t.addLogoutHint(e.logoutHint),e.extraQueryParameters&&t.addExtraQueryParameters(e.extraQueryParameters),t.createQueryString()}extractAccountSid(e){return e.idTokenClaims?.sid||null}extractLoginHint(e){return e.idTokenClaims?.login_hint||null}}
39
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class mr extends Qt{constructor(e,t){super(e,t)}async acquireToken(e){this.performanceClient?.addQueueMeasurement(ir.RefreshTokenClientAcquireToken,e.correlationId);const t=this.performanceClient?.startMeasurement(ir.RefreshTokenClientAcquireToken,e.correlationId);this.logger.verbose("RefreshTokenClientAcquireToken called",e.correlationId);const r=Wt.nowSeconds();this.performanceClient?.setPreQueueTime(ir.RefreshTokenClientExecuteTokenRequest,e.correlationId);const o=await this.executeTokenRequest(e,this.authority),n=o.headers?.[l];t?.addStaticFields({refreshTokenSize:o.body.refresh_token?.length||0}),n&&t?.addStaticFields({httpVerToken:n});const i=o.headers?.[d],a=new gr(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin);return a.validateTokenResponse(o.body),this.performanceClient?.setPreQueueTime(ir.HandleServerTokenResponse,e.correlationId),a.handleServerTokenResponse(o.body,this.authority,r,e,void 0,void 0,!0,e.forceCache,i).then((e=>(t?.endMeasurement({success:!0}),e))).catch((r=>{throw this.logger.verbose("Error in fetching refresh token",e.correlationId),t?.endMeasurement({errorCode:r.errorCode,subErrorCode:r.subError,success:!1}),r}))}async acquireTokenByRefreshToken(e){if(!e)throw vt.createEmptyTokenRequestError();if(this.performanceClient?.addQueueMeasurement(ir.RefreshTokenClientAcquireTokenByRefreshToken,e.correlationId),!e.account)throw ht.createNoAccountInSilentRequestError();if(this.cacheManager.isAppMetadataFOCI(e.account.environment))try{return this.performanceClient?.setPreQueueTime(ir.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId),this.acquireTokenWithCachedRefreshToken(e,!0)}catch(t){const r=t instanceof tr&&t.errorCode===er.noTokensFoundError.code,o=t instanceof Ft&&t.errorCode===Ge&&t.subError===$e;if(r||o)return this.performanceClient?.setPreQueueTime(ir.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId),this.acquireTokenWithCachedRefreshToken(e,!1);throw t}return this.performanceClient?.setPreQueueTime(ir.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId),this.acquireTokenWithCachedRefreshToken(e,!1)}async acquireTokenWithCachedRefreshToken(e,t){this.performanceClient?.addQueueMeasurement(ir.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId);const r=this.performanceClient?.startMeasurement(ir.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId);this.logger.verbose("RefreshTokenClientAcquireTokenWithCachedRefreshToken called",e.correlationId);const o=this.cacheManager.getRefreshToken(e.account,t);if(!o)throw r?.discardMeasurement(),tr.createNoTokensFoundError();r?.endMeasurement({success:!0});const n={...e,refreshToken:o.secret,authenticationScheme:e.authenticationScheme||xe.BEARER,ccsCredential:{credential:e.account.homeAccountId,type:Kt}};return this.performanceClient?.setPreQueueTime(ir.RefreshTokenClientAcquireToken,e.correlationId),this.acquireToken(n)}async executeTokenRequest(e,t){this.performanceClient?.addQueueMeasurement(ir.RefreshTokenClientExecuteTokenRequest,e.correlationId);const r=this.performanceClient?.startMeasurement(ir.RefreshTokenClientExecuteTokenRequest,e.correlationId);this.performanceClient?.setPreQueueTime(ir.RefreshTokenClientCreateTokenRequestBody,e.correlationId);const o=this.createTokenQueryParameters(e),n=nr.appendQueryString(t.tokenEndpoint,o),i=await this.createTokenRequestBody(e),a=this.createTokenRequestHeaders(e.ccsCredential),s={clientId:this.config.authOptions.clientId,authority:t.canonicalAuthority,scopes:e.scopes,claims:e.claims,authenticationScheme:e.authenticationScheme,resourceRequestMethod:e.resourceRequestMethod,resourceRequestUri:e.resourceRequestUri,shrClaims:e.shrClaims,sshKid:e.sshKid};return this.executePostToTokenEndpoint(n,i,a,s).then((e=>(r?.endMeasurement({success:!0}),e))).catch((e=>{throw r?.endMeasurement({success:!1}),e}))}async createTokenRequestBody(e){this.performanceClient?.addQueueMeasurement(ir.RefreshTokenClientCreateTokenRequestBody,e.correlationId);const t=e.correlationId,r=this.performanceClient?.startMeasurement(ir.BaseClientCreateTokenRequestHeaders,t),o=new zt;if(o.addClientId(this.config.authOptions.clientId),o.addScopes(e.scopes),o.addGrantType(me),o.addClientInfo(),o.addLibraryInfo(this.config.libraryInfo),o.addApplicationTelemetry(this.config.telemetry.application),o.addThrottling(),this.serverTelemetryManager&&o.addServerTelemetry(this.serverTelemetryManager),o.addCorrelationId(t),o.addRefreshToken(e.refreshToken),this.config.clientCredentials.clientSecret&&o.addClientSecret(this.config.clientCredentials.clientSecret),this.config.clientCredentials.clientAssertion){const e=this.config.clientCredentials.clientAssertion;o.addClientAssertion(e.assertion),o.addClientAssertionType(e.assertionType)}if(e.authenticationScheme===xe.POP){const t=new lr(this.cryptoUtils,this.performanceClient);this.performanceClient?.setPreQueueTime(ir.PopTokenGenerateCnf,e.correlationId);const r=await t.generateCnf(e);o.addPopToken(r.reqCnfString)}else if(e.authenticationScheme===xe.SSH){if(!e.sshJwk)throw r?.endMeasurement({success:!1}),vt.createMissingSshJwkError();o.addSshJwk(e.sshJwk)}if((!ut.isEmptyObj(e.claims)||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&o.addClaims(e.claims,this.config.authOptions.clientCapabilities),this.config.systemOptions.preventCorsPreflight&&e.ccsCredential)switch(e.ccsCredential.type){case Kt:try{const t=Et(e.ccsCredential.credential);o.addCcsOid(t)}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case Gt:o.addCcsUpn(e.ccsCredential.credential)}return r?.endMeasurement({success:!0}),o.createQueryString()}}
40
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class fr extends Qt{constructor(e,t){super(e,t)}async acquireToken(e){try{return await this.acquireCachedToken(e)}catch(t){if(t instanceof ht&&t.errorCode===lt.tokenRefreshRequired.code){return new mr(this.config,this.performanceClient).acquireTokenByRefreshToken(e)}throw t}}async acquireCachedToken(e){if(!e)throw vt.createEmptyTokenRequestError();if(e.forceRefresh)throw this.serverTelemetryManager?.setCacheOutcome(rt),this.logger.info("SilentFlowClient:acquireCachedToken - Skipping cache because forceRefresh is true."),ht.createRefreshRequiredError();if(!this.config.cacheOptions.claimsBasedCachingEnabled&&!ut.isEmptyObj(e.claims))throw this.logger.info("SilentFlowClient:acquireCachedToken - Skipping cache because claims-based caching is disabled and claims were requested."),ht.createRefreshRequiredError();if(!e.account)throw ht.createNoAccountInSilentRequestError();const t=e.authority||this.authority.getPreferredCache(),r=this.cacheManager.readCacheRecord(e.account,e,t);if(!r.accessToken)throw this.serverTelemetryManager?.setCacheOutcome(ot),this.logger.info("SilentFlowClient:acquireCachedToken - No access token found in cache for the given properties."),ht.createRefreshRequiredError();if(Wt.wasClockTurnedBack(r.accessToken.cachedAt)||Wt.isTokenExpired(r.accessToken.expiresOn,this.config.systemOptions.tokenRenewalOffsetSeconds))throw this.serverTelemetryManager?.setCacheOutcome(nt),this.logger.info(`SilentFlowClient:acquireCachedToken - Cached access token is expired or will expire within ${this.config.systemOptions.tokenRenewalOffsetSeconds} seconds.`),ht.createRefreshRequiredError();if(r.accessToken.refreshOn&&Wt.isTokenExpired(r.accessToken.refreshOn,0))throw this.serverTelemetryManager?.setCacheOutcome(it),this.logger.info("SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'."),ht.createRefreshRequiredError();return this.config.serverTelemetryManager&&this.config.serverTelemetryManager.incrementCacheHits(),await this.generateResultFromCacheRecord(r,e)}async generateResultFromCacheRecord(e,t){let r;if(e.idToken&&(r=new Rt(e.idToken.secret,this.config.cryptoInterface)),t.maxAge||0===t.maxAge){const e=r?.claims.auth_time;if(!e)throw ht.createAuthTimeNotFoundError();Rt.checkMaxAge(e,t.maxAge)}return await gr.generateAuthenticationResult(this.cryptoUtils,this.authority,e,!0,t,r)}}
41
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */
42
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */
43
- const yr={"https://login.microsoftonline.com/common/":{token_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.com/common/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.com/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.com/common/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.com",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pas.windows.net"},"https://login.chinacloudapi.cn/common/":{token_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.chinacloudapi.cn/common/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.partner.microsoftonline.cn/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo",authorization_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.chinacloudapi.cn/common/kerberos",tenant_region_scope:null,cloud_instance_name:"partner.microsoftonline.cn",cloud_graph_host_name:"graph.chinacloudapi.cn",msgraph_host:"microsoftgraph.chinacloudapi.cn",rbac_url:"https://pas.chinacloudapi.cn"},"https://login.microsoftonline.us/common/":{token_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.us/common/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.us/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.us/common/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.us",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pasff.usgovcloudapi.net"},"https://login.microsoftonline.com/consumers/":{token_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.com/consumers/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.com/consumers/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.com",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pas.windows.net"},"https://login.chinacloudapi.cn/consumers/":{token_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.chinacloudapi.cn/consumers/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.partner.microsoftonline.cn/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo",authorization_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.chinacloudapi.cn/consumers/kerberos",tenant_region_scope:null,cloud_instance_name:"partner.microsoftonline.cn",cloud_graph_host_name:"graph.chinacloudapi.cn",msgraph_host:"microsoftgraph.chinacloudapi.cn",rbac_url:"https://pas.chinacloudapi.cn"},"https://login.microsoftonline.us/consumers/":{token_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.us/consumers/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.us/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.us/consumers/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.us",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pasff.usgovcloudapi.net"},"https://login.microsoftonline.com/organizations/":{token_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.com/organizations/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.com/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.com/organizations/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.com",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pas.windows.net"},"https://login.chinacloudapi.cn/organizations/":{token_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.chinacloudapi.cn/organizations/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.partner.microsoftonline.cn/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo",authorization_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.chinacloudapi.cn/organizations/kerberos",tenant_region_scope:null,cloud_instance_name:"partner.microsoftonline.cn",cloud_graph_host_name:"graph.chinacloudapi.cn",msgraph_host:"microsoftgraph.chinacloudapi.cn",rbac_url:"https://pas.chinacloudapi.cn"},"https://login.microsoftonline.us/organizations/":{token_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.us/organizations/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.us/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.us/organizations/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.us",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pasff.usgovcloudapi.net"}},Cr={"https://login.microsoftonline.com/common/":{tenant_discovery_endpoint:"https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.chinacloudapi.cn/common/":{tenant_discovery_endpoint:"https://login.chinacloudapi.cn/common/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.us/common/":{tenant_discovery_endpoint:"https://login.microsoftonline.us/common/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.com/consumers/":{tenant_discovery_endpoint:"https://login.microsoftonline.com/consumers/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.chinacloudapi.cn/consumers/":{tenant_discovery_endpoint:"https://login.chinacloudapi.cn/consumers/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.us/consumers/":{tenant_discovery_endpoint:"https://login.microsoftonline.us/consumers/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.com/organizations/":{tenant_discovery_endpoint:"https://login.microsoftonline.com/organizations/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.chinacloudapi.cn/organizations/":{tenant_discovery_endpoint:"https://login.chinacloudapi.cn/organizations/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.us/organizations/":{tenant_discovery_endpoint:"https://login.microsoftonline.us/organizations/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]}},vr={AAD:"AAD",OIDC:"OIDC"};
44
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */
45
- class wr{constructor(){this.expiresAt=Wt.nowSeconds()+Ne}updateCloudDiscoveryMetadata(e,t){this.aliases=e.aliases,this.preferred_cache=e.preferred_cache,this.preferred_network=e.preferred_network,this.aliasesFromNetwork=t}updateEndpointMetadata(e,t){this.authorization_endpoint=e.authorization_endpoint,this.token_endpoint=e.token_endpoint,this.end_session_endpoint=e.end_session_endpoint,this.issuer=e.issuer,this.endpointsFromNetwork=t,this.jwks_uri=e.jwks_uri}updateCanonicalAuthority(e){this.canonical_authority=e}resetExpiresAt(){this.expiresAt=Wt.nowSeconds()+Ne}isExpired(){return this.expiresAt<=Wt.nowSeconds()}static isAuthorityMetadataEntity(e,t){return!!t&&(0===e.indexOf(Me)&&t.hasOwnProperty("aliases")&&t.hasOwnProperty("preferred_cache")&&t.hasOwnProperty("preferred_network")&&t.hasOwnProperty("canonical_authority")&&t.hasOwnProperty("authorization_endpoint")&&t.hasOwnProperty("token_endpoint")&&t.hasOwnProperty("issuer")&&t.hasOwnProperty("aliasesFromNetwork")&&t.hasOwnProperty("endpointsFromNetwork")&&t.hasOwnProperty("expiresAt")&&t.hasOwnProperty("jwks_uri"))}}
46
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */
47
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */
48
- class Tr{constructor(e,t,r){this.networkInterface=e,this.performanceClient=t,this.correlationId=r}async detectRegion(e,r){this.performanceClient?.addQueueMeasurement(ir.RegionDiscoveryDetectRegion,this.correlationId);let o=e;if(o)r.region_source=Ve;else{const e=Tr.IMDS_OPTIONS;try{this.performanceClient?.setPreQueueTime(ir.RegionDiscoveryGetRegionFromIMDS,this.correlationId);const n=await this.getRegionFromIMDS(t.IMDS_VERSION,e);if(n.status===je&&(o=n.body,r.region_source=Je),n.status===Ye){this.performanceClient?.setPreQueueTime(ir.RegionDiscoveryGetCurrentVersion,this.correlationId);const t=await this.getCurrentVersion(e);if(!t)return r.region_source=We,null;this.performanceClient?.setPreQueueTime(ir.RegionDiscoveryGetRegionFromIMDS,this.correlationId);const n=await this.getRegionFromIMDS(t,e);n.status===je&&(o=n.body,r.region_source=Je)}}catch(e){return r.region_source=We,null}}return o||(r.region_source=We),o||null}async getRegionFromIMDS(e,r){return this.performanceClient?.addQueueMeasurement(ir.RegionDiscoveryGetRegionFromIMDS,this.correlationId),this.networkInterface.sendGetRequestAsync(`${t.IMDS_ENDPOINT}?api-version=${e}&format=text`,r,t.IMDS_TIMEOUT)}async getCurrentVersion(e){this.performanceClient?.addQueueMeasurement(ir.RegionDiscoveryGetCurrentVersion,this.correlationId);try{const r=await this.networkInterface.sendGetRequestAsync(`${t.IMDS_ENDPOINT}?format=json`,e);return r.status===Ye&&r.body&&r.body["newest-versions"]&&r.body["newest-versions"].length>0?r.body["newest-versions"][0]:null}catch(e){return null}}}Tr.IMDS_OPTIONS={headers:{Metadata:"true"}};
49
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */
50
- class Er{constructor(e,t,r,o,n,i,a){this.canonicalAuthority=e,this._canonicalAuthority.validateAsUri(),this.networkInterface=t,this.cacheManager=r,this.authorityOptions=o,this.regionDiscoveryMetadata={region_used:void 0,region_source:void 0,region_outcome:void 0},this.logger=n,this.performanceClient=i,this.correlationId=a,this.regionDiscovery=new Tr(t,this.performanceClient,this.correlationId)}getAuthorityType(e){if(e.HostNameAndPort.endsWith(t.CIAM_AUTH_URL))return St;const r=e.PathSegments;if(r.length)switch(r[0].toLowerCase()){case t.ADFS:return _t;case t.DSTS:return kt}return It}get authorityType(){return this.getAuthorityType(this.canonicalAuthorityUrlComponents)}get protocolMode(){return this.authorityOptions.protocolMode}get options(){return this.authorityOptions}get canonicalAuthority(){return this._canonicalAuthority.urlString}set canonicalAuthority(e){this._canonicalAuthority=new nr(e),this._canonicalAuthority.validateAsUri(),this._canonicalAuthorityUrlComponents=null}get canonicalAuthorityUrlComponents(){return this._canonicalAuthorityUrlComponents||(this._canonicalAuthorityUrlComponents=this._canonicalAuthority.getUrlComponents()),this._canonicalAuthorityUrlComponents}get hostnameAndPort(){return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase()}get tenant(){return this.canonicalAuthorityUrlComponents.PathSegments[0]}get authorizationEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.authorization_endpoint);throw ht.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get tokenEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint);throw ht.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get deviceCodeEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint.replace("/token","/devicecode"));throw ht.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get endSessionEndpoint(){if(this.discoveryComplete()){if(!this.metadata.end_session_endpoint)throw ht.createLogoutNotSupportedError();return this.replacePath(this.metadata.end_session_endpoint)}throw ht.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get selfSignedJwtAudience(){if(this.discoveryComplete())return this.replacePath(this.metadata.issuer);throw ht.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get jwksUri(){if(this.discoveryComplete())return this.replacePath(this.metadata.jwks_uri);throw ht.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}canReplaceTenant(e){return 1===e.PathSegments.length&&!Er.reservedTenantDomains.has(e.PathSegments[0])&&this.getAuthorityType(e)===It&&this.protocolMode===vr.AAD}replaceTenant(e){return e.replace(/{tenant}|{tenantid}/g,this.tenant)}replacePath(e){let t=e;const r=new nr(this.metadata.canonical_authority).getUrlComponents(),o=r.PathSegments;return this.canonicalAuthorityUrlComponents.PathSegments.forEach(((e,n)=>{let i=o[n];if(0===n&&this.canReplaceTenant(r)){const e=new nr(this.metadata.authorization_endpoint).getUrlComponents().PathSegments[0];i!==e&&(this.logger.verbose(`Replacing tenant domain name ${i} with id ${e}`),i=e)}e!==i&&(t=t.replace(`/${i}/`,`/${e}/`))})),this.replaceTenant(t)}get defaultOpenIdConfigurationEndpoint(){return this.authorityType===_t||this.protocolMode===vr.OIDC?`${this.canonicalAuthority}.well-known/openid-configuration`:`${this.canonicalAuthority}v2.0/.well-known/openid-configuration`}discoveryComplete(){return!!this.metadata}async resolveEndpointsAsync(){this.performanceClient?.addQueueMeasurement(ir.AuthorityResolveEndpointsAsync,this.correlationId);let e=this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);e||(e=new wr,e.updateCanonicalAuthority(this.canonicalAuthority)),this.performanceClient?.setPreQueueTime(ir.AuthorityUpdateCloudDiscoveryMetadata,this.correlationId);const t=await this.updateCloudDiscoveryMetadata(e);this.canonicalAuthority=this.canonicalAuthority.replace(this.hostnameAndPort,e.preferred_network),this.performanceClient?.setPreQueueTime(ir.AuthorityUpdateEndpointMetadata,this.correlationId);const r=await this.updateEndpointMetadata(e);t!==qe&&r!==qe&&(e.resetExpiresAt(),e.updateCanonicalAuthority(this.canonicalAuthority));const o=this.cacheManager.generateAuthorityMetadataCacheKey(e.preferred_cache);this.cacheManager.setAuthorityMetadata(o,e),this.metadata=e}async updateEndpointMetadata(e){this.performanceClient?.addQueueMeasurement(ir.AuthorityUpdateEndpointMetadata,this.correlationId);let t=this.getEndpointMetadataFromConfig();if(t)return e.updateEndpointMetadata(t,!1),Oe;if(this.isAuthoritySameType(e)&&e.endpointsFromNetwork&&!e.isExpired())return qe;if(this.performanceClient?.setPreQueueTime(ir.AuthorityGetEndpointMetadataFromNetwork,this.correlationId),t=await this.getEndpointMetadataFromNetwork(),t)return this.authorityOptions.azureRegionConfiguration?.azureRegion&&(this.performanceClient?.setPreQueueTime(ir.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId),t=await this.updateMetadataWithRegionalInformation(t)),e.updateEndpointMetadata(t,!0),Ue;let r=this.getEndpointMetadataFromHardcodedValues();if(r&&!this.authorityOptions.skipAuthorityMetadataCache)return this.authorityOptions.azureRegionConfiguration?.azureRegion&&(this.performanceClient?.setPreQueueTime(ir.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId),r=await this.updateMetadataWithRegionalInformation(r)),e.updateEndpointMetadata(r,!1),He;throw ht.createUnableToGetOpenidConfigError(this.defaultOpenIdConfigurationEndpoint)}isAuthoritySameType(e){return new nr(e.canonical_authority).getUrlComponents().PathSegments.length===this.canonicalAuthorityUrlComponents.PathSegments.length}getEndpointMetadataFromConfig(){if(this.authorityOptions.authorityMetadata)try{return JSON.parse(this.authorityOptions.authorityMetadata)}catch(e){throw vt.createInvalidAuthorityMetadataError()}return null}async getEndpointMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(ir.AuthorityGetEndpointMetadataFromNetwork,this.correlationId);const e=this.performanceClient?.startMeasurement(ir.AuthorityGetEndpointMetadataFromNetwork,this.correlationId),t={},r=this.defaultOpenIdConfigurationEndpoint;this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: attempting to retrieve OAuth endpoints from ${r}`);try{const o=await this.networkInterface.sendGetRequestAsync(r,t),n=function(e){return e.hasOwnProperty("authorization_endpoint")&&e.hasOwnProperty("token_endpoint")&&e.hasOwnProperty("issuer")&&e.hasOwnProperty("jwks_uri")}(o.body);return n?(e?.endMeasurement({success:!0}),o.body):(e?.endMeasurement({success:!1,errorCode:"invalid_response"}),this.logger.verbose("Authority.getEndpointMetadataFromNetwork: could not parse response as OpenID configuration"),null)}catch(t){return e?.endMeasurement({success:!1,errorCode:"request_failure"}),this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: ${t}`),null}}getEndpointMetadataFromHardcodedValues(){return this.canonicalAuthority in yr?yr[this.canonicalAuthority]:null}async updateMetadataWithRegionalInformation(e){this.performanceClient?.addQueueMeasurement(ir.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId);const r=this.authorityOptions.azureRegionConfiguration?.azureRegion;if(r){if(r!==t.AZURE_REGION_AUTO_DISCOVER_FLAG)return this.regionDiscoveryMetadata.region_outcome=Xe,this.regionDiscoveryMetadata.region_used=r,Er.replaceWithRegionalInformation(e,r);this.performanceClient?.setPreQueueTime(ir.RegionDiscoveryDetectRegion,this.correlationId);const o=await this.regionDiscovery.detectRegion(this.authorityOptions.azureRegionConfiguration?.environmentRegion,this.regionDiscoveryMetadata);if(o)return this.regionDiscoveryMetadata.region_outcome=Ze,this.regionDiscoveryMetadata.region_used=o,Er.replaceWithRegionalInformation(e,o);this.regionDiscoveryMetadata.region_outcome=et}return e}async updateCloudDiscoveryMetadata(e){this.performanceClient?.addQueueMeasurement(ir.AuthorityUpdateCloudDiscoveryMetadata,this.correlationId),this.logger.verbose("Attempting to get cloud discovery metadata in the config"),this.logger.verbosePii(`Known Authorities: ${this.authorityOptions.knownAuthorities||t.NOT_APPLICABLE}`),this.logger.verbosePii(`Authority Metadata: ${this.authorityOptions.authorityMetadata||t.NOT_APPLICABLE}`),this.logger.verbosePii(`Canonical Authority: ${e.canonical_authority||t.NOT_APPLICABLE}`);let r=this.getCloudDiscoveryMetadataFromConfig();if(r)return this.logger.verbose("Found cloud discovery metadata in the config."),e.updateCloudDiscoveryMetadata(r,!1),Oe;this.logger.verbose("Did not find cloud discovery metadata in the config... Attempting to get cloud discovery metadata from the cache.");const o=e.isExpired();if(this.isAuthoritySameType(e)&&e.aliasesFromNetwork&&!o)return this.logger.verbose("Found metadata in the cache."),qe;if(o&&this.logger.verbose("The metadata entity is expired."),this.logger.verbose("Did not find cloud discovery metadata in the cache... Attempting to get cloud discovery metadata from the network."),this.performanceClient?.setPreQueueTime(ir.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.correlationId),r=await this.getCloudDiscoveryMetadataFromNetwork(),r)return this.logger.verbose("cloud discovery metadata was successfully returned from getCloudDiscoveryMetadataFromNetwork()"),e.updateCloudDiscoveryMetadata(r,!0),Ue;this.logger.verbose("Did not find cloud discovery metadata from the network... Attempting to get cloud discovery metadata from hardcoded values.");const n=this.getCloudDiscoveryMetadataFromHarcodedValues();if(n&&!this.options.skipAuthorityMetadataCache)return this.logger.verbose("Found cloud discovery metadata from hardcoded values."),e.updateCloudDiscoveryMetadata(n,!1),He;throw this.logger.error("Did not find cloud discovery metadata from hardcoded values... Metadata could not be obtained from config, cache, network or hardcoded values. Throwing Untrusted Authority Error."),vt.createUntrustedAuthorityError()}getCloudDiscoveryMetadataFromConfig(){if(this.authorityType===St)return this.logger.verbose("CIAM authorities do not support cloud discovery metadata, generate the aliases from authority host."),Er.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);if(this.authorityOptions.cloudDiscoveryMetadata){this.logger.verbose("The cloud discovery metadata has been provided as a network response, in the config.");try{this.logger.verbose("Attempting to parse the cloud discovery metadata.");const e=JSON.parse(this.authorityOptions.cloudDiscoveryMetadata),t=Er.getCloudDiscoveryMetadataFromNetworkResponse(e.metadata,this.hostnameAndPort);if(this.logger.verbose("Parsed the cloud discovery metadata."),t)return this.logger.verbose("There is returnable metadata attached to the parsed cloud discovery metadata."),t;this.logger.verbose("There is no metadata attached to the parsed cloud discovery metadata.")}catch(e){throw this.logger.verbose("Unable to parse the cloud discovery metadata. Throwing Invalid Cloud Discovery Metadata Error."),vt.createInvalidCloudDiscoveryMetadataError()}}return this.isInKnownAuthorities()?(this.logger.verbose("The host is included in knownAuthorities. Creating new cloud discovery metadata from the host."),Er.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)):null}async getCloudDiscoveryMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(ir.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.correlationId);const e=`${t.AAD_INSTANCE_DISCOVERY_ENDPT}${this.canonicalAuthority}oauth2/v2.0/authorize`,r={};let o=null;try{const n=await this.networkInterface.sendGetRequestAsync(e,r);let i,a;if(function(e){return e.hasOwnProperty("tenant_discovery_endpoint")&&e.hasOwnProperty("metadata")}
51
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */(n.body))i=n.body,a=i.metadata,this.logger.verbosePii(`tenant_discovery_endpoint is: ${i.tenant_discovery_endpoint}`);else{if(!function(e){return e.hasOwnProperty("error")&&e.hasOwnProperty("error_description")}(n.body))return this.logger.error("AAD did not return a CloudInstanceDiscoveryResponse or CloudInstanceDiscoveryErrorResponse"),null;if(this.logger.warning(`A CloudInstanceDiscoveryErrorResponse was returned. The cloud instance discovery network request's status code is: ${n.status}`),i=n.body,i.error===t.INVALID_INSTANCE)return this.logger.error("The CloudInstanceDiscoveryErrorResponse error is invalid_instance."),null;this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error is ${i.error}`),this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error description is ${i.error_description}`),this.logger.warning("Setting the value of the CloudInstanceDiscoveryMetadata (returned from the network) to []"),a=[]}this.logger.verbose("Attempting to find a match between the developer's authority and the CloudInstanceDiscoveryMetadata returned from the network request."),o=Er.getCloudDiscoveryMetadataFromNetworkResponse(a,this.hostnameAndPort)}catch(e){if(e instanceof ct)this.logger.error(`There was a network error while attempting to get the cloud discovery instance metadata.\nError: ${e.errorCode}\nError Description: ${e.errorMessage}`);else{const t=e;this.logger.error(`A non-MSALJS error was thrown while attempting to get the cloud instance discovery metadata.\nError: ${t.name}\nError Description: ${t.message}`)}return null}return o||(this.logger.warning("The developer's authority was not found within the CloudInstanceDiscoveryMetadata returned from the network request."),this.logger.verbose("Creating custom Authority for custom domain scenario."),o=Er.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)),o}getCloudDiscoveryMetadataFromHarcodedValues(){return this.canonicalAuthority in Cr?Cr[this.canonicalAuthority]:null}isInKnownAuthorities(){return this.authorityOptions.knownAuthorities.filter((e=>nr.getDomainFromUrl(e).toLowerCase()===this.hostnameAndPort)).length>0}static generateAuthority(e,r){let o;if(r&&r.azureCloudInstance!==yt.None){const e=r.tenant?r.tenant:t.DEFAULT_COMMON_TENANT;o=`${r.azureCloudInstance}/${e}/`}return o||e}static createCloudDiscoveryMetadataFromHost(e){return{preferred_network:e,preferred_cache:e,aliases:[e]}}static getCloudDiscoveryMetadataFromNetworkResponse(e,t){for(let r=0;r<e.length;r++){const o=e[r];if(o.aliases.indexOf(t)>-1)return o}return null}getPreferredCache(){if(this.discoveryComplete())return this.metadata.preferred_cache;throw ht.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}isAlias(e){return this.metadata.aliases.indexOf(e)>-1}static isPublicCloudAuthority(e){return t.KNOWN_PUBLIC_CLOUDS.indexOf(e)>=0}static buildRegionalAuthorityString(e,r,o){const n=new nr(e);n.validateAsUri();const i=n.getUrlComponents();let a=`${r}.${i.HostNameAndPort}`;this.isPublicCloudAuthority(i.HostNameAndPort)&&(a=`${r}.${t.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX}`);const s=nr.constructAuthorityUriFromObject({...n.getUrlComponents(),HostNameAndPort:a}).urlString;return o?`${s}?${o}`:s}static replaceWithRegionalInformation(e,r){return e.authorization_endpoint=Er.buildRegionalAuthorityString(e.authorization_endpoint,r),e.token_endpoint=Er.buildRegionalAuthorityString(e.token_endpoint,r,t.REGIONAL_AUTH_NON_MSI_QUERY_STRING),e.end_session_endpoint&&(e.end_session_endpoint=Er.buildRegionalAuthorityString(e.end_session_endpoint,r)),e}static transformCIAMAuthority(e){let r=e.endsWith(t.FORWARD_SLASH)?e:`${e}${t.FORWARD_SLASH}`;const o=new nr(e).getUrlComponents();if(0===o.PathSegments.length&&o.HostNameAndPort.endsWith(t.CIAM_AUTH_URL)){r=`${r}${o.HostNameAndPort.split(".")[0]}${t.AAD_TENANT_DOMAIN_SUFFIX}`}return r}}Er.reservedTenantDomains=new Set(["{tenant}","{tenantid}",C,w,v]);
52
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */
53
- class Ir{static async createDiscoveredInstance(e,t,r,o,n,i,a){i?.addQueueMeasurement(ir.AuthorityFactoryCreateDiscoveredInstance,a);const s=Er.transformCIAMAuthority(e),c=Ir.createInstance(s,t,r,o,n,i,a);try{return i?.setPreQueueTime(ir.AuthorityResolveEndpointsAsync,a),await c.resolveEndpointsAsync(),c}catch(e){throw ht.createEndpointDiscoveryIncompleteError(e)}}static createInstance(e,t,r,o,n,i,a){if(ut.isEmpty(e))throw vt.createUrlEmptyError();return new Er(e,t,r,o,n,i,a)}}
54
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class _r{constructor(){this.failedRequests=[],this.errors=[],this.cacheHits=0}static isServerTelemetryEntity(e,t){const r=0===e.indexOf(Le.CACHE_KEY);let o=!0;return t&&(o=t.hasOwnProperty("failedRequests")&&t.hasOwnProperty("errors")&&t.hasOwnProperty("cacheHits")),r&&o}}
55
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class kr{static isThrottlingEntity(e,t){let r=!1;e&&(r=0===e.indexOf(Be));let o=!0;return t&&(o=t.hasOwnProperty("throttleTime")),r&&o}}
56
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */const Sr={sendGetRequestAsync:()=>Promise.reject(ct.createUnexpectedError("Network interface - sendGetRequestAsync() has not been implemented for the Network interface.")),sendPostRequestAsync:()=>Promise.reject(ct.createUnexpectedError("Network interface - sendPostRequestAsync() has not been implemented for the Network interface."))},Ar={code:"missing_kid_error",desc:"The JOSE Header for the requested JWT, JWS or JWK object requires a keyId to be configured as the 'kid' header claim. No 'kid' value was provided."},Rr={code:"missing_alg_error",desc:"The JOSE Header for the requested JWT, JWS or JWK object requires an algorithm to be specified as the 'alg' header claim. No 'alg' value was provided."};
57
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class br extends ct{constructor(e,t){super(e,t),this.name="JoseHeaderError",Object.setPrototypeOf(this,br.prototype)}static createMissingKidError(){return new br(Ar.code,Ar.desc)}static createMissingAlgError(){return new br(Rr.code,Rr.desc)}}
58
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class Pr{constructor(e){this.typ=e.typ,this.alg=e.alg,this.kid=e.kid}static getShrHeaderString(e){if(!e.kid)throw br.createMissingKidError();if(!e.alg)throw br.createMissingAlgError();const t=new Pr({typ:e.typ||at,kid:e.kid,alg:e.alg});return JSON.stringify(t)}}
59
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */
60
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */
61
- class Mr{constructor(e,r){this.cacheOutcome=tt,this.cacheManager=r,this.apiId=e.apiId,this.correlationId=e.correlationId,this.wrapperSKU=e.wrapperSKU||t.EMPTY_STRING,this.wrapperVer=e.wrapperVer||t.EMPTY_STRING,this.telemetryCacheKey=Le.CACHE_KEY+we.CACHE_KEY_SEPARATOR+e.clientId}generateCurrentRequestHeaderValue(){const e=`${this.apiId}${Le.VALUE_SEPARATOR}${this.cacheOutcome}`,t=[this.wrapperSKU,this.wrapperVer].join(Le.VALUE_SEPARATOR),r=[e,this.getRegionDiscoveryFields()].join(Le.VALUE_SEPARATOR);return[Le.SCHEMA_VERSION,r,t].join(Le.CATEGORY_SEPARATOR)}generateLastRequestHeaderValue(){const e=this.getLastRequests(),t=Mr.maxErrorsToSend(e),r=e.failedRequests.slice(0,2*t).join(Le.VALUE_SEPARATOR),o=e.errors.slice(0,t).join(Le.VALUE_SEPARATOR),n=e.errors.length,i=[n,t<n?Le.OVERFLOW_TRUE:Le.OVERFLOW_FALSE].join(Le.VALUE_SEPARATOR);return[Le.SCHEMA_VERSION,e.cacheHits,r,o,i].join(Le.CATEGORY_SEPARATOR)}cacheFailedRequest(e){const t=this.getLastRequests();t.errors.length>=Le.MAX_CACHED_ERRORS&&(t.failedRequests.shift(),t.failedRequests.shift(),t.errors.shift()),t.failedRequests.push(this.apiId,this.correlationId),e instanceof Error&&e&&e.toString()?e instanceof ct?ut.isEmpty(e.subError)?ut.isEmpty(e.errorCode)?t.errors.push(e.toString()):t.errors.push(e.errorCode):t.errors.push(e.subError):t.errors.push(e.toString()):t.errors.push(Le.UNKNOWN_ERROR),this.cacheManager.setServerTelemetry(this.telemetryCacheKey,t)}incrementCacheHits(){const e=this.getLastRequests();return e.cacheHits+=1,this.cacheManager.setServerTelemetry(this.telemetryCacheKey,e),e.cacheHits}getLastRequests(){const e=new _r;return this.cacheManager.getServerTelemetry(this.telemetryCacheKey)||e}clearTelemetryCache(){const e=this.getLastRequests(),t=Mr.maxErrorsToSend(e);if(t===e.errors.length)this.cacheManager.removeItem(this.telemetryCacheKey);else{const r=new _r;r.failedRequests=e.failedRequests.slice(2*t),r.errors=e.errors.slice(t),this.cacheManager.setServerTelemetry(this.telemetryCacheKey,r)}}static maxErrorsToSend(e){let r,o=0,n=0;const i=e.errors.length;for(r=0;r<i;r++){const i=e.failedRequests[2*r]||t.EMPTY_STRING,a=e.failedRequests[2*r+1]||t.EMPTY_STRING,s=e.errors[r]||t.EMPTY_STRING;if(n+=i.toString().length+a.toString().length+s.length+3,!(n<Le.MAX_LAST_HEADER_BYTES))break;o+=1}return o}getRegionDiscoveryFields(){const e=[];return e.push(this.regionUsed||t.EMPTY_STRING),e.push(this.regionSource||t.EMPTY_STRING),e.push(this.regionOutcome||t.EMPTY_STRING),e.join(",")}updateRegionDiscoveryMetadata(e){this.regionUsed=e.region_used,this.regionSource=e.region_source,this.regionOutcome=e.region_outcome}setCacheOutcome(e){this.cacheOutcome=e}}
62
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class Nr{constructor(e,t,r,o,n,i){this.authority=t,this.libraryName=o,this.libraryVersion=n,this.applicationTelemetry=i,this.clientId=e,this.logger=r,this.callbacks=new Map,this.eventsByCorrelationId=new Map,this.queueMeasurements=new Map,this.preQueueTimeByCorrelationId=new Map}startPerformanceMeasurement(e,t){return{}}getIntFields(){return cr}getPreQueueTime(e,t){const r=this.preQueueTimeByCorrelationId.get(t);if(r){if(r.name===e)return r.time;this.logger.trace(`PerformanceClient.getPreQueueTime: no pre-queue time found for ${e}, unable to add queue measurement`)}else this.logger.trace(`PerformanceClient.getPreQueueTime: no pre-queue times found for correlationId: ${t}, unable to add queue measurement`)}calculateQueuedTime(e,t){return e<1?(this.logger.trace(`PerformanceClient: preQueueTime should be a positive integer and not ${e}`),0):t<1?(this.logger.trace(`PerformanceClient: currentTime should be a positive integer and not ${t}`),0):t<e?(this.logger.trace("PerformanceClient: currentTime is less than preQueueTime, check how time is being retrieved"),0):t-e}addQueueMeasurement(e,t,r,o){if(!t)return void this.logger.trace(`PerformanceClient.addQueueMeasurement: correlationId not provided for ${e}, cannot add queue measurement`);if(0===r)this.logger.trace(`PerformanceClient.addQueueMeasurement: queue time provided for ${e} is ${r}`);else if(!r)return void this.logger.trace(`PerformanceClient.addQueueMeasurement: no queue time provided for ${e}`);const n={eventName:e,queueTime:r,manuallyCompleted:o},i=this.queueMeasurements.get(t);if(i)i.push(n),this.queueMeasurements.set(t,i);else{this.logger.trace(`PerformanceClient.addQueueMeasurement: adding correlationId ${t} to queue measurements`);const e=[n];this.queueMeasurements.set(t,e)}this.preQueueTimeByCorrelationId.delete(t)}startMeasurement(e,t){const r=t||this.generateId();t||this.logger.info(`PerformanceClient: No correlation id provided for ${e}, generating`,r),this.logger.trace(`PerformanceClient: Performance measurement started for ${e}`,r);const o=this.startPerformanceMeasurement(e,r);o.startMeasurement();const n={eventId:this.generateId(),status:ar,authority:this.authority,libraryName:this.libraryName,libraryVersion:this.libraryVersion,clientId:this.clientId,name:e,startTimeMs:Date.now(),correlationId:r,appName:this.applicationTelemetry?.appName,appVersion:this.applicationTelemetry?.appVersion};return this.cacheEventByCorrelationId(n),{endMeasurement:e=>this.endMeasurement({...n,...e},o),discardMeasurement:()=>this.discardMeasurements(n.correlationId),addStaticFields:e=>this.addStaticFields(e,n.correlationId),increment:e=>this.increment(e,n.correlationId),measurement:o,event:n}}endMeasurement(e,t){const r=this.eventsByCorrelationId.get(e.correlationId);if(!r)return this.logger.trace(`PerformanceClient: Measurement not found for ${e.eventId}`,e.correlationId),null;const o=e.eventId===r.eventId;let n={totalQueueTime:0,totalQueueCount:0,manuallyCompletedCount:0};o?(n=this.getQueueInfo(e.correlationId),this.discardCache(r.correlationId)):r.incompleteSubMeasurements?.delete(e.eventId),t?.endMeasurement();const i=t?.flushMeasurement();if(!i)return this.logger.trace("PerformanceClient: Performance measurement not taken",r.correlationId),null;if(this.logger.trace(`PerformanceClient: Performance measurement ended for ${e.name}: ${i} ms`,e.correlationId),!o)return r[e.name+"DurationMs"]=Math.floor(i),{...r};let a={...r,...e},s=0;return a.incompleteSubMeasurements?.forEach((t=>{this.logger.trace(`PerformanceClient: Incomplete submeasurement ${t.name} found for ${e.name}`,a.correlationId),s++})),a.incompleteSubMeasurements=void 0,a={...a,durationMs:Math.round(i),queuedTimeMs:n.totalQueueTime,queuedCount:n.totalQueueCount,queuedManuallyCompletedCount:n.manuallyCompletedCount,status:sr,incompleteSubsCount:s},this.truncateIntegralFields(a,this.getIntFields()),this.emitEvents([a],e.correlationId),a}addStaticFields(e,t){this.logger.trace("PerformanceClient: Updating static fields");const r=this.eventsByCorrelationId.get(t);r?this.eventsByCorrelationId.set(t,{...r,...e}):this.logger.trace("PerformanceClient: Event not found for",t)}increment(e,t){this.logger.trace("PerformanceClient: Updating counters");const r=this.eventsByCorrelationId.get(t);if(r)for(const t in e)r.hasOwnProperty(t)||(r[t]=0),r[t]+=e[t];else this.logger.trace("PerformanceClient: Event not found for",t)}cacheEventByCorrelationId(e){const t=this.eventsByCorrelationId.get(e.correlationId);t?(this.logger.trace(`PerformanceClient: Performance measurement for ${e.name} added/updated`,e.correlationId),t.incompleteSubMeasurements=t.incompleteSubMeasurements||new Map,t.incompleteSubMeasurements.set(e.eventId,{name:e.name,startTimeMs:e.startTimeMs})):(this.logger.trace(`PerformanceClient: Performance measurement for ${e.name} started`,e.correlationId),this.eventsByCorrelationId.set(e.correlationId,{...e}))}getQueueInfo(e){const t=this.queueMeasurements.get(e);t||this.logger.trace(`PerformanceClient: no queue measurements found for for correlationId: ${e}`);let r=0,o=0,n=0;return t?.forEach((e=>{r+=e.queueTime,o++,n+=e.manuallyCompleted?1:0})),{totalQueueTime:r,totalQueueCount:o,manuallyCompletedCount:n}}discardMeasurements(e){this.logger.trace("PerformanceClient: Performance measurements discarded",e),this.eventsByCorrelationId.delete(e)}discardCache(e){this.discardMeasurements(e),this.logger.trace("PerformanceClient: QueueMeasurements discarded",e),this.queueMeasurements.delete(e),this.logger.trace("PerformanceClient: Pre-queue times discarded",e),this.preQueueTimeByCorrelationId.delete(e)}addPerformanceCallback(e){const t=this.generateId();return this.callbacks.set(t,e),this.logger.verbose(`PerformanceClient: Performance callback registered with id: ${t}`),t}removePerformanceCallback(e){const t=this.callbacks.delete(e);return t?this.logger.verbose(`PerformanceClient: Performance callback ${e} removed.`):this.logger.verbose(`PerformanceClient: Performance callback ${e} not removed.`),t}emitEvents(e,t){this.logger.verbose("PerformanceClient: Emitting performance events",t),this.callbacks.forEach(((r,o)=>{this.logger.trace(`PerformanceClient: Emitting event to callback ${o}`,t),r.apply(null,[e])}))}truncateIntegralFields(e,t){t.forEach((t=>{t in e&&"number"==typeof e[t]&&(e[t]=Math.floor(e[t]))}))}}
63
- /*! @azure/msal-common v14.0.0-beta.1 2023-07-06 */class Or{startMeasurement(){}endMeasurement(){}flushMeasurement(){return null}}class qr extends Nr{generateId(){return"callback-id"}startPerformanceMeasurement(){return new Or}calculateQueuedTime(){return 0}addQueueMeasurement(){}setPreQueueTime(){}}const Ur={pkceNotGenerated:{code:"pkce_not_created",desc:"The PKCE code challenge and verifier could not be generated."},cryptoDoesNotExist:{code:"crypto_nonexistent",desc:"The crypto object or function is not available."},httpMethodNotImplementedError:{code:"http_method_not_implemented",desc:"The HTTP method given has not been implemented in this library."},emptyNavigateUriError:{code:"empty_navigate_uri",desc:"Navigation URI is empty. Please check stack trace for more info."},hashEmptyError:{code:"hash_empty_error",desc:"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. For more visit: aka.ms/msaljs/browser-errors."},hashDoesNotContainStateError:{code:"no_state_in_hash",desc:"Hash does not contain state. Please verify that the request originated from msal."},hashDoesNotContainKnownPropertiesError:{code:"hash_does_not_contain_known_properties",desc:"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. For more visit: aka.ms/msaljs/browser-errors."},unableToParseStateError:{code:"unable_to_parse_state",desc:"Unable to parse state. Please verify that the request originated from msal."},stateInteractionTypeMismatchError:{code:"state_interaction_type_mismatch",desc:"Hash contains state but the interaction type does not match the caller."},interactionInProgress:{code:"interaction_in_progress",desc:"Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. For more visit: aka.ms/msaljs/browser-errors."},popupWindowError:{code:"popup_window_error",desc:"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser."},emptyWindowError:{code:"empty_window_error",desc:"window.open returned null or undefined window object."},userCancelledError:{code:"user_cancelled",desc:"User cancelled the flow."},monitorPopupTimeoutError:{code:"monitor_window_timeout",desc:"Token acquisition in popup failed due to timeout. For more visit: aka.ms/msaljs/browser-errors."},monitorIframeTimeoutError:{code:"monitor_window_timeout",desc:"Token acquisition in iframe failed due to timeout. For more visit: aka.ms/msaljs/browser-errors."},redirectInIframeError:{code:"redirect_in_iframe",desc:"Redirects are not supported for iframed or brokered applications. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs."},blockTokenRequestsInHiddenIframeError:{code:"block_iframe_reload",desc:"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors"},blockAcquireTokenInPopupsError:{code:"block_nested_popups",desc:"Request was blocked inside a popup because MSAL detected it was running in a popup."},iframeClosedPrematurelyError:{code:"iframe_closed_prematurely",desc:"The iframe being monitored was closed prematurely."},silentLogoutUnsupportedError:{code:"silent_logout_unsupported",desc:"Silent logout not supported. Please call logoutRedirect or logoutPopup instead."},noAccountError:{code:"no_account_error",desc:"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request."},silentPromptValueError:{code:"silent_prompt_value_error",desc:"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'."},noTokenRequestCacheError:{code:"no_token_request_cache_error",desc:"No token request found in cache."},unableToParseTokenRequestCacheError:{code:"unable_to_parse_token_request_cache_error",desc:"The cached token request could not be parsed."},noCachedAuthorityError:{code:"no_cached_authority_error",desc:"No cached authority found."},authRequestNotSet:{code:"auth_request_not_set_error",desc:"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler"},invalidCacheType:{code:"invalid_cache_type",desc:"Invalid cache type"},notInBrowserEnvironment:{code:"non_browser_environment",desc:"Login and token requests are not supported in non-browser environments."},databaseNotOpen:{code:"database_not_open",desc:"Database is not open!"},noNetworkConnectivity:{code:"no_network_connectivity",desc:"No network connectivity. Check your internet connection."},postRequestFailed:{code:"post_request_failed",desc:"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'"},getRequestFailed:{code:"get_request_failed",desc:"Network request failed. Please check the network trace to determine root cause."},failedToParseNetworkResponse:{code:"failed_to_parse_response",desc:"Failed to parse network response. Check network trace."},unableToLoadTokenError:{code:"unable_to_load_token",desc:"Error loading token to cache."},signingKeyNotFoundInStorage:{code:"crypto_key_not_found",desc:"Cryptographic Key or Keypair not found in browser storage."},authCodeRequired:{code:"auth_code_required",desc:"An authorization code must be provided (as the `code` property on the request) to this flow."},authCodeOrNativeAccountRequired:{code:"auth_code_or_nativeAccountId_required",desc:"An authorization code or nativeAccountId must be provided to this flow."},spaCodeAndNativeAccountPresent:{code:"spa_code_and_nativeAccountId_present",desc:"Request cannot contain both spa code and native account id."},databaseUnavailable:{code:"database_unavailable",desc:"IndexedDB, which is required for persistent cryptographic key storage, is unavailable. This may be caused by browser privacy features which block persistent storage in third-party contexts."},unableToAcquireTokenFromNativePlatform:{code:"unable_to_acquire_token_from_native_platform",desc:"Unable to acquire token from native platform. For a list of possible reasons visit aka.ms/msaljs/browser-errors."},nativeHandshakeTimeout:{code:"native_handshake_timeout",desc:"Timed out while attempting to establish connection to browser extension"},nativeExtensionNotInstalled:{code:"native_extension_not_installed",desc:"Native extension is not installed. If you think this is a mistake call the initialize function."},nativeConnectionNotEstablished:{code:"native_connection_not_established",desc:"Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). For more please visit aka.ms/msaljs/browser-errors."},nativeBrokerCalledBeforeInitialize:{code:"native_broker_called_before_initialize",desc:"You must call and await the initialize function before attempting to call any other MSAL API when native brokering is enabled. For more please visit aka.ms/msaljs/browser-errors."},nativePromptNotSupported:{code:"native_prompt_not_supported",desc:"The provided prompt is not supported by the native platform. This request should be routed to the web based flow."}};class Hr extends ct{constructor(e,t){super(e,t),Object.setPrototypeOf(this,Hr.prototype),this.name="BrowserAuthError"}static createPkceNotGeneratedError(e){return new Hr(Ur.pkceNotGenerated.code,`${Ur.pkceNotGenerated.desc} Detail:${e}`)}static createCryptoNotAvailableError(e){return new Hr(Ur.cryptoDoesNotExist.code,`${Ur.cryptoDoesNotExist.desc} Detail:${e}`)}static createHttpMethodNotImplementedError(e){return new Hr(Ur.httpMethodNotImplementedError.code,`${Ur.httpMethodNotImplementedError.desc} Given Method: ${e}`)}static createEmptyNavigationUriError(){return new Hr(Ur.emptyNavigateUriError.code,Ur.emptyNavigateUriError.desc)}static createEmptyHashError(){return new Hr(Ur.hashEmptyError.code,`${Ur.hashEmptyError.desc}`)}static createHashDoesNotContainStateError(){return new Hr(Ur.hashDoesNotContainStateError.code,Ur.hashDoesNotContainStateError.desc)}static createHashDoesNotContainKnownPropertiesError(){return new Hr(Ur.hashDoesNotContainKnownPropertiesError.code,Ur.hashDoesNotContainKnownPropertiesError.desc)}static createUnableToParseStateError(){return new Hr(Ur.unableToParseStateError.code,Ur.unableToParseStateError.desc)}static createStateInteractionTypeMismatchError(){return new Hr(Ur.stateInteractionTypeMismatchError.code,Ur.stateInteractionTypeMismatchError.desc)}static createInteractionInProgressError(){return new Hr(Ur.interactionInProgress.code,Ur.interactionInProgress.desc)}static createPopupWindowError(e){let t=Ur.popupWindowError.desc;return t=ut.isEmpty(e)?t:`${t} Details: ${e}`,new Hr(Ur.popupWindowError.code,t)}static createEmptyWindowCreatedError(){return new Hr(Ur.emptyWindowError.code,Ur.emptyWindowError.desc)}static createUserCancelledError(){return new Hr(Ur.userCancelledError.code,Ur.userCancelledError.desc)}static createMonitorPopupTimeoutError(){return new Hr(Ur.monitorPopupTimeoutError.code,Ur.monitorPopupTimeoutError.desc)}static createMonitorIframeTimeoutError(){return new Hr(Ur.monitorIframeTimeoutError.code,Ur.monitorIframeTimeoutError.desc)}static createRedirectInIframeError(e){return new Hr(Ur.redirectInIframeError.code,`${Ur.redirectInIframeError.desc} (window.parent !== window) => ${e}`)}static createBlockReloadInHiddenIframeError(){return new Hr(Ur.blockTokenRequestsInHiddenIframeError.code,Ur.blockTokenRequestsInHiddenIframeError.desc)}static createBlockAcquireTokenInPopupsError(){return new Hr(Ur.blockAcquireTokenInPopupsError.code,Ur.blockAcquireTokenInPopupsError.desc)}static createIframeClosedPrematurelyError(){return new Hr(Ur.iframeClosedPrematurelyError.code,Ur.iframeClosedPrematurelyError.desc)}static createSilentLogoutUnsupportedError(){return new Hr(Ur.silentLogoutUnsupportedError.code,Ur.silentLogoutUnsupportedError.desc)}static createNoAccountError(){return new Hr(Ur.noAccountError.code,Ur.noAccountError.desc)}static createSilentPromptValueError(e){return new Hr(Ur.silentPromptValueError.code,`${Ur.silentPromptValueError.desc} Given value: ${e}`)}static createUnableToParseTokenRequestCacheError(){return new Hr(Ur.unableToParseTokenRequestCacheError.code,Ur.unableToParseTokenRequestCacheError.desc)}static createNoTokenRequestCacheError(){return new Hr(Ur.noTokenRequestCacheError.code,Ur.noTokenRequestCacheError.desc)}static createAuthRequestNotSetError(){return new Hr(Ur.authRequestNotSet.code,Ur.authRequestNotSet.desc)}static createNoCachedAuthorityError(){return new Hr(Ur.noCachedAuthorityError.code,Ur.noCachedAuthorityError.desc)}static createInvalidCacheTypeError(){return new Hr(Ur.invalidCacheType.code,`${Ur.invalidCacheType.desc}`)}static createNonBrowserEnvironmentError(){return new Hr(Ur.notInBrowserEnvironment.code,Ur.notInBrowserEnvironment.desc)}static createDatabaseNotOpenError(){return new Hr(Ur.databaseNotOpen.code,Ur.databaseNotOpen.desc)}static createNoNetworkConnectivityError(){return new Hr(Ur.noNetworkConnectivity.code,Ur.noNetworkConnectivity.desc)}static createPostRequestFailedError(e,t){return new Hr(Ur.postRequestFailed.code,`${Ur.postRequestFailed.desc} | Network client threw: ${e} | Attempted to reach: ${t.split("?")[0]}`)}static createGetRequestFailedError(e,t){return new Hr(Ur.getRequestFailed.code,`${Ur.getRequestFailed.desc} | Network client threw: ${e} | Attempted to reach: ${t.split("?")[0]}`)}static createFailedToParseNetworkResponseError(e){return new Hr(Ur.failedToParseNetworkResponse.code,`${Ur.failedToParseNetworkResponse.desc} | Attempted to reach: ${e.split("?")[0]}`)}static createUnableToLoadTokenError(e){return new Hr(Ur.unableToLoadTokenError.code,`${Ur.unableToLoadTokenError.desc} | ${e}`)}static createSigningKeyNotFoundInStorageError(e){return new Hr(Ur.signingKeyNotFoundInStorage.code,`${Ur.signingKeyNotFoundInStorage.desc} | No match found for KeyId: ${e}`)}static createAuthCodeRequiredError(){return new Hr(Ur.authCodeRequired.code,Ur.authCodeRequired.desc)}static createAuthCodeOrNativeAccountIdRequiredError(){return new Hr(Ur.authCodeOrNativeAccountRequired.code,Ur.authCodeOrNativeAccountRequired.desc)}static createSpaCodeAndNativeAccountIdPresentError(){return new Hr(Ur.spaCodeAndNativeAccountPresent.code,Ur.spaCodeAndNativeAccountPresent.desc)}static createDatabaseUnavailableError(){return new Hr(Ur.databaseUnavailable.code,Ur.databaseUnavailable.desc)}static createUnableToAcquireTokenFromNativePlatformError(){return new Hr(Ur.unableToAcquireTokenFromNativePlatform.code,Ur.unableToAcquireTokenFromNativePlatform.desc)}static createNativeHandshakeTimeoutError(){return new Hr(Ur.nativeHandshakeTimeout.code,Ur.nativeHandshakeTimeout.desc)}static createNativeExtensionNotInstalledError(){return new Hr(Ur.nativeExtensionNotInstalled.code,Ur.nativeExtensionNotInstalled.desc)}static createNativeConnectionNotEstablishedError(){return new Hr(Ur.nativeConnectionNotEstablished.code,Ur.nativeConnectionNotEstablished.desc)}static createNativeBrokerCalledBeforeInitialize(){return new Hr(Ur.nativeBrokerCalledBeforeInitialize.code,Ur.nativeBrokerCalledBeforeInitialize.desc)}static createNativePromptParameterNotSupportedError(){return new Hr(Ur.nativePromptNotSupported.code,Ur.nativePromptNotSupported.desc)}}const Lr={INTERACTION_IN_PROGRESS_VALUE:"interaction_in_progress",INVALID_GRANT_ERROR:"invalid_grant",POPUP_WIDTH:483,POPUP_HEIGHT:600,POPUP_NAME_PREFIX:"msal",DEFAULT_POLL_INTERVAL_MS:30,MSAL_SKU:"msal.js.browser"},xr="53ee284d-920a-4b59-9d30-a60315b26836",Fr="ppnbnpeolgkicgegkbkbjmhlideopiji",Dr="MATS",Br="Handshake",Kr="HandshakeResponse",Gr="GetToken",$r="Response",zr={LocalStorage:"localStorage",SessionStorage:"sessionStorage",MemoryStorage:"memoryStorage"},Qr="GET",jr="POST",Yr={AUTHORITY:"authority",ACQUIRE_TOKEN_ACCOUNT:"acquireToken.account",SESSION_STATE:"session.state",REQUEST_STATE:"request.state",NONCE_IDTOKEN:"nonce.id_token",ORIGIN_URI:"request.origin",RENEW_STATUS:"token.renew.status",URL_HASH:"urlHash",REQUEST_PARAMS:"request.params",SCOPES:"scopes",INTERACTION_STATUS_KEY:"interaction.status",CCS_CREDENTIAL:"ccs.credential",CORRELATION_ID:"request.correlationId",NATIVE_REQUEST:"request.native",REDIRECT_CONTEXT:"request.redirect.context"},Wr="msal.account.keys",Vr="msal.token.keys",Jr="wrapper.sku",Xr="wrapper.version",Zr={acquireTokenRedirect:861,acquireTokenPopup:862,ssoSilent:863,acquireTokenSilent_authCode:864,handleRedirectPromise:865,acquireTokenByCode:866,acquireTokenSilent_silentFlow:61,logout:961,logoutPopup:962};var eo;e.InteractionType=void 0,(eo=e.InteractionType||(e.InteractionType={})).Redirect="redirect",eo.Popup="popup",eo.Silent="silent",eo.None="none";const to={Startup:"startup",Login:"login",Logout:"logout",AcquireToken:"acquireToken",SsoSilent:"ssoSilent",HandleRedirect:"handleRedirect",None:"none"},ro={scopes:r},oo="msal.db",no=`${oo}.keys`,io={Default:0,AccessToken:1,AccessTokenAndRefreshToken:2,RefreshToken:3,RefreshTokenAndNetwork:4,Skip:5},ao={redirectUriNotSet:{code:"redirect_uri_empty",desc:"A redirect URI is required for all calls, and none has been set."},postLogoutUriNotSet:{code:"post_logout_uri_empty",desc:"A post logout redirect has not been set."},storageNotSupportedError:{code:"storage_not_supported",desc:"Given storage configuration option was not supported."},noRedirectCallbacksSet:{code:"no_redirect_callbacks",desc:"No redirect callbacks have been set. Please call setRedirectCallbacks() with the appropriate function arguments before continuing. More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics."},invalidCallbackObject:{code:"invalid_callback_object",desc:"The object passed for the callback was invalid. More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics."},stubPcaInstanceCalled:{code:"stubbed_public_client_application_called",desc:"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors"},inMemRedirectUnavailable:{code:"in_mem_redirect_unavailable",desc:"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true."},entropyNotProvided:{code:"entropy_not_provided",desc:"The available browser crypto interface requires entropy set via system.cryptoOptions.entropy configuration option."}};class so extends ct{constructor(e,t){super(e,t),this.name="BrowserConfigurationAuthError",Object.setPrototypeOf(this,so.prototype)}static createRedirectUriEmptyError(){return new so(ao.redirectUriNotSet.code,ao.redirectUriNotSet.desc)}static createPostLogoutRedirectUriEmptyError(){return new so(ao.postLogoutUriNotSet.code,ao.postLogoutUriNotSet.desc)}static createStorageNotSupportedError(e){return new so(ao.storageNotSupportedError.code,`${ao.storageNotSupportedError.desc} Given Location: ${e}`)}static createRedirectCallbacksNotSetError(){return new so(ao.noRedirectCallbacksSet.code,ao.noRedirectCallbacksSet.desc)}static createStubPcaInstanceCalledError(){return new so(ao.stubPcaInstanceCalled.code,ao.stubPcaInstanceCalled.desc)}static createInMemoryRedirectUnavailableError(){return new so(ao.inMemRedirectUnavailable.code,ao.inMemRedirectUnavailable.desc)}static createEntropyNotProvided(){return new so(ao.entropyNotProvided.code,ao.entropyNotProvided.desc)}}class co{constructor(e){this.validateWindowStorage(e),this.windowStorage=window[e]}validateWindowStorage(e){if(e!==zr.LocalStorage&&e!==zr.SessionStorage)throw so.createStorageNotSupportedError(e);if(!!!window[e])throw so.createStorageNotSupportedError(e)}getItem(e){return this.windowStorage.getItem(e)}setItem(e,t){this.windowStorage.setItem(e,t)}removeItem(e){this.windowStorage.removeItem(e)}getKeys(){return Object.keys(this.windowStorage)}containsKey(e){return this.windowStorage.hasOwnProperty(e)}}class lo{constructor(){this.cache=new Map}getItem(e){return this.cache.get(e)||null}setItem(e,t){this.cache.set(e,t)}removeItem(e){this.cache.delete(e)}getKeys(){const e=[];return this.cache.forEach(((t,r)=>{e.push(r)})),e}containsKey(e){return this.cache.has(e)}clear(){this.cache.clear()}}class ho{static extractBrowserRequestState(e,t){if(ut.isEmpty(t))return null;try{return or.parseRequestState(e,t).libraryState.meta}catch(e){throw ht.createInvalidStateError(t,e)}}static parseServerResponseFromHash(e){if(!e)return{};const t=new nr(e);return nr.getDeserializedHash(t.getHash())}}class uo extends bt{constructor(e,t,r,o){super(e,r,o),this.COOKIE_LIFE_MULTIPLIER=864e5,this.cacheConfig=t,this.logger=o,this.internalStorage=new lo,this.browserStorage=this.setupBrowserStorage(this.cacheConfig.cacheLocation),this.temporaryCacheStorage=this.setupTemporaryCacheStorage(this.cacheConfig.temporaryCacheLocation,this.cacheConfig.cacheLocation),t.cacheMigrationEnabled&&(this.migrateCacheEntries(),this.createKeyMaps())}setupBrowserStorage(e){switch(e){case zr.LocalStorage:case zr.SessionStorage:try{return new co(e)}catch(e){this.logger.verbose(e);break}case zr.MemoryStorage:}return this.cacheConfig.cacheLocation=zr.MemoryStorage,new lo}setupTemporaryCacheStorage(e,t){switch(t){case zr.LocalStorage:case zr.SessionStorage:try{return new co(e||zr.SessionStorage)}catch(e){return this.logger.verbose(e),this.internalStorage}case zr.MemoryStorage:default:return this.internalStorage}}migrateCacheEntries(){const e=`${t.CACHE_PREFIX}.${h}`,r=`${t.CACHE_PREFIX}.${u}`,o=`${t.CACHE_PREFIX}.${p}`,n=`${t.CACHE_PREFIX}.${m}`,i=[this.browserStorage.getItem(e),this.browserStorage.getItem(r),this.browserStorage.getItem(o),this.browserStorage.getItem(n)];[h,u,p,m].forEach(((e,t)=>this.migrateCacheEntry(e,i[t])))}migrateCacheEntry(e,t){t&&this.setTemporaryCache(e,t,!0)}createKeyMaps(){this.logger.trace("BrowserCacheManager - createKeyMaps called.");const e=this.getItem(Wr),t=this.getItem(`${Vr}.${this.clientId}`);if(e&&t)return void this.logger.verbose("BrowserCacheManager:createKeyMaps - account and token key maps already exist, skipping migration.");this.browserStorage.getKeys().forEach((e=>{if(this.isCredentialKey(e)){const t=this.getItem(e);if(t){const r=this.validateAndParseJson(t);if(r&&r.hasOwnProperty("credentialType"))switch(r.credentialType){case Te.ID_TOKEN:if(Yt.isIdTokenEntity(r)){this.logger.trace("BrowserCacheManager:createKeyMaps - idToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - idToken with key: ${e} found, saving key to token key map`);const t=bt.toObject(new Yt,r),o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Te.ID_TOKEN)}this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching idToken schema with value containing idToken credentialType field but value failed IdTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed idToken validation on key: ${e}`);break;case Te.ACCESS_TOKEN:case Te.ACCESS_TOKEN_WITH_AUTH_SCHEME:if(Vt.isAccessTokenEntity(r)){this.logger.trace("BrowserCacheManager:createKeyMaps - accessToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - accessToken with key: ${e} found, saving key to token key map`);const t=bt.toObject(new Vt,r),o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Te.ACCESS_TOKEN)}this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching accessToken schema with value containing accessToken credentialType field but value failed AccessTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed accessToken validation on key: ${e}`);break;case Te.REFRESH_TOKEN:if(Jt.isRefreshTokenEntity(r)){this.logger.trace("BrowserCacheManager:createKeyMaps - refreshToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - refreshToken with key: ${e} found, saving key to token key map`);const t=bt.toObject(new Jt,r),o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Te.REFRESH_TOKEN)}this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching refreshToken schema with value containing refreshToken credentialType field but value failed RefreshTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed refreshToken validation on key: ${e}`)}}}if(this.isAccountKey(e)){const t=this.getItem(e);if(t){const r=this.validateAndParseJson(t);r&&At.isAccountEntity(r)&&(this.logger.trace("BrowserCacheManager:createKeyMaps - account found, saving key to account key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - account with key: ${e} found, saving key to account key map`),this.addAccountKeyToMap(e))}}}))}validateAndParseJson(e){try{const t=JSON.parse(e);return t&&"object"==typeof t?t:null}catch(e){return null}}getItem(e){return this.browserStorage.getItem(e)}setItem(e,t){this.browserStorage.setItem(e,t)}getAccount(e){this.logger.trace("BrowserCacheManager.getAccount called");const t=this.getItem(e);if(!t)return this.removeAccountKeyFromMap(e),null;const r=this.validateAndParseJson(t);return r&&At.isAccountEntity(r)?bt.toObject(new At,r):(this.removeAccountKeyFromMap(e),null)}setAccount(e){this.logger.trace("BrowserCacheManager.setAccount called");const t=e.generateAccountKey();this.setItem(t,JSON.stringify(e)),this.addAccountKeyToMap(t)}getAccountKeys(){this.logger.trace("BrowserCacheManager.getAccountKeys called");const e=this.getItem(Wr);return e?JSON.parse(e):(this.logger.verbose("BrowserCacheManager.getAccountKeys - No account keys found"),[])}addAccountKeyToMap(e){this.logger.trace("BrowserCacheManager.addAccountKeyToMap called"),this.logger.tracePii(`BrowserCacheManager.addAccountKeyToMap called with key: ${e}`);const t=this.getAccountKeys();-1===t.indexOf(e)?(t.push(e),this.setItem(Wr,JSON.stringify(t)),this.logger.verbose("BrowserCacheManager.addAccountKeyToMap account key added")):this.logger.verbose("BrowserCacheManager.addAccountKeyToMap account key already exists in map")}removeAccountKeyFromMap(e){this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap called"),this.logger.tracePii(`BrowserCacheManager.removeAccountKeyFromMap called with key: ${e}`);const t=this.getAccountKeys(),r=t.indexOf(e);r>-1?(t.splice(r,1),this.setItem(Wr,JSON.stringify(t)),this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap account key removed")):this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap key not found in existing map")}async removeAccount(e){super.removeAccount(e),this.removeAccountKeyFromMap(e)}removeIdToken(e){super.removeIdToken(e),this.removeTokenKey(e,Te.ID_TOKEN)}async removeAccessToken(e){super.removeAccessToken(e),this.removeTokenKey(e,Te.ACCESS_TOKEN)}removeRefreshToken(e){super.removeRefreshToken(e),this.removeTokenKey(e,Te.REFRESH_TOKEN)}getTokenKeys(){this.logger.trace("BrowserCacheManager.getTokenKeys called");const e=this.getItem(`${Vr}.${this.clientId}`);if(e){const t=this.validateAndParseJson(e);if(t&&t.hasOwnProperty("idToken")&&t.hasOwnProperty("accessToken")&&t.hasOwnProperty("refreshToken"))return t;this.logger.error("BrowserCacheManager.getTokenKeys - Token keys found but in an unknown format. Returning empty key map.")}else this.logger.verbose("BrowserCacheManager.getTokenKeys - No token keys found");return{idToken:[],accessToken:[],refreshToken:[]}}addTokenKey(e,t){this.logger.trace("BrowserCacheManager addTokenKey called");const r=this.getTokenKeys();switch(t){case Te.ID_TOKEN:-1===r.idToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - idToken added to map"),r.idToken.push(e));break;case Te.ACCESS_TOKEN:-1===r.accessToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - accessToken added to map"),r.accessToken.push(e));break;case Te.REFRESH_TOKEN:-1===r.refreshToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - refreshToken added to map"),r.refreshToken.push(e));break;default:this.logger.error(`BrowserCacheManager:addTokenKey - CredentialType provided invalid. CredentialType: ${t}`),ht.createUnexpectedCredentialTypeError()}this.setItem(`${Vr}.${this.clientId}`,JSON.stringify(r))}removeTokenKey(e,t){this.logger.trace("BrowserCacheManager removeTokenKey called");const r=this.getTokenKeys();switch(t){case Te.ID_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove idToken with key: ${e} from map`);const o=r.idToken.indexOf(e);o>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - idToken removed from map"),r.idToken.splice(o,1)):this.logger.info("BrowserCacheManager: removeTokenKey - idToken does not exist in map. Either it was previously removed or it was never added.");break;case Te.ACCESS_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove accessToken with key: ${e} from map`);const n=r.accessToken.indexOf(e);n>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - accessToken removed from map"),r.accessToken.splice(n,1)):this.logger.info("BrowserCacheManager: removeTokenKey - accessToken does not exist in map. Either it was previously removed or it was never added.");break;case Te.REFRESH_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove refreshToken with key: ${e} from map`);const i=r.refreshToken.indexOf(e);i>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - refreshToken removed from map"),r.refreshToken.splice(i,1)):this.logger.info("BrowserCacheManager: removeTokenKey - refreshToken does not exist in map. Either it was previously removed or it was never added.");break;default:this.logger.error(`BrowserCacheManager:removeTokenKey - CredentialType provided invalid. CredentialType: ${t}`),ht.createUnexpectedCredentialTypeError()}this.setItem(`${Vr}.${this.clientId}`,JSON.stringify(r))}getIdTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeTokenKey(e,Te.ID_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Yt.isIdTokenEntity(r)?(this.logger.trace("BrowserCacheManager.getIdTokenCredential: cache hit"),bt.toObject(new Yt,r)):(this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeTokenKey(e,Te.ID_TOKEN),null)}setIdTokenCredential(e){this.logger.trace("BrowserCacheManager.setIdTokenCredential called");const t=e.generateCredentialKey();this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Te.ID_TOKEN)}getAccessTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,Te.ACCESS_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Vt.isAccessTokenEntity(r)?(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: cache hit"),bt.toObject(new Vt,r)):(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,Te.ACCESS_TOKEN),null)}setAccessTokenCredential(e){this.logger.trace("BrowserCacheManager.setAccessTokenCredential called");const t=e.generateCredentialKey();this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Te.ACCESS_TOKEN)}getRefreshTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,Te.REFRESH_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Jt.isRefreshTokenEntity(r)?(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: cache hit"),bt.toObject(new Jt,r)):(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,Te.REFRESH_TOKEN),null)}setRefreshTokenCredential(e){this.logger.trace("BrowserCacheManager.setRefreshTokenCredential called");const t=e.generateCredentialKey();this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Te.REFRESH_TOKEN)}getAppMetadata(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&hr.isAppMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAppMetadata: cache hit"),bt.toObject(new hr,r)):(this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null)}setAppMetadata(e){this.logger.trace("BrowserCacheManager.setAppMetadata called");const t=e.generateAppMetadataKey();this.setItem(t,JSON.stringify(e))}getServerTelemetry(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getServerTelemetry: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&_r.isServerTelemetryEntity(e,r)?(this.logger.trace("BrowserCacheManager.getServerTelemetry: cache hit"),bt.toObject(new _r,r)):(this.logger.trace("BrowserCacheManager.getServerTelemetry: called, no cache hit"),null)}setServerTelemetry(e,t){this.logger.trace("BrowserCacheManager.setServerTelemetry called"),this.setItem(e,JSON.stringify(t))}getAuthorityMetadata(e){const t=this.internalStorage.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAuthorityMetadata: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&wr.isAuthorityMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAuthorityMetadata: cache hit"),bt.toObject(new wr,r)):null}getAuthorityMetadataKeys(){return this.internalStorage.getKeys().filter((e=>this.isAuthorityMetadata(e)))}setWrapperMetadata(e,t){this.internalStorage.setItem(Jr,e),this.internalStorage.setItem(Xr,t)}getWrapperMetadata(){return[this.internalStorage.getItem(Jr)||t.EMPTY_STRING,this.internalStorage.getItem(Xr)||t.EMPTY_STRING]}setAuthorityMetadata(e,t){this.logger.trace("BrowserCacheManager.setAuthorityMetadata called"),this.internalStorage.setItem(e,JSON.stringify(t))}getActiveAccount(){const e=this.generateCacheKey(y),t=this.getItem(e);if(!t){this.logger.trace("BrowserCacheManager.getActiveAccount: No active account filters cache schema found, looking for legacy schema");const e=this.generateCacheKey(f),t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getActiveAccount: No active account found"),null;const r=this.getAccountInfoByFilter({localAccountId:t})[0]||null;return r?(this.logger.trace("BrowserCacheManager.getActiveAccount: Legacy active account cache schema found"),this.logger.trace("BrowserCacheManager.getActiveAccount: Adding active account filters cache schema"),this.setActiveAccount(r),r):null}const r=this.validateAndParseJson(t);return r?(this.logger.trace("BrowserCacheManager.getActiveAccount: Active account filters schema found"),this.getAccountInfoByFilter({homeAccountId:r.homeAccountId,localAccountId:r.localAccountId})[0]||null):(this.logger.trace("BrowserCacheManager.getActiveAccount: No active account found"),null)}setActiveAccount(e){const t=this.generateCacheKey(y),r=this.generateCacheKey(f);if(e){this.logger.verbose("setActiveAccount: Active account set");const o={homeAccountId:e.homeAccountId,localAccountId:e.localAccountId};this.browserStorage.setItem(t,JSON.stringify(o)),this.browserStorage.setItem(r,e.localAccountId)}else this.logger.verbose("setActiveAccount: No account passed, active account not set"),this.browserStorage.removeItem(t),this.browserStorage.removeItem(r)}getAccountInfoByFilter(e){const t=this.getAllAccounts();return this.logger.trace(`BrowserCacheManager.getAccountInfoByFilter: total ${t.length} accounts found`),t.filter((t=>(!e.username||e.username.toLowerCase()===t.username.toLowerCase())&&((!e.homeAccountId||e.homeAccountId===t.homeAccountId)&&((!e.localAccountId||e.localAccountId===t.localAccountId)&&((!e.tenantId||e.tenantId===t.tenantId)&&(!e.environment||e.environment===t.environment))))))}getAccountInfoByHints(e,t){const r=this.getAllAccounts().filter((r=>{if(t){const e=r.idTokenClaims&&r.idTokenClaims.sid;return t===e}return!!e&&e===r.username}));if(1===r.length)return r[0];if(r.length>1)throw ht.createMultipleMatchingAccountsInCacheError();return null}getThrottlingCache(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getThrottlingCache: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&kr.isThrottlingEntity(e,r)?(this.logger.trace("BrowserCacheManager.getThrottlingCache: cache hit"),bt.toObject(new kr,r)):(this.logger.trace("BrowserCacheManager.getThrottlingCache: called, no cache hit"),null)}setThrottlingCache(e,t){this.logger.trace("BrowserCacheManager.setThrottlingCache called"),this.setItem(e,JSON.stringify(t))}getTemporaryCache(e,t){const r=t?this.generateCacheKey(e):e;if(this.cacheConfig.storeAuthStateInCookie){const e=this.getItemCookie(r);if(e)return this.logger.trace("BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies"),e}const o=this.temporaryCacheStorage.getItem(r);if(!o){if(this.cacheConfig.cacheLocation===zr.LocalStorage){const e=this.browserStorage.getItem(r);if(e)return this.logger.trace("BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage"),e}return this.logger.trace("BrowserCacheManager.getTemporaryCache: No cache item found in local storage"),null}return this.logger.trace("BrowserCacheManager.getTemporaryCache: Temporary cache item returned"),o}setTemporaryCache(e,t,r){const o=r?this.generateCacheKey(e):e;this.temporaryCacheStorage.setItem(o,t),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie"),this.setItemCookie(o,t))}removeItem(e){this.browserStorage.removeItem(e),this.temporaryCacheStorage.removeItem(e),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie"),this.clearItemCookie(e))}containsKey(e){return this.browserStorage.containsKey(e)||this.temporaryCacheStorage.containsKey(e)}getKeys(){return[...this.browserStorage.getKeys(),...this.temporaryCacheStorage.getKeys()]}async clear(){await this.removeAllAccounts(),this.removeAppMetadata(),this.getKeys().forEach((e=>{!this.browserStorage.containsKey(e)&&!this.temporaryCacheStorage.containsKey(e)||-1===e.indexOf(t.CACHE_PREFIX)&&-1===e.indexOf(this.clientId)||this.removeItem(e)})),this.internalStorage.clear()}setItemCookie(e,t,r){let o=`${encodeURIComponent(e)}=${encodeURIComponent(t)};path=/;SameSite=Lax;`;if(r){o+=`expires=${this.getCookieExpirationTime(r)};`}this.cacheConfig.secureCookies&&(o+="Secure;"),document.cookie=o}getItemCookie(e){const r=`${encodeURIComponent(e)}=`,o=document.cookie.split(";");for(let e=0;e<o.length;e++){let t=o[e];for(;" "===t.charAt(0);)t=t.substring(1);if(0===t.indexOf(r))return decodeURIComponent(t.substring(r.length,t.length))}return t.EMPTY_STRING}clearMsalCookies(){const e=`${t.CACHE_PREFIX}.${this.clientId}`;document.cookie.split(";").forEach((t=>{for(;" "===t.charAt(0);)t=t.substring(1);if(0===t.indexOf(e)){const e=t.split("=")[0];this.clearItemCookie(e)}}))}clearItemCookie(e){this.setItemCookie(e,t.EMPTY_STRING,-1)}getCookieExpirationTime(e){const t=new Date;return new Date(t.getTime()+e*this.COOKIE_LIFE_MULTIPLIER).toUTCString()}getCache(){return this.browserStorage}setCache(){}generateCacheKey(e){return this.validateAndParseJson(e)?JSON.stringify(e):ut.startsWith(e,t.CACHE_PREFIX)||ut.startsWith(e,g)?e:`${t.CACHE_PREFIX}.${this.clientId}.${e}`}generateAuthorityKey(e){const{libraryState:{id:t}}=or.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${Yr.AUTHORITY}.${t}`)}generateNonceKey(e){const{libraryState:{id:t}}=or.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${Yr.NONCE_IDTOKEN}.${t}`)}generateStateKey(e){const{libraryState:{id:t}}=or.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${Yr.REQUEST_STATE}.${t}`)}getCachedAuthority(e){const t=this.generateStateKey(e),r=this.getTemporaryCache(t);if(!r)return null;const o=this.generateAuthorityKey(r);return this.getTemporaryCache(o)}updateCacheEntries(e,t,r,o,n){this.logger.trace("BrowserCacheManager.updateCacheEntries called");const i=this.generateStateKey(e);this.setTemporaryCache(i,e,!1);const a=this.generateNonceKey(e);this.setTemporaryCache(a,t,!1);const s=this.generateAuthorityKey(e);if(this.setTemporaryCache(s,r,!1),n){const e={credential:n.homeAccountId,type:Kt};this.setTemporaryCache(Yr.CCS_CREDENTIAL,JSON.stringify(e),!0)}else if(!ut.isEmpty(o)){const e={credential:o,type:Gt};this.setTemporaryCache(Yr.CCS_CREDENTIAL,JSON.stringify(e),!0)}}resetRequestCache(e){this.logger.trace("BrowserCacheManager.resetRequestCache called"),ut.isEmpty(e)||this.getKeys().forEach((t=>{-1!==t.indexOf(e)&&this.removeItem(t)})),e&&(this.removeItem(this.generateStateKey(e)),this.removeItem(this.generateNonceKey(e)),this.removeItem(this.generateAuthorityKey(e))),this.removeItem(this.generateCacheKey(Yr.REQUEST_PARAMS)),this.removeItem(this.generateCacheKey(Yr.ORIGIN_URI)),this.removeItem(this.generateCacheKey(Yr.URL_HASH)),this.removeItem(this.generateCacheKey(Yr.CORRELATION_ID)),this.removeItem(this.generateCacheKey(Yr.CCS_CREDENTIAL)),this.removeItem(this.generateCacheKey(Yr.NATIVE_REQUEST)),this.setInteractionInProgress(!1)}cleanRequestByState(e){if(this.logger.trace("BrowserCacheManager.cleanRequestByState called"),e){const r=this.generateStateKey(e),o=this.temporaryCacheStorage.getItem(r);this.logger.infoPii(`BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: ${o}`),this.resetRequestCache(o||t.EMPTY_STRING)}this.clearMsalCookies()}cleanRequestByInteractionType(e){this.logger.trace("BrowserCacheManager.cleanRequestByInteractionType called"),this.getKeys().forEach((t=>{if(-1===t.indexOf(Yr.REQUEST_STATE))return;const r=this.temporaryCacheStorage.getItem(t);if(!r)return;const o=ho.extractBrowserRequestState(this.cryptoImpl,r);o&&o.interactionType===e&&(this.logger.infoPii(`BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: ${r}`),this.resetRequestCache(r))})),this.clearMsalCookies(),this.setInteractionInProgress(!1)}cacheCodeRequest(e,t){this.logger.trace("BrowserCacheManager.cacheCodeRequest called");const r=t.base64Encode(JSON.stringify(e));this.setTemporaryCache(Yr.REQUEST_PARAMS,r,!0)}getCachedRequest(e,t){this.logger.trace("BrowserCacheManager.getCachedRequest called");const r=this.getTemporaryCache(Yr.REQUEST_PARAMS,!0);if(!r)throw Hr.createNoTokenRequestCacheError();const o=this.validateAndParseJson(t.base64Decode(r));if(!o)throw Hr.createUnableToParseTokenRequestCacheError();if(this.removeItem(this.generateCacheKey(Yr.REQUEST_PARAMS)),ut.isEmpty(o.authority)){const t=this.generateAuthorityKey(e),r=this.getTemporaryCache(t);if(!r)throw Hr.createNoCachedAuthorityError();o.authority=r}return o}getCachedNativeRequest(){this.logger.trace("BrowserCacheManager.getCachedNativeRequest called");const e=this.getTemporaryCache(Yr.NATIVE_REQUEST,!0);if(!e)return this.logger.trace("BrowserCacheManager.getCachedNativeRequest: No cached native request found"),null;const t=this.validateAndParseJson(e);return t||(this.logger.error("BrowserCacheManager.getCachedNativeRequest: Unable to parse native request"),null)}isInteractionInProgress(e){const t=this.getInteractionInProgress();return e?t===this.clientId:!!t}getInteractionInProgress(){const e=`${t.CACHE_PREFIX}.${Yr.INTERACTION_STATUS_KEY}`;return this.getTemporaryCache(e,!1)}setInteractionInProgress(e){const r=`${t.CACHE_PREFIX}.${Yr.INTERACTION_STATUS_KEY}`;if(e){if(this.getInteractionInProgress())throw Hr.createInteractionInProgressError();this.setTemporaryCache(r,this.clientId,!1)}else e||this.getInteractionInProgress()!==this.clientId||this.removeItem(r)}getLegacyLoginHint(){const e=this.getTemporaryCache(g);e&&(this.browserStorage.removeItem(g),this.logger.verbose("Cached ADAL id token retrieved."));const t=this.getTemporaryCache(h,!0);t&&(this.removeItem(this.generateCacheKey(h)),this.logger.verbose("Cached MSAL.js v1 id token retrieved"));const r=t||e;if(r){const e=new Rt(r,this.cryptoImpl);if(e.claims&&e.claims.preferred_username)return this.logger.verbose("No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 preferred_username as loginHint"),e.claims.preferred_username;if(e.claims&&e.claims.upn)return this.logger.verbose("No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 upn as loginHint"),e.claims.upn;this.logger.verbose("No SSO params used and ADAL/MSAL v1 token retrieved, however, no account hint claim found. Enable preferred_username or upn id token claim to get SSO.")}return null}updateCredentialCacheKey(e,t){const r=t.generateCredentialKey();if(e!==r){const o=this.getItem(e);if(o)return this.removeItem(e),this.setItem(r,o),this.logger.verbose(`Updated an outdated ${t.credentialType} cache key`),r;this.logger.error(`Attempted to update an outdated ${t.credentialType} cache key but no item matching the outdated key was found in storage`)}return e}getRedirectRequestContext(){return this.getTemporaryCache(Yr.REDIRECT_CONTEXT,!0)}setRedirectRequestContext(e){this.setTemporaryCache(Yr.REDIRECT_CONTEXT,e,!0)}}class go extends rr{constructor(e,t,r,o,n){super(e,t,r,o,n),this.account=e}}const po="@azure/msal-browser",mo="3.0.0-beta.1";class fo{async sendGetRequestAsync(e,t){let r;try{r=await fetch(e,{method:Qr,headers:this.getFetchHeaders(t)})}catch(t){throw window.navigator.onLine?Hr.createGetRequestFailedError(t,e):Hr.createNoNetworkConnectivityError()}try{return{headers:this.getHeaderDict(r.headers),body:await r.json(),status:r.status}}catch(t){throw Hr.createFailedToParseNetworkResponseError(e)}}async sendPostRequestAsync(e,r){const o=r&&r.body||t.EMPTY_STRING;let n;try{n=await fetch(e,{method:jr,headers:this.getFetchHeaders(r),body:o})}catch(t){throw window.navigator.onLine?Hr.createPostRequestFailedError(t,e):Hr.createNoNetworkConnectivityError()}try{return{headers:this.getHeaderDict(n.headers),body:await n.json(),status:n.status}}catch(t){throw Hr.createFailedToParseNetworkResponseError(e)}}getFetchHeaders(e){const t=new Headers;if(!e||!e.headers)return t;const r=e.headers;return Object.keys(r).forEach((e=>{t.append(e,r[e])})),t}getHeaderDict(e){const t={};return e.forEach(((e,r)=>{t[r]=e})),t}}class yo{async sendGetRequestAsync(e,t){return this.sendRequestAsync(e,Qr,t)}async sendPostRequestAsync(e,t){return this.sendRequestAsync(e,jr,t)}sendRequestAsync(e,t,r){return new Promise(((o,n)=>{const i=new XMLHttpRequest;if(i.open(t,e,!0),this.setXhrHeaders(i,r),i.onload=()=>{(i.status<200||i.status>=300)&&n(t===jr?Hr.createPostRequestFailedError(`Failed with status ${i.status}`,e):Hr.createGetRequestFailedError(`Failed with status ${i.status}`,e));try{const e=JSON.parse(i.responseText),t={headers:this.getHeaderDict(i),body:e,status:i.status};o(t)}catch(t){n(Hr.createFailedToParseNetworkResponseError(e))}},i.onerror=()=>{window.navigator.onLine?n(t===jr?Hr.createPostRequestFailedError(`Failed with status ${i.status}`,e):Hr.createGetRequestFailedError(`Failed with status ${i.status}`,e)):n(Hr.createNoNetworkConnectivityError())},t===jr&&r&&r.body)i.send(r.body);else{if(t!==Qr)throw Hr.createHttpMethodNotImplementedError(t);i.send()}}))}setXhrHeaders(e,t){if(t&&t.headers){const r=t.headers;Object.keys(r).forEach((t=>{e.setRequestHeader(t,r[t])}))}}getHeaderDict(e){const t=e.getAllResponseHeaders().trim().split(/[\r\n]+/),r={};return t.forEach((e=>{const t=e.split(": "),o=t.shift(),n=t.join(": ");o&&n&&(r[o]=n)})),r}}class Co{static clearHash(e){e.location.hash=t.EMPTY_STRING,"function"==typeof e.history.replaceState&&e.history.replaceState(null,t.EMPTY_STRING,`${e.location.origin}${e.location.pathname}${e.location.search}`)}static replaceHash(e){const r=e.split("#");r.shift(),window.location.hash=r.length>0?r.join("#"):t.EMPTY_STRING}static isInIframe(){return window.parent!==window}static isInPopup(){return"undefined"!=typeof window&&!!window.opener&&window.opener!==window&&"string"==typeof window.name&&0===window.name.indexOf(`${Lr.POPUP_NAME_PREFIX}.`)}static getCurrentUri(){return window.location.href.split("?")[0].split("#")[0]}static getHomepage(){const e=new nr(window.location.href).getUrlComponents();return`${e.Protocol}//${e.HostNameAndPort}/`}static getBrowserNetworkClient(){return window.fetch&&window.Headers?new fo:new yo}static blockReloadInHiddenIframes(){if(nr.hashContainsKnownProperties(window.location.hash)&&Co.isInIframe())throw Hr.createBlockReloadInHiddenIframeError()}static blockRedirectInIframe(t,r){const o=Co.isInIframe();if(t===e.InteractionType.Redirect&&o&&!r)throw Hr.createRedirectInIframeError(o)}static blockAcquireTokenInPopups(){if(Co.isInPopup())throw Hr.createBlockAcquireTokenInPopupsError()}static blockNonBrowserEnvironment(e){if(!e)throw Hr.createNonBrowserEnvironmentError()}static blockNativeBrokerCalledBeforeInitialized(e,t){if(e&&!t)throw Hr.createNativeBrokerCalledBeforeInitialize()}static detectIEOrEdge(){const e=window.navigator.userAgent,t=e.indexOf("MSIE "),r=e.indexOf("Trident/"),o=e.indexOf("Edge/");return t>0||r>0||o>0}}class vo{constructor(e,t,r,o,n,i,a,s,c){this.config=e,this.browserStorage=t,this.browserCrypto=r,this.networkClient=this.config.system.networkClient,this.eventHandler=n,this.navigationClient=i,this.nativeMessageHandler=s,this.correlationId=c||this.browserCrypto.createNewGuid(),this.logger=o.clone(Lr.MSAL_SKU,mo,this.correlationId),this.performanceClient=a}async clearCacheOnLogout(e){if(e){At.accountInfoIsEqual(e,this.browserStorage.getActiveAccount(),!1)&&(this.logger.verbose("Setting active account to null"),this.browserStorage.setActiveAccount(null));try{await this.browserStorage.removeAccount(At.generateAccountCacheKey(e)),this.logger.verbose("Cleared cache items belonging to the account provided in the logout request.")}catch(e){this.logger.error("Account provided in logout request was not found. Local cache unchanged.")}}else try{this.logger.verbose("No account provided in logout request, clearing all cache items.",this.correlationId),await this.browserStorage.clear(),await this.browserCrypto.clearKeystore()}catch(e){this.logger.error("Attempted to clear all MSAL cache items and failed. Local cache unchanged.")}}async initializeBaseRequest(e,t){this.performanceClient.addQueueMeasurement(ir.InitializeBaseRequest,e.correlationId),this.logger.verbose("Initializing BaseAuthRequest");const r=e.authority||this.config.auth.authority;t&&await this.validateRequestAuthority(r,t);const o=[...e&&e.scopes||[]],n={...e,correlationId:this.correlationId,authority:r,scopes:o};if(n.authenticationScheme){if(n.authenticationScheme===xe.SSH){if(!e.sshJwk)throw vt.createMissingSshJwkError();if(!e.sshKid)throw vt.createMissingSshKidError()}this.logger.verbose(`Authentication Scheme set to "${n.authenticationScheme}" as configured in Auth request`)}else n.authenticationScheme=xe.BEARER,this.logger.verbose('Authentication Scheme wasn\'t explicitly set in request, defaulting to "Bearer" request');return this.config.cache.claimsBasedCachingEnabled&&e.claims&&!ut.isEmptyObj(e.claims)&&(n.requestedClaimsHash=await this.browserCrypto.hashString(e.claims)),n}getRedirectUri(e){this.logger.verbose("getRedirectUri called");const t=e||this.config.auth.redirectUri||Co.getCurrentUri();return nr.getAbsoluteUrl(t,Co.getCurrentUri())}async validateRequestAuthority(e,t){if(!(await this.getDiscoveredAuthority(e)).isAlias(t.environment))throw vt.createAuthorityMismatchError()}initializeServerTelemetryManager(e,t){this.logger.verbose("initializeServerTelemetryManager called");const r={clientId:this.config.auth.clientId,correlationId:this.correlationId,apiId:e,forceRefresh:t||!1,wrapperSKU:this.browserStorage.getWrapperMetadata()[0],wrapperVer:this.browserStorage.getWrapperMetadata()[1]};return new Mr(r,this.browserStorage)}async getDiscoveredAuthority(e){this.logger.verbose("getDiscoveredAuthority called");const t={protocolMode:this.config.auth.protocolMode,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata};return e?(this.logger.verbose("Creating discovered authority with request authority"),await Ir.createDiscoveredInstance(e,this.config.system.networkClient,this.browserStorage,t,this.logger)):(this.logger.verbose("Creating discovered authority with configured authority"),await Ir.createDiscoveredInstance(this.config.auth.authority,this.config.system.networkClient,this.browserStorage,t,this.logger))}}class wo extends vo{async initializeAuthorizationCodeRequest(e){this.performanceClient.addQueueMeasurement(ir.StandardInteractionClientInitializeAuthorizationCodeRequest,e.correlationId),this.logger.verbose("initializeAuthorizationRequest called",e.correlationId);const r=await this.browserCrypto.generatePkceCodes(),o={...e,redirectUri:e.redirectUri,code:t.EMPTY_STRING,codeVerifier:r.verifier};return e.codeChallenge=r.challenge,e.codeChallengeMethod=t.S256_CODE_CHALLENGE_METHOD,o}initializeLogoutRequest(e){this.logger.verbose("initializeLogoutRequest called",e?.correlationId);const t={correlationId:this.correlationId||this.browserCrypto.createNewGuid(),...e};if(e)if(e.logoutHint)this.logger.verbose("logoutHint has already been set in logoutRequest");else if(e.account){const r=this.getLogoutHintFromIdTokenClaims(e.account);r&&(this.logger.verbose("Setting logoutHint to login_hint ID Token Claim value for the account provided"),t.logoutHint=r)}else this.logger.verbose("logoutHint was not set and account was not passed into logout request, logoutHint will not be set");else this.logger.verbose("logoutHint will not be set since no logout request was configured");return e&&null===e.postLogoutRedirectUri?this.logger.verbose("postLogoutRedirectUri passed as null, not setting post logout redirect uri",t.correlationId):e&&e.postLogoutRedirectUri?(this.logger.verbose("Setting postLogoutRedirectUri to uri set on logout request",t.correlationId),t.postLogoutRedirectUri=nr.getAbsoluteUrl(e.postLogoutRedirectUri,Co.getCurrentUri())):null===this.config.auth.postLogoutRedirectUri?this.logger.verbose("postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect",t.correlationId):this.config.auth.postLogoutRedirectUri?(this.logger.verbose("Setting postLogoutRedirectUri to configured uri",t.correlationId),t.postLogoutRedirectUri=nr.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri,Co.getCurrentUri())):(this.logger.verbose("Setting postLogoutRedirectUri to current page",t.correlationId),t.postLogoutRedirectUri=nr.getAbsoluteUrl(Co.getCurrentUri(),Co.getCurrentUri())),t}getLogoutHintFromIdTokenClaims(e){const t=e.idTokenClaims;if(t){if(t.login_hint)return t.login_hint;this.logger.verbose("The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request")}else this.logger.verbose("The provided account does not contain ID Token Claims, logoutHint will not be added to logout request");return null}async createAuthCodeClient(e,t,r){this.performanceClient.addQueueMeasurement(ir.StandardInteractionClientCreateAuthCodeClient,this.correlationId),this.performanceClient.setPreQueueTime(ir.StandardInteractionClientGetClientConfiguration,this.correlationId);const o=await this.getClientConfiguration(e,t,r);return new pr(o,this.performanceClient)}async getClientConfiguration(e,r,o){this.performanceClient.addQueueMeasurement(ir.StandardInteractionClientGetClientConfiguration,this.correlationId),this.logger.verbose("getClientConfiguration called",this.correlationId),this.performanceClient.setPreQueueTime(ir.StandardInteractionClientGetDiscoveredAuthority,this.correlationId);const n=await this.getDiscoveredAuthority(r,o),i=this.config.system.loggerOptions;return{authOptions:{clientId:this.config.auth.clientId,authority:n,clientCapabilities:this.config.auth.clientCapabilities},systemOptions:{tokenRenewalOffsetSeconds:this.config.system.tokenRenewalOffsetSeconds,preventCorsPreflight:!0},loggerOptions:{loggerCallback:i.loggerCallback,piiLoggingEnabled:i.piiLoggingEnabled,logLevel:i.logLevel,correlationId:this.correlationId},cacheOptions:{claimsBasedCachingEnabled:this.config.cache.claimsBasedCachingEnabled},cryptoInterface:this.browserCrypto,networkInterface:this.networkClient,storageInterface:this.browserStorage,serverTelemetryManager:e,libraryInfo:{sku:Lr.MSAL_SKU,version:mo,cpu:t.EMPTY_STRING,os:t.EMPTY_STRING},telemetry:this.config.telemetry}}validateAndExtractStateFromHash(e,t,r){if(this.logger.verbose("validateAndExtractStateFromHash called",r),!e.state)throw Hr.createHashDoesNotContainStateError();const o=ho.extractBrowserRequestState(this.browserCrypto,e.state);if(!o)throw Hr.createUnableToParseStateError();if(o.interactionType!==t)throw Hr.createStateInteractionTypeMismatchError();return this.logger.verbose("Returning state from hash",r),e.state}async getDiscoveredAuthority(e,t){this.performanceClient.addQueueMeasurement(ir.StandardInteractionClientGetDiscoveredAuthority,this.correlationId),this.logger.verbose("getDiscoveredAuthority called",this.correlationId);const r=this.performanceClient?.startMeasurement(ir.StandardInteractionClientGetDiscoveredAuthority,this.correlationId),o={protocolMode:this.config.auth.protocolMode,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata,skipAuthorityMetadataCache:this.config.auth.skipAuthorityMetadataCache},n=e||this.config.auth.authority,i=Er.generateAuthority(n,t||this.config.auth.azureCloudOptions);return this.logger.verbose("Creating discovered authority with configured authority",this.correlationId),this.performanceClient.setPreQueueTime(ir.AuthorityFactoryCreateDiscoveredInstance,this.correlationId),await Ir.createDiscoveredInstance(i,this.config.system.networkClient,this.browserStorage,o,this.logger,this.performanceClient,this.correlationId).then((e=>(r.endMeasurement({success:!0}),e))).catch((e=>{throw r.endMeasurement({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e}))}async initializeAuthorizationRequest(e,r){this.performanceClient.addQueueMeasurement(ir.StandardInteractionClientInitializeAuthorizationRequest,this.correlationId),this.logger.verbose("initializeAuthorizationRequest called",this.correlationId);const o=this.getRedirectUri(e.redirectUri),n={interactionType:r},i=or.setRequestState(this.browserCrypto,e&&e.state||t.EMPTY_STRING,n);this.performanceClient.setPreQueueTime(ir.InitializeBaseRequest,this.correlationId);const a={...await this.initializeBaseRequest(e),redirectUri:o,state:i,nonce:e.nonce||this.browserCrypto.createNewGuid(),responseMode:ge},s=e.account||this.browserStorage.getActiveAccount();if(s&&(this.logger.verbose("Setting validated request account",this.correlationId),this.logger.verbosePii(`Setting validated request account: ${s.homeAccountId}`,this.correlationId),a.account=s),ut.isEmpty(a.loginHint)&&!s){const e=this.browserStorage.getLegacyLoginHint();e&&(a.loginHint=e)}return a}}class To{constructor(e,t,r,o,n){this.authModule=e,this.browserStorage=t,this.authCodeRequest=r,this.logger=o,this.performanceClient=n}async handleCodeResponseFromHash(e,t,r,o){if(this.performanceClient.addQueueMeasurement(ir.HandleCodeResponseFromHash,this.authCodeRequest.correlationId),this.logger.verbose("InteractionHandler.handleCodeResponse called"),ut.isEmpty(e))throw Hr.createEmptyHashError();const n=this.browserStorage.generateStateKey(t),i=this.browserStorage.getTemporaryCache(n);if(!i)throw ht.createStateNotFoundError("Cached State");let a;try{a=this.authModule.handleFragmentResponse(e,i)}catch(e){throw e instanceof Ft&&e.subError===Ur.userCancelledError.code?Hr.createUserCancelledError():e}return this.performanceClient.setPreQueueTime(ir.HandleCodeResponseFromServer,this.authCodeRequest.correlationId),this.handleCodeResponseFromServer(a,t,r,o)}async handleCodeResponseFromServer(e,t,r,o,n=!0){this.performanceClient.addQueueMeasurement(ir.HandleCodeResponseFromServer,this.authCodeRequest.correlationId),this.logger.trace("InteractionHandler.handleCodeResponseFromServer called");const i=this.browserStorage.generateStateKey(t),a=this.browserStorage.getTemporaryCache(i);if(!a)throw ht.createStateNotFoundError("Cached State");const s=this.browserStorage.generateNonceKey(a),c=this.browserStorage.getTemporaryCache(s);if(this.authCodeRequest.code=e.code,e.cloud_instance_host_name&&(this.performanceClient.setPreQueueTime(ir.UpdateTokenEndpointAuthority,this.authCodeRequest.correlationId),await this.updateTokenEndpointAuthority(e.cloud_instance_host_name,r,o)),n&&(e.nonce=c||void 0),e.state=a,e.client_info)this.authCodeRequest.clientInfo=e.client_info;else{const e=this.checkCcsCredentials();e&&(this.authCodeRequest.ccsCredential=e)}this.performanceClient.setPreQueueTime(ir.AuthClientAcquireToken,this.authCodeRequest.correlationId);const d=await this.authModule.acquireToken(this.authCodeRequest,e);return this.browserStorage.cleanRequestByState(t),d}async updateTokenEndpointAuthority(e,t,r){this.performanceClient.addQueueMeasurement(ir.UpdateTokenEndpointAuthority,this.authCodeRequest.correlationId);const o=`https://${e}/${t.tenant}/`,n=await Ir.createDiscoveredInstance(o,r,this.browserStorage,t.options,this.logger,this.performanceClient,this.authCodeRequest.correlationId);this.authModule.updateAuthority(n)}checkCcsCredentials(){const e=this.browserStorage.getTemporaryCache(Yr.CCS_CREDENTIAL,!0);if(e)try{return JSON.parse(e)}catch(t){this.authModule.logger.error("Cache credential could not be parsed"),this.authModule.logger.errorPii(`Cache credential could not be parsed: ${e}`)}return null}}class Eo extends To{constructor(e,t,r,o,n,i){super(e,t,r,o,i),this.browserCrypto=n}async initiateAuthRequest(e,t){if(this.logger.verbose("RedirectHandler.initiateAuthRequest called"),ut.isEmpty(e))throw this.logger.info("RedirectHandler.initiateAuthRequest: Navigate url is empty"),Hr.createEmptyNavigationUriError();{t.redirectStartPage&&(this.logger.verbose("RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page"),this.browserStorage.setTemporaryCache(Yr.ORIGIN_URI,t.redirectStartPage,!0)),this.browserStorage.setTemporaryCache(Yr.CORRELATION_ID,this.authCodeRequest.correlationId,!0),this.browserStorage.cacheCodeRequest(this.authCodeRequest,this.browserCrypto),this.logger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${e}`);const r={apiId:Zr.acquireTokenRedirect,timeout:t.redirectTimeout,noHistory:!1};if("function"==typeof t.onRedirectNavigate){this.logger.verbose("RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback");return!1!==t.onRedirectNavigate(e)?(this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating"),void await t.navigationClient.navigateExternal(e,r)):void this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation")}return this.logger.verbose("RedirectHandler.initiateAuthRequest: Navigating window to navigate url"),void await t.navigationClient.navigateExternal(e,r)}}async handleCodeResponseFromHash(e,t,r,o){if(this.logger.verbose("RedirectHandler.handleCodeResponse called"),ut.isEmpty(e))throw Hr.createEmptyHashError();this.browserStorage.setInteractionInProgress(!1);const n=this.browserStorage.generateStateKey(t),i=this.browserStorage.getTemporaryCache(n);if(!i)throw ht.createStateNotFoundError("Cached State");let a;try{a=this.authModule.handleFragmentResponse(e,i)}catch(e){throw e instanceof Ft&&e.subError===Ur.userCancelledError.code?Hr.createUserCancelledError():e}const s=this.browserStorage.generateNonceKey(i),c=this.browserStorage.getTemporaryCache(s);if(this.authCodeRequest.code=a.code,a.cloud_instance_host_name&&await this.updateTokenEndpointAuthority(a.cloud_instance_host_name,r,o),a.nonce=c||void 0,a.state=i,a.client_info)this.authCodeRequest.clientInfo=a.client_info;else{const e=this.checkCcsCredentials();e&&(this.authCodeRequest.ccsCredential=e)}const d=await this.authModule.acquireToken(this.authCodeRequest,a);return this.browserStorage.cleanRequestByState(t),d}}const Io={INITIALIZE_START:"msal:initializeStart",INITIALIZE_END:"msal:initializeEnd",ACCOUNT_ADDED:"msal:accountAdded",ACCOUNT_REMOVED:"msal:accountRemoved",LOGIN_START:"msal:loginStart",LOGIN_SUCCESS:"msal:loginSuccess",LOGIN_FAILURE:"msal:loginFailure",ACQUIRE_TOKEN_START:"msal:acquireTokenStart",ACQUIRE_TOKEN_SUCCESS:"msal:acquireTokenSuccess",ACQUIRE_TOKEN_FAILURE:"msal:acquireTokenFailure",ACQUIRE_TOKEN_NETWORK_START:"msal:acquireTokenFromNetworkStart",SSO_SILENT_START:"msal:ssoSilentStart",SSO_SILENT_SUCCESS:"msal:ssoSilentSuccess",SSO_SILENT_FAILURE:"msal:ssoSilentFailure",ACQUIRE_TOKEN_BY_CODE_START:"msal:acquireTokenByCodeStart",ACQUIRE_TOKEN_BY_CODE_SUCCESS:"msal:acquireTokenByCodeSuccess",ACQUIRE_TOKEN_BY_CODE_FAILURE:"msal:acquireTokenByCodeFailure",HANDLE_REDIRECT_START:"msal:handleRedirectStart",HANDLE_REDIRECT_END:"msal:handleRedirectEnd",POPUP_OPENED:"msal:popupOpened",LOGOUT_START:"msal:logoutStart",LOGOUT_SUCCESS:"msal:logoutSuccess",LOGOUT_FAILURE:"msal:logoutFailure",LOGOUT_END:"msal:logoutEnd",RESTORE_FROM_BFCACHE:"msal:restoreFromBFCache"},_o="USER_INTERACTION_REQUIRED",ko="USER_CANCEL",So="NO_NETWORK",Ao="PERSISTENT_ERROR",Ro="DISABLED",bo="ACCOUNT_UNAVAILABLE",Po={code:"ContentError"},Mo={code:"user_switch",desc:"User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again."},No={code:"tokens_not_found_in_internal_memory_cache",desc:"Tokens not cached in MSAL JS internal memory, please make the WAM request"};class Oo extends ct{constructor(e,t,r){super(e,t),Object.setPrototypeOf(this,Oo.prototype),this.name="NativeAuthError",this.ext=r}isFatal(){return!(!this.ext||!this.ext.status||this.ext.status!==Ao&&this.ext.status!==Ro)||(!(!this.ext||!this.ext.error||-2147186943!==this.ext.error)||this.errorCode===Po.code)}static createError(e,t,r){if(r&&r.status)switch(r.status){case bo:return tr.createNativeAccountUnavailableError();case _o:return new tr(e,t);case ko:return Hr.createUserCancelledError();case So:return Hr.createNoNetworkConnectivityError()}return new Oo(e,t,r)}static createUserSwitchError(){return new Oo(Mo.code,Mo.desc)}static createTokensNotFoundInCacheError(){return new Oo(No.code,No.desc)}}class qo extends wo{async acquireToken(e){const t=this.performanceClient.startMeasurement(ir.SilentCacheClientAcquireToken,e.correlationId),r=this.initializeServerTelemetryManager(Zr.acquireTokenSilent_silentFlow),o=await this.createSilentFlowClient(r,e.authority,e.azureCloudOptions);this.logger.verbose("Silent auth client created");try{const r=await o.acquireCachedToken(e);return t.endMeasurement({success:!0,fromCache:!0}),r}catch(e){throw e instanceof Hr&&e.errorCode===Ur.signingKeyNotFoundInStorage.code&&this.logger.verbose("Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair."),t.endMeasurement({errorCode:e instanceof ct&&e.errorCode||void 0,subErrorCode:e instanceof ct&&e.subError||void 0,success:!1}),e}}logout(){return Promise.reject(Hr.createSilentLogoutUnsupportedError())}async createSilentFlowClient(e,t,r){this.performanceClient.setPreQueueTime(ir.StandardInteractionClientGetClientConfiguration,this.correlationId);const o=await this.getClientConfiguration(e,t,r);return new fr(o,this.performanceClient)}async initializeSilentRequest(e,t){return this.performanceClient.addQueueMeasurement(ir.InitializeSilentRequest,this.correlationId),this.performanceClient.setPreQueueTime(ir.InitializeBaseRequest,this.correlationId),{...e,...await this.initializeBaseRequest(e,t),account:t,forceRefresh:e.forceRefresh||!1}}}class Uo extends vo{constructor(e,t,r,o,n,i,a,s,c,d,l,h){super(e,t,r,o,n,i,s,c,h),this.apiId=a,this.accountId=d,this.nativeMessageHandler=c,this.nativeStorageManager=l,this.silentCacheClient=new qo(e,this.nativeStorageManager,r,o,n,i,s,c,h)}async acquireToken(e){this.logger.trace("NativeInteractionClient - acquireToken called.");const t=this.performanceClient.startMeasurement(ir.NativeInteractionClientAcquireToken,e.correlationId),r=Wt.nowSeconds(),o=await this.initializeNativeRequest(e);try{const e=await this.acquireTokensFromCache(this.accountId,o);return t.endMeasurement({success:!0,isNativeBroker:!1,fromCache:!0}),e}catch(e){this.logger.info("MSAL internal Cache does not contain tokens, proceed to make a native call")}const n={method:Gr,request:o},i=await this.nativeMessageHandler.sendMessage(n),a=this.validateNativeResponse(i);return this.handleNativeResponse(a,o,r).then((e=>(t.endMeasurement({success:!0,isNativeBroker:!0,requestId:e.requestId}),e))).catch((e=>{throw t.endMeasurement({success:!1,errorCode:e.errorCode,subErrorCode:e.subError,isNativeBroker:!0}),e}))}createSilentCacheRequest(e,t){return{authority:e.authority,correlationId:this.correlationId,scopes:wt.fromString(e.scope).asArray(),account:t,forceRefresh:!1}}async acquireTokensFromCache(e,t){if(!e)throw this.logger.warning("NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided"),ht.createNoAccountFoundError();const r=this.browserStorage.getAccountInfoFilteredBy({nativeAccountId:e});if(!r)throw ht.createNoAccountFoundError();try{const e=this.createSilentCacheRequest(t,r);return await this.silentCacheClient.acquireToken(e)}catch(e){throw e}}async acquireTokenRedirect(e){this.logger.trace("NativeInteractionClient - acquireTokenRedirect called.");const t=await this.initializeNativeRequest(e),r={method:Gr,request:t};try{const e=await this.nativeMessageHandler.sendMessage(r);this.validateNativeResponse(e)}catch(e){if(e instanceof Oo&&e.isFatal())throw e}this.browserStorage.setTemporaryCache(Yr.NATIVE_REQUEST,JSON.stringify(t),!0);const o={apiId:Zr.acquireTokenRedirect,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},n=this.config.auth.navigateToLoginRequestUrl?window.location.href:this.getRedirectUri(e.redirectUri);await this.navigationClient.navigateExternal(n,o)}async handleRedirectPromise(){if(this.logger.trace("NativeInteractionClient - handleRedirectPromise called."),!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;const e=this.browserStorage.getCachedNativeRequest();if(!e)return this.logger.verbose("NativeInteractionClient - handleRedirectPromise called but there is no cached request, returning null."),null;const{prompt:t,...r}=e;t&&this.logger.verbose("NativeInteractionClient - handleRedirectPromise called and prompt was included in the original request, removing prompt from cached request to prevent second interaction with native broker window."),this.browserStorage.removeItem(this.browserStorage.generateCacheKey(Yr.NATIVE_REQUEST));const o={method:Gr,request:r},n=Wt.nowSeconds();try{this.logger.verbose("NativeInteractionClient - handleRedirectPromise sending message to native broker.");const e=await this.nativeMessageHandler.sendMessage(o);this.validateNativeResponse(e);const t=this.handleNativeResponse(e,r,n);return this.browserStorage.setInteractionInProgress(!1),t}catch(e){throw this.browserStorage.setInteractionInProgress(!1),e}}logout(){return this.logger.trace("NativeInteractionClient - logout called."),Promise.reject("Logout not implemented yet")}async handleNativeResponse(e,t,r){if(this.logger.trace("NativeInteractionClient - handleNativeResponse called."),e.account.id!==t.accountId)throw Oo.createUserSwitchError();const o=await this.getDiscoveredAuthority(t.authority),n=o.getPreferredCache(),i=this.createIdTokenObj(e),a=this.createHomeAccountIdentifier(e,i),s=this.createAccountEntity(e,a,i,n),c=await this.generateAuthenticationResult(e,t,i,s,o.canonicalAuthority,r);return this.cacheAccount(s),this.cacheNativeTokens(e,t,a,s,i,c.accessToken,c.tenantId,r),c}createIdTokenObj(e){return new Rt(e.id_token||t.EMPTY_STRING,this.browserCrypto)}createHomeAccountIdentifier(e,r){return At.generateHomeAccountId(e.client_info||t.EMPTY_STRING,It,this.logger,this.browserCrypto,r)}createAccountEntity(e,t,r,o){return At.createAccount(e.client_info,t,r,void 0,void 0,void 0,o,e.account.id)}generateScopes(e,t){return e.scope?wt.fromString(e.scope):wt.fromString(t.scope)}async generatePopAccessToken(e,t){if(t.tokenType===xe.POP){if(e.shr)return this.logger.trace("handleNativeServerResponse: SHR is enabled in native layer"),e.shr;const r=new lr(this.browserCrypto),o={resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,shrNonce:t.shrNonce};if(!t.keyId)throw ht.createKeyIdMissingError();return await r.signPopToken(e.access_token,t.keyId,o)}return e.access_token}async generateAuthenticationResult(e,r,o,n,i,a){const s=this.addTelemetryFromNativeResponse(e),c=e.scope?wt.fromString(e.scope):wt.fromString(r.scope),d=e.account.properties||{},l=d.UID||o.claims.oid||o.claims.sub||t.EMPTY_STRING,h=d.TenantId||o.claims.tid||t.EMPTY_STRING,u=await this.generatePopAccessToken(e,r),g=r.tokenType===xe.POP?xe.POP:xe.BEARER;return{authority:i,uniqueId:l,tenantId:h,scopes:c.asArray(),account:n.getAccountInfo(),idToken:e.id_token,idTokenClaims:o.claims,accessToken:u,fromCache:!!s&&this.isResponseFromCache(s),expiresOn:new Date(1e3*Number(a+e.expires_in)),tokenType:g,correlationId:this.correlationId,state:e.state,fromNativeBroker:!0}}cacheAccount(e){this.browserStorage.setAccount(e),this.browserStorage.removeAccountContext(e).catch((e=>{this.logger.error(`Error occurred while removing account context from browser storage. ${e}`)}))}cacheNativeTokens(e,r,o,n,i,a,s,c){const d=Yt.createIdTokenEntity(o,r.authority,e.id_token||t.EMPTY_STRING,r.clientId,i.claims.tid||t.EMPTY_STRING),l=c+(r.tokenType===xe.POP?t.SHR_NONCE_VALIDITY:("string"==typeof e.expires_in?parseInt(e.expires_in,10):e.expires_in)||0),h=this.generateScopes(e,r),u=Vt.createAccessTokenEntity(o,r.authority,a,r.clientId,i?i.claims.tid||t.EMPTY_STRING:s,h.printScopes(),l,0,this.browserCrypto),g=new go(n,d,u);this.nativeStorageManager.saveCacheRecord(g)}addTelemetryFromNativeResponse(e){const t=this.getMATSFromResponse(e);return t?(this.performanceClient.addStaticFields({extensionId:this.nativeMessageHandler.getExtensionId(),extensionVersion:this.nativeMessageHandler.getExtensionVersion(),matsBrokerVersion:t.broker_version,matsAccountJoinOnStart:t.account_join_on_start,matsAccountJoinOnEnd:t.account_join_on_end,matsDeviceJoin:t.device_join,matsPromptBehavior:t.prompt_behavior,matsApiErrorCode:t.api_error_code,matsUiVisible:t.ui_visible,matsSilentCode:t.silent_code,matsSilentBiSubCode:t.silent_bi_sub_code,matsSilentMessage:t.silent_message,matsSilentStatus:t.silent_status,matsHttpStatus:t.http_status,matsHttpEventCount:t.http_event_count},this.correlationId),t):null}validateNativeResponse(e){if(e.hasOwnProperty("access_token")&&e.hasOwnProperty("id_token")&&e.hasOwnProperty("client_info")&&e.hasOwnProperty("account")&&e.hasOwnProperty("scope")&&e.hasOwnProperty("expires_in"))return e;throw Oo.createUnexpectedError("Response missing expected properties.")}getMATSFromResponse(e){if(e.properties.MATS)try{return JSON.parse(e.properties.MATS)}catch(e){this.logger.error("NativeInteractionClient - Error parsing MATS telemetry, returning null instead")}return null}isResponseFromCache(e){return void 0===e.is_cached?(this.logger.verbose("NativeInteractionClient - MATS telemetry does not contain field indicating if response was served from cache. Returning false."),!1):!!e.is_cached}async initializeNativeRequest(e){this.logger.trace("NativeInteractionClient - initializeNativeRequest called");const t=e.authority||this.config.auth.authority;e.account&&await this.validateRequestAuthority(t,e.account);const o=new nr(t);o.validateAsUri();const{scopes:n,...i}=e,a=new wt(n||[]);a.appendScopes(r);const s={...i,accountId:this.accountId,clientId:this.config.auth.clientId,authority:o.urlString,scope:a.printScopes(),redirectUri:this.getRedirectUri(e.redirectUri),prompt:(()=>{switch(this.apiId){case Zr.ssoSilent:case Zr.acquireTokenSilent_silentFlow:return this.logger.trace("initializeNativeRequest: silent request sets prompt to none"),se.NONE}if(e.prompt)switch(e.prompt){case se.NONE:case se.CONSENT:case se.LOGIN:return this.logger.trace("initializeNativeRequest: prompt is compatible with native flow"),e.prompt;default:throw this.logger.trace(`initializeNativeRequest: prompt = ${e.prompt} is not compatible with native flow`),Hr.createNativePromptParameterNotSupportedError()}else this.logger.trace("initializeNativeRequest: prompt was not provided")})(),correlationId:this.correlationId,tokenType:e.authenticationScheme,windowTitleSubstring:document.title,extraParameters:{...e.extraQueryParameters,...e.tokenQueryParameters,telemetry:Dr},extendedExpiryToken:!1};if(e.authenticationScheme===xe.POP){const t={resourceRequestUri:e.resourceRequestUri,resourceRequestMethod:e.resourceRequestMethod,shrClaims:e.shrClaims,shrNonce:e.shrNonce},r=new lr(this.browserCrypto),o=await r.generateCnf(t);s.reqCnf=o.reqCnfHash,s.keyId=o.kid}return s}}class Ho{constructor(e,t,r,o,n){this.logger=e,this.handshakeTimeoutMs=t,this.extensionId=n,this.resolvers=new Map,this.handshakeResolvers=new Map,this.messageChannel=new MessageChannel,this.windowListener=this.onWindowMessage.bind(this),this.performanceClient=r,this.handshakeEvent=r.startMeasurement(ir.NativeMessageHandlerHandshake),this.crypto=o}async sendMessage(e){this.logger.trace("NativeMessageHandler - sendMessage called.");const t={channel:xr,extensionId:this.extensionId,responseId:this.crypto.createNewGuid(),body:e};return this.logger.trace("NativeMessageHandler - Sending request to browser extension"),this.logger.tracePii(`NativeMessageHandler - Sending request to browser extension: ${JSON.stringify(t)}`),this.messageChannel.port1.postMessage(t),new Promise(((e,r)=>{this.resolvers.set(t.responseId,{resolve:e,reject:r})}))}static async createProvider(e,t,r,o){e.trace("NativeMessageHandler - createProvider called.");try{const n=new Ho(e,t,r,o,Fr);return await n.sendHandshakeRequest(),n}catch(n){const i=new Ho(e,t,r,o);return await i.sendHandshakeRequest(),i}}async sendHandshakeRequest(){this.logger.trace("NativeMessageHandler - sendHandshakeRequest called."),window.addEventListener("message",this.windowListener,!1);const e={channel:xr,extensionId:this.extensionId,responseId:this.crypto.createNewGuid(),body:{method:Br}};return this.handshakeEvent.addStaticFields({extensionId:this.extensionId,extensionHandshakeTimeoutMs:this.handshakeTimeoutMs}),this.messageChannel.port1.onmessage=e=>{this.onChannelMessage(e)},window.postMessage(e,window.origin,[this.messageChannel.port2]),new Promise(((t,r)=>{this.handshakeResolvers.set(e.responseId,{resolve:t,reject:r}),this.timeoutId=window.setTimeout((()=>{window.removeEventListener("message",this.windowListener,!1),this.messageChannel.port1.close(),this.messageChannel.port2.close(),this.handshakeEvent.endMeasurement({extensionHandshakeTimedOut:!0,success:!1}),r(Hr.createNativeHandshakeTimeoutError()),this.handshakeResolvers.delete(e.responseId)}),this.handshakeTimeoutMs)}))}onWindowMessage(e){if(this.logger.trace("NativeMessageHandler - onWindowMessage called"),e.source!==window)return;const t=e.data;if(t.channel&&t.channel===xr&&(!t.extensionId||t.extensionId===this.extensionId)&&t.body.method===Br){const e=this.handshakeResolvers.get(t.responseId);if(!e)return void this.logger.trace(`NativeMessageHandler.onWindowMessage - resolver can't be found for request ${t.responseId}`);this.logger.verbose(t.extensionId?`Extension with id: ${t.extensionId} not installed`:"No extension installed"),clearTimeout(this.timeoutId),this.messageChannel.port1.close(),this.messageChannel.port2.close(),window.removeEventListener("message",this.windowListener,!1),this.handshakeEvent.endMeasurement({success:!1,extensionInstalled:!1}),e.reject(Hr.createNativeExtensionNotInstalledError())}}onChannelMessage(e){this.logger.trace("NativeMessageHandler - onChannelMessage called.");const t=e.data,r=this.resolvers.get(t.responseId),o=this.handshakeResolvers.get(t.responseId);try{const e=t.body.method;if(e===$r){if(!r)return;const e=t.body.response;if(this.logger.trace("NativeMessageHandler - Received response from browser extension"),this.logger.tracePii(`NativeMessageHandler - Received response from browser extension: ${JSON.stringify(e)}`),"Success"!==e.status)r.reject(Oo.createError(e.code,e.description,e.ext));else{if(!e.result)throw ct.createUnexpectedError("Event does not contain result.");e.result.code&&e.result.description?r.reject(Oo.createError(e.result.code,e.result.description,e.result.ext)):r.resolve(e.result)}this.resolvers.delete(t.responseId)}else if(e===Kr){if(!o)return void this.logger.trace(`NativeMessageHandler.onChannelMessage - resolver can't be found for request ${t.responseId}`);clearTimeout(this.timeoutId),window.removeEventListener("message",this.windowListener,!1),this.extensionId=t.extensionId,this.extensionVersion=t.body.version,this.logger.verbose(`NativeMessageHandler - Received HandshakeResponse from extension: ${this.extensionId}`),this.handshakeEvent.endMeasurement({extensionInstalled:!0,success:!0}),o.resolve(),this.handshakeResolvers.delete(t.responseId)}}catch(t){this.logger.error("Error parsing response from WAM Extension"),this.logger.errorPii(`Error parsing response from WAM Extension: ${t}`),this.logger.errorPii(`Unable to parse ${e}`),r?r.reject(t):o&&o.reject(t)}}getExtensionId(){return this.extensionId}getExtensionVersion(){return this.extensionVersion}static isNativeAvailable(e,t,r,o){if(t.trace("isNativeAvailable called"),!e.system.allowNativeBroker)return t.trace("isNativeAvailable: allowNativeBroker is not enabled, returning false"),!1;if(!r)return t.trace("isNativeAvailable: WAM extension provider is not initialized, returning false"),!1;if(o)switch(o){case xe.BEARER:case xe.POP:return t.trace("isNativeAvailable: authenticationScheme is supported, returning true"),!0;default:return t.trace("isNativeAvailable: authenticationScheme is not supported, returning false"),!1}return!0}}class Lo extends wo{constructor(e,t,r,o,n,i,a,s,c,d){super(e,t,r,o,n,i,a,c,d),this.nativeStorage=s}async acquireToken(r){this.performanceClient.setPreQueueTime(ir.StandardInteractionClientInitializeAuthorizationRequest,r.correlationId);const o=await this.initializeAuthorizationRequest(r,e.InteractionType.Redirect);this.browserStorage.updateCacheEntries(o.state,o.nonce,o.authority,o.loginHint||t.EMPTY_STRING,o.account||null);const n=this.initializeServerTelemetryManager(Zr.acquireTokenRedirect),i=t=>{t.persisted&&(this.logger.verbose("Page was restored from back/forward cache. Clearing temporary cache."),this.browserStorage.cleanRequestByState(o.state),this.eventHandler.emitEvent(Io.RESTORE_FROM_BFCACHE,e.InteractionType.Redirect))};try{this.performanceClient.setPreQueueTime(ir.StandardInteractionClientInitializeAuthorizationCodeRequest,r.correlationId);const e=await this.initializeAuthorizationCodeRequest(o);this.performanceClient.setPreQueueTime(ir.StandardInteractionClientCreateAuthCodeClient,r.correlationId);const t=await this.createAuthCodeClient(n,o.authority,o.azureCloudOptions);this.logger.verbose("Auth code client created");const a=new Eo(t,this.browserStorage,e,this.logger,this.browserCrypto,this.performanceClient),s=await t.getAuthCodeUrl({...o,nativeBroker:Ho.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,r.authenticationScheme)}),c=this.getRedirectStartPage(r.redirectStartPage);return this.logger.verbosePii(`Redirect start page: ${c}`),window.addEventListener("pageshow",i),await a.initiateAuthRequest(s,{navigationClient:this.navigationClient,redirectTimeout:this.config.system.redirectNavigationTimeout,redirectStartPage:c,onRedirectNavigate:r.onRedirectNavigate})}catch(e){throw e instanceof ct&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),window.removeEventListener("pageshow",i),this.browserStorage.cleanRequestByState(o.state),e}}async handleRedirectPromise(r){const o=this.initializeServerTelemetryManager(Zr.handleRedirectPromise);try{if(!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;const n=this.getRedirectResponseHash(r||window.location.hash);if(!n)return this.logger.info("handleRedirectPromise did not detect a response hash as a result of a redirect. Cleaning temporary cache."),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),null;let i;try{const t=nr.getDeserializedHash(n);i=this.validateAndExtractStateFromHash(t,e.InteractionType.Redirect),this.logger.verbose("State extracted from hash")}catch(t){return this.logger.info(`handleRedirectPromise was unable to extract state due to: ${t}`),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),null}const a=this.browserStorage.getTemporaryCache(Yr.ORIGIN_URI,!0)||t.EMPTY_STRING,s=nr.removeHashFromUrl(a);if(s===nr.removeHashFromUrl(window.location.href)&&this.config.auth.navigateToLoginRequestUrl){this.logger.verbose("Current page is loginRequestUrl, handling hash");const e=await this.handleHash(n,i,o);return a.indexOf("#")>-1&&Co.replaceHash(a),e}if(!this.config.auth.navigateToLoginRequestUrl)return this.logger.verbose("NavigateToLoginRequestUrl set to false, handling hash"),this.handleHash(n,i,o);if(!Co.isInIframe()||this.config.system.allowRedirectInIframe){this.browserStorage.setTemporaryCache(Yr.URL_HASH,n,!0);const e={apiId:Zr.handleRedirectPromise,timeout:this.config.system.redirectNavigationTimeout,noHistory:!0};let t=!0;if(a&&"null"!==a)this.logger.verbose(`Navigating to loginRequestUrl: ${a}`),t=await this.navigationClient.navigateInternal(a,e);else{const r=Co.getHomepage();this.browserStorage.setTemporaryCache(Yr.ORIGIN_URI,r,!0),this.logger.warning("Unable to get valid login request url from cache, redirecting to home page"),t=await this.navigationClient.navigateInternal(r,e)}if(!t)return this.handleHash(n,i,o)}return null}catch(t){throw t instanceof ct&&(t.setCorrelationId(this.correlationId),o.cacheFailedRequest(t)),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),t}}getRedirectResponseHash(e){this.logger.verbose("getRedirectResponseHash called");if(nr.hashContainsKnownProperties(e))return Co.clearHash(window),this.logger.verbose("Hash contains known properties, returning response hash"),e;const t=this.browserStorage.getTemporaryCache(Yr.URL_HASH,!0);return this.browserStorage.removeItem(this.browserStorage.generateCacheKey(Yr.URL_HASH)),this.logger.verbose("Hash does not contain known properties, returning cached hash"),t}async handleHash(e,t,r){const o=this.browserStorage.getCachedRequest(t,this.browserCrypto);this.logger.verbose("handleHash called, retrieved cached request");const n=nr.getDeserializedHash(e);if(n.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw Hr.createNativeConnectionNotEstablishedError();const e=new Uo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Zr.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,n.accountId,this.nativeStorage,o.correlationId),{userRequestState:r}=or.parseRequestState(this.browserCrypto,t);return e.acquireToken({...o,state:r,prompt:void 0}).finally((()=>{this.browserStorage.cleanRequestByState(t)}))}const i=this.browserStorage.getCachedAuthority(t);if(!i)throw Hr.createNoCachedAuthorityError();this.performanceClient.setPreQueueTime(ir.StandardInteractionClientCreateAuthCodeClient,o.correlationId);const a=await this.createAuthCodeClient(r,i);this.logger.verbose("Auth code client created"),Dt.removeThrottle(this.browserStorage,this.config.auth.clientId,o);const s=new Eo(a,this.browserStorage,o,this.logger,this.browserCrypto,this.performanceClient);return await s.handleCodeResponseFromHash(e,t,a.authority,this.networkClient)}async logout(t){this.logger.verbose("logoutRedirect called");const r=this.initializeLogoutRequest(t),o=this.initializeServerTelemetryManager(Zr.logout);try{this.eventHandler.emitEvent(Io.LOGOUT_START,e.InteractionType.Redirect,t),await this.clearCacheOnLogout(r.account);const n={apiId:Zr.logout,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1};this.performanceClient.setPreQueueTime(ir.StandardInteractionClientCreateAuthCodeClient,r.correlationId);const i=await this.createAuthCodeClient(o,t&&t.authority);this.logger.verbose("Auth code client created");const a=i.getLogoutUri(r);if(this.eventHandler.emitEvent(Io.LOGOUT_SUCCESS,e.InteractionType.Redirect,r),!t||"function"!=typeof t.onRedirectNavigate)return this.browserStorage.getInteractionInProgress()||this.browserStorage.setInteractionInProgress(!0),void await this.navigationClient.navigateExternal(a,n);if(!1!==t.onRedirectNavigate(a))return this.logger.verbose("Logout onRedirectNavigate did not return false, navigating"),this.browserStorage.getInteractionInProgress()||this.browserStorage.setInteractionInProgress(!0),void await this.navigationClient.navigateExternal(a,n);this.browserStorage.setInteractionInProgress(!1),this.logger.verbose("Logout onRedirectNavigate returned false, stopping navigation")}catch(t){throw t instanceof ct&&(t.setCorrelationId(this.correlationId),o.cacheFailedRequest(t)),this.eventHandler.emitEvent(Io.LOGOUT_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent(Io.LOGOUT_END,e.InteractionType.Redirect),t}this.eventHandler.emitEvent(Io.LOGOUT_END,e.InteractionType.Redirect)}getRedirectStartPage(e){const t=e||window.location.href;return nr.getAbsoluteUrl(t,Co.getCurrentUri())}}class xo extends wo{constructor(e,t,r,o,n,i,a,s,c,d){super(e,t,r,o,n,i,a,c,d),this.unloadWindow=this.unloadWindow.bind(this),this.nativeStorage=s}acquireToken(e){try{const t=this.generatePopupName(e.scopes||r,e.authority||this.config.auth.authority),o=e.popupWindowAttributes||{};if(this.config.system.asyncPopups)return this.logger.verbose("asyncPopups set to true, acquiring token"),this.acquireTokenPopupAsync(e,t,o);{this.logger.verbose("asyncPopup set to false, opening popup before acquiring token");const r=this.openSizedPopup("about:blank",t,o);return this.acquireTokenPopupAsync(e,t,o,r)}}catch(e){return Promise.reject(e)}}logout(e){try{this.logger.verbose("logoutPopup called");const t=this.initializeLogoutRequest(e),r=this.generateLogoutPopupName(t),o=e&&e.authority,n=e&&e.mainWindowRedirectUri,i=e?.popupWindowAttributes||{};if(this.config.system.asyncPopups)return this.logger.verbose("asyncPopups set to true"),this.logoutPopupAsync(t,r,i,o,void 0,n);{this.logger.verbose("asyncPopup set to false, opening popup");const e=this.openSizedPopup("about:blank",r,i);return this.logoutPopupAsync(t,r,i,o,e,n)}}catch(e){return Promise.reject(e)}}async acquireTokenPopupAsync(r,o,n,i){this.logger.verbose("acquireTokenPopupAsync called");const a=this.initializeServerTelemetryManager(Zr.acquireTokenPopup);this.performanceClient.setPreQueueTime(ir.StandardInteractionClientInitializeAuthorizationRequest,r.correlationId);const s=await this.initializeAuthorizationRequest(r,e.InteractionType.Popup);this.browserStorage.updateCacheEntries(s.state,s.nonce,s.authority,s.loginHint||t.EMPTY_STRING,s.account||null);try{this.performanceClient.setPreQueueTime(ir.StandardInteractionClientInitializeAuthorizationCodeRequest,r.correlationId);const t=await this.initializeAuthorizationCodeRequest(s);this.performanceClient.setPreQueueTime(ir.StandardInteractionClientCreateAuthCodeClient,r.correlationId);const c=await this.createAuthCodeClient(a,s.authority,s.azureCloudOptions);this.logger.verbose("Auth code client created");const d=Ho.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,r.authenticationScheme);let l;d&&(l=this.performanceClient.startMeasurement(ir.FetchAccountIdWithNativeBroker,r.correlationId));const h=await c.getAuthCodeUrl({...s,nativeBroker:d}),u=new To(c,this.browserStorage,t,this.logger,this.performanceClient),g={popup:i,popupName:o,popupWindowAttributes:n},p=this.initiateAuthRequest(h,g);this.eventHandler.emitEvent(Io.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:p},null);const m=await this.monitorPopupForHash(p),f=nr.getDeserializedHash(m),y=this.validateAndExtractStateFromHash(f,e.InteractionType.Popup,s.correlationId);if(Dt.removeThrottle(this.browserStorage,this.config.auth.clientId,t),f.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),l&&l.endMeasurement({success:!0,isNativeBroker:!0}),!this.nativeMessageHandler)throw Hr.createNativeConnectionNotEstablishedError();const e=new Uo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Zr.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,f.accountId,this.nativeStorage,s.correlationId),{userRequestState:t}=or.parseRequestState(this.browserCrypto,y);return e.acquireToken({...s,state:t,prompt:void 0}).finally((()=>{this.browserStorage.cleanRequestByState(y)}))}return await u.handleCodeResponseFromHash(m,y,c.authority,this.networkClient)}catch(e){throw i&&i.close(),e instanceof ct&&(e.setCorrelationId(this.correlationId),a.cacheFailedRequest(e)),this.browserStorage.cleanRequestByState(s.state),e}}async logoutPopupAsync(t,r,o,n,i,a){this.logger.verbose("logoutPopupAsync called"),this.eventHandler.emitEvent(Io.LOGOUT_START,e.InteractionType.Popup,t);const s=this.initializeServerTelemetryManager(Zr.logoutPopup);try{await this.clearCacheOnLogout(t.account),this.performanceClient.setPreQueueTime(ir.StandardInteractionClientCreateAuthCodeClient,t.correlationId);const c=await this.createAuthCodeClient(s,n);this.logger.verbose("Auth code client created");const d=c.getLogoutUri(t);this.eventHandler.emitEvent(Io.LOGOUT_SUCCESS,e.InteractionType.Popup,t);const l=this.openPopup(d,{popupName:r,popupWindowAttributes:o,popup:i});if(this.eventHandler.emitEvent(Io.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:l},null),await this.waitForLogoutPopup(l),a){const e={apiId:Zr.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=nr.getAbsoluteUrl(a,Co.getCurrentUri());this.logger.verbose("Redirecting main window to url specified in the request"),this.logger.verbosePii(`Redirecting main window to: ${t}`),this.navigationClient.navigateInternal(t,e)}else this.logger.verbose("No main window navigation requested")}catch(t){throw i&&i.close(),t instanceof ct&&(t.setCorrelationId(this.correlationId),s.cacheFailedRequest(t)),this.browserStorage.setInteractionInProgress(!1),this.eventHandler.emitEvent(Io.LOGOUT_FAILURE,e.InteractionType.Popup,null,t),this.eventHandler.emitEvent(Io.LOGOUT_END,e.InteractionType.Popup),t}this.eventHandler.emitEvent(Io.LOGOUT_END,e.InteractionType.Popup)}initiateAuthRequest(e,t){if(ut.isEmpty(e))throw this.logger.error("Navigate url is empty"),Hr.createEmptyNavigationUriError();return this.logger.infoPii(`Navigate to: ${e}`),this.openPopup(e,t)}monitorPopupForHash(e){return new Promise(((r,o)=>{const n=this.config.system.windowHashTimeout/this.config.system.pollIntervalMilliseconds;let i=0;this.logger.verbose("PopupHandler.monitorPopupForHash - polling started");const a=setInterval((()=>{if(e.closed)return this.logger.error("PopupHandler.monitorPopupForHash - window closed"),this.cleanPopup(),clearInterval(a),void o(Hr.createUserCancelledError());let s=t.EMPTY_STRING,c=t.EMPTY_STRING;try{s=e.location.href,c=e.location.hash}catch(e){}ut.isEmpty(s)||"about:blank"===s||(this.logger.verbose("PopupHandler.monitorPopupForHash - popup window is on same origin as caller"),i++,c?(this.logger.verbose("PopupHandler.monitorPopupForHash - found hash in url"),clearInterval(a),this.cleanPopup(e),nr.hashContainsKnownProperties(c)?(this.logger.verbose("PopupHandler.monitorPopupForHash - hash contains known properties, returning."),r(c)):(this.logger.error("PopupHandler.monitorPopupForHash - found hash in url but it does not contain known properties. Check that your router is not changing the hash prematurely."),this.logger.errorPii(`PopupHandler.monitorPopupForHash - hash found: ${c}`),o(Hr.createHashDoesNotContainKnownPropertiesError()))):i>n&&(this.logger.error("PopupHandler.monitorPopupForHash - unable to find hash in url, timing out"),clearInterval(a),o(Hr.createMonitorPopupTimeoutError())))}),this.config.system.pollIntervalMilliseconds)}))}waitForLogoutPopup(e){return new Promise((r=>{this.logger.verbose("PopupHandler.waitForLogoutPopup - polling started");const o=setInterval((()=>{e.closed&&(this.logger.error("PopupHandler.waitForLogoutPopup - window closed"),this.cleanPopup(),clearInterval(o),r());let n=t.EMPTY_STRING;try{n=e.location.href}catch(e){}ut.isEmpty(n)||"about:blank"===n||(this.logger.verbose("PopupHandler.waitForLogoutPopup - popup window is on same origin as caller, closing."),clearInterval(o),this.cleanPopup(e),r())}),this.config.system.pollIntervalMilliseconds)}))}openPopup(e,t){try{let r;if(t.popup?(r=t.popup,this.logger.verbosePii(`Navigating popup window to: ${e}`),r.location.assign(e)):void 0===t.popup&&(this.logger.verbosePii(`Opening popup window to: ${e}`),r=this.openSizedPopup(e,t.popupName,t.popupWindowAttributes)),!r)throw Hr.createEmptyWindowCreatedError();return r.focus&&r.focus(),this.currentWindow=r,window.addEventListener("beforeunload",this.unloadWindow),r}catch(e){throw this.logger.error("error opening popup "+e.message),this.browserStorage.setInteractionInProgress(!1),Hr.createPopupWindowError(e.toString())}}openSizedPopup(e,t,r){const o=window.screenLeft?window.screenLeft:window.screenX,n=window.screenTop?window.screenTop:window.screenY,i=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;let s=r.popupSize?.width,c=r.popupSize?.height,d=r.popupPosition?.top,l=r.popupPosition?.left;return(!s||s<0||s>i)&&(this.logger.verbose("Default popup window width used. Window width not configured or invalid."),s=Lr.POPUP_WIDTH),(!c||c<0||c>a)&&(this.logger.verbose("Default popup window height used. Window height not configured or invalid."),c=Lr.POPUP_HEIGHT),(!d||d<0||d>a)&&(this.logger.verbose("Default popup window top position used. Window top not configured or invalid."),d=Math.max(0,a/2-Lr.POPUP_HEIGHT/2+n)),(!l||l<0||l>i)&&(this.logger.verbose("Default popup window left position used. Window left not configured or invalid."),l=Math.max(0,i/2-Lr.POPUP_WIDTH/2+o)),window.open(e,t,`width=${s}, height=${c}, top=${d}, left=${l}, scrollbars=yes`)}unloadWindow(t){this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Popup),this.currentWindow&&this.currentWindow.close(),t.preventDefault()}cleanPopup(e){e&&e.close(),window.removeEventListener("beforeunload",this.unloadWindow),this.browserStorage.setInteractionInProgress(!1)}generatePopupName(e,t){return`${Lr.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${e.join("-")}.${t}.${this.correlationId}`}generateLogoutPopupName(e){const t=e.account&&e.account.homeAccountId;return`${Lr.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${t}.${this.correlationId}`}}class Fo{navigateInternal(e,t){return Fo.defaultNavigateWindow(e,t)}navigateExternal(e,t){return Fo.defaultNavigateWindow(e,t)}static defaultNavigateWindow(e,t){return t.noHistory?window.location.replace(e):window.location.assign(e),new Promise((e=>{setTimeout((()=>{e(!0)}),t.timeout)}))}}const Do=6e3;class Bo extends To{constructor(e,t,r,o,n,i){super(e,t,r,o,i),this.navigateFrameWait=n.navigateFrameWait,this.pollIntervalMilliseconds=n.pollIntervalMilliseconds}async initiateAuthRequest(e){if(this.performanceClient.addQueueMeasurement(ir.SilentHandlerInitiateAuthRequest,this.authCodeRequest.correlationId),ut.isEmpty(e))throw this.logger.info("Navigate url is empty"),Hr.createEmptyNavigationUriError();return this.navigateFrameWait?(this.performanceClient.setPreQueueTime(ir.SilentHandlerLoadFrame,this.authCodeRequest.correlationId),await this.loadFrame(e)):this.loadFrameSync(e)}monitorIframeForHash(e,r){return this.performanceClient.addQueueMeasurement(ir.SilentHandlerMonitorIframeForHash,this.authCodeRequest.correlationId),new Promise(((o,n)=>{r<Do&&this.logger.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${r}ms) than the default (${Do}ms). This may result in timeouts.`);const i=window.performance.now()+r,a=setInterval((()=>{if(window.performance.now()>i)return this.removeHiddenIframe(e),clearInterval(a),void n(Hr.createMonitorIframeTimeoutError());let r=t.EMPTY_STRING;const s=e.contentWindow;try{r=s?s.location.href:t.EMPTY_STRING}catch(e){}if(ut.isEmpty(r)||"about:blank"===r)return;const c=s?s.location.hash:t.EMPTY_STRING;return c?nr.hashContainsKnownProperties(c)?(this.removeHiddenIframe(e),clearInterval(a),void o(c)):(this.logger.error("SilentHandler:monitorIFrameForHash - a hash is present in the iframe but it does not contain known properties. It's likely that the hash has been replaced by code running on the redirectUri page."),this.logger.errorPii(`SilentHandler:monitorIFrameForHash - the url detected in the iframe is: ${r}`),this.removeHiddenIframe(e),clearInterval(a),void n(Hr.createHashDoesNotContainKnownPropertiesError())):(this.logger.error("SilentHandler:monitorIFrameForHash - the request has returned to the redirectUri but a hash is not present in the iframe. It's likely that the hash has been removed or the page has been redirected by code running on the redirectUri page."),this.logger.errorPii(`SilentHandler:monitorIFrameForHash - the url detected in the iframe is: ${r}`),this.removeHiddenIframe(e),clearInterval(a),void n(Hr.createEmptyHashError()))}),this.pollIntervalMilliseconds)}))}loadFrame(e){return this.performanceClient.addQueueMeasurement(ir.SilentHandlerLoadFrame,this.authCodeRequest.correlationId),new Promise(((t,r)=>{const o=this.createHiddenIframe();setTimeout((()=>{o?(o.src=e,t(o)):r("Unable to load iframe")}),this.navigateFrameWait)}))}loadFrameSync(e){const t=this.createHiddenIframe();return t.src=e,t}createHiddenIframe(){const e=document.createElement("iframe");return e.style.visibility="hidden",e.style.position="absolute",e.style.width=e.style.height="0",e.style.border="0",e.setAttribute("sandbox","allow-scripts allow-same-origin allow-forms"),document.getElementsByTagName("body")[0].appendChild(e),e}removeHiddenIframe(e){document.body===e.parentNode&&document.body.removeChild(e)}}class Ko extends wo{constructor(e,t,r,o,n,i,a,s,c,d,l){super(e,t,r,o,n,i,s,d,l),this.apiId=a,this.nativeStorage=c}async acquireToken(r){this.performanceClient.addQueueMeasurement(ir.SilentIframeClientAcquireToken,r.correlationId),this.logger.verbose("acquireTokenByIframe called");const o=this.performanceClient.startMeasurement(ir.SilentIframeClientAcquireToken,r.correlationId);if(ut.isEmpty(r.loginHint)&&ut.isEmpty(r.sid)&&(!r.account||ut.isEmpty(r.account.username))&&this.logger.warning("No user hint provided. The authorization server may need more information to complete this request."),r.prompt&&r.prompt!==se.NONE&&r.prompt!==se.NO_SESSION)throw o.endMeasurement({success:!1}),Hr.createSilentPromptValueError(r.prompt);this.performanceClient.setPreQueueTime(ir.StandardInteractionClientInitializeAuthorizationRequest,r.correlationId);const n=await this.initializeAuthorizationRequest({...r,prompt:r.prompt||se.NONE},e.InteractionType.Silent);this.browserStorage.updateCacheEntries(n.state,n.nonce,n.authority,n.loginHint||t.EMPTY_STRING,n.account||null);const i=this.initializeServerTelemetryManager(this.apiId);try{this.performanceClient.setPreQueueTime(ir.StandardInteractionClientCreateAuthCodeClient,r.correlationId);const e=await this.createAuthCodeClient(i,n.authority,n.azureCloudOptions);return this.logger.verbose("Auth code client created"),this.performanceClient.setPreQueueTime(ir.SilentIframeClientTokenHelper,r.correlationId),await this.silentTokenHelper(e,n).then((e=>(o.endMeasurement({success:!0,fromCache:!1,requestId:e.requestId}),e)))}catch(e){throw e instanceof ct&&(e.setCorrelationId(this.correlationId),i.cacheFailedRequest(e)),this.browserStorage.cleanRequestByState(n.state),o.endMeasurement({errorCode:e instanceof ct&&e.errorCode||void 0,subErrorCode:e instanceof ct&&e.subError||void 0,success:!1}),e}}logout(){return Promise.reject(Hr.createSilentLogoutUnsupportedError())}async silentTokenHelper(t,r){this.performanceClient.addQueueMeasurement(ir.SilentIframeClientTokenHelper,r.correlationId),this.performanceClient.setPreQueueTime(ir.StandardInteractionClientInitializeAuthorizationCodeRequest,r.correlationId);const o=await this.initializeAuthorizationCodeRequest(r);this.performanceClient.setPreQueueTime(ir.GetAuthCodeUrl,r.correlationId);const n=await t.getAuthCodeUrl({...r,nativeBroker:Ho.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,r.authenticationScheme)}),i=new Bo(t,this.browserStorage,o,this.logger,this.config.system,this.performanceClient);this.performanceClient.setPreQueueTime(ir.SilentHandlerInitiateAuthRequest,r.correlationId);const a=await i.initiateAuthRequest(n);this.performanceClient.setPreQueueTime(ir.SilentHandlerMonitorIframeForHash,r.correlationId);const s=await i.monitorIframeForHash(a,this.config.system.iframeHashTimeout),c=nr.getDeserializedHash(s),d=this.validateAndExtractStateFromHash(c,e.InteractionType.Silent,o.correlationId);if(c.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw Hr.createNativeConnectionNotEstablishedError();const e=new Uo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.apiId,this.performanceClient,this.nativeMessageHandler,c.accountId,this.browserStorage,this.correlationId),{userRequestState:t}=or.parseRequestState(this.browserCrypto,d);return e.acquireToken({...r,state:t,prompt:r.prompt||se.NONE}).finally((()=>{this.browserStorage.cleanRequestByState(d)}))}return this.performanceClient.setPreQueueTime(ir.HandleCodeResponseFromHash,r.correlationId),i.handleCodeResponseFromHash(s,d,t.authority,this.networkClient)}}class Go extends wo{async acquireToken(e){this.performanceClient.addQueueMeasurement(ir.SilentRefreshClientAcquireToken,e.correlationId),this.performanceClient.setPreQueueTime(ir.InitializeBaseRequest,e.correlationId);const t={...e,...await this.initializeBaseRequest(e,e.account)},r=this.performanceClient.startMeasurement(ir.SilentRefreshClientAcquireToken,t.correlationId),o=this.initializeServerTelemetryManager(Zr.acquireTokenSilent_silentFlow),n=await this.createRefreshTokenClient(o,t.authority,t.azureCloudOptions);return this.logger.verbose("Refresh token client created"),this.performanceClient.setPreQueueTime(ir.RefreshTokenClientAcquireTokenByRefreshToken,e.correlationId),n.acquireTokenByRefreshToken(t).then((e=>e)).then((e=>(r.endMeasurement({success:!0,fromCache:e.fromCache,requestId:e.requestId}),e))).catch((e=>{throw e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e),r.endMeasurement({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e}))}logout(){return Promise.reject(Hr.createSilentLogoutUnsupportedError())}async createRefreshTokenClient(e,t,r){this.performanceClient.setPreQueueTime(ir.StandardInteractionClientGetClientConfiguration,this.correlationId);const o=await this.getClientConfiguration(e,t,r);return new mr(o,this.performanceClient)}}class $o{constructor(e,t){this.eventCallbacks=new Map,this.logger=e,this.browserCrypto=t,this.listeningToStorageEvents=!1,this.handleAccountCacheChange=this.handleAccountCacheChange.bind(this)}addEventCallback(e){if("undefined"!=typeof window){const t=this.browserCrypto.createNewGuid();return this.eventCallbacks.set(t,e),this.logger.verbose(`Event callback registered with id: ${t}`),t}return null}removeEventCallback(e){this.eventCallbacks.delete(e),this.logger.verbose(`Event callback ${e} removed.`)}enableAccountStorageEvents(){"undefined"!=typeof window&&(this.listeningToStorageEvents?this.logger.verbose("Account storage listener already registered."):(this.logger.verbose("Adding account storage listener."),this.listeningToStorageEvents=!0,window.addEventListener("storage",this.handleAccountCacheChange)))}disableAccountStorageEvents(){"undefined"!=typeof window&&(this.listeningToStorageEvents?(this.logger.verbose("Removing account storage listener."),window.removeEventListener("storage",this.handleAccountCacheChange),this.listeningToStorageEvents=!1):this.logger.verbose("No account storage listener registered."))}emitEvent(e,t,r,o){if("undefined"!=typeof window){const n={eventType:e,interactionType:t||null,payload:r||null,error:o||null,timestamp:Date.now()};this.logger.info(`Emitting event: ${e}`),this.eventCallbacks.forEach(((t,r)=>{this.logger.verbose(`Emitting event to callback ${r}: ${e}`),t.apply(null,[n])}))}}handleAccountCacheChange(e){try{const t=e.newValue||e.oldValue;if(!t)return;const r=JSON.parse(t);if("object"!=typeof r||!At.isAccountEntity(r))return;const o=bt.toObject(new At,r).getAccountInfo();!e.oldValue&&e.newValue?(this.logger.info("Account was added to cache in a different window"),this.emitEvent(Io.ACCOUNT_ADDED,void 0,o)):!e.newValue&&e.oldValue&&(this.logger.info("Account was removed from cache in a different window"),this.emitEvent(Io.ACCOUNT_REMOVED,void 0,o))}catch(e){return}}}class zo{static decimalToHex(e){let t=e.toString(16);for(;t.length<2;)t="0"+t;return t}}class Qo{constructor(e){this.cryptoObj=e}generateGuid(){try{const e=new Uint8Array(16);return this.cryptoObj.getRandomValues(e),e[6]|=64,e[6]&=79,e[8]|=128,e[8]&=191,zo.decimalToHex(e[0])+zo.decimalToHex(e[1])+zo.decimalToHex(e[2])+zo.decimalToHex(e[3])+"-"+zo.decimalToHex(e[4])+zo.decimalToHex(e[5])+"-"+zo.decimalToHex(e[6])+zo.decimalToHex(e[7])+"-"+zo.decimalToHex(e[8])+zo.decimalToHex(e[9])+"-"+zo.decimalToHex(e[10])+zo.decimalToHex(e[11])+zo.decimalToHex(e[12])+zo.decimalToHex(e[13])+zo.decimalToHex(e[14])+zo.decimalToHex(e[15])}catch(e){const r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",o="0123456789abcdef";let n=0,i=t.EMPTY_STRING;for(let e=0;e<36;e++)"-"!==r[e]&&"4"!==r[e]&&(n=16*Math.random()|0),"x"===r[e]?i+=o[n]:"y"===r[e]?(n&=3,n|=8,i+=o[n]):i+=r[e];return i}}isGuid(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}}class jo{static stringToUtf8Arr(e){let t,r=0;const o=e.length;for(let n=0;n<o;n++)t=e.charCodeAt(n),r+=t<128?1:t<2048?2:t<65536?3:t<2097152?4:t<67108864?5:6;const n=new Uint8Array(r);for(let o=0,i=0;o<r;i++)t=e.charCodeAt(i),t<128?n[o++]=t:t<2048?(n[o++]=192+(t>>>6),n[o++]=128+(63&t)):t<65536?(n[o++]=224+(t>>>12),n[o++]=128+(t>>>6&63),n[o++]=128+(63&t)):t<2097152?(n[o++]=240+(t>>>18),n[o++]=128+(t>>>12&63),n[o++]=128+(t>>>6&63),n[o++]=128+(63&t)):t<67108864?(n[o++]=248+(t>>>24),n[o++]=128+(t>>>18&63),n[o++]=128+(t>>>12&63),n[o++]=128+(t>>>6&63),n[o++]=128+(63&t)):(n[o++]=252+(t>>>30),n[o++]=128+(t>>>24&63),n[o++]=128+(t>>>18&63),n[o++]=128+(t>>>12&63),n[o++]=128+(t>>>6&63),n[o++]=128+(63&t));return n}static utf8ArrToString(e){let r=t.EMPTY_STRING;for(let t,o=e.length,n=0;n<o;n++)t=e[n],r+=String.fromCharCode(t>251&&t<254&&n+5<o?1073741824*(t-252)+(e[++n]-128<<24)+(e[++n]-128<<18)+(e[++n]-128<<12)+(e[++n]-128<<6)+e[++n]-128:t>247&&t<252&&n+4<o?(t-248<<24)+(e[++n]-128<<18)+(e[++n]-128<<12)+(e[++n]-128<<6)+e[++n]-128:t>239&&t<248&&n+3<o?(t-240<<18)+(e[++n]-128<<12)+(e[++n]-128<<6)+e[++n]-128:t>223&&t<240&&n+2<o?(t-224<<12)+(e[++n]-128<<6)+e[++n]-128:t>191&&t<224&&n+1<o?(t-192<<6)+e[++n]-128:t);return r}static getSortedObjectString(e){return JSON.stringify(e,Object.keys(e).sort())}}class Yo{urlEncode(e){return encodeURIComponent(this.encode(e).replace(/=/g,t.EMPTY_STRING).replace(/\+/g,"-").replace(/\//g,"_"))}urlEncodeArr(e){return this.base64EncArr(e).replace(/=/g,t.EMPTY_STRING).replace(/\+/g,"-").replace(/\//g,"_")}encode(e){const t=jo.stringToUtf8Arr(e);return this.base64EncArr(t)}base64EncArr(e){const r=(3-e.length%3)%3;let o=t.EMPTY_STRING;for(let t,r=e.length,n=0,i=0;i<r;i++)t=i%3,n|=e[i]<<(16>>>t&24),2!==t&&e.length-i!=1||(o+=String.fromCharCode(this.uint6ToB64(n>>>18&63),this.uint6ToB64(n>>>12&63),this.uint6ToB64(n>>>6&63),this.uint6ToB64(63&n)),n=0);return 0===r?o:o.substring(0,o.length-r)+(1===r?"=":"==")}uint6ToB64(e){return e<26?e+65:e<52?e+71:e<62?e-4:62===e?43:63===e?47:65}}class Wo{decode(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw new Error("Invalid base64 string")}const r=this.base64DecToArr(t);return jo.utf8ArrToString(r)}base64DecToArr(e,r){const o=e.replace(/[^A-Za-z0-9\+\/]/g,t.EMPTY_STRING),n=o.length,i=r?Math.ceil((3*n+1>>>2)/r)*r:3*n+1>>>2,a=new Uint8Array(i);for(let e,t,r=0,s=0,c=0;c<n;c++)if(t=3&c,r|=this.b64ToUint6(o.charCodeAt(c))<<18-6*t,3===t||n-c==1){for(e=0;e<3&&s<i;e++,s++)a[s]=r>>>(16>>>e&24)&255;r=0}return a}b64ToUint6(e){return e>64&&e<91?e-65:e>96&&e<123?e-71:e>47&&e<58?e+4:43===e?62:47===e?63:0}}class Vo{constructor(e){this.base64Encode=new Yo,this.cryptoObj=e}async generateCodes(){const e=this.generateCodeVerifier();return{verifier:e,challenge:await this.generateCodeChallengeFromVerifier(e)}}generateCodeVerifier(){try{const e=new Uint8Array(32);this.cryptoObj.getRandomValues(e);return this.base64Encode.urlEncodeArr(e)}catch(e){throw Hr.createPkceNotGeneratedError(e)}}async generateCodeChallengeFromVerifier(e){try{const t=await this.cryptoObj.sha256Digest(e);return this.base64Encode.urlEncodeArr(new Uint8Array(t))}catch(e){throw Hr.createPkceNotGeneratedError(e)}}}class Jo{getRandomValues(e){return window.crypto.getRandomValues(e)}async generateKey(e,t,r){return window.crypto.subtle.generateKey(e,t,r)}async exportKey(e){return window.crypto.subtle.exportKey("jwk",e)}async importKey(e,t,r,o){return window.crypto.subtle.importKey("jwk",e,t,r,o)}async sign(e,t,r){return window.crypto.subtle.sign(e,t,r)}async digest(e,t){return window.crypto.subtle.digest(e,t)}}const Xo="SHA-256",Zo=new Uint8Array([1,0,1]);class en{constructor(e){if(this.logger=e,!this.hasBrowserCrypto())throw this.logger.error("BrowserCrypto: crypto interface is unavailable"),Hr.createCryptoNotAvailableError("Browser crypto interface is not available.");this.logger.verbose("BrowserCrypto: modern crypto interface available"),this.subtleCrypto=new Jo,this.keygenAlgorithmOptions={name:"RSASSA-PKCS1-v1_5",hash:Xo,modulusLength:2048,publicExponent:Zo}}hasBrowserCrypto(){return"crypto"in window}async sha256Digest(e){const t=jo.stringToUtf8Arr(e);return this.subtleCrypto.digest({name:Xo},t)}getRandomValues(e){return this.subtleCrypto.getRandomValues(e)}async generateKeyPair(e,t){return this.subtleCrypto.generateKey(this.keygenAlgorithmOptions,e,t)}async exportJwk(e){return this.subtleCrypto.exportKey(e)}async importJwk(e,t,r){return this.subtleCrypto.importKey(e,this.keygenAlgorithmOptions,t,r)}async sign(e,t){return this.subtleCrypto.sign(this.keygenAlgorithmOptions,e,t)}}class tn{constructor(){this.dbName=oo,this.version=1,this.tableName=no,this.dbOpen=!1}async open(){return new Promise(((e,t)=>{const r=window.indexedDB.open(this.dbName,this.version);r.addEventListener("upgradeneeded",(e=>{e.target.result.createObjectStore(this.tableName)})),r.addEventListener("success",(t=>{const r=t;this.db=r.target.result,this.dbOpen=!0,e()})),r.addEventListener("error",(()=>t(Hr.createDatabaseUnavailableError())))}))}closeConnection(){const e=this.db;e&&this.dbOpen&&(e.close(),this.dbOpen=!1)}async validateDbIsOpen(){if(!this.dbOpen)return await this.open()}async getItem(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(Hr.createDatabaseNotOpenError());const o=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).get(e);o.addEventListener("success",(e=>{const r=e;this.closeConnection(),t(r.target.result)})),o.addEventListener("error",(e=>{this.closeConnection(),r(e)}))}))}async setItem(e,t){return await this.validateDbIsOpen(),new Promise(((r,o)=>{if(!this.db)return o(Hr.createDatabaseNotOpenError());const n=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).put(t,e);n.addEventListener("success",(()=>{this.closeConnection(),r()})),n.addEventListener("error",(e=>{this.closeConnection(),o(e)}))}))}async removeItem(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(Hr.createDatabaseNotOpenError());const o=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).delete(e);o.addEventListener("success",(()=>{this.closeConnection(),t()})),o.addEventListener("error",(e=>{this.closeConnection(),r(e)}))}))}async getKeys(){return await this.validateDbIsOpen(),new Promise(((e,t)=>{if(!this.db)return t(Hr.createDatabaseNotOpenError());const r=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).getAllKeys();r.addEventListener("success",(t=>{const r=t;this.closeConnection(),e(r.target.result)})),r.addEventListener("error",(e=>{this.closeConnection(),t(e)}))}))}async containsKey(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(Hr.createDatabaseNotOpenError());const o=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).count(e);o.addEventListener("success",(e=>{const r=e;this.closeConnection(),t(1===r.target.result)})),o.addEventListener("error",(e=>{this.closeConnection(),r(e)}))}))}async deleteDatabase(){return this.db&&this.dbOpen&&this.closeConnection(),new Promise(((e,t)=>{const r=window.indexedDB.deleteDatabase(oo);r.addEventListener("success",(()=>e(!0))),r.addEventListener("blocked",(()=>e(!0))),r.addEventListener("error",(()=>t(!1)))}))}}class rn{constructor(e,t){this.inMemoryCache=new lo,this.indexedDBCache=new tn,this.logger=e,this.storeName=t}handleDatabaseAccessError(e){if(!(e instanceof Hr&&e.errorCode===Ur.databaseUnavailable.code))throw e;this.logger.error("Could not access persistent storage. This may be caused by browser privacy features which block persistent storage in third-party contexts.")}async getItem(e){const t=this.inMemoryCache.getItem(e);if(!t)try{return this.logger.verbose("Queried item not found in in-memory cache, now querying persistent storage."),await this.indexedDBCache.getItem(e)}catch(e){this.handleDatabaseAccessError(e)}return t}async setItem(e,t){this.inMemoryCache.setItem(e,t);try{await this.indexedDBCache.setItem(e,t)}catch(e){this.handleDatabaseAccessError(e)}}async removeItem(e){this.inMemoryCache.removeItem(e);try{await this.indexedDBCache.removeItem(e)}catch(e){this.handleDatabaseAccessError(e)}}async getKeys(){const e=this.inMemoryCache.getKeys();if(0===e.length)try{return this.logger.verbose("In-memory cache is empty, now querying persistent storage."),await this.indexedDBCache.getKeys()}catch(e){this.handleDatabaseAccessError(e)}return e}async containsKey(e){const t=this.inMemoryCache.containsKey(e);if(!t)try{return this.logger.verbose("Key not found in in-memory cache, now querying persistent storage."),await this.indexedDBCache.containsKey(e)}catch(e){this.handleDatabaseAccessError(e)}return t}clearInMemory(){this.logger.verbose(`Deleting in-memory keystore ${this.storeName}`),this.inMemoryCache.clear(),this.logger.verbose(`In-memory keystore ${this.storeName} deleted`)}async clearPersistent(){try{this.logger.verbose("Deleting persistent keystore");const e=await this.indexedDBCache.deleteDatabase();return e&&this.logger.verbose("Persistent keystore deleted"),e}catch(e){return this.handleDatabaseAccessError(e),!1}}}const on="asymmetricKeys",nn="symmetricKeys";class an{constructor(e){this.logger=e,this.asymmetricKeys=new rn(this.logger,on),this.symmetricKeys=new rn(this.logger,nn)}async clear(){this.asymmetricKeys.clearInMemory(),this.symmetricKeys.clearInMemory();try{return await this.asymmetricKeys.clearPersistent(),!0}catch(e){return e instanceof Error?this.logger.error(`Clearing keystore failed with error: ${e.message}`):this.logger.error("Clearing keystore failed with unknown error"),!1}}}class sn{constructor(e,t){this.logger=e,this.browserCrypto=new en(this.logger),this.b64Encode=new Yo,this.b64Decode=new Wo,this.guidGenerator=new Qo(this.browserCrypto),this.pkceGenerator=new Vo(this.browserCrypto),this.cache=new an(this.logger),this.performanceClient=t}createNewGuid(){return this.guidGenerator.generateGuid()}base64Encode(e){return this.b64Encode.encode(e)}base64Decode(e){return this.b64Decode.decode(e)}async generatePkceCodes(){return this.pkceGenerator.generateCodes()}async getPublicKeyThumbprint(e){const t=this.performanceClient?.startMeasurement(ir.CryptoOptsGetPublicKeyThumbprint,e.correlationId),r=await this.browserCrypto.generateKeyPair(sn.EXTRACTABLE,sn.POP_KEY_USAGES),o=await this.browserCrypto.exportJwk(r.publicKey),n={e:o.e,kty:o.kty,n:o.n},i=jo.getSortedObjectString(n),a=await this.hashString(i),s=await this.browserCrypto.exportJwk(r.privateKey),c=await this.browserCrypto.importJwk(s,!1,["sign"]);return await this.cache.asymmetricKeys.setItem(a,{privateKey:c,publicKey:r.publicKey,requestMethod:e.resourceRequestMethod,requestUri:e.resourceRequestUri}),t&&t.endMeasurement({success:!0}),a}async removeTokenBindingKey(e){await this.cache.asymmetricKeys.removeItem(e);return!await this.cache.asymmetricKeys.containsKey(e)}async clearKeystore(){return await this.cache.clear()}async signJwt(e,t,r){const o=this.performanceClient?.startMeasurement(ir.CryptoOptsSignJwt,r),n=await this.cache.asymmetricKeys.getItem(t);if(!n)throw Hr.createSigningKeyNotFoundInStorageError(t);const i=await this.browserCrypto.exportJwk(n.publicKey),a=jo.getSortedObjectString(i),s=this.b64Encode.urlEncode(JSON.stringify({kid:t})),c=Pr.getShrHeaderString({kid:s,alg:i.alg}),d=this.b64Encode.urlEncode(c);e.cnf={jwk:JSON.parse(a)};const l=`${d}.${this.b64Encode.urlEncode(JSON.stringify(e))}`,h=jo.stringToUtf8Arr(l),u=await this.browserCrypto.sign(n.privateKey,h),g=`${l}.${this.b64Encode.urlEncodeArr(new Uint8Array(u))}`;return o&&o.endMeasurement({success:!0}),g}async hashString(e){const t=await this.browserCrypto.sha256Digest(e),r=new Uint8Array(t);return this.b64Encode.urlEncodeArr(r)}}sn.POP_KEY_USAGES=["sign","verify"],sn.EXTRACTABLE=!0;class cn{constructor(e,t){this.correlationId=t,this.measureName=cn.makeMeasureName(e,t),this.startMark=cn.makeStartMark(e,t),this.endMark=cn.makeEndMark(e,t)}static makeMeasureName(e,t){return`msal.measure.${e}.${t}`}static makeStartMark(e,t){return`msal.start.${e}.${t}`}static makeEndMark(e,t){return`msal.end.${e}.${t}`}static supportsBrowserPerformance(){return"undefined"!=typeof window&&void 0!==window.performance&&"function"==typeof window.performance.mark&&"function"==typeof window.performance.measure&&"function"==typeof window.performance.clearMarks&&"function"==typeof window.performance.clearMeasures&&"function"==typeof window.performance.getEntriesByName}static flushMeasurements(e,t){if(cn.supportsBrowserPerformance())try{t.forEach((t=>{const r=cn.makeMeasureName(t.name,e);window.performance.getEntriesByName(r,"measure").length>0&&(window.performance.clearMeasures(r),window.performance.clearMarks(cn.makeStartMark(r,e)),window.performance.clearMarks(cn.makeEndMark(r,e)))}))}catch(e){}}startMeasurement(){if(cn.supportsBrowserPerformance())try{window.performance.mark(this.startMark)}catch(e){}}endMeasurement(){if(cn.supportsBrowserPerformance())try{window.performance.mark(this.endMark),window.performance.measure(this.measureName,this.startMark,this.endMark)}catch(e){}}flushMeasurement(){if(cn.supportsBrowserPerformance())try{const e=window.performance.getEntriesByName(this.measureName,"measure");if(e.length>0){const t=e[0].duration;return window.performance.clearMeasures(this.measureName),window.performance.clearMarks(this.startMark),window.performance.clearMarks(this.endMark),t}}catch(e){}return null}}class dn extends Nr{constructor(e,t,r,o,n,i){super(e,t,r,o,n,i),this.browserCrypto=new en(this.logger),this.guidGenerator=new Qo(this.browserCrypto)}startPerformanceMeasurement(e,t){return new cn(e,t)}generateId(){return this.guidGenerator.generateGuid()}getPageVisibility(){return document.visibilityState?.toString()||null}deleteIncompleteSubMeasurements(e){const t=this.eventsByCorrelationId.get(e.event.correlationId),r=t&&t.eventId===e.event.eventId,o=[];r&&t?.incompleteSubMeasurements&&t.incompleteSubMeasurements.forEach((e=>{o.push({...e})})),o.length>0&&cn.flushMeasurements(e.event.correlationId,o)}supportsBrowserPerformanceNow(){return"undefined"!=typeof window&&void 0!==window.performance&&"function"==typeof window.performance.now}startMeasurement(e,t){const r=this.getPageVisibility(),o=super.startMeasurement(e,t);return{...o,endMeasurement:e=>{const t=o.endMeasurement({startPageVisibility:r,endPageVisibility:this.getPageVisibility(),...e});return this.deleteIncompleteSubMeasurements(o),t},discardMeasurement:()=>{o.discardMeasurement(),this.deleteIncompleteSubMeasurements(o),o.measurement.flushMeasurement()}}}setPreQueueTime(e,t){if(!this.supportsBrowserPerformanceNow())return void this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to set telemetry queue time for ${e}`);if(!t)return void this.logger.trace(`BrowserPerformanceClient: correlationId for ${e} not provided, unable to set telemetry queue time`);const r=this.preQueueTimeByCorrelationId.get(t);r&&(this.logger.trace(`BrowserPerformanceClient: Incomplete pre-queue ${r.name} found`,t),this.addQueueMeasurement(r.name,t,void 0,!0)),this.preQueueTimeByCorrelationId.set(t,{name:e,time:window.performance.now()})}addQueueMeasurement(e,t,r,o){if(!this.supportsBrowserPerformanceNow())return void this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to add queue measurement for ${e}`);if(!t)return void this.logger.trace(`BrowserPerformanceClient: correlationId for ${e} not provided, unable to add queue measurement`);const n=super.getPreQueueTime(e,t);if(!n)return;const i=window.performance.now(),a=r||super.calculateQueuedTime(n,i);return super.addQueueMeasurement(e,t,a,o)}}var ln=Object.freeze({__proto__:null,BrowserCacheManager:uo,BrowserConstants:Lr,BrowserPerformanceClient:dn,BrowserPerformanceMeasurement:cn,CacheRecord:go,CryptoOps:sn,EventHandler:$o,NativeAuthError:Oo,NativeInteractionClient:Uo,NativeMessageHandler:Ho,PopupClient:xo,RedirectClient:Lo,RedirectHandler:Eo,SilentCacheClient:qo,SilentIframeClient:Ko,SilentRefreshClient:Go,StandardInteractionClient:wo,TemporaryCacheKeys:Yr});class hn{constructor(r){this.browserEnvironment="undefined"!=typeof window,this.config=function({auth:r,cache:o,system:n,telemetry:i},a){const s={clientId:t.EMPTY_STRING,authority:`${t.DEFAULT_AUTHORITY}`,knownAuthorities:[],cloudDiscoveryMetadata:t.EMPTY_STRING,authorityMetadata:t.EMPTY_STRING,redirectUri:t.EMPTY_STRING,postLogoutRedirectUri:t.EMPTY_STRING,navigateToLoginRequestUrl:!0,clientCapabilities:[],protocolMode:vr.AAD,azureCloudOptions:{azureCloudInstance:yt.None,tenant:t.EMPTY_STRING},skipAuthorityMetadataCache:!1},c={cacheLocation:zr.SessionStorage,temporaryCacheLocation:zr.SessionStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!(!o||o.cacheLocation!==zr.LocalStorage),claimsBasedCachingEnabled:!1},d={loggerCallback:()=>{},logLevel:e.LogLevel.Info,piiLoggingEnabled:!1},l={...Mt,loggerOptions:d,networkClient:a?Co.getBrowserNetworkClient():Sr,navigationClient:new Fo,loadFrameTimeout:0,windowHashTimeout:n?.loadFrameTimeout||6e4,iframeHashTimeout:n?.loadFrameTimeout||Do,navigateFrameWait:a&&Co.detectIEOrEdge()?500:0,redirectNavigationTimeout:3e4,asyncPopups:!1,allowRedirectInIframe:!1,allowNativeBroker:!0,nativeBrokerHandshakeTimeout:n?.nativeBrokerHandshakeTimeout||2e3,pollIntervalMilliseconds:Lr.DEFAULT_POLL_INTERVAL_MS},h={...n,loggerOptions:n?.loggerOptions||d},u={application:{appName:t.EMPTY_STRING,appVersion:t.EMPTY_STRING}};return{auth:{...s,...r},cache:{...c,...o},system:{...l,...h},telemetry:{...u,...i}}}(r,this.browserEnvironment),this.logger=new pt(this.config.system.loggerOptions,po,mo),this.available=!1}getConfig(){return this.config}getLogger(){return this.logger}isAvailable(){return this.available}isBrowserEnvironment(){return this.browserEnvironment}}class un extends hn{getModuleName(){return un.MODULE_NAME}getId(){return un.ID}async initialize(){return!1}}un.MODULE_NAME="",un.ID="TeamsAppOperatingContext";class gn extends hn{getModuleName(){return gn.MODULE_NAME}getId(){return gn.ID}async initialize(){return this.available="undefined"!=typeof window,this.available}}gn.MODULE_NAME="",gn.ID="StandardOperatingContext";class pn{constructor(e){this.config=e;const t={loggerCallback:void 0,piiLoggingEnabled:!1,logLevel:void 0,correlationId:void 0};this.logger=new pt(t,po,mo)}async createController(){const e=new gn(this.config),t=new un(this.config),r=[e.initialize(),t.initialize()];return Promise.all(r).then((async()=>{if(t.isAvailable()){const t=await Promise.resolve().then((function(){return vn}));return await t.StandardController.createController(e)}if(e.isAvailable()){const t=await Promise.resolve().then((function(){return vn}));return await t.StandardController.createController(e)}throw new Error("No controller found.")}))}}class mn{constructor(e,t,r,o){this.isBrowserEnvironment="undefined"!=typeof window,this.config=e,this.storage=t,this.logger=r,this.cryptoObj=o}loadExternalTokens(e,t,r){if(this.logger.info("TokenCache - loadExternalTokens called"),!t.id_token)throw Hr.createUnableToLoadTokenError("Please ensure server response includes id token.");const o=new Rt(t.id_token,this.cryptoObj);let n,i;if(e.account){const i=this.loadAccount(o,e.account.environment,void 0,void 0,e.account.homeAccountId);n=new go(i,this.loadIdToken(o,i.homeAccountId,e.account.environment,e.account.tenantId),this.loadAccessToken(e,t,i.homeAccountId,e.account.environment,e.account.tenantId,r),this.loadRefreshToken(e,t,i.homeAccountId,e.account.environment))}else{if(!e.authority)throw Hr.createUnableToLoadTokenError("Please provide a request with an account or a request with authority.");{const a=Er.generateAuthority(e.authority,e.azureCloudOptions),s={protocolMode:this.config.auth.protocolMode,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata,skipAuthorityMetadataCache:this.config.auth.skipAuthorityMetadataCache};if(i=new Er(a,this.config.system.networkClient,this.storage,s,this.logger),r.clientInfo){this.logger.trace("TokenCache - homeAccountId from options");const a=this.loadAccount(o,i.hostnameAndPort,r.clientInfo,i.authorityType);n=new go(a,this.loadIdToken(o,a.homeAccountId,i.hostnameAndPort,i.tenant),this.loadAccessToken(e,t,a.homeAccountId,i.hostnameAndPort,i.tenant,r),this.loadRefreshToken(e,t,a.homeAccountId,i.hostnameAndPort))}else{if(!t.client_info)throw Hr.createUnableToLoadTokenError("Please provide clientInfo in the response or options.");{this.logger.trace("TokenCache - homeAccountId from response");const a=this.loadAccount(o,i.hostnameAndPort,t.client_info,i.authorityType);n=new go(a,this.loadIdToken(o,a.homeAccountId,i.hostnameAndPort,i.tenant),this.loadAccessToken(e,t,a.homeAccountId,i.hostnameAndPort,i.tenant,r),this.loadRefreshToken(e,t,a.homeAccountId,i.hostnameAndPort))}}}}return this.generateAuthenticationResult(e,o,n,i)}loadAccount(e,t,r,o,n){let i;if(n?i=n:void 0!==o&&r&&(i=At.generateHomeAccountId(r,o,this.logger,this.cryptoObj,e)),!i)throw Hr.createUnableToLoadTokenError("Unexpected missing homeAccountId");const a=r?At.createAccount(r,i,e,void 0,void 0,void 0,t):At.createGenericAccount(i,e,void 0,void 0,void 0,t);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading account"),this.storage.setAccount(a),a;throw Hr.createUnableToLoadTokenError("loadExternalTokens is designed to work in browser environments only.")}loadIdToken(e,t,r,o){const n=Yt.createIdTokenEntity(t,r,e.rawToken,this.config.auth.clientId,o);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading id token"),this.storage.setIdTokenCredential(n),n;throw Hr.createUnableToLoadTokenError("loadExternalTokens is designed to work in browser environments only.")}loadAccessToken(e,t,r,o,n,i){if(!t.access_token)return this.logger.verbose("TokenCache - No access token provided for caching"),null;if(!t.expires_in)throw Hr.createUnableToLoadTokenError("Please ensure server response includes expires_in value.");if(!i.extendedExpiresOn)throw Hr.createUnableToLoadTokenError("Please provide an extendedExpiresOn value in the options.");const a=new wt(e.scopes).printScopes(),s=i.expiresOn||t.expires_in+(new Date).getTime()/1e3,c=i.extendedExpiresOn,d=Vt.createAccessTokenEntity(r,o,t.access_token,this.config.auth.clientId,n,a,s,c,this.cryptoObj);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading access token"),this.storage.setAccessTokenCredential(d),d;throw Hr.createUnableToLoadTokenError("loadExternalTokens is designed to work in browser environments only.")}loadRefreshToken(e,t,r,o){if(!t.refresh_token)return this.logger.verbose("TokenCache - No refresh token provided for caching"),null;const n=Jt.createRefreshTokenEntity(r,o,t.refresh_token,this.config.auth.clientId);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading refresh token"),this.storage.setRefreshTokenCredential(n),n;throw Hr.createUnableToLoadTokenError("loadExternalTokens is designed to work in browser environments only.")}generateAuthenticationResult(e,r,o,n){let i,a=t.EMPTY_STRING,s=[],c=null;o?.accessToken&&(a=o.accessToken.secret,s=wt.fromString(o.accessToken.target).asArray(),c=new Date(1e3*Number(o.accessToken.expiresOn)),i=new Date(1e3*Number(o.accessToken.extendedExpiresOn)));const d=r?.claims.oid||r?.claims.sub||t.EMPTY_STRING,l=r?.claims.tid||t.EMPTY_STRING;return{authority:n?n.canonicalAuthority:t.EMPTY_STRING,uniqueId:d,tenantId:l,scopes:s,account:o.account.getAccountInfo(),idToken:r?r.rawToken:t.EMPTY_STRING,idTokenClaims:r?r.claims:{},accessToken:a,fromCache:!0,expiresOn:c,correlationId:e.correlationId||t.EMPTY_STRING,requestId:t.EMPTY_STRING,extExpiresOn:i,familyId:t.EMPTY_STRING,tokenType:o?.accessToken?.tokenType||t.EMPTY_STRING,state:t.EMPTY_STRING,cloudGraphHostName:o?.account?.cloudGraphHostName||t.EMPTY_STRING,msGraphHost:o?.account?.msGraphHost||t.EMPTY_STRING,code:void 0,fromNativeBroker:!1}}}class fn extends pr{constructor(e){super(e),this.includeRedirectUri=!1}}class yn extends wo{constructor(e,t,r,o,n,i,a,s,c,d){super(e,t,r,o,n,i,s,c,d),this.apiId=a}async acquireToken(r){if(this.logger.trace("SilentAuthCodeClient.acquireToken called"),!r.code)throw Hr.createAuthCodeRequiredError();this.performanceClient.setPreQueueTime(ir.StandardInteractionClientInitializeAuthorizationRequest,r.correlationId);const o=await this.initializeAuthorizationRequest(r,e.InteractionType.Silent);this.browserStorage.updateCacheEntries(o.state,o.nonce,o.authority,o.loginHint||t.EMPTY_STRING,o.account||null);const n=this.initializeServerTelemetryManager(this.apiId);try{const e={...o,code:r.code};this.performanceClient.setPreQueueTime(ir.StandardInteractionClientGetClientConfiguration,r.correlationId);const t=await this.getClientConfiguration(n,o.authority),i=new fn(t);this.logger.verbose("Auth code client created");return new Bo(i,this.browserStorage,e,this.logger,this.config.system,this.performanceClient).handleCodeResponseFromServer({code:r.code,msgraph_host:r.msGraphHost,cloud_graph_host_name:r.cloudGraphHostName,cloud_instance_host_name:r.cloudInstanceHostName},o.state,i.authority,this.networkClient,!1)}catch(e){throw e instanceof ct&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),this.browserStorage.cleanRequestByState(o.state),e}}logout(){return Promise.reject(Hr.createSilentLogoutUnsupportedError())}}class Cn{constructor(e){this.atsAsyncMeasurement=void 0,this.operatingContext=e,this.isBrowserEnvironment=this.operatingContext.isBrowserEnvironment(),this.config=e.getConfig(),this.initialized=!1,this.logger=this.operatingContext.getLogger(),this.networkClient=this.config.system.networkClient,this.navigationClient=this.config.system.navigationClient,this.redirectResponse=new Map,this.hybridAuthCodeResponses=new Map,this.performanceClient=this.isBrowserEnvironment?new dn(this.config.auth.clientId,this.config.auth.authority,this.logger,po,mo,this.config.telemetry.application):new qr(this.config.auth.clientId,this.config.auth.authority,this.logger,po,mo,this.config.telemetry.application),this.browserCrypto=this.isBrowserEnvironment?new sn(this.logger,this.performanceClient):dt,this.eventHandler=new $o(this.logger,this.browserCrypto),this.browserStorage=this.isBrowserEnvironment?new uo(this.config.auth.clientId,this.config.cache,this.browserCrypto,this.logger):((e,t)=>{const r={cacheLocation:zr.MemoryStorage,temporaryCacheLocation:zr.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1};return new uo(e,r,dt,t)})(this.config.auth.clientId,this.logger);const t={cacheLocation:zr.MemoryStorage,temporaryCacheLocation:zr.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1};this.nativeInternalStorage=new uo(this.config.auth.clientId,t,this.browserCrypto,this.logger),this.tokenCache=new mn(this.config,this.browserStorage,this.logger,this.browserCrypto),this.activeSilentTokenRequests=new Map,this.trackPageVisibility=this.trackPageVisibility.bind(this),this.trackPageVisibilityWithMeasurement=this.trackPageVisibilityWithMeasurement.bind(this)}static async createController(e){const t=new Cn(e);return t.initialize(),t}trackPageVisibility(){this.atsAsyncMeasurement&&(this.logger.info("Perf: Visibility change detected"),this.atsAsyncMeasurement.increment({visibilityChangeCount:1}))}async initialize(){if(this.logger.trace("initialize called"),this.initialized)return void this.logger.info("initialize has already been called, exiting early.");const e=this.config.system.allowNativeBroker,t=this.performanceClient.startMeasurement(ir.InitializeClientApplication);if(this.eventHandler.emitEvent(Io.INITIALIZE_START),e)try{this.nativeExtensionProvider=await Ho.createProvider(this.logger,this.config.system.nativeBrokerHandshakeTimeout,this.performanceClient,this.browserCrypto)}catch(e){this.logger.verbose(e)}this.initialized=!0,this.eventHandler.emitEvent(Io.INITIALIZE_END),t.endMeasurement({allowNativeBroker:e,success:!0})}async handleRedirectPromise(r){this.logger.verbose("handleRedirectPromise called"),Co.blockNativeBrokerCalledBeforeInitialized(this.config.system.allowNativeBroker,this.initialized);const o=this.getAllAccounts();if(this.isBrowserEnvironment){const n=r||t.EMPTY_STRING;let i=this.redirectResponse.get(n);if(void 0===i){this.eventHandler.emitEvent(Io.HANDLE_REDIRECT_START,e.InteractionType.Redirect),this.logger.verbose("handleRedirectPromise has been called for the first time, storing the promise");const a=this.browserStorage.getCachedNativeRequest();let s;if(a&&Ho.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider)&&this.nativeExtensionProvider&&!r){this.logger.trace("handleRedirectPromise - acquiring token from native platform");s=new Uo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Zr.handleRedirectPromise,this.performanceClient,this.nativeExtensionProvider,a.accountId,this.nativeInternalStorage,a.correlationId).handleRedirectPromise()}else{this.logger.trace("handleRedirectPromise - acquiring token from web flow");const e=this.browserStorage.getTemporaryCache(Yr.CORRELATION_ID,!0)||t.EMPTY_STRING;s=this.createRedirectClient(e).handleRedirectPromise(r)}i=s.then((t=>{if(t){o.length<this.getAllAccounts().length?(this.eventHandler.emitEvent(Io.LOGIN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, login success")):(this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, acquire token success"))}return this.eventHandler.emitEvent(Io.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})).catch((t=>{throw o.length>0?this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent(Io.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent(Io.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})),this.redirectResponse.set(n,i)}else this.logger.verbose("handleRedirectPromise has been called previously, returning the result from the first call");return i}return this.logger.verbose("handleRedirectPromise returns null, not browser environment"),null}async acquireTokenRedirect(t){const r=this.getRequestCorrelationId(t);this.logger.verbose("acquireTokenRedirect called",r),this.preflightBrowserEnvironmentCheck(e.InteractionType.Redirect);const o=this.getAllAccounts().length>0;let n;if(o?this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_START,e.InteractionType.Redirect,t):this.eventHandler.emitEvent(Io.LOGIN_START,e.InteractionType.Redirect,t),this.nativeExtensionProvider&&this.canUseNative(t)){n=new Uo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Zr.acquireTokenRedirect,this.performanceClient,this.nativeExtensionProvider,this.getNativeAccountId(t),this.nativeInternalStorage,t.correlationId).acquireTokenRedirect(t).catch((e=>{if(e instanceof Oo&&e.isFatal()){this.nativeExtensionProvider=void 0;return this.createRedirectClient(t.correlationId).acquireToken(t)}if(e instanceof tr){this.logger.verbose("acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow");return this.createRedirectClient(t.correlationId).acquireToken(t)}throw this.browserStorage.setInteractionInProgress(!1),e}))}else{n=this.createRedirectClient(t.correlationId).acquireToken(t)}return n.catch((t=>{throw o?this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent(Io.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),t}))}acquireTokenPopup(t){const r=this.getRequestCorrelationId(t),o=this.performanceClient.startMeasurement(ir.AcquireTokenPopup,r);try{this.logger.verbose("acquireTokenPopup called",r),this.preflightBrowserEnvironmentCheck(e.InteractionType.Popup)}catch(e){return Promise.reject(e)}const n=this.getAllAccounts();let i;if(n.length>0?this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_START,e.InteractionType.Popup,t):this.eventHandler.emitEvent(Io.LOGIN_START,e.InteractionType.Popup,t),this.canUseNative(t))i=this.acquireTokenNative(t,Zr.acquireTokenPopup).then((e=>(this.browserStorage.setInteractionInProgress(!1),o.endMeasurement({success:!0,isNativeBroker:!0,requestId:e.requestId}),e))).catch((e=>{if(e instanceof Oo&&e.isFatal()){this.nativeExtensionProvider=void 0;return this.createPopupClient(t.correlationId).acquireToken(t)}if(e instanceof tr){this.logger.verbose("acquireTokenPopup - Resolving interaction required error thrown by native broker by falling back to web flow");return this.createPopupClient(t.correlationId).acquireToken(t)}throw this.browserStorage.setInteractionInProgress(!1),e}));else{i=this.createPopupClient(t.correlationId).acquireToken(t)}return i.then((t=>(n.length<this.getAllAccounts().length?this.eventHandler.emitEvent(Io.LOGIN_SUCCESS,e.InteractionType.Popup,t):this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Popup,t),o.addStaticFields({accessTokenSize:t.accessToken.length,idTokenSize:t.idToken.length}),o.endMeasurement({success:!0,requestId:t.requestId}),t))).catch((t=>(n.length>0?this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Popup,null,t):this.eventHandler.emitEvent(Io.LOGIN_FAILURE,e.InteractionType.Popup,null,t),o.endMeasurement({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),Promise.reject(t))))}trackPageVisibilityWithMeasurement(){const e=this.ssoSilentMeasurement||this.acquireTokenByCodeAsyncMeasurement;e&&(this.logger.info("Perf: Visibility change detected in ",e.event.name),e.increment({visibilityChangeCount:1}))}async ssoSilent(t){const r=this.getRequestCorrelationId(t),o={...t,prompt:t.prompt,correlationId:r};let n;if(this.preflightBrowserEnvironmentCheck(e.InteractionType.Silent),this.ssoSilentMeasurement=this.performanceClient.startMeasurement(ir.SsoSilent,r),this.ssoSilentMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement),this.logger.verbose("ssoSilent called",r),this.eventHandler.emitEvent(Io.SSO_SILENT_START,e.InteractionType.Silent,o),this.canUseNative(o))n=this.acquireTokenNative(o,Zr.ssoSilent).catch((e=>{if(e instanceof Oo&&e.isFatal()){this.nativeExtensionProvider=void 0;return this.createSilentIframeClient(o.correlationId).acquireToken(o)}throw e}));else{n=this.createSilentIframeClient(o.correlationId).acquireToken(o)}return n.then((t=>(this.eventHandler.emitEvent(Io.SSO_SILENT_SUCCESS,e.InteractionType.Silent,t),this.ssoSilentMeasurement?.addStaticFields({accessTokenSize:t.accessToken.length,idTokenSize:t.idToken.length}),this.ssoSilentMeasurement?.endMeasurement({success:!0,isNativeBroker:t.fromNativeBroker,requestId:t.requestId}),t))).catch((t=>{throw this.eventHandler.emitEvent(Io.SSO_SILENT_FAILURE,e.InteractionType.Silent,null,t),this.ssoSilentMeasurement?.endMeasurement({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t})).finally((()=>{document.removeEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement)}))}async acquireTokenByCode(t){const r=this.getRequestCorrelationId(t);this.preflightBrowserEnvironmentCheck(e.InteractionType.Silent),this.logger.trace("acquireTokenByCode called",r),this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_BY_CODE_START,e.InteractionType.Silent,t);const o=this.performanceClient.startMeasurement(ir.AcquireTokenByCode,t.correlationId);try{if(t.code&&t.nativeAccountId)throw Hr.createSpaCodeAndNativeAccountIdPresentError();if(t.code){const n=t.code;let i=this.hybridAuthCodeResponses.get(n);return i?(this.logger.verbose("Existing acquireTokenByCode request found",t.correlationId),o.discardMeasurement()):(this.logger.verbose("Initiating new acquireTokenByCode request",r),i=this.acquireTokenByCodeAsync({...t,correlationId:r}).then((t=>(this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_BY_CODE_SUCCESS,e.InteractionType.Silent,t),this.hybridAuthCodeResponses.delete(n),o.addStaticFields({accessTokenSize:t.accessToken.length,idTokenSize:t.idToken.length}),o.endMeasurement({success:!0,isNativeBroker:t.fromNativeBroker,requestId:t.requestId}),t))).catch((t=>{throw this.hybridAuthCodeResponses.delete(n),this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_BY_CODE_FAILURE,e.InteractionType.Silent,null,t),o.endMeasurement({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t})),this.hybridAuthCodeResponses.set(n,i)),i}if(t.nativeAccountId){if(this.canUseNative(t,t.nativeAccountId))return this.acquireTokenNative(t,Zr.acquireTokenByCode,t.nativeAccountId).catch((e=>{throw e instanceof Oo&&e.isFatal()&&(this.nativeExtensionProvider=void 0),e}));throw Hr.createUnableToAcquireTokenFromNativePlatformError()}throw Hr.createAuthCodeOrNativeAccountIdRequiredError()}catch(t){throw this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_BY_CODE_FAILURE,e.InteractionType.Silent,null,t),o.endMeasurement({errorCode:t instanceof ct&&t.errorCode||void 0,subErrorCode:t instanceof ct&&t.subError||void 0,success:!1}),t}}async acquireTokenByCodeAsync(e){this.logger.trace("acquireTokenByCodeAsync called",e.correlationId),this.acquireTokenByCodeAsyncMeasurement=this.performanceClient.startMeasurement(ir.AcquireTokenByCodeAsync,e.correlationId),this.acquireTokenByCodeAsyncMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement);const t=this.createSilentAuthCodeClient(e.correlationId);return await t.acquireToken(e).then((e=>(this.acquireTokenByCodeAsyncMeasurement?.endMeasurement({success:!0,fromCache:e.fromCache,isNativeBroker:e.fromNativeBroker,requestId:e.requestId}),e))).catch((e=>{throw this.acquireTokenByCodeAsyncMeasurement?.endMeasurement({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e})).finally((()=>{document.removeEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement)}))}async acquireTokenFromCache(e,t,r){switch(this.performanceClient.addQueueMeasurement(ir.AcquireTokenFromCache,t.correlationId),r.cacheLookupPolicy){case io.Default:case io.AccessToken:case io.AccessTokenAndRefreshToken:return e.acquireToken(t);default:throw ht.createRefreshRequiredError()}}async acquireTokenByRefreshToken(e,t){switch(this.performanceClient.addQueueMeasurement(ir.AcquireTokenByRefreshToken,e.correlationId),t.cacheLookupPolicy){case io.Default:case io.AccessTokenAndRefreshToken:case io.RefreshToken:case io.RefreshTokenAndNetwork:const t=this.createSilentRefreshClient(e.correlationId);return this.performanceClient.setPreQueueTime(ir.SilentRefreshClientAcquireToken,e.correlationId),t.acquireToken(e);default:throw ht.createRefreshRequiredError()}}async acquireTokenBySilentIframe(e){this.performanceClient.addQueueMeasurement(ir.AcquireTokenBySilentIframe,e.correlationId);const t=this.createSilentIframeClient(e.correlationId);return this.performanceClient.setPreQueueTime(ir.SilentIframeClientAcquireToken,e.correlationId),t.acquireToken(e)}async logout(e){const t=this.getRequestCorrelationId(e);return this.logger.warning("logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.",t),this.logoutRedirect({correlationId:t,...e})}async logoutRedirect(t){const r=this.getRequestCorrelationId(t);this.preflightBrowserEnvironmentCheck(e.InteractionType.Redirect);return this.createRedirectClient(r).logout(t)}logoutPopup(t){try{const r=this.getRequestCorrelationId(t);this.preflightBrowserEnvironmentCheck(e.InteractionType.Popup);return this.createPopupClient(r).logout(t)}catch(e){return Promise.reject(e)}}getAllAccounts(){return this.logger.verbose("getAllAccounts called"),this.isBrowserEnvironment?this.browserStorage.getAllAccounts():[]}getAccountByUsername(e){if(this.logger.trace("getAccountByUsername called"),!e)return this.logger.warning("getAccountByUsername: No username provided"),null;const t=this.browserStorage.getAccountInfoFilteredBy({username:e});return t?(this.logger.verbose("getAccountByUsername: Account matching username found, returning"),this.logger.verbosePii(`getAccountByUsername: Returning signed-in accounts matching username: ${e}`),t):(this.logger.verbose("getAccountByUsername: No matching account found, returning null"),null)}getAccountByHomeId(e){if(this.logger.trace("getAccountByHomeId called"),!e)return this.logger.warning("getAccountByHomeId: No homeAccountId provided"),null;const t=this.browserStorage.getAccountInfoFilteredBy({homeAccountId:e});return t?(this.logger.verbose("getAccountByHomeId: Account matching homeAccountId found, returning"),this.logger.verbosePii(`getAccountByHomeId: Returning signed-in accounts matching homeAccountId: ${e}`),t):(this.logger.verbose("getAccountByHomeId: No matching account found, returning null"),null)}getAccountByLocalId(e){if(this.logger.trace("getAccountByLocalId called"),!e)return this.logger.warning("getAccountByLocalId: No localAccountId provided"),null;const t=this.browserStorage.getAccountInfoFilteredBy({localAccountId:e});return t?(this.logger.verbose("getAccountByLocalId: Account matching localAccountId found, returning"),this.logger.verbosePii(`getAccountByLocalId: Returning signed-in accounts matching localAccountId: ${e}`),t):(this.logger.verbose("getAccountByLocalId: No matching account found, returning null"),null)}setActiveAccount(e){this.browserStorage.setActiveAccount(e)}getActiveAccount(){return this.browserStorage.getActiveAccount()}preflightBrowserEnvironmentCheck(t,r=!1){if(this.logger.verbose("preflightBrowserEnvironmentCheck started"),Co.blockNonBrowserEnvironment(this.isBrowserEnvironment),Co.blockRedirectInIframe(t,this.config.system.allowRedirectInIframe),Co.blockReloadInHiddenIframes(),Co.blockAcquireTokenInPopups(),r||Co.blockNativeBrokerCalledBeforeInitialized(this.config.system.allowNativeBroker,this.initialized),t===e.InteractionType.Redirect&&this.config.cache.cacheLocation===zr.MemoryStorage&&!this.config.cache.storeAuthStateInCookie)throw so.createInMemoryRedirectUnavailableError();t!==e.InteractionType.Redirect&&t!==e.InteractionType.Popup||this.preflightInteractiveRequest(!r)}preflightInteractiveRequest(e){this.logger.verbose("preflightInteractiveRequest called, validating app environment"),Co.blockReloadInHiddenIframes(),e&&this.browserStorage.setInteractionInProgress(!0)}async acquireTokenNative(e,t,r){if(this.logger.trace("acquireTokenNative called"),!this.nativeExtensionProvider)throw Hr.createNativeConnectionNotEstablishedError();return new Uo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,t,this.performanceClient,this.nativeExtensionProvider,r||this.getNativeAccountId(e),this.nativeInternalStorage,e.correlationId).acquireToken(e)}canUseNative(e,t){if(this.logger.trace("canUseNative called"),!Ho.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider,e.authenticationScheme))return this.logger.trace("canUseNative: isNativeAvailable returned false, returning false"),!1;if(e.prompt)switch(e.prompt){case se.NONE:case se.CONSENT:case se.LOGIN:this.logger.trace("canUseNative: prompt is compatible with native flow");break;default:return this.logger.trace(`canUseNative: prompt = ${e.prompt} is not compatible with native flow, returning false`),!1}return!(!t&&!this.getNativeAccountId(e))||(this.logger.trace("canUseNative: nativeAccountId is not available, returning false"),!1)}getNativeAccountId(e){const t=e.account||this.browserStorage.getAccountInfoByHints(e.loginHint,e.sid)||this.getActiveAccount();return t&&t.nativeAccountId||""}createPopupClient(e){return new xo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createRedirectClient(e){return new Lo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentIframeClient(e){return new Ko(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Zr.ssoSilent,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentCacheClient(e){return new qo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentRefreshClient(e){return new Go(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentAuthCodeClient(e){return new yn(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Zr.acquireTokenByCode,this.performanceClient,this.nativeExtensionProvider,e)}addEventCallback(e){return this.eventHandler.addEventCallback(e)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){return this.performanceClient.addPerformanceCallback(e)}removePerformanceCallback(e){return this.performanceClient.removePerformanceCallback(e)}enableAccountStorageEvents(){this.eventHandler.enableAccountStorageEvents()}disableAccountStorageEvents(){this.eventHandler.disableAccountStorageEvents()}getTokenCache(){return this.tokenCache}getLogger(){return this.logger}setLogger(e){this.logger=e}initializeWrapperLibrary(e,t){this.browserStorage.setWrapperMetadata(e,t)}setNavigationClient(e){this.navigationClient=e}getConfiguration(){return this.config}getPerformanceClient(){return this.performanceClient}getBrowserStorage(){return this.browserStorage}getNativeInternalStorage(){return this.nativeInternalStorage}getBrowserCrypto(){return this.browserCrypto}isBrowserEnv(){return this.isBrowserEnvironment}getNativeExtensionProvider(){return this.nativeExtensionProvider}setNativeExtensionProvider(e){this.nativeExtensionProvider=e}getEventHandler(){return this.eventHandler}getNavigationClient(){return this.navigationClient}getRedirectResponse(){return this.redirectResponse}getRequestCorrelationId(e){return e?.correlationId?e.correlationId:this.isBrowserEnvironment?this.browserCrypto.createNewGuid():t.EMPTY_STRING}async loginRedirect(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginRedirect called",t),this.acquireTokenRedirect({correlationId:t,...e||ro})}loginPopup(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginPopup called",t),this.acquireTokenPopup({correlationId:t,...e||ro})}async acquireTokenSilent(r){const o=this.getRequestCorrelationId(r),n=this.performanceClient.startMeasurement(ir.AcquireTokenSilent,o);n.addStaticFields({cacheLookupPolicy:r.cacheLookupPolicy}),this.preflightBrowserEnvironmentCheck(e.InteractionType.Silent),this.logger.verbose("acquireTokenSilent called",o);const i=r.account||this.getActiveAccount();if(!i)throw Hr.createNoAccountError();const a={clientId:this.config.auth.clientId,authority:r.authority||t.EMPTY_STRING,scopes:r.scopes,homeAccountIdentifier:i.homeAccountId,claims:r.claims,authenticationScheme:r.authenticationScheme,resourceRequestMethod:r.resourceRequestMethod,resourceRequestUri:r.resourceRequestUri,shrClaims:r.shrClaims,sshKid:r.sshKid},s=JSON.stringify(a),c=this.activeSilentTokenRequests.get(s);if(void 0===c){this.logger.verbose("acquireTokenSilent called for the first time, storing active request",o),this.performanceClient.setPreQueueTime(ir.AcquireTokenSilentAsync,o);const e=this.acquireTokenSilentAsync({...r,correlationId:o},i).then((e=>(this.activeSilentTokenRequests.delete(s),n.addStaticFields({accessTokenSize:e.accessToken.length,idTokenSize:e.idToken.length}),n.endMeasurement({success:!0,fromCache:e.fromCache,isNativeBroker:e.fromNativeBroker,cacheLookupPolicy:r.cacheLookupPolicy,requestId:e.requestId}),e))).catch((e=>{throw this.activeSilentTokenRequests.delete(s),n.endMeasurement({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e}));return this.activeSilentTokenRequests.set(s,e),e}return this.logger.verbose("acquireTokenSilent has been called previously, returning the result from the first call",o),n.discardMeasurement(),c}async acquireTokenSilentAsync(t,r){let o;if(this.performanceClient.addQueueMeasurement(ir.AcquireTokenSilentAsync,t.correlationId),this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_START,e.InteractionType.Silent,t),this.atsAsyncMeasurement=this.performanceClient.startMeasurement(ir.AcquireTokenSilentAsync,t.correlationId),this.atsAsyncMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibility),Ho.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider,t.authenticationScheme)&&r.nativeAccountId){this.logger.verbose("acquireTokenSilent - attempting to acquire token from native platform");const e={...t,account:r};o=this.acquireTokenNative(e,Zr.acquireTokenSilent_silentFlow).catch((async e=>{if(e instanceof Oo&&e.isFatal()){this.logger.verbose("acquireTokenSilent - native platform unavailable, falling back to web flow"),this.nativeExtensionProvider=void 0;return this.createSilentIframeClient(t.correlationId).acquireToken(t)}throw e}))}else{this.logger.verbose("acquireTokenSilent - attempting to acquire token from web flow");const n=this.createSilentCacheClient(t.correlationId);this.performanceClient.setPreQueueTime(ir.InitializeSilentRequest,t.correlationId);const i=await n.initializeSilentRequest(t,r),a={...t,cacheLookupPolicy:t.cacheLookupPolicy||io.Default};this.performanceClient.setPreQueueTime(ir.AcquireTokenFromCache,i.correlationId),o=this.acquireTokenFromCache(n,i,a).catch((r=>{if(a.cacheLookupPolicy===io.AccessToken)throw r;return Co.blockReloadInHiddenIframes(),this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_NETWORK_START,e.InteractionType.Silent,i),this.performanceClient.setPreQueueTime(ir.AcquireTokenByRefreshToken,i.correlationId),this.acquireTokenByRefreshToken(i,a).catch((e=>{const r=e instanceof Ft,o=e instanceof tr,n=e.errorCode===Lr.INVALID_GRANT_ERROR;if((!r||!n||o||a.cacheLookupPolicy===io.AccessTokenAndRefreshToken||a.cacheLookupPolicy===io.RefreshToken)&&a.cacheLookupPolicy!==io.Skip)throw e;return this.logger.verbose("Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.",t.correlationId),this.performanceClient.setPreQueueTime(ir.AcquireTokenBySilentIframe,i.correlationId),this.acquireTokenBySilentIframe(i)}))}))}return o.then((t=>(this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Silent,t),this.atsAsyncMeasurement?.endMeasurement({success:!0,fromCache:t.fromCache,isNativeBroker:t.fromNativeBroker,requestId:t.requestId}),t))).catch((t=>{throw this.eventHandler.emitEvent(Io.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Silent,null,t),this.atsAsyncMeasurement?.endMeasurement({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t})).finally((()=>{document.removeEventListener("visibilitychange",this.trackPageVisibility)}))}}var vn=Object.freeze({__proto__:null,StandardController:Cn});class wn{static async createPublicClientApplication(e){const t=new pn(e),r=await t.createController();return new wn(e,r)}constructor(e,t){if(t)this.controller=t;else{const t=new gn(e);this.controller=new Cn(t)}}async initialize(){return this.controller.initialize()}async acquireTokenPopup(e){return this.controller.acquireTokenPopup(e)}acquireTokenRedirect(e){return this.controller.acquireTokenRedirect(e)}acquireTokenSilent(e){return this.controller.acquireTokenSilent(e)}acquireTokenByCode(e){return this.controller.acquireTokenByCode(e)}addEventCallback(e){return this.controller.addEventCallback(e)}removeEventCallback(e){return this.controller.removeEventCallback(e)}addPerformanceCallback(e){return this.controller.addPerformanceCallback(e)}removePerformanceCallback(e){return this.controller.removePerformanceCallback(e)}enableAccountStorageEvents(){this.controller.enableAccountStorageEvents()}disableAccountStorageEvents(){this.controller.disableAccountStorageEvents()}getAccountByHomeId(e){return this.controller.getAccountByHomeId(e)}getAccountByLocalId(e){return this.controller.getAccountByLocalId(e)}getAccountByUsername(e){return this.controller.getAccountByUsername(e)}getAllAccounts(){return this.controller.getAllAccounts()}handleRedirectPromise(e){return this.controller.handleRedirectPromise(e)}loginPopup(e){return this.controller.loginPopup(e)}loginRedirect(e){return this.controller.loginRedirect(e)}logout(e){return this.controller.logout(e)}logoutRedirect(e){return this.controller.logoutRedirect(e)}logoutPopup(e){return this.controller.logoutPopup(e)}ssoSilent(e){return this.controller.ssoSilent(e)}getTokenCache(){return this.controller.getTokenCache()}getLogger(){return this.controller.getLogger()}setLogger(e){this.controller.setLogger(e)}setActiveAccount(e){this.controller.setActiveAccount(e)}getActiveAccount(){return this.controller.getActiveAccount()}initializeWrapperLibrary(e,t){return this.controller.initializeWrapperLibrary(e,t)}setNavigationClient(e){this.controller.setNavigationClient(e)}getConfiguration(){return this.controller.getConfiguration()}}const Tn={initialize:()=>Promise.reject(so.createStubPcaInstanceCalledError()),acquireTokenPopup:()=>Promise.reject(so.createStubPcaInstanceCalledError()),acquireTokenRedirect:()=>Promise.reject(so.createStubPcaInstanceCalledError()),acquireTokenSilent:()=>Promise.reject(so.createStubPcaInstanceCalledError()),acquireTokenByCode:()=>Promise.reject(so.createStubPcaInstanceCalledError()),getAllAccounts:()=>[],getAccountByHomeId:()=>null,getAccountByUsername:()=>null,getAccountByLocalId:()=>null,handleRedirectPromise:()=>Promise.reject(so.createStubPcaInstanceCalledError()),loginPopup:()=>Promise.reject(so.createStubPcaInstanceCalledError()),loginRedirect:()=>Promise.reject(so.createStubPcaInstanceCalledError()),logout:()=>Promise.reject(so.createStubPcaInstanceCalledError()),logoutRedirect:()=>Promise.reject(so.createStubPcaInstanceCalledError()),logoutPopup:()=>Promise.reject(so.createStubPcaInstanceCalledError()),ssoSilent:()=>Promise.reject(so.createStubPcaInstanceCalledError()),addEventCallback:()=>null,removeEventCallback:()=>{},addPerformanceCallback:()=>"",removePerformanceCallback:()=>!1,enableAccountStorageEvents:()=>{},disableAccountStorageEvents:()=>{},getTokenCache:()=>{throw so.createStubPcaInstanceCalledError()},getLogger:()=>{throw so.createStubPcaInstanceCalledError()},setLogger:()=>{},setActiveAccount:()=>{},getActiveAccount:()=>null,initializeWrapperLibrary:()=>{},setNavigationClient:()=>{},getConfiguration:()=>{throw so.createStubPcaInstanceCalledError()}};e.AccountEntity=At,e.ApiId=Zr,e.AuthError=ct,e.AuthErrorMessage=st,e.AuthenticationHeaderParser=class{constructor(e){this.headers=e}getShrNonce(){const e=this.headers[c];if(e){const t=this.parseChallenges(e);if(t.nextnonce)return t.nextnonce;throw vt.createInvalidAuthenticationHeaderError(c,"nextnonce challenge is missing.")}const t=this.headers[s];if(t){const e=this.parseChallenges(t);if(e.nonce)return e.nonce;throw vt.createInvalidAuthenticationHeaderError(s,"nonce challenge is missing.")}throw vt.createMissingNonceAuthenticationHeadersError()}parseChallenges(e){const r=e.indexOf(" "),o=e.substr(r+1).split(","),n={};return o.forEach((e=>{const[r,o]=e.split("=");n[r]=unescape(o.replace(/['"]+/g,t.EMPTY_STRING))})),n}},e.AuthenticationScheme=xe,e.AzureCloudInstance=yt,e.BrowserAuthError=Hr,e.BrowserAuthErrorMessage=Ur,e.BrowserCacheLocation=zr,e.BrowserConfigurationAuthError=so,e.BrowserConfigurationAuthErrorMessage=ao,e.BrowserUtils=Co,e.CacheLookupPolicy=io,e.ClientAuthError=ht,e.ClientAuthErrorMessage=lt,e.ClientConfigurationError=vt,e.ClientConfigurationErrorMessage=Ct,e.DEFAULT_IFRAME_TIMEOUT_MS=Do,e.EventMessageUtils=class{static getInteractionStatusFromEvent(t,r){switch(t.eventType){case Io.LOGIN_START:return to.Login;case Io.SSO_SILENT_START:return to.SsoSilent;case Io.ACQUIRE_TOKEN_START:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup)return to.AcquireToken;break;case Io.HANDLE_REDIRECT_START:return to.HandleRedirect;case Io.LOGOUT_START:return to.Logout;case Io.SSO_SILENT_SUCCESS:case Io.SSO_SILENT_FAILURE:if(r&&r!==to.SsoSilent)break;return to.None;case Io.LOGOUT_END:if(r&&r!==to.Logout)break;return to.None;case Io.HANDLE_REDIRECT_END:if(r&&r!==to.HandleRedirect)break;return to.None;case Io.LOGIN_SUCCESS:case Io.LOGIN_FAILURE:case Io.ACQUIRE_TOKEN_SUCCESS:case Io.ACQUIRE_TOKEN_FAILURE:case Io.RESTORE_FROM_BFCACHE:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup){if(r&&r!==to.Login&&r!==to.AcquireToken)break;return to.None}}return null}},e.EventType=Io,e.InteractionRequiredAuthError=tr,e.InteractionRequiredAuthErrorMessage=er,e.InteractionStatus=to,e.Logger=pt,e.NavigationClient=Fo,e.OIDC_DEFAULT_SCOPES=r,e.PerformanceEvents=ir,e.PromptValue=se,e.ProtocolMode=vr,e.PublicClientApplication=wn,e.ServerError=Ft,e.SignedHttpRequest=class{constructor(e,t){const r=t&&t.loggerOptions||{};this.logger=new pt(r,po,mo),this.cryptoOps=new sn(this.logger),this.popTokenGenerator=new lr(this.cryptoOps),this.shrParameters=e}async generatePublicKeyThumbprint(){const{kid:e}=await this.popTokenGenerator.generateKid(this.shrParameters);return e}async signRequest(e,t,r){return this.popTokenGenerator.signPayload(e,t,this.shrParameters,r)}async removeKeys(e){return await this.cryptoOps.removeTokenBindingKey(e)}},e.StringUtils=ut,e.UrlString=nr,e.WrapperSKU={React:"@azure/msal-react",Angular:"@azure/msal-angular"},e.internals=ln,e.stubbedPublicClientApplication=Tn,e.version=mo}));
3
+ /*! @azure/msal-common v14.0.1 2023-08-11 */
4
+ const t={LIBRARY_NAME:"MSAL.JS",SKU:"msal.js.common",CACHE_PREFIX:"msal",DEFAULT_AUTHORITY:"https://login.microsoftonline.com/common/",DEFAULT_AUTHORITY_HOST:"login.microsoftonline.com",DEFAULT_COMMON_TENANT:"common",ADFS:"adfs",DSTS:"dstsv2",AAD_INSTANCE_DISCOVERY_ENDPT:"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=",CIAM_AUTH_URL:".ciamlogin.com",AAD_TENANT_DOMAIN_SUFFIX:".onmicrosoft.com",RESOURCE_DELIM:"|",NO_ACCOUNT:"NO_ACCOUNT",CLAIMS:"claims",CONSUMER_UTID:"9188040d-6c67-4c5b-b112-36a304b66dad",OPENID_SCOPE:"openid",PROFILE_SCOPE:"profile",OFFLINE_ACCESS_SCOPE:"offline_access",EMAIL_SCOPE:"email",CODE_RESPONSE_TYPE:"code",CODE_GRANT_TYPE:"authorization_code",RT_GRANT_TYPE:"refresh_token",FRAGMENT_RESPONSE_MODE:"fragment",S256_CODE_CHALLENGE_METHOD:"S256",URL_FORM_CONTENT_TYPE:"application/x-www-form-urlencoded;charset=utf-8",AUTHORIZATION_PENDING:"authorization_pending",NOT_DEFINED:"not_defined",EMPTY_STRING:"",NOT_APPLICABLE:"N/A",FORWARD_SLASH:"/",IMDS_ENDPOINT:"http://169.254.169.254/metadata/instance/compute/location",IMDS_VERSION:"2020-06-01",IMDS_TIMEOUT:2e3,AZURE_REGION_AUTO_DISCOVER_FLAG:"TryAutoDetect",REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX:"login.microsoft.com",REGIONAL_AUTH_NON_MSI_QUERY_STRING:"allowestsrnonmsi=true",KNOWN_PUBLIC_CLOUDS:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"],TOKEN_RESPONSE_TYPE:"token",ID_TOKEN_RESPONSE_TYPE:"id_token",SHR_NONCE_VALIDITY:240,INVALID_INSTANCE:"invalid_instance"},r=[t.OPENID_SCOPE,t.PROFILE_SCOPE,t.OFFLINE_ACCESS_SCOPE],o=[...r,t.EMAIL_SCOPE],n="Content-Type",i="Retry-After",a="X-AnchorMailbox",s="WWW-Authenticate",c="Authentication-Info",d="x-ms-request-id",l="x-ms-httpver",h="idtoken",u="client.info",g="adal.idtoken",p="error",m="error.description",f="active-account",y="active-account-filters",C="common",v="organizations",w="consumers",T="client_id",I="redirect_uri",E="response_type",_="response_mode",k="grant_type",S="claims",A="scope",b="refresh_token",R="state",P="nonce",M="prompt",N="code",O="code_challenge",q="code_challenge_method",U="code_verifier",H="client-request-id",L="x-client-SKU",x="x-client-VER",D="x-client-OS",F="x-client-CPU",B="x-client-current-telemetry",K="x-client-last-telemetry",G="x-ms-lib-capability",$="x-app-name",z="x-app-ver",Q="post_logout_redirect_uri",j="id_token_hint",Y="device_code",W="client_secret",V="client_assertion",J="client_assertion_type",X="token_type",Z="req_cnf",ee="assertion",te="requested_token_use",re="return_spa_code",oe="nativebroker",ne="logout_hint",ie="access_token",ae="xms_cc",se={LOGIN:"login",SELECT_ACCOUNT:"select_account",CONSENT:"consent",NONE:"none",CREATE:"create",NO_SESSION:"no_session"},ce="sid",de="login_hint",le="domain_hint",he={PLAIN:"plain",S256:"S256"},ue={QUERY:"query",FRAGMENT:"fragment"},ge={...ue,FORM_POST:"form_post"},pe="authorization_code",me="refresh_token",fe="MSSTS",ye="ADFS",Ce="Generic",ve="-",we=".",Te={ID_TOKEN:"IdToken",ACCESS_TOKEN:"AccessToken",ACCESS_TOKEN_WITH_AUTH_SCHEME:"AccessToken_With_AuthScheme",REFRESH_TOKEN:"RefreshToken"},Ie=2001,Ee=2002,_e=2003,ke="appmetadata",Se="1",Ae="authority-metadata",be=86400,Re="config",Pe="cache",Me="network",Ne="hardcoded_values",Oe={SCHEMA_VERSION:5,MAX_CUR_HEADER_BYTES:80,MAX_LAST_HEADER_BYTES:330,MAX_CACHED_ERRORS:50,CACHE_KEY:"server-telemetry",CATEGORY_SEPARATOR:"|",VALUE_SEPARATOR:",",OVERFLOW_TRUE:"1",OVERFLOW_FALSE:"0",UNKNOWN_ERROR:"unknown_error"},qe={BEARER:"Bearer",POP:"pop",SSH:"ssh-cert"},Ue=60,He=3600,Le="throttling",xe="retry-after, h429",De="invalid_grant",Fe="client_mismatch",Be="username",Ke="password",Ge=200,$e=400,ze="1",Qe="3",je="4",Ye="2",We="4",Ve="5",Je="0",Xe="1",Ze="2",et="3",tt="4",rt="pop",ot={unexpectedError:{code:"unexpected_error",desc:"Unexpected error in authentication."},postRequestFailed:{code:"post_request_failed",desc:"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details."}};class nt extends Error{constructor(e,r,o){super(r?`${e}: ${r}`:e),Object.setPrototypeOf(this,nt.prototype),this.errorCode=e||t.EMPTY_STRING,this.errorMessage=r||t.EMPTY_STRING,this.subError=o||t.EMPTY_STRING,this.name="AuthError"}setCorrelationId(e){this.correlationId=e}static createUnexpectedError(e){return new nt(ot.unexpectedError.code,`${ot.unexpectedError.desc}: ${e}`)}static createPostRequestFailed(e){return new nt(ot.postRequestFailed.code,`${ot.postRequestFailed.desc}: ${e}`)}}
5
+ /*! @azure/msal-common v14.0.1 2023-08-11 */const it={createNewGuid:()=>{throw nt.createUnexpectedError("Crypto interface - createNewGuid() has not been implemented")},base64Decode:()=>{throw nt.createUnexpectedError("Crypto interface - base64Decode() has not been implemented")},base64Encode:()=>{throw nt.createUnexpectedError("Crypto interface - base64Encode() has not been implemented")},async generatePkceCodes(){throw nt.createUnexpectedError("Crypto interface - generatePkceCodes() has not been implemented")},async getPublicKeyThumbprint(){throw nt.createUnexpectedError("Crypto interface - getPublicKeyThumbprint() has not been implemented")},async removeTokenBindingKey(){throw nt.createUnexpectedError("Crypto interface - removeTokenBindingKey() has not been implemented")},async clearKeystore(){throw nt.createUnexpectedError("Crypto interface - clearKeystore() has not been implemented")},async signJwt(){throw nt.createUnexpectedError("Crypto interface - signJwt() has not been implemented")},async hashString(){throw nt.createUnexpectedError("Crypto interface - hashString() has not been implemented")}},at={clientInfoDecodingError:{code:"client_info_decoding_error",desc:"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause."},clientInfoEmptyError:{code:"client_info_empty_error",desc:"The client info was empty. Please review the trace to determine the root cause."},tokenParsingError:{code:"token_parsing_error",desc:"Token cannot be parsed. Please review stack trace to determine root cause."},nullOrEmptyToken:{code:"null_or_empty_token",desc:"The token is null or empty. Please review the trace to determine the root cause."},endpointResolutionError:{code:"endpoints_resolution_error",desc:"Error: could not resolve endpoints. Please check network and try again."},networkError:{code:"network_error",desc:"Network request failed. Please check network trace to determine root cause."},unableToGetOpenidConfigError:{code:"openid_config_error",desc:"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints."},hashNotDeserialized:{code:"hash_not_deserialized",desc:"The hash parameters could not be deserialized. Please review the trace to determine the root cause."},blankGuidGenerated:{code:"blank_guid_generated",desc:"The guid generated was blank. Please review the trace to determine the root cause."},invalidStateError:{code:"invalid_state",desc:"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState()."},stateMismatchError:{code:"state_mismatch",desc:"State mismatch error. Please check your network. Continued requests may cause cache overflow."},stateNotFoundError:{code:"state_not_found",desc:"State not found"},nonceMismatchError:{code:"nonce_mismatch",desc:"Nonce mismatch error. This may be caused by a race condition in concurrent requests."},nonceNotFoundError:{code:"nonce_not_found",desc:"nonce not found"},authTimeNotFoundError:{code:"auth_time_not_found",desc:"Max Age was requested and the ID token is missing the auth_time variable. auth_time is an optional claim and is not enabled by default - it must be enabled. See https://aka.ms/msaljs/optional-claims for more information."},maxAgeTranspiredError:{code:"max_age_transpired",desc:"Max Age is set to 0, or too much time has elapsed since the last end-user authentication."},noTokensFoundError:{code:"no_tokens_found",desc:"No tokens were found for the given scopes, and no authorization code was passed to acquireToken. You must retrieve an authorization code before making a call to acquireToken()."},multipleMatchingTokens:{code:"multiple_matching_tokens",desc:"The cache contains multiple tokens satisfying the requirements. Call AcquireToken again providing more requirements such as authority or account."},multipleMatchingAccounts:{code:"multiple_matching_accounts",desc:"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account"},multipleMatchingAppMetadata:{code:"multiple_matching_appMetadata",desc:"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata"},tokenRequestCannotBeMade:{code:"request_cannot_be_made",desc:"Token request cannot be made without authorization code or refresh token."},appendEmptyScopeError:{code:"cannot_append_empty_scope",desc:"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info."},removeEmptyScopeError:{code:"cannot_remove_empty_scope",desc:"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info."},appendScopeSetError:{code:"cannot_append_scopeset",desc:"Cannot append ScopeSet due to error."},emptyInputScopeSetError:{code:"empty_input_scopeset",desc:"Empty input ScopeSet cannot be processed."},DeviceCodePollingCancelled:{code:"device_code_polling_cancelled",desc:"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true."},DeviceCodeExpired:{code:"device_code_expired",desc:"Device code is expired."},DeviceCodeUnknownError:{code:"device_code_unknown_error",desc:"Device code stopped polling for unknown reasons."},NoAccountInSilentRequest:{code:"no_account_in_silent_request",desc:"Please pass an account object, silent flow is not supported without account information"},invalidCacheRecord:{code:"invalid_cache_record",desc:"Cache record object was null or undefined."},invalidCacheEnvironment:{code:"invalid_cache_environment",desc:"Invalid environment when attempting to create cache entry"},noAccountFound:{code:"no_account_found",desc:"No account found in cache for given key."},CachePluginError:{code:"no cache plugin set on CacheManager",desc:"ICachePlugin needs to be set before using readFromStorage or writeFromStorage"},noCryptoObj:{code:"no_crypto_object",desc:"No crypto object detected. This is required for the following operation: "},invalidCacheType:{code:"invalid_cache_type",desc:"Invalid cache type"},unexpectedAccountType:{code:"unexpected_account_type",desc:"Unexpected account type."},unexpectedCredentialType:{code:"unexpected_credential_type",desc:"Unexpected credential type."},invalidAssertion:{code:"invalid_assertion",desc:"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515"},invalidClientCredential:{code:"invalid_client_credential",desc:"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential"},tokenRefreshRequired:{code:"token_refresh_required",desc:"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired."},userTimeoutReached:{code:"user_timeout_reached",desc:"User defined timeout for device code polling reached"},tokenClaimsRequired:{code:"token_claims_cnf_required_for_signedjwt",desc:"Cannot generate a POP jwt if the token_claims are not populated"},noAuthorizationCodeFromServer:{code:"authorization_code_missing_from_server_response",desc:"Server response does not contain an authorization code to proceed"},noAzureRegionDetected:{code:"no_azure_region_detected",desc:"No azure region was detected and no fallback was made available"},accessTokenEntityNullError:{code:"access_token_entity_null",desc:"Access token entity is null, please check logs and cache to ensure a valid access token is present."},bindingKeyNotRemovedError:{code:"binding_key_not_removed",desc:"Could not remove the credential's binding key from storage."},logoutNotSupported:{code:"end_session_endpoint_not_supported",desc:"Provided authority does not support logout."},keyIdMissing:{code:"key_id_missing",desc:"A keyId value is missing from the requested bound token's cache record and is required to match the token to it's stored binding key."},noNetworkConnectivity:{code:"no_network_connectivity",desc:"No network connectivity. Check your internet connection."},userCanceledError:{code:"user_canceled",desc:"User canceled the flow."},missingTenantIdError:{code:"missing_tenant_id_error",desc:"A tenant id - not common, organizations, or consumers - must be specified when using the client_credentials flow."}};
6
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class st extends nt{constructor(e,t){super(e,t),this.name="ClientAuthError",Object.setPrototypeOf(this,st.prototype)}static createClientInfoDecodingError(e){return new st(at.clientInfoDecodingError.code,`${at.clientInfoDecodingError.desc} Failed with error: ${e}`)}static createClientInfoEmptyError(){return new st(at.clientInfoEmptyError.code,`${at.clientInfoEmptyError.desc}`)}static createTokenParsingError(e){return new st(at.tokenParsingError.code,`${at.tokenParsingError.desc} Failed with error: ${e}`)}static createTokenNullOrEmptyError(e){return new st(at.nullOrEmptyToken.code,`${at.nullOrEmptyToken.desc} Raw Token Value: ${e}`)}static createEndpointDiscoveryIncompleteError(e){return new st(at.endpointResolutionError.code,`${at.endpointResolutionError.desc} Detail: ${e}`)}static createNetworkError(e,t){return new st(at.networkError.code,`${at.networkError.desc} | Fetch client threw: ${t} | Attempted to reach: ${e.split("?")[0]}`)}static createUnableToGetOpenidConfigError(e){return new st(at.unableToGetOpenidConfigError.code,`${at.unableToGetOpenidConfigError.desc} Attempted to retrieve endpoints from: ${e}`)}static createHashNotDeserializedError(e){return new st(at.hashNotDeserialized.code,`${at.hashNotDeserialized.desc} Given Object: ${e}`)}static createInvalidStateError(e,t){return new st(at.invalidStateError.code,`${at.invalidStateError.desc} Invalid State: ${e}, Root Err: ${t}`)}static createStateMismatchError(){return new st(at.stateMismatchError.code,at.stateMismatchError.desc)}static createStateNotFoundError(e){return new st(at.stateNotFoundError.code,`${at.stateNotFoundError.desc}: ${e}`)}static createNonceMismatchError(){return new st(at.nonceMismatchError.code,at.nonceMismatchError.desc)}static createAuthTimeNotFoundError(){return new st(at.authTimeNotFoundError.code,at.authTimeNotFoundError.desc)}static createMaxAgeTranspiredError(){return new st(at.maxAgeTranspiredError.code,at.maxAgeTranspiredError.desc)}static createNonceNotFoundError(e){return new st(at.nonceNotFoundError.code,`${at.nonceNotFoundError.desc}: ${e}`)}static createMultipleMatchingTokensInCacheError(){return new st(at.multipleMatchingTokens.code,`${at.multipleMatchingTokens.desc}.`)}static createMultipleMatchingAccountsInCacheError(){return new st(at.multipleMatchingAccounts.code,at.multipleMatchingAccounts.desc)}static createMultipleMatchingAppMetadataInCacheError(){return new st(at.multipleMatchingAppMetadata.code,at.multipleMatchingAppMetadata.desc)}static createTokenRequestCannotBeMadeError(){return new st(at.tokenRequestCannotBeMade.code,at.tokenRequestCannotBeMade.desc)}static createAppendEmptyScopeToSetError(e){return new st(at.appendEmptyScopeError.code,`${at.appendEmptyScopeError.desc} Given Scope: ${e}`)}static createRemoveEmptyScopeFromSetError(e){return new st(at.removeEmptyScopeError.code,`${at.removeEmptyScopeError.desc} Given Scope: ${e}`)}static createAppendScopeSetError(e){return new st(at.appendScopeSetError.code,`${at.appendScopeSetError.desc} Detail Error: ${e}`)}static createEmptyInputScopeSetError(){return new st(at.emptyInputScopeSetError.code,`${at.emptyInputScopeSetError.desc}`)}static createDeviceCodeCancelledError(){return new st(at.DeviceCodePollingCancelled.code,`${at.DeviceCodePollingCancelled.desc}`)}static createDeviceCodeExpiredError(){return new st(at.DeviceCodeExpired.code,`${at.DeviceCodeExpired.desc}`)}static createDeviceCodeUnknownError(){return new st(at.DeviceCodeUnknownError.code,`${at.DeviceCodeUnknownError.desc}`)}static createNoAccountInSilentRequestError(){return new st(at.NoAccountInSilentRequest.code,`${at.NoAccountInSilentRequest.desc}`)}static createNullOrUndefinedCacheRecord(){return new st(at.invalidCacheRecord.code,at.invalidCacheRecord.desc)}static createInvalidCacheEnvironmentError(){return new st(at.invalidCacheEnvironment.code,at.invalidCacheEnvironment.desc)}static createNoAccountFoundError(){return new st(at.noAccountFound.code,at.noAccountFound.desc)}static createCachePluginError(){return new st(at.CachePluginError.code,`${at.CachePluginError.desc}`)}static createNoCryptoObjectError(e){return new st(at.noCryptoObj.code,`${at.noCryptoObj.desc}${e}`)}static createInvalidCacheTypeError(){return new st(at.invalidCacheType.code,`${at.invalidCacheType.desc}`)}static createUnexpectedAccountTypeError(){return new st(at.unexpectedAccountType.code,`${at.unexpectedAccountType.desc}`)}static createUnexpectedCredentialTypeError(){return new st(at.unexpectedCredentialType.code,`${at.unexpectedCredentialType.desc}`)}static createInvalidAssertionError(){return new st(at.invalidAssertion.code,`${at.invalidAssertion.desc}`)}static createInvalidCredentialError(){return new st(at.invalidClientCredential.code,`${at.invalidClientCredential.desc}`)}static createRefreshRequiredError(){return new st(at.tokenRefreshRequired.code,at.tokenRefreshRequired.desc)}static createUserTimeoutReachedError(){return new st(at.userTimeoutReached.code,at.userTimeoutReached.desc)}static createTokenClaimsRequiredError(){return new st(at.tokenClaimsRequired.code,at.tokenClaimsRequired.desc)}static createNoAuthCodeInServerResponseError(){return new st(at.noAuthorizationCodeFromServer.code,at.noAuthorizationCodeFromServer.desc)}static createBindingKeyNotRemovedError(){return new st(at.bindingKeyNotRemovedError.code,at.bindingKeyNotRemovedError.desc)}static createLogoutNotSupportedError(){return new st(at.logoutNotSupported.code,at.logoutNotSupported.desc)}static createKeyIdMissingError(){return new st(at.keyIdMissing.code,at.keyIdMissing.desc)}static createNoNetworkConnectivityError(){return new st(at.noNetworkConnectivity.code,at.noNetworkConnectivity.desc)}static createUserCanceledError(){return new st(at.userCanceledError.code,at.userCanceledError.desc)}static createMissingTenantIdError(){return new nt(at.missingTenantIdError.code,at.missingTenantIdError.desc)}}
7
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class ct{static decodeAuthToken(e){if(ct.isEmpty(e))throw st.createTokenNullOrEmptyError(e);const t=/^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/.exec(e);if(!t||t.length<4)throw st.createTokenParsingError(`Given token is malformed: ${JSON.stringify(e)}`);return{header:t[1],JWSPayload:t[2],JWSSig:t[3]}}static isEmpty(e){return void 0===e||!e||0===e.length}static isEmptyObj(e){if(e&&!ct.isEmpty(e))try{const t=JSON.parse(e);return 0===Object.keys(t).length}catch(e){}return!0}static startsWith(e,t){return 0===e.indexOf(t)}static endsWith(e,t){return e.length>=t.length&&e.lastIndexOf(t)===e.length-t.length}static queryStringToObject(e){const t={},r=e.split("&"),o=e=>decodeURIComponent(e.replace(/\+/g," "));return r.forEach((e=>{if(e.trim()){const[r,n]=e.split(/=(.+)/g,2);r&&n&&(t[o(r)]=o(n))}})),t}static trimArrayEntries(e){return e.map((e=>e.trim()))}static removeEmptyStringsFromArray(e){return e.filter((e=>!ct.isEmpty(e)))}static jsonParseHelper(e){try{return JSON.parse(e)}catch(e){return null}}static matchPattern(e,t){return new RegExp(e.replace(/\\/g,"\\\\").replace(/\*/g,"[^ ]*").replace(/\?/g,"\\?")).test(t)}}
8
+ /*! @azure/msal-common v14.0.1 2023-08-11 */var dt;e.LogLevel=void 0,(dt=e.LogLevel||(e.LogLevel={}))[dt.Error=0]="Error",dt[dt.Warning=1]="Warning",dt[dt.Info=2]="Info",dt[dt.Verbose=3]="Verbose",dt[dt.Trace=4]="Trace";class lt{constructor(r,o,n){this.level=e.LogLevel.Info;const i=r||lt.createDefaultLoggerOptions();this.localCallback=i.loggerCallback||(()=>{}),this.piiLoggingEnabled=i.piiLoggingEnabled||!1,this.level="number"==typeof i.logLevel?i.logLevel:e.LogLevel.Info,this.correlationId=i.correlationId||t.EMPTY_STRING,this.packageName=o||t.EMPTY_STRING,this.packageVersion=n||t.EMPTY_STRING}static createDefaultLoggerOptions(){return{loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:e.LogLevel.Info}}clone(e,t,r){return new lt({loggerCallback:this.localCallback,piiLoggingEnabled:this.piiLoggingEnabled,logLevel:this.level,correlationId:r||this.correlationId},e,t)}logMessage(t,r){if(r.logLevel>this.level||!this.piiLoggingEnabled&&r.containsPii)return;const o=(new Date).toUTCString();let n;n=ct.isEmpty(r.correlationId)?ct.isEmpty(this.correlationId)?`[${o}]`:`[${o}] : [${this.correlationId}]`:`[${o}] : [${r.correlationId}]`;const i=`${n} : ${this.packageName}@${this.packageVersion} : ${e.LogLevel[r.logLevel]} - ${t}`;this.executeCallback(r.logLevel,i,r.containsPii||!1)}executeCallback(e,t,r){this.localCallback&&this.localCallback(e,t,r)}error(r,o){this.logMessage(r,{logLevel:e.LogLevel.Error,containsPii:!1,correlationId:o||t.EMPTY_STRING})}errorPii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Error,containsPii:!0,correlationId:o||t.EMPTY_STRING})}warning(r,o){this.logMessage(r,{logLevel:e.LogLevel.Warning,containsPii:!1,correlationId:o||t.EMPTY_STRING})}warningPii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Warning,containsPii:!0,correlationId:o||t.EMPTY_STRING})}info(r,o){this.logMessage(r,{logLevel:e.LogLevel.Info,containsPii:!1,correlationId:o||t.EMPTY_STRING})}infoPii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Info,containsPii:!0,correlationId:o||t.EMPTY_STRING})}verbose(r,o){this.logMessage(r,{logLevel:e.LogLevel.Verbose,containsPii:!1,correlationId:o||t.EMPTY_STRING})}verbosePii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Verbose,containsPii:!0,correlationId:o||t.EMPTY_STRING})}trace(r,o){this.logMessage(r,{logLevel:e.LogLevel.Trace,containsPii:!1,correlationId:o||t.EMPTY_STRING})}tracePii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Trace,containsPii:!0,correlationId:o||t.EMPTY_STRING})}isPiiLoggingEnabled(){return this.piiLoggingEnabled||!1}}
9
+ /*! @azure/msal-common v14.0.1 2023-08-11 */const ht="@azure/msal-common",ut="14.0.1",gt={None:"none",AzurePublic:"https://login.microsoftonline.com",AzurePpe:"https://login.windows-ppe.net",AzureChina:"https://login.chinacloudapi.cn",AzureGermany:"https://login.microsoftonline.de",AzureUsGovernment:"https://login.microsoftonline.us"},pt={redirectUriNotSet:{code:"redirect_uri_empty",desc:"A redirect URI is required for all calls, and none has been set."},postLogoutUriNotSet:{code:"post_logout_uri_empty",desc:"A post logout redirect has not been set."},claimsRequestParsingError:{code:"claims_request_parsing_error",desc:"Could not parse the given claims request object."},authorityUriInsecure:{code:"authority_uri_insecure",desc:"Authority URIs must use https. Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options"},urlParseError:{code:"url_parse_error",desc:"URL could not be parsed into appropriate segments."},urlEmptyError:{code:"empty_url_error",desc:"URL was empty or null."},emptyScopesError:{code:"empty_input_scopes_error",desc:"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token."},nonArrayScopesError:{code:"nonarray_input_scopes_error",desc:"Scopes cannot be passed as non-array."},clientIdSingleScopeError:{code:"clientid_input_scopes_error",desc:"Client ID can only be provided as a single scope."},invalidPrompt:{code:"invalid_prompt_value",desc:"Supported prompt values are 'login', 'select_account', 'consent', 'create', 'none' and 'no_session'. Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest"},invalidClaimsRequest:{code:"invalid_claims",desc:"Given claims parameter must be a stringified JSON object."},tokenRequestEmptyError:{code:"token_request_empty",desc:"Token request was empty and not found in cache."},logoutRequestEmptyError:{code:"logout_request_empty",desc:"The logout request was null or undefined."},invalidCodeChallengeMethod:{code:"invalid_code_challenge_method",desc:'code_challenge_method passed is invalid. Valid values are "plain" and "S256".'},invalidCodeChallengeParams:{code:"pkce_params_missing",desc:"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request"},invalidCloudDiscoveryMetadata:{code:"invalid_cloud_discovery_metadata",desc:"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields"},invalidAuthorityMetadata:{code:"invalid_authority_metadata",desc:"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields."},untrustedAuthority:{code:"untrusted_authority",desc:"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter."},invalidAzureCloudInstance:{code:"invalid_azure_cloud_instance",desc:"Invalid AzureCloudInstance provided. Please refer MSAL JS docs: aks.ms/msaljs/azure_cloud_instance for valid values"},missingSshJwk:{code:"missing_ssh_jwk",desc:"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme."},missingSshKid:{code:"missing_ssh_kid",desc:"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme."},missingNonceAuthenticationHeader:{code:"missing_nonce_authentication_header",desc:"Unable to find an authentication header containing server nonce. Either the Authentication-Info or WWW-Authenticate headers must be present in order to obtain a server nonce."},invalidAuthenticationHeader:{code:"invalid_authentication_header",desc:"Invalid authentication header provided"},cannotSetOIDCOptions:{code:"cannot_set_OIDCOptions",desc:"Cannot set OIDCOptions parameter. Please change the protocol mode to OIDC or use a non-Microsoft authority."},cannotAllowNativeBroker:{code:"cannot_allow_native_broker",desc:"Cannot set allowNativeBroker parameter to true when not in AAD protocol mode."},authorityMismatch:{code:"authority_mismatch",desc:"Authority mismatch error. Authority provided in login request or PublicClientApplication config does not match the environment of the provided account. Please use a matching account or make an interactive request to login to this authority."}};class mt extends st{constructor(e,t){super(e,t),this.name="ClientConfigurationError",Object.setPrototypeOf(this,mt.prototype)}static createRedirectUriEmptyError(){return new mt(pt.redirectUriNotSet.code,pt.redirectUriNotSet.desc)}static createPostLogoutRedirectUriEmptyError(){return new mt(pt.postLogoutUriNotSet.code,pt.postLogoutUriNotSet.desc)}static createClaimsRequestParsingError(e){return new mt(pt.claimsRequestParsingError.code,`${pt.claimsRequestParsingError.desc} Given value: ${e}`)}static createInsecureAuthorityUriError(e){return new mt(pt.authorityUriInsecure.code,`${pt.authorityUriInsecure.desc} Given URI: ${e}`)}static createUrlParseError(e){return new mt(pt.urlParseError.code,`${pt.urlParseError.desc} Given Error: ${e}`)}static createUrlEmptyError(){return new mt(pt.urlEmptyError.code,pt.urlEmptyError.desc)}static createEmptyScopesArrayError(){return new mt(pt.emptyScopesError.code,`${pt.emptyScopesError.desc}`)}static createClientIdSingleScopeError(e){return new mt(pt.clientIdSingleScopeError.code,`${pt.clientIdSingleScopeError.desc} Given Scopes: ${e}`)}static createInvalidPromptError(e){return new mt(pt.invalidPrompt.code,`${pt.invalidPrompt.desc} Given value: ${e}`)}static createInvalidClaimsRequestError(){return new mt(pt.invalidClaimsRequest.code,pt.invalidClaimsRequest.desc)}static createEmptyLogoutRequestError(){return new mt(pt.logoutRequestEmptyError.code,pt.logoutRequestEmptyError.desc)}static createEmptyTokenRequestError(){return new mt(pt.tokenRequestEmptyError.code,pt.tokenRequestEmptyError.desc)}static createInvalidCodeChallengeMethodError(){return new mt(pt.invalidCodeChallengeMethod.code,pt.invalidCodeChallengeMethod.desc)}static createInvalidCodeChallengeParamsError(){return new mt(pt.invalidCodeChallengeParams.code,pt.invalidCodeChallengeParams.desc)}static createInvalidCloudDiscoveryMetadataError(){return new mt(pt.invalidCloudDiscoveryMetadata.code,pt.invalidCloudDiscoveryMetadata.desc)}static createInvalidAuthorityMetadataError(){return new mt(pt.invalidAuthorityMetadata.code,pt.invalidAuthorityMetadata.desc)}static createUntrustedAuthorityError(){return new mt(pt.untrustedAuthority.code,pt.untrustedAuthority.desc)}static createInvalidAzureCloudInstanceError(){return new mt(pt.invalidAzureCloudInstance.code,pt.invalidAzureCloudInstance.desc)}static createMissingSshJwkError(){return new mt(pt.missingSshJwk.code,pt.missingSshJwk.desc)}static createMissingSshKidError(){return new mt(pt.missingSshKid.code,pt.missingSshKid.desc)}static createMissingNonceAuthenticationHeadersError(){return new mt(pt.missingNonceAuthenticationHeader.code,pt.missingNonceAuthenticationHeader.desc)}static createInvalidAuthenticationHeaderError(e,t){return new mt(pt.invalidAuthenticationHeader.code,`${pt.invalidAuthenticationHeader.desc}. Invalid header: ${e}. Details: ${t}`)}static createCannotSetOIDCOptionsError(){return new mt(pt.cannotSetOIDCOptions.code,pt.cannotSetOIDCOptions.desc)}static createCannotAllowNativeBrokerError(){return new mt(pt.cannotAllowNativeBroker.code,pt.cannotAllowNativeBroker.desc)}static createAuthorityMismatchError(){return new mt(pt.authorityMismatch.code,pt.authorityMismatch.desc)}}
10
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class ft{constructor(e){const t=e?ct.trimArrayEntries([...e]):[],r=t?ct.removeEmptyStringsFromArray(t):[];this.validateInputScopes(r),this.scopes=new Set,r.forEach((e=>this.scopes.add(e)))}static fromString(e){const r=(e||t.EMPTY_STRING).split(" ");return new ft(r)}static createSearchScopes(e){const r=new ft(e);return r.containsOnlyOIDCScopes()?r.removeScope(t.OFFLINE_ACCESS_SCOPE):r.removeOIDCScopes(),r}validateInputScopes(e){if(!e||e.length<1)throw mt.createEmptyScopesArrayError()}containsScope(e){const t=this.printScopesLowerCase().split(" "),r=new ft(t);return!ct.isEmpty(e)&&r.scopes.has(e.toLowerCase())}containsScopeSet(e){return!(!e||e.scopes.size<=0)&&(this.scopes.size>=e.scopes.size&&e.asArray().every((e=>this.containsScope(e))))}containsOnlyOIDCScopes(){let e=0;return o.forEach((t=>{this.containsScope(t)&&(e+=1)})),this.scopes.size===e}appendScope(e){ct.isEmpty(e)||this.scopes.add(e.trim())}appendScopes(e){try{e.forEach((e=>this.appendScope(e)))}catch(e){throw st.createAppendScopeSetError(e)}}removeScope(e){if(ct.isEmpty(e))throw st.createRemoveEmptyScopeFromSetError(e);this.scopes.delete(e.trim())}removeOIDCScopes(){o.forEach((e=>{this.scopes.delete(e)}))}unionScopeSets(e){if(!e)throw st.createEmptyInputScopeSetError();const t=new Set;return e.scopes.forEach((e=>t.add(e.toLowerCase()))),this.scopes.forEach((e=>t.add(e.toLowerCase()))),t}intersectingScopeSets(e){if(!e)throw st.createEmptyInputScopeSetError();e.containsOnlyOIDCScopes()||e.removeOIDCScopes();const t=this.unionScopeSets(e),r=e.getScopeCount(),o=this.getScopeCount();return t.size<o+r}getScopeCount(){return this.scopes.size}asArray(){const e=[];return this.scopes.forEach((t=>e.push(t))),e}printScopes(){if(this.scopes){return this.asArray().join(" ")}return t.EMPTY_STRING}printScopesLowerCase(){return this.printScopes().toLowerCase()}}
11
+ /*! @azure/msal-common v14.0.1 2023-08-11 */function yt(e,t){if(ct.isEmpty(e))throw st.createClientInfoEmptyError();try{const r=t.base64Decode(e);return JSON.parse(r)}catch(e){throw st.createClientInfoDecodingError(e.message)}}function Ct(e){if(ct.isEmpty(e))throw st.createClientInfoDecodingError("Home account ID was empty.");const r=e.split(we,2);return{uid:r[0],utid:r.length<2?t.EMPTY_STRING:r[1]}}
12
+ /*! @azure/msal-common v14.0.1 2023-08-11 */const vt=0,wt=1,Tt=2,It=3,Et={AAD:"AAD",OIDC:"OIDC"};
13
+ /*! @azure/msal-common v14.0.1 2023-08-11 */
14
+ /*! @azure/msal-common v14.0.1 2023-08-11 */
15
+ class _t{generateAccountId(){return[this.homeAccountId,this.environment].join(ve).toLowerCase()}generateAccountKey(){return _t.generateAccountCacheKey({homeAccountId:this.homeAccountId,environment:this.environment,tenantId:this.realm,username:this.username,localAccountId:this.localAccountId})}getAccountInfo(){return{homeAccountId:this.homeAccountId,environment:this.environment,tenantId:this.realm,username:this.username,localAccountId:this.localAccountId,name:this.name,idTokenClaims:this.idTokenClaims,nativeAccountId:this.nativeAccountId,authorityType:this.authorityType}}static generateAccountCacheKey(e){return[e.homeAccountId,e.environment||t.EMPTY_STRING,e.tenantId||t.EMPTY_STRING].join(ve).toLowerCase()}static createAccount(e,r){const o=new _t;r.authorityType===wt?o.authorityType=ye:r.protocolMode===Et.AAD?o.authorityType=fe:o.authorityType=Ce,o.clientInfo=e.clientInfo,o.homeAccountId=e.homeAccountId,o.nativeAccountId=e.nativeAccountId;const n=e.environment||r&&r.getPreferredCache();if(!n)throw st.createInvalidCacheEnvironmentError();o.environment=n,o.realm=e.idTokenClaims.tid||t.EMPTY_STRING,o.idTokenClaims=e.idTokenClaims,o.localAccountId=e.idTokenClaims.oid||e.idTokenClaims.sub||t.EMPTY_STRING;const i=e.idTokenClaims.preferred_username||e.idTokenClaims.upn,a=e.idTokenClaims.emails?e.idTokenClaims.emails[0]:null;return o.username=i||a||t.EMPTY_STRING,o.name=e.idTokenClaims.name,o.cloudGraphHostName=e.cloudGraphHostName,o.msGraphHost=e.msGraphHost,o}static createFromAccountInfo(e,t,r){const o=new _t;return o.authorityType=e.authorityType||Ce,o.homeAccountId=e.homeAccountId,o.localAccountId=e.localAccountId,o.nativeAccountId=e.nativeAccountId,o.realm=e.tenantId,o.environment=e.environment,o.username=e.username,o.name=e.name,o.idTokenClaims=e.idTokenClaims,o.cloudGraphHostName=t,o.msGraphHost=r,o}static generateHomeAccountId(e,r,o,n,i){const a=i?.sub?i.sub:t.EMPTY_STRING;if(r===wt||r===Tt)return a;if(e)try{const t=yt(e,n);if(!ct.isEmpty(t.uid)&&!ct.isEmpty(t.utid))return`${t.uid}${we}${t.utid}`}catch(e){}return o.verbose("No client info in response"),a}static isAccountEntity(e){return!!e&&(e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("realm")&&e.hasOwnProperty("localAccountId")&&e.hasOwnProperty("username")&&e.hasOwnProperty("authorityType"))}static accountInfoIsEqual(e,t,r){if(!e||!t)return!1;let o=!0;if(r){const r=e.idTokenClaims||{},n=t.idTokenClaims||{};o=r.iat===n.iat&&r.nonce===n.nonce}return e.homeAccountId===t.homeAccountId&&e.localAccountId===t.localAccountId&&e.username===t.username&&e.tenantId===t.tenantId&&e.environment===t.environment&&e.nativeAccountId===t.nativeAccountId&&o}}
16
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class kt{constructor(e,t){if(ct.isEmpty(e))throw st.createTokenNullOrEmptyError(e);this.rawToken=e,this.claims=kt.extractTokenClaims(e,t)}static extractTokenClaims(e,t){const r=ct.decodeAuthToken(e);try{const e=r.JWSPayload,o=t.base64Decode(e);return JSON.parse(o)}catch(e){throw st.createTokenParsingError(e)}}static checkMaxAge(e,t){if(0===t||Date.now()-3e5>e+t)throw st.createMaxAgeTranspiredError()}}
17
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class St{constructor(e,t,r){this.clientId=e,this.cryptoImpl=t,this.commonLogger=r.clone(ht,ut)}getAllAccounts(){const e=this.getAccountKeys();if(e.length<1)return[];const t=e.reduce(((e,t)=>{const r=this.getAccount(t);return r?(e.push(r),e):e}),[]);if(t.length<1)return[];return t.map((e=>this.getAccountInfoFromEntity(e)))}getAccountInfoFilteredBy(e){const t=this.getAccountsFilteredBy(e);return t.length>0?this.getAccountInfoFromEntity(t[0]):null}getAccountInfoFromEntity(e){const t=e.getAccountInfo(),r=this.getIdToken(t);return r&&(t.idToken=r.secret,t.idTokenClaims=new kt(r.secret,this.cryptoImpl).claims),t}async saveCacheRecord(e,t){if(!e)throw st.createNullOrUndefinedCacheRecord();e.account&&this.setAccount(e.account),e.idToken&&!1!==t?.idToken&&this.setIdTokenCredential(e.idToken),e.accessToken&&!1!==t?.accessToken&&await this.saveAccessToken(e.accessToken),e.refreshToken&&!1!==t?.refreshToken&&this.setRefreshTokenCredential(e.refreshToken),e.appMetadata&&this.setAppMetadata(e.appMetadata)}async saveAccessToken(e){const t={clientId:e.clientId,credentialType:e.credentialType,environment:e.environment,homeAccountId:e.homeAccountId,realm:e.realm,tokenType:e.tokenType,requestedClaimsHash:e.requestedClaimsHash},r=this.getTokenKeys(),o=ft.fromString(e.target),n=[];r.accessToken.forEach((e=>{if(!this.accessTokenKeyMatchesFilter(e,t,!1))return;const r=this.getAccessTokenCredential(e);if(r&&this.credentialMatchesFilter(r,t)){ft.fromString(r.target).intersectingScopeSets(o)&&n.push(this.removeAccessToken(e))}})),await Promise.all(n),this.setAccessTokenCredential(e)}getAccountsFilteredBy(e){const t=this.getAccountKeys(),r=[];return t.forEach((t=>{if(!this.isAccountKey(t,e.homeAccountId,e.realm))return;const o=this.getAccount(t);o&&(e.homeAccountId&&!this.matchHomeAccountId(o,e.homeAccountId)||e.localAccountId&&!this.matchLocalAccountId(o,e.localAccountId)||e.username&&!this.matchUsername(o,e.username)||e.environment&&!this.matchEnvironment(o,e.environment)||e.realm&&!this.matchRealm(o,e.realm)||e.nativeAccountId&&!this.matchNativeAccountId(o,e.nativeAccountId)||r.push(o))})),r}isAccountKey(e,t,r){return!(e.split(ve).length<3)&&(!(t&&!e.toLowerCase().includes(t.toLowerCase()))&&!(r&&!e.toLowerCase().includes(r.toLowerCase())))}isCredentialKey(e){if(e.split(ve).length<6)return!1;const t=e.toLowerCase();if(-1===t.indexOf(Te.ID_TOKEN.toLowerCase())&&-1===t.indexOf(Te.ACCESS_TOKEN.toLowerCase())&&-1===t.indexOf(Te.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase())&&-1===t.indexOf(Te.REFRESH_TOKEN.toLowerCase()))return!1;if(t.indexOf(Te.REFRESH_TOKEN.toLowerCase())>-1){const e=`${Te.REFRESH_TOKEN}${ve}${this.clientId}${ve}`,r=`${Te.REFRESH_TOKEN}${ve}${Se}${ve}`;if(-1===t.indexOf(e.toLowerCase())&&-1===t.indexOf(r.toLowerCase()))return!1}else if(-1===t.indexOf(this.clientId.toLowerCase()))return!1;return!0}credentialMatchesFilter(e,t){if(t.clientId&&!this.matchClientId(e,t.clientId))return!1;if(t.userAssertionHash&&!this.matchUserAssertionHash(e,t.userAssertionHash))return!1;if("string"==typeof t.homeAccountId&&!this.matchHomeAccountId(e,t.homeAccountId))return!1;if(t.environment&&!this.matchEnvironment(e,t.environment))return!1;if(t.realm&&!this.matchRealm(e,t.realm))return!1;if(t.credentialType&&!this.matchCredentialType(e,t.credentialType))return!1;if(t.familyId&&!this.matchFamilyId(e,t.familyId))return!1;if(t.target&&!this.matchTarget(e,t.target))return!1;if((t.requestedClaimsHash||e.requestedClaimsHash)&&e.requestedClaimsHash!==t.requestedClaimsHash)return!1;if(e.credentialType===Te.ACCESS_TOKEN_WITH_AUTH_SCHEME){if(t.tokenType&&!this.matchTokenType(e,t.tokenType))return!1;if(t.tokenType===qe.SSH&&t.keyId&&!this.matchKeyId(e,t.keyId))return!1}return!0}getAppMetadataFilteredBy(e){return this.getAppMetadataFilteredByInternal(e.environment,e.clientId)}getAppMetadataFilteredByInternal(e,t){const r=this.getKeys(),o={};return r.forEach((r=>{if(!this.isAppMetadata(r))return;const n=this.getAppMetadata(r);n&&(e&&!this.matchEnvironment(n,e)||t&&!this.matchClientId(n,t)||(o[r]=n))})),o}getAuthorityMetadataByAlias(e){const t=this.getAuthorityMetadataKeys();let r=null;return t.forEach((t=>{if(!this.isAuthorityMetadata(t)||-1===t.indexOf(this.clientId))return;const o=this.getAuthorityMetadata(t);o&&-1!==o.aliases.indexOf(e)&&(r=o)})),r}async removeAllAccounts(){const e=this.getAccountKeys(),t=[];e.forEach((e=>{t.push(this.removeAccount(e))})),await Promise.all(t)}async removeAccount(e){const t=this.getAccount(e);t&&(await this.removeAccountContext(t),this.removeItem(e))}async removeAccountContext(e){const t=this.getTokenKeys(),r=e.generateAccountId(),o=[];t.idToken.forEach((e=>{0===e.indexOf(r)&&this.removeIdToken(e)})),t.accessToken.forEach((e=>{0===e.indexOf(r)&&o.push(this.removeAccessToken(e))})),t.refreshToken.forEach((e=>{0===e.indexOf(r)&&this.removeRefreshToken(e)})),await Promise.all(o)}async removeAccessToken(e){const t=this.getAccessTokenCredential(e);if(t){if(t.credentialType.toLowerCase()===Te.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()&&t.tokenType===qe.POP){const e=t.keyId;if(e)try{await this.cryptoImpl.removeTokenBindingKey(e)}catch(e){throw st.createBindingKeyNotRemovedError()}}return this.removeItem(e)}}removeAppMetadata(){return this.getKeys().forEach((e=>{this.isAppMetadata(e)&&this.removeItem(e)})),!0}readCacheRecord(e,t,r){const o=this.getTokenKeys(),n=this.readAccountFromCache(e),i=this.getIdToken(e,o),a=this.getAccessToken(e,t,o),s=this.getRefreshToken(e,!1,o),c=this.readAppMetadataFromCache(r);return n&&i&&(n.idTokenClaims=new kt(i.secret,this.cryptoImpl).claims),{account:n,idToken:i,accessToken:a,refreshToken:s,appMetadata:c}}readAccountFromCache(e){const t=_t.generateAccountCacheKey(e);return this.getAccount(t)}getIdToken(e,t){this.commonLogger.trace("CacheManager - getIdToken called");const r={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:Te.ID_TOKEN,clientId:this.clientId,realm:e.tenantId},o=this.getIdTokensByFilter(r,t),n=o.length;return n<1?(this.commonLogger.info("CacheManager:getIdToken - No token found"),null):n>1?(this.commonLogger.info("CacheManager:getIdToken - Multiple id tokens found, clearing them"),o.forEach((e=>{this.removeIdToken(e.generateCredentialKey())})),null):(this.commonLogger.info("CacheManager:getIdToken - Returning id token"),o[0])}getIdTokensByFilter(e,t){const r=t&&t.idToken||this.getTokenKeys().idToken,o=[];return r.forEach((t=>{if(!this.idTokenKeyMatchesFilter(t,{clientId:this.clientId,...e}))return;const r=this.getIdTokenCredential(t);r&&this.credentialMatchesFilter(r,e)&&o.push(r)})),o}idTokenKeyMatchesFilter(e,t){const r=e.toLowerCase();return(!t.clientId||-1!==r.indexOf(t.clientId.toLowerCase()))&&(!t.homeAccountId||-1!==r.indexOf(t.homeAccountId.toLowerCase()))}removeIdToken(e){this.removeItem(e)}removeRefreshToken(e){this.removeItem(e)}getAccessToken(e,t,r){this.commonLogger.trace("CacheManager - getAccessToken called");const o=ft.createSearchScopes(t.scopes),n=t.authenticationScheme||qe.BEARER,i=n&&n.toLowerCase()!==qe.BEARER.toLowerCase()?Te.ACCESS_TOKEN_WITH_AUTH_SCHEME:Te.ACCESS_TOKEN,a={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:i,clientId:this.clientId,realm:e.tenantId,target:o,tokenType:n,keyId:t.sshKid,requestedClaimsHash:t.requestedClaimsHash},s=r&&r.accessToken||this.getTokenKeys().accessToken,c=[];s.forEach((e=>{if(this.accessTokenKeyMatchesFilter(e,a,!0)){const t=this.getAccessTokenCredential(e);t&&this.credentialMatchesFilter(t,a)&&c.push(t)}}));const d=c.length;return d<1?(this.commonLogger.info("CacheManager:getAccessToken - No token found"),null):d>1?(this.commonLogger.info("CacheManager:getAccessToken - Multiple access tokens found, clearing them"),c.forEach((e=>{this.removeAccessToken(e.generateCredentialKey())})),null):(this.commonLogger.info("CacheManager:getAccessToken - Returning access token"),c[0])}accessTokenKeyMatchesFilter(e,t,r){const o=e.toLowerCase();if(t.clientId&&-1===o.indexOf(t.clientId.toLowerCase()))return!1;if(t.homeAccountId&&-1===o.indexOf(t.homeAccountId.toLowerCase()))return!1;if(t.realm&&-1===o.indexOf(t.realm.toLowerCase()))return!1;if(t.requestedClaimsHash&&-1===o.indexOf(t.requestedClaimsHash.toLowerCase()))return!1;if(t.target){const e=t.target.asArray();for(let t=0;t<e.length;t++){if(r&&!o.includes(e[t].toLowerCase()))return!1;if(!r&&o.includes(e[t].toLowerCase()))return!0}}return!0}getAccessTokensByFilter(e){const t=this.getTokenKeys(),r=[];return t.accessToken.forEach((t=>{if(!this.accessTokenKeyMatchesFilter(t,e,!0))return;const o=this.getAccessTokenCredential(t);o&&this.credentialMatchesFilter(o,e)&&r.push(o)})),r}getRefreshToken(e,t,r){this.commonLogger.trace("CacheManager - getRefreshToken called");const o=t?Se:void 0,n={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:Te.REFRESH_TOKEN,clientId:this.clientId,familyId:o},i=r&&r.refreshToken||this.getTokenKeys().refreshToken,a=[];i.forEach((e=>{if(this.refreshTokenKeyMatchesFilter(e,n)){const t=this.getRefreshTokenCredential(e);t&&this.credentialMatchesFilter(t,n)&&a.push(t)}}));return a.length<1?(this.commonLogger.info("CacheManager:getRefreshToken - No refresh token found."),null):(this.commonLogger.info("CacheManager:getRefreshToken - returning refresh token"),a[0])}refreshTokenKeyMatchesFilter(e,t){const r=e.toLowerCase();return(!t.familyId||-1!==r.indexOf(t.familyId.toLowerCase()))&&(!(!t.familyId&&t.clientId&&-1===r.indexOf(t.clientId.toLowerCase()))&&(!t.homeAccountId||-1!==r.indexOf(t.homeAccountId.toLowerCase())))}readAppMetadataFromCache(e){const t={environment:e,clientId:this.clientId},r=this.getAppMetadataFilteredBy(t),o=Object.keys(r).map((e=>r[e])),n=o.length;if(n<1)return null;if(n>1)throw st.createMultipleMatchingAppMetadataInCacheError();return o[0]}isAppMetadataFOCI(e){const t=this.readAppMetadataFromCache(e);return!(!t||t.familyId!==Se)}matchHomeAccountId(e,t){return!("string"!=typeof e.homeAccountId||t!==e.homeAccountId)}matchLocalAccountId(e,t){return!("string"!=typeof e.localAccountId||t!==e.localAccountId)}matchUsername(e,t){return!("string"!=typeof e.username||t.toLowerCase()!==e.username.toLowerCase())}matchUserAssertionHash(e,t){return!(!e.userAssertionHash||t!==e.userAssertionHash)}matchEnvironment(e,t){const r=this.getAuthorityMetadataByAlias(t);return!!(r&&r.aliases.indexOf(e.environment)>-1)}matchCredentialType(e,t){return e.credentialType&&t.toLowerCase()===e.credentialType.toLowerCase()}matchClientId(e,t){return!(!e.clientId||t!==e.clientId)}matchFamilyId(e,t){return!(!e.familyId||t!==e.familyId)}matchRealm(e,t){return!(!e.realm||t!==e.realm)}matchNativeAccountId(e,t){return!(!e.nativeAccountId||t!==e.nativeAccountId)}matchTarget(e,t){if(e.credentialType!==Te.ACCESS_TOKEN&&e.credentialType!==Te.ACCESS_TOKEN_WITH_AUTH_SCHEME||!e.target)return!1;return ft.fromString(e.target).containsScopeSet(t)}matchTokenType(e,t){return!(!e.tokenType||e.tokenType!==t)}matchKeyId(e,t){return!(!e.keyId||e.keyId!==t)}isAppMetadata(e){return-1!==e.indexOf(ke)}isAuthorityMetadata(e){return-1!==e.indexOf(Ae)}generateAuthorityMetadataCacheKey(e){return`${Ae}-${this.clientId}-${e}`}static toObject(e,t){for(const r in t)e[r]=t[r];return e}}class At extends St{setAccount(){throw nt.createUnexpectedError("Storage interface - setAccount() has not been implemented for the cacheStorage interface.")}getAccount(){throw nt.createUnexpectedError("Storage interface - getAccount() has not been implemented for the cacheStorage interface.")}setIdTokenCredential(){throw nt.createUnexpectedError("Storage interface - setIdTokenCredential() has not been implemented for the cacheStorage interface.")}getIdTokenCredential(){throw nt.createUnexpectedError("Storage interface - getIdTokenCredential() has not been implemented for the cacheStorage interface.")}setAccessTokenCredential(){throw nt.createUnexpectedError("Storage interface - setAccessTokenCredential() has not been implemented for the cacheStorage interface.")}getAccessTokenCredential(){throw nt.createUnexpectedError("Storage interface - getAccessTokenCredential() has not been implemented for the cacheStorage interface.")}setRefreshTokenCredential(){throw nt.createUnexpectedError("Storage interface - setRefreshTokenCredential() has not been implemented for the cacheStorage interface.")}getRefreshTokenCredential(){throw nt.createUnexpectedError("Storage interface - getRefreshTokenCredential() has not been implemented for the cacheStorage interface.")}setAppMetadata(){throw nt.createUnexpectedError("Storage interface - setAppMetadata() has not been implemented for the cacheStorage interface.")}getAppMetadata(){throw nt.createUnexpectedError("Storage interface - getAppMetadata() has not been implemented for the cacheStorage interface.")}setServerTelemetry(){throw nt.createUnexpectedError("Storage interface - setServerTelemetry() has not been implemented for the cacheStorage interface.")}getServerTelemetry(){throw nt.createUnexpectedError("Storage interface - getServerTelemetry() has not been implemented for the cacheStorage interface.")}setAuthorityMetadata(){throw nt.createUnexpectedError("Storage interface - setAuthorityMetadata() has not been implemented for the cacheStorage interface.")}getAuthorityMetadata(){throw nt.createUnexpectedError("Storage interface - getAuthorityMetadata() has not been implemented for the cacheStorage interface.")}getAuthorityMetadataKeys(){throw nt.createUnexpectedError("Storage interface - getAuthorityMetadataKeys() has not been implemented for the cacheStorage interface.")}setThrottlingCache(){throw nt.createUnexpectedError("Storage interface - setThrottlingCache() has not been implemented for the cacheStorage interface.")}getThrottlingCache(){throw nt.createUnexpectedError("Storage interface - getThrottlingCache() has not been implemented for the cacheStorage interface.")}removeItem(){throw nt.createUnexpectedError("Storage interface - removeItem() has not been implemented for the cacheStorage interface.")}containsKey(){throw nt.createUnexpectedError("Storage interface - containsKey() has not been implemented for the cacheStorage interface.")}getKeys(){throw nt.createUnexpectedError("Storage interface - getKeys() has not been implemented for the cacheStorage interface.")}getAccountKeys(){throw nt.createUnexpectedError("Storage interface - getAccountKeys() has not been implemented for the cacheStorage interface.")}getTokenKeys(){throw nt.createUnexpectedError("Storage interface - getTokenKeys() has not been implemented for the cacheStorage interface.")}async clear(){throw nt.createUnexpectedError("Storage interface - clear() has not been implemented for the cacheStorage interface.")}updateCredentialCacheKey(){throw nt.createUnexpectedError("Storage interface - updateCredentialCacheKey() has not been implemented for the cacheStorage interface.")}}
18
+ /*! @azure/msal-common v14.0.1 2023-08-11 */const bt={tokenRenewalOffsetSeconds:300,preventCorsPreflight:!1},Rt={loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:e.LogLevel.Info,correlationId:t.EMPTY_STRING},Pt={claimsBasedCachingEnabled:!1},Mt={async sendGetRequestAsync(){throw nt.createUnexpectedError("Network interface - sendGetRequestAsync() has not been implemented")},async sendPostRequestAsync(){throw nt.createUnexpectedError("Network interface - sendPostRequestAsync() has not been implemented")}},Nt={sku:t.SKU,version:ut,cpu:t.EMPTY_STRING,os:t.EMPTY_STRING},Ot={clientSecret:t.EMPTY_STRING,clientAssertion:void 0},qt={azureCloudInstance:gt.None,tenant:`${t.DEFAULT_COMMON_TENANT}`},Ut={application:{appName:"",appVersion:""}};function Ht(e){return e.authOptions.authority.options.protocolMode===Et.OIDC}
19
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class Lt extends nt{constructor(e,t,r){super(e,t,r),this.name="ServerError",Object.setPrototypeOf(this,Lt.prototype)}}
20
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class xt{static generateThrottlingStorageKey(e){return`${Le}.${JSON.stringify(e)}`}static preProcess(e,r){const o=xt.generateThrottlingStorageKey(r),n=e.getThrottlingCache(o);if(n){if(n.throttleTime<Date.now())return void e.removeItem(o);throw new Lt(n.errorCodes?.join(" ")||t.EMPTY_STRING,n.errorMessage,n.subError)}}static postProcess(e,t,r){if(xt.checkResponseStatus(r)||xt.checkResponseForRetryAfter(r)){const o={throttleTime:xt.calculateThrottleTime(parseInt(r.headers[i])),error:r.body.error,errorCodes:r.body.error_codes,errorMessage:r.body.error_description,subError:r.body.suberror};e.setThrottlingCache(xt.generateThrottlingStorageKey(t),o)}}static checkResponseStatus(e){return 429===e.status||e.status>=500&&e.status<600}static checkResponseForRetryAfter(e){return!!e.headers&&(e.headers.hasOwnProperty(i)&&(e.status<200||e.status>=300))}static calculateThrottleTime(e){const t=e<=0?0:e,r=Date.now()/1e3;return Math.floor(1e3*Math.min(r+(t||Ue),r+He))}static removeThrottle(e,t,r,o){const n={clientId:t,authority:r.authority,scopes:r.scopes,homeAccountIdentifier:o,claims:r.claims,authenticationScheme:r.authenticationScheme,resourceRequestMethod:r.resourceRequestMethod,resourceRequestUri:r.resourceRequestUri,shrClaims:r.shrClaims,sshKid:r.sshKid},i=this.generateThrottlingStorageKey(n);e.removeItem(i)}}
21
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class Dt{constructor(e,t){this.networkClient=e,this.cacheManager=t}async sendPostRequest(e,t,r){let o;xt.preProcess(this.cacheManager,e);try{o=await this.networkClient.sendPostRequestAsync(t,r)}catch(e){throw e instanceof nt?e:st.createNetworkError(t,e)}return xt.postProcess(this.cacheManager,e,o),o}}
22
+ /*! @azure/msal-common v14.0.1 2023-08-11 */const Ft="home_account_id",Bt="UPN";
23
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class Kt{static validateRedirectUri(e){if(ct.isEmpty(e))throw mt.createRedirectUriEmptyError()}static validatePrompt(e){const t=[];for(const e in se)t.push(se[e]);if(t.indexOf(e)<0)throw mt.createInvalidPromptError(e)}static validateClaims(e){try{JSON.parse(e)}catch(e){throw mt.createInvalidClaimsRequestError()}}static validateCodeChallengeParams(e,t){if(ct.isEmpty(e)||ct.isEmpty(t))throw mt.createInvalidCodeChallengeParamsError();this.validateCodeChallengeMethod(t)}static validateCodeChallengeMethod(e){if([he.PLAIN,he.S256].indexOf(e)<0)throw mt.createInvalidCodeChallengeMethodError()}static sanitizeEQParams(e,t){return e?(t.forEach(((t,r)=>{e[r]&&delete e[r]})),Object.fromEntries(Object.entries(e).filter((e=>""!==e[1])))):{}}}
24
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class Gt{constructor(){this.parameters=new Map}addResponseTypeCode(){this.parameters.set(E,encodeURIComponent(t.CODE_RESPONSE_TYPE))}addResponseTypeForTokenAndIdToken(){this.parameters.set(E,encodeURIComponent(`${t.TOKEN_RESPONSE_TYPE} ${t.ID_TOKEN_RESPONSE_TYPE}`))}addResponseMode(e){this.parameters.set(_,encodeURIComponent(e||ge.QUERY))}addNativeBroker(){this.parameters.set(oe,encodeURIComponent("1"))}addScopes(e,t=!0,o=r){!t||o.includes("openid")||e.includes("openid")||o.push("openid");const n=t?[...e||[],...o]:e||[],i=new ft(n);this.parameters.set(A,encodeURIComponent(i.printScopes()))}addClientId(e){this.parameters.set(T,encodeURIComponent(e))}addRedirectUri(e){Kt.validateRedirectUri(e),this.parameters.set(I,encodeURIComponent(e))}addPostLogoutRedirectUri(e){Kt.validateRedirectUri(e),this.parameters.set(Q,encodeURIComponent(e))}addIdTokenHint(e){this.parameters.set(j,encodeURIComponent(e))}addDomainHint(e){this.parameters.set(le,encodeURIComponent(e))}addLoginHint(e){this.parameters.set(de,encodeURIComponent(e))}addCcsUpn(e){this.parameters.set(a,encodeURIComponent(`UPN:${e}`))}addCcsOid(e){this.parameters.set(a,encodeURIComponent(`Oid:${e.uid}@${e.utid}`))}addSid(e){this.parameters.set(ce,encodeURIComponent(e))}addClaims(e,t){const r=this.addClientCapabilitiesToClaims(e,t);Kt.validateClaims(r),this.parameters.set(S,encodeURIComponent(r))}addCorrelationId(e){this.parameters.set(H,encodeURIComponent(e))}addLibraryInfo(e){this.parameters.set(L,e.sku),this.parameters.set(x,e.version),e.os&&this.parameters.set(D,e.os),e.cpu&&this.parameters.set(F,e.cpu)}addApplicationTelemetry(e){e?.appName&&this.parameters.set($,e.appName),e?.appVersion&&this.parameters.set(z,e.appVersion)}addPrompt(e){Kt.validatePrompt(e),this.parameters.set(`${M}`,encodeURIComponent(e))}addState(e){ct.isEmpty(e)||this.parameters.set(R,encodeURIComponent(e))}addNonce(e){this.parameters.set(P,encodeURIComponent(e))}addCodeChallengeParams(e,t){if(Kt.validateCodeChallengeParams(e,t),!e||!t)throw mt.createInvalidCodeChallengeParamsError();this.parameters.set(O,encodeURIComponent(e)),this.parameters.set(q,encodeURIComponent(t))}addAuthorizationCode(e){this.parameters.set(N,encodeURIComponent(e))}addDeviceCode(e){this.parameters.set(Y,encodeURIComponent(e))}addRefreshToken(e){this.parameters.set(b,encodeURIComponent(e))}addCodeVerifier(e){this.parameters.set(U,encodeURIComponent(e))}addClientSecret(e){this.parameters.set(W,encodeURIComponent(e))}addClientAssertion(e){ct.isEmpty(e)||this.parameters.set(V,encodeURIComponent(e))}addClientAssertionType(e){ct.isEmpty(e)||this.parameters.set(J,encodeURIComponent(e))}addOboAssertion(e){this.parameters.set(ee,encodeURIComponent(e))}addRequestTokenUse(e){this.parameters.set(te,encodeURIComponent(e))}addGrantType(e){this.parameters.set(k,encodeURIComponent(e))}addClientInfo(){this.parameters.set("client_info","1")}addExtraQueryParameters(e){const t=Kt.sanitizeEQParams(e,this.parameters);Object.keys(t).forEach((t=>{this.parameters.set(t,e[t])}))}addClientCapabilitiesToClaims(e,t){let r;if(e)try{r=JSON.parse(e)}catch(e){throw mt.createInvalidClaimsRequestError()}else r={};return t&&t.length>0&&(r.hasOwnProperty(ie)||(r[ie]={}),r[ie][ae]={values:t}),JSON.stringify(r)}addUsername(e){this.parameters.set(Be,encodeURIComponent(e))}addPassword(e){this.parameters.set(Ke,encodeURIComponent(e))}addPopToken(e){ct.isEmpty(e)||(this.parameters.set(X,qe.POP),this.parameters.set(Z,encodeURIComponent(e)))}addSshJwk(e){ct.isEmpty(e)||(this.parameters.set(X,qe.SSH),this.parameters.set(Z,encodeURIComponent(e)))}addServerTelemetry(e){this.parameters.set(B,e.generateCurrentRequestHeaderValue()),this.parameters.set(K,e.generateLastRequestHeaderValue())}addThrottling(){this.parameters.set(G,xe)}addLogoutHint(e){this.parameters.set(ne,encodeURIComponent(e))}createQueryString(){const e=new Array;return this.parameters.forEach(((t,r)=>{e.push(`${r}=${t}`)})),e.join("&")}}
25
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class $t{constructor(e,t){this.config=function({authOptions:e,systemOptions:t,loggerOptions:r,cacheOptions:o,storageInterface:n,networkInterface:i,cryptoInterface:a,clientCredentials:s,libraryInfo:c,telemetry:d,serverTelemetryManager:l,persistencePlugin:h,serializableCache:u}){const g={...Rt,...r};return{authOptions:(p=e,{clientCapabilities:[],azureCloudOptions:qt,skipAuthorityMetadataCache:!1,...p}),systemOptions:{...bt,...t},loggerOptions:g,cacheOptions:{...Pt,...o},storageInterface:n||new At(e.clientId,it,new lt(g)),networkInterface:i||Mt,cryptoInterface:a||it,clientCredentials:s||Ot,libraryInfo:{...Nt,...c},telemetry:{...Ut,...d},serverTelemetryManager:l||null,persistencePlugin:h||null,serializableCache:u||null};var p}(e),this.logger=new lt(this.config.loggerOptions,ht,ut),this.cryptoUtils=this.config.cryptoInterface,this.cacheManager=this.config.storageInterface,this.networkClient=this.config.networkInterface,this.networkManager=new Dt(this.networkClient,this.cacheManager),this.serverTelemetryManager=this.config.serverTelemetryManager,this.authority=this.config.authOptions.authority,this.performanceClient=t}createTokenRequestHeaders(e){const r={};if(r[n]=t.URL_FORM_CONTENT_TYPE,!this.config.systemOptions.preventCorsPreflight&&e)switch(e.type){case Ft:try{const t=Ct(e.credential);r[a]=`Oid:${t.uid}@${t.utid}`}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case Bt:r[a]=`UPN: ${e.credential}`}return r}async executePostToTokenEndpoint(e,t,r,o){const n=await this.networkManager.sendPostRequest(o,e,{body:t,headers:r});return this.config.serverTelemetryManager&&n.status<500&&429!==n.status&&this.config.serverTelemetryManager.clearTelemetryCache(),n}updateAuthority(e){if(!e.discoveryComplete())throw st.createEndpointDiscoveryIncompleteError("Updated authority has not completed endpoint discovery.");this.authority=e}createTokenQueryParameters(e){const t=new Gt;return e.tokenQueryParameters&&t.addExtraQueryParameters(e.tokenQueryParameters),t.createQueryString()}}
26
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class zt{generateAccountId(){return zt.generateAccountIdForCacheKey(this.homeAccountId,this.environment)}generateCredentialId(){return zt.generateCredentialIdForCacheKey(this.credentialType,this.clientId,this.realm,this.familyId)}generateTarget(){return zt.generateTargetForCacheKey(this.target)}generateCredentialKey(){return zt.generateCredentialCacheKey(this.homeAccountId,this.environment,this.credentialType,this.clientId,this.realm,this.target,this.familyId,this.tokenType,this.requestedClaimsHash)}generateType(){switch(this.credentialType){case Te.ID_TOKEN:return _e;case Te.ACCESS_TOKEN:case Te.ACCESS_TOKEN_WITH_AUTH_SCHEME:return Ie;case Te.REFRESH_TOKEN:return Ee;default:throw st.createUnexpectedCredentialTypeError()}}static generateCredentialCacheKey(e,t,r,o,n,i,a,s,c){return[this.generateAccountIdForCacheKey(e,t),this.generateCredentialIdForCacheKey(r,o,n,a),this.generateTargetForCacheKey(i),this.generateClaimsHashForCacheKey(c),this.generateSchemeForCacheKey(s)].join(ve).toLowerCase()}static generateAccountIdForCacheKey(e,t){return[e,t].join(ve).toLowerCase()}static generateCredentialIdForCacheKey(e,r,o,n){return[e,e===Te.REFRESH_TOKEN&&n||r,o||t.EMPTY_STRING].join(ve).toLowerCase()}static generateTargetForCacheKey(e){return(e||t.EMPTY_STRING).toLowerCase()}static generateClaimsHashForCacheKey(e){return(e||t.EMPTY_STRING).toLowerCase()}static generateSchemeForCacheKey(e){return e&&e.toLowerCase()!==qe.BEARER.toLowerCase()?e.toLowerCase():t.EMPTY_STRING}}
27
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class Qt extends zt{static createIdTokenEntity(e,t,r,o,n){const i=new Qt;return i.credentialType=Te.ID_TOKEN,i.homeAccountId=e,i.environment=t,i.clientId=o,i.secret=r,i.realm=n,i}static isIdTokenEntity(e){return!!e&&(e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("credentialType")&&e.hasOwnProperty("realm")&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("secret")&&e.credentialType===Te.ID_TOKEN)}}
28
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class jt{static nowSeconds(){return Math.round((new Date).getTime()/1e3)}static isTokenExpired(e,t){const r=Number(e)||0;return jt.nowSeconds()+t>r}static wasClockTurnedBack(e){return Number(e)>jt.nowSeconds()}static delay(e,t){return new Promise((r=>setTimeout((()=>r(t)),e)))}}
29
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class Yt extends zt{static createAccessTokenEntity(e,t,r,o,n,i,a,s,c,d,l,h,u,g,p){const m=new Yt;m.homeAccountId=e,m.credentialType=Te.ACCESS_TOKEN,m.secret=r;const f=jt.nowSeconds();if(m.cachedAt=f.toString(),m.expiresOn=a.toString(),m.extendedExpiresOn=s.toString(),d&&(m.refreshOn=d.toString()),m.environment=t,m.clientId=o,m.realm=n,m.target=i,m.userAssertionHash=h,m.tokenType=ct.isEmpty(l)?qe.BEARER:l,g&&(m.requestedClaims=g,m.requestedClaimsHash=p),m.tokenType?.toLowerCase()!==qe.BEARER.toLowerCase())switch(m.credentialType=Te.ACCESS_TOKEN_WITH_AUTH_SCHEME,m.tokenType){case qe.POP:const e=kt.extractTokenClaims(r,c);if(!e?.cnf?.kid)throw st.createTokenClaimsRequiredError();m.keyId=e.cnf.kid;break;case qe.SSH:m.keyId=u}return m}static isAccessTokenEntity(e){return!!e&&(e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("credentialType")&&e.hasOwnProperty("realm")&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("secret")&&e.hasOwnProperty("target")&&(e.credentialType===Te.ACCESS_TOKEN||e.credentialType===Te.ACCESS_TOKEN_WITH_AUTH_SCHEME))}}
30
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class Wt extends zt{static createRefreshTokenEntity(e,t,r,o,n,i){const a=new Wt;return a.clientId=o,a.credentialType=Te.REFRESH_TOKEN,a.environment=t,a.homeAccountId=e,a.secret=r,a.userAssertionHash=i,n&&(a.familyId=n),a}static isRefreshTokenEntity(e){return!!e&&(e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("credentialType")&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("secret")&&e.credentialType===Te.REFRESH_TOKEN)}}
31
+ /*! @azure/msal-common v14.0.1 2023-08-11 */const Vt=["interaction_required","consent_required","login_required"],Jt=["message_only","additional_action","basic_action","user_password_expired","consent_required"],Xt={noTokensFoundError:{code:"no_tokens_found",desc:"No refresh token found in the cache. Please sign-in."},native_account_unavailable:{code:"native_account_unavailable",desc:"The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API."}};class Zt extends nt{constructor(e,r,o,n,i,a,s){super(e,r,o),Object.setPrototypeOf(this,Zt.prototype),this.timestamp=n||t.EMPTY_STRING,this.traceId=i||t.EMPTY_STRING,this.correlationId=a||t.EMPTY_STRING,this.claims=s||t.EMPTY_STRING,this.name="InteractionRequiredAuthError"}static isInteractionRequiredError(e,t,r){const o=!!e&&Vt.indexOf(e)>-1,n=!!r&&Jt.indexOf(r)>-1,i=!!t&&Vt.some((e=>t.indexOf(e)>-1));return o||i||n}static createNoTokensFoundError(){return new Zt(Xt.noTokensFoundError.code,Xt.noTokensFoundError.desc)}static createNativeAccountUnavailableError(){return new Zt(Xt.native_account_unavailable.code,Xt.native_account_unavailable.desc)}}
32
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class er{constructor(e,t,r,o,n){this.account=e||null,this.idToken=t||null,this.accessToken=r||null,this.refreshToken=o||null,this.appMetadata=n||null}}
33
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class tr{static setRequestState(e,r,o){const n=tr.generateLibraryState(e,o);return ct.isEmpty(r)?n:`${n}${t.RESOURCE_DELIM}${r}`}static generateLibraryState(e,t){if(!e)throw st.createNoCryptoObjectError("generateLibraryState");const r={id:e.createNewGuid()};t&&(r.meta=t);const o=JSON.stringify(r);return e.base64Encode(o)}static parseRequestState(e,r){if(!e)throw st.createNoCryptoObjectError("parseRequestState");if(ct.isEmpty(r))throw st.createInvalidStateError(r,"Null, undefined or empty state");try{const o=r.split(t.RESOURCE_DELIM),n=o[0],i=o.length>1?o.slice(1).join(t.RESOURCE_DELIM):t.EMPTY_STRING,a=e.base64Decode(n),s=JSON.parse(a);return{userRequestState:ct.isEmpty(i)?t.EMPTY_STRING:i,libraryState:s}}catch(e){throw st.createInvalidStateError(r,e)}}}
34
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class rr{get urlString(){return this._urlString}constructor(e){if(this._urlString=e,ct.isEmpty(this._urlString))throw mt.createUrlEmptyError();ct.isEmpty(this.getHash())&&(this._urlString=rr.canonicalizeUri(e))}static canonicalizeUri(e){if(e){let t=e.toLowerCase();return ct.endsWith(t,"?")?t=t.slice(0,-1):ct.endsWith(t,"?/")&&(t=t.slice(0,-2)),ct.endsWith(t,"/")||(t+="/"),t}return e}validateAsUri(){let e;try{e=this.getUrlComponents()}catch(e){throw mt.createUrlParseError(e)}if(!e.HostNameAndPort||!e.PathSegments)throw mt.createUrlParseError(`Given url string: ${this.urlString}`);if(!e.Protocol||"https:"!==e.Protocol.toLowerCase())throw mt.createInsecureAuthorityUriError(this.urlString)}static appendQueryString(e,t){return ct.isEmpty(t)?e:e.indexOf("?")<0?`${e}?${t}`:`${e}&${t}`}static removeHashFromUrl(e){return rr.canonicalizeUri(e.split("#")[0])}replaceTenantPath(e){const t=this.getUrlComponents(),r=t.PathSegments;return!e||0===r.length||r[0]!==C&&r[0]!==v||(r[0]=e),rr.constructAuthorityUriFromObject(t)}getHash(){return rr.parseHash(this.urlString)}getUrlComponents(){const e=RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?"),t=this.urlString.match(e);if(!t)throw mt.createUrlParseError(`Given url string: ${this.urlString}`);const r={Protocol:t[1],HostNameAndPort:t[4],AbsolutePath:t[5],QueryString:t[7]};let o=r.AbsolutePath.split("/");return o=o.filter((e=>e&&e.length>0)),r.PathSegments=o,!ct.isEmpty(r.QueryString)&&r.QueryString.endsWith("/")&&(r.QueryString=r.QueryString.substring(0,r.QueryString.length-1)),r}static getDomainFromUrl(e){const t=RegExp("^([^:/?#]+://)?([^/?#]*)"),r=e.match(t);if(!r)throw mt.createUrlParseError(`Given url string: ${e}`);return r[2]}static getAbsoluteUrl(e,r){if(e[0]===t.FORWARD_SLASH){const t=new rr(r).getUrlComponents();return t.Protocol+"//"+t.HostNameAndPort+e}return e}static parseHash(e){const r=e.indexOf("#"),o=e.indexOf("#/");return o>-1?e.substring(o+2):r>-1?e.substring(r+1):t.EMPTY_STRING}static parseQueryString(e){const r=e.indexOf("?"),o=e.indexOf("/?");return o>-1?e.substring(o+2):r>-1?e.substring(r+1):t.EMPTY_STRING}static parseQueryServerResponse(e){const r=e.indexOf("?code"),o=e.indexOf("/?code"),n=e.indexOf("#");return o>-1&&n>-1?e.substring(o+2,n):o>-1?e.substring(o+2):r>-1&&n>-1?e.substring(r+1,n):r>-1?e.substring(r+1):t.EMPTY_STRING}static constructAuthorityUriFromObject(e){return new rr(e.Protocol+"//"+e.HostNameAndPort+"/"+e.PathSegments.join("/"))}static getDeserializedHash(e){if(ct.isEmpty(e))return{};const t=rr.parseHash(e),r=ct.queryStringToObject(ct.isEmpty(t)?e:t);if(!r)throw st.createHashNotDeserializedError(JSON.stringify(r));return r}static getDeserializedQueryString(e){if(ct.isEmpty(e))return{};const t=rr.parseQueryString(e),r=ct.queryStringToObject(ct.isEmpty(t)?e:t);if(!r)throw st.createHashNotDeserializedError(JSON.stringify(r));return r}static getDeserializedCodeResponse(e,t){const r=new rr(t);let o;return o=e===ue.QUERY?rr.getDeserializedQueryString(t):rr.getDeserializedHash(r.getHash()),o}static hashContainsKnownProperties(e){if(ct.isEmpty(e)||e.indexOf("=")<0)return!1;const t=rr.getDeserializedHash(e);return!!(t.code||t.error_description||t.error||t.state)}}
35
+ /*! @azure/msal-common v14.0.1 2023-08-11 */const or={AcquireTokenByCode:"acquireTokenByCode",AcquireTokenByRefreshToken:"acquireTokenByRefreshToken",AcquireTokenSilent:"acquireTokenSilent",AcquireTokenSilentAsync:"acquireTokenSilentAsync",AcquireTokenPopup:"acquireTokenPopup",CryptoOptsGetPublicKeyThumbprint:"cryptoOptsGetPublicKeyThumbprint",CryptoOptsSignJwt:"cryptoOptsSignJwt",SilentCacheClientAcquireToken:"silentCacheClientAcquireToken",SilentIframeClientAcquireToken:"silentIframeClientAcquireToken",SilentRefreshClientAcquireToken:"silentRefreshClientAcquireToken",SsoSilent:"ssoSilent",StandardInteractionClientGetDiscoveredAuthority:"standardInteractionClientGetDiscoveredAuthority",FetchAccountIdWithNativeBroker:"fetchAccountIdWithNativeBroker",NativeInteractionClientAcquireToken:"nativeInteractionClientAcquireToken",BaseClientCreateTokenRequestHeaders:"baseClientCreateTokenRequestHeaders",BrokerHandhshake:"brokerHandshake",AcquireTokenByRefreshTokenInBroker:"acquireTokenByRefreshTokenInBroker",AcquireTokenByBroker:"acquireTokenByBroker",RefreshTokenClientExecuteTokenRequest:"refreshTokenClientExecuteTokenRequest",RefreshTokenClientAcquireToken:"refreshTokenClientAcquireToken",RefreshTokenClientAcquireTokenWithCachedRefreshToken:"refreshTokenClientAcquireTokenWithCachedRefreshToken",RefreshTokenClientAcquireTokenByRefreshToken:"refreshTokenClientAcquireTokenByRefreshToken",RefreshTokenClientCreateTokenRequestBody:"refreshTokenClientCreateTokenRequestBody",AcquireTokenFromCache:"acquireTokenFromCache",AcquireTokenBySilentIframe:"acquireTokenBySilentIframe",InitializeBaseRequest:"initializeBaseRequest",InitializeSilentRequest:"initializeSilentRequest",InitializeClientApplication:"initializeClientApplication",SilentIframeClientTokenHelper:"silentIframeClientTokenHelper",SilentHandlerInitiateAuthRequest:"silentHandlerInitiateAuthRequest",SilentHandlerMonitorIframeForHash:"silentHandlerMonitorIframeForHash",SilentHandlerLoadFrame:"silentHandlerLoadFrame",StandardInteractionClientCreateAuthCodeClient:"standardInteractionClientCreateAuthCodeClient",StandardInteractionClientGetClientConfiguration:"standardInteractionClientGetClientConfiguration",StandardInteractionClientInitializeAuthorizationRequest:"standardInteractionClientInitializeAuthorizationRequest",StandardInteractionClientInitializeAuthorizationCodeRequest:"standardInteractionClientInitializeAuthorizationCodeRequest",GetAuthCodeUrl:"getAuthCodeUrl",HandleCodeResponseFromServer:"handleCodeResponseFromServer",HandleCodeResponseFromHash:"handleCodeResponseFromHash",UpdateTokenEndpointAuthority:"updateTokenEndpointAuthority",AuthClientAcquireToken:"authClientAcquireToken",AuthClientExecuteTokenRequest:"authClientExecuteTokenRequest",AuthClientCreateTokenRequestBody:"authClientCreateTokenRequestBody",AuthClientCreateQueryString:"authClientCreateQueryString",PopTokenGenerateCnf:"popTokenGenerateCnf",PopTokenGenerateKid:"popTokenGenerateKid",HandleServerTokenResponse:"handleServerTokenResponse",AuthorityFactoryCreateDiscoveredInstance:"authorityFactoryCreateDiscoveredInstance",AuthorityResolveEndpointsAsync:"authorityResolveEndpointsAsync",AuthorityGetCloudDiscoveryMetadataFromNetwork:"authorityGetCloudDiscoveryMetadataFromNetwork",AuthorityUpdateCloudDiscoveryMetadata:"authorityUpdateCloudDiscoveryMetadata",AuthorityGetEndpointMetadataFromNetwork:"authorityGetEndpointMetadataFromNetwork",AuthorityUpdateEndpointMetadata:"authorityUpdateEndpointMetadata",AuthorityUpdateMetadataWithRegionalInformation:"authorityUpdateMetadataWithRegionalInformation",RegionDiscoveryDetectRegion:"regionDiscoveryDetectRegion",RegionDiscoveryGetRegionFromIMDS:"regionDiscoveryGetRegionFromIMDS",RegionDiscoveryGetCurrentVersion:"regionDiscoveryGetCurrentVersion",AcquireTokenByCodeAsync:"acquireTokenByCodeAsync",GetEndpointMetadataFromNetwork:"getEndpointMetadataFromNetwork",GetCloudDiscoveryMetadataFromNetworkMeasurement:"getCloudDiscoveryMetadataFromNetworkMeasurement",HandleRedirectPromiseMeasurement:"handleRedirectPromiseMeasurement",UpdateCloudDiscoveryMetadataMeasurement:"updateCloudDiscoveryMetadataMeasurement",UsernamePasswordClientAcquireToken:"usernamePasswordClientAcquireToken",NativeMessageHandlerHandshake:"nativeMessageHandlerHandshake",NativeGenerateAuthResult:"nativeGenerateAuthResult"},nr=1,ir=2,ar=new Set(["accessTokenSize","durationMs","idTokenSize","matsSilentStatus","matsHttpStatus","refreshTokenSize","queuedTimeMs","startTimeMs","status"]),sr="sw";class cr{constructor(e,t){this.cryptoUtils=e,this.performanceClient=t}async generateCnf(e){this.performanceClient?.addQueueMeasurement(or.PopTokenGenerateCnf,e.correlationId),this.performanceClient?.setPreQueueTime(or.PopTokenGenerateKid,e.correlationId);const t=await this.generateKid(e),r=this.cryptoUtils.base64Encode(JSON.stringify(t));return{kid:t.kid,reqCnfString:r,reqCnfHash:await this.cryptoUtils.hashString(r)}}async generateKid(e){this.performanceClient?.addQueueMeasurement(or.PopTokenGenerateKid,e.correlationId);return{kid:await this.cryptoUtils.getPublicKeyThumbprint(e),xms_ksl:sr}}async signPopToken(e,t,r){return this.signPayload(e,t,r)}async signPayload(e,t,r,o){const{resourceRequestMethod:n,resourceRequestUri:i,shrClaims:a,shrNonce:s}=r,c=i?new rr(i):void 0,d=c?.getUrlComponents();return await this.cryptoUtils.signJwt({at:e,ts:jt.nowSeconds(),m:n?.toUpperCase(),u:d?.HostNameAndPort,nonce:s||this.cryptoUtils.createNewGuid(),p:d?.AbsolutePath,q:d?.QueryString?[[],d.QueryString]:void 0,client_claims:a||void 0,...o},t,r.correlationId)}}
36
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class dr{generateAppMetadataKey(){return dr.generateAppMetadataCacheKey(this.environment,this.clientId)}static generateAppMetadataCacheKey(e,t){return[ke,e,t].join(ve).toLowerCase()}static createAppMetadataEntity(e,t,r){const o=new dr;return o.clientId=e,o.environment=t,r&&(o.familyId=r),o}static isAppMetadataEntity(e,t){return!!t&&(0===e.indexOf(ke)&&t.hasOwnProperty("clientId")&&t.hasOwnProperty("environment"))}}
37
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class lr{constructor(e,t){this.cache=e,this.hasChanged=t}get cacheHasChanged(){return this.hasChanged}get tokenCache(){return this.cache}}
38
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class hr{constructor(e,t,r,o,n,i,a){this.clientId=e,this.cacheStorage=t,this.cryptoObj=r,this.logger=o,this.serializableCache=n,this.persistencePlugin=i,this.performanceClient=a}validateServerAuthorizationCodeResponse(e,r,o){if(!e.state||!r)throw e.state?st.createStateNotFoundError("Cached State"):st.createStateNotFoundError("Server State");let n,i;try{n=decodeURIComponent(e.state)}catch(t){throw st.createInvalidStateError(e.state,"Server response hash URI could not be decoded")}try{i=decodeURIComponent(r)}catch(t){throw st.createInvalidStateError(e.state,"Cached state URI could not be decoded")}if(n!==i)throw st.createStateMismatchError();if(e.error||e.error_description||e.suberror){if(Zt.isInteractionRequiredError(e.error,e.error_description,e.suberror))throw new Zt(e.error||t.EMPTY_STRING,e.error_description,e.suberror,e.timestamp||t.EMPTY_STRING,e.trace_id||t.EMPTY_STRING,e.correlation_id||t.EMPTY_STRING,e.claims||t.EMPTY_STRING);throw new Lt(e.error||t.EMPTY_STRING,e.error_description,e.suberror)}e.client_info&&yt(e.client_info,o)}validateTokenResponse(e){if(e.error||e.error_description||e.suberror){if(Zt.isInteractionRequiredError(e.error,e.error_description,e.suberror))throw new Zt(e.error,e.error_description,e.suberror,e.timestamp||t.EMPTY_STRING,e.trace_id||t.EMPTY_STRING,e.correlation_id||t.EMPTY_STRING,e.claims||t.EMPTY_STRING);const r=`${e.error_codes} - [${e.timestamp}]: ${e.error_description} - Correlation ID: ${e.correlation_id} - Trace ID: ${e.trace_id}`;throw new Lt(e.error,r,e.suberror)}}async handleServerTokenResponse(e,r,o,n,i,a,s,c,d){let l,h;if(this.performanceClient?.addQueueMeasurement(or.HandleServerTokenResponse,e.correlation_id),e.id_token){if(l=new kt(e.id_token||t.EMPTY_STRING,this.cryptoObj),i&&!ct.isEmpty(i.nonce)&&l.claims.nonce!==i.nonce)throw st.createNonceMismatchError();if(n.maxAge||0===n.maxAge){const e=l.claims.auth_time;if(!e)throw st.createAuthTimeNotFoundError();kt.checkMaxAge(e,n.maxAge)}}this.homeAccountIdentifier=_t.generateHomeAccountId(e.client_info||t.EMPTY_STRING,r.authorityType,this.logger,this.cryptoObj,l?.claims),i&&i.state&&(h=tr.parseRequestState(this.cryptoObj,i.state)),e.key_id=e.key_id||n.sshKid||void 0;const u=this.generateCacheRecord(e,r,o,n,l,a,i);let g;try{if(this.persistencePlugin&&this.serializableCache&&(this.logger.verbose("Persistence enabled, calling beforeCacheAccess"),g=new lr(this.serializableCache,!0),await this.persistencePlugin.beforeCacheAccess(g)),s&&!c&&u.account){const e=u.account.generateAccountKey();if(!this.cacheStorage.getAccount(e))return this.logger.warning("Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache"),hr.generateAuthenticationResult(this.cryptoObj,r,u,!1,n,l,h,void 0,d)}await this.cacheStorage.saveCacheRecord(u,n.storeInCache)}finally{this.persistencePlugin&&this.serializableCache&&g&&(this.logger.verbose("Persistence enabled, calling afterCacheAccess"),await this.persistencePlugin.afterCacheAccess(g))}return hr.generateAuthenticationResult(this.cryptoObj,r,u,!1,n,l,h,e,d)}generateCacheRecord(e,r,o,n,i,a,s){const c=r.getPreferredCache();if(ct.isEmpty(c))throw st.createInvalidCacheEnvironmentError();let d,l;!ct.isEmpty(e.id_token)&&i&&(d=Qt.createIdTokenEntity(this.homeAccountIdentifier,c,e.id_token||t.EMPTY_STRING,this.clientId,i.claims.tid||t.EMPTY_STRING),l=_t.createAccount({homeAccountId:this.homeAccountIdentifier,idTokenClaims:i.claims,clientInfo:e.client_info,cloudGraphHostName:s?.cloud_graph_host_name,msGraphHost:s?.msgraph_host},r));let h=null;if(!ct.isEmpty(e.access_token)){const s=e.scope?ft.fromString(e.scope):new ft(n.scopes||[]),d=("string"==typeof e.expires_in?parseInt(e.expires_in,10):e.expires_in)||0,l=("string"==typeof e.ext_expires_in?parseInt(e.ext_expires_in,10):e.ext_expires_in)||0,u=("string"==typeof e.refresh_in?parseInt(e.refresh_in,10):e.refresh_in)||void 0,g=o+d,p=g+l,m=u&&u>0?o+u:void 0;h=Yt.createAccessTokenEntity(this.homeAccountIdentifier,c,e.access_token||t.EMPTY_STRING,this.clientId,i?i.claims.tid||t.EMPTY_STRING:r.tenant,s.printScopes(),g,p,this.cryptoObj,m,e.token_type,a,e.key_id,n.claims,n.requestedClaimsHash)}let u=null;ct.isEmpty(e.refresh_token)||(u=Wt.createRefreshTokenEntity(this.homeAccountIdentifier,c,e.refresh_token||t.EMPTY_STRING,this.clientId,e.foci,a));let g=null;return ct.isEmpty(e.foci)||(g=dr.createAppMetadataEntity(this.clientId,c,e.foci)),new er(l,d,h,u,g)}static async generateAuthenticationResult(e,r,o,n,i,a,s,c,d){let l,h=t.EMPTY_STRING,u=[],g=null,p=t.EMPTY_STRING;if(o.accessToken){if(o.accessToken.tokenType===qe.POP){const t=new cr(e),{secret:r,keyId:n}=o.accessToken;if(!n)throw st.createKeyIdMissingError();h=await t.signPopToken(r,n,i)}else h=o.accessToken.secret;u=ft.fromString(o.accessToken.target).asArray(),g=new Date(1e3*Number(o.accessToken.expiresOn)),l=new Date(1e3*Number(o.accessToken.extendedExpiresOn))}o.appMetadata&&(p=o.appMetadata.familyId===Se?Se:t.EMPTY_STRING);const m=a?.claims.oid||a?.claims.sub||t.EMPTY_STRING,f=a?.claims.tid||t.EMPTY_STRING;return c?.spa_accountid&&o.account&&(o.account.nativeAccountId=c?.spa_accountid),{authority:r.canonicalAuthority,uniqueId:m,tenantId:f,scopes:u,account:o.account?o.account.getAccountInfo():null,idToken:a?a.rawToken:t.EMPTY_STRING,idTokenClaims:a?a.claims:{},accessToken:h,fromCache:n,expiresOn:g,correlationId:i.correlationId,requestId:d||t.EMPTY_STRING,extExpiresOn:l,familyId:p,tokenType:o.accessToken?.tokenType||t.EMPTY_STRING,state:s?s.userRequestState:t.EMPTY_STRING,cloudGraphHostName:o.account?.cloudGraphHostName||t.EMPTY_STRING,msGraphHost:o.account?.msGraphHost||t.EMPTY_STRING,code:c?.spa_code,fromNativeBroker:!1}}}
39
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class ur extends $t{constructor(e,t){super(e,t),this.includeRedirectUri=!0,this.oidcDefaultScopes=this.config.authOptions.authority.options.OIDCOptions?.defaultScopes}async getAuthCodeUrl(e){this.performanceClient?.addQueueMeasurement(or.GetAuthCodeUrl,e.correlationId),this.performanceClient?.setPreQueueTime(or.AuthClientCreateQueryString,e.correlationId);const t=await this.createAuthCodeUrlQueryString(e);return rr.appendQueryString(this.authority.authorizationEndpoint,t)}async acquireToken(e,t){if(!e||!e.code)throw st.createTokenRequestCannotBeMadeError();this.performanceClient?.addQueueMeasurement(or.AuthClientAcquireToken,e.correlationId);const r=this.performanceClient?.startMeasurement("AuthCodeClientAcquireToken",e.correlationId);this.logger.info("in acquireToken call in auth-code client");const o=jt.nowSeconds();this.performanceClient?.setPreQueueTime(or.AuthClientExecuteTokenRequest,e.correlationId);const n=await this.executeTokenRequest(this.authority,e),i=n.headers?.[d],a=n.headers?.[l];a&&r?.add({httpVerAuthority:a});const s=new hr(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin,this.performanceClient);return s.validateTokenResponse(n.body),this.performanceClient?.setPreQueueTime(or.HandleServerTokenResponse,e.correlationId),s.handleServerTokenResponse(n.body,this.authority,o,e,t,void 0,void 0,void 0,i).then((e=>(r?.end({success:!0}),e))).catch((t=>{throw this.logger.verbose("Error in fetching token in ACC",e.correlationId),r?.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t}))}handleFragmentResponse(e,t){const r=new hr(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,null,null),o=rr.getDeserializedCodeResponse(this.config.authOptions.authority.options.OIDCOptions?.serverResponseType,e);if(r.validateServerAuthorizationCodeResponse(o,t,this.cryptoUtils),!o.code)throw st.createNoAuthCodeInServerResponseError();return{...o,code:o.code}}getLogoutUri(e){if(!e)throw mt.createEmptyLogoutRequestError();const t=this.createLogoutUrlQueryString(e);return rr.appendQueryString(this.authority.endSessionEndpoint,t)}async executeTokenRequest(e,t){this.performanceClient?.addQueueMeasurement(or.AuthClientExecuteTokenRequest,t.correlationId),this.performanceClient?.setPreQueueTime(or.AuthClientCreateTokenRequestBody,t.correlationId);const r=this.createTokenQueryParameters(t),o=rr.appendQueryString(e.tokenEndpoint,r),n=await this.createTokenRequestBody(t);let i;if(t.clientInfo)try{const e=yt(t.clientInfo,this.cryptoUtils);i={credential:`${e.uid}${we}${e.utid}`,type:Ft}}catch(e){this.logger.verbose("Could not parse client info for CCS Header: "+e)}const a=this.createTokenRequestHeaders(i||t.ccsCredential),s={clientId:this.config.authOptions.clientId,authority:e.canonicalAuthority,scopes:t.scopes,claims:t.claims,authenticationScheme:t.authenticationScheme,resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,sshKid:t.sshKid};return this.executePostToTokenEndpoint(o,n,a,s)}async createTokenRequestBody(e){this.performanceClient?.addQueueMeasurement(or.AuthClientCreateTokenRequestBody,e.correlationId);const t=new Gt;if(t.addClientId(e.tokenBodyParameters?.[T]||this.config.authOptions.clientId),this.includeRedirectUri?t.addRedirectUri(e.redirectUri):Kt.validateRedirectUri(e.redirectUri),t.addScopes(e.scopes,!0,this.oidcDefaultScopes),t.addAuthorizationCode(e.code),t.addLibraryInfo(this.config.libraryInfo),t.addApplicationTelemetry(this.config.telemetry.application),t.addThrottling(),this.serverTelemetryManager&&!Ht(this.config)&&t.addServerTelemetry(this.serverTelemetryManager),e.codeVerifier&&t.addCodeVerifier(e.codeVerifier),this.config.clientCredentials.clientSecret&&t.addClientSecret(this.config.clientCredentials.clientSecret),this.config.clientCredentials.clientAssertion){const e=this.config.clientCredentials.clientAssertion;t.addClientAssertion(e.assertion),t.addClientAssertionType(e.assertionType)}if(t.addGrantType(pe),t.addClientInfo(),e.authenticationScheme===qe.POP){const r=new cr(this.cryptoUtils,this.performanceClient);this.performanceClient?.setPreQueueTime(or.PopTokenGenerateCnf,e.correlationId);const o=await r.generateCnf(e);t.addPopToken(o.reqCnfString)}else if(e.authenticationScheme===qe.SSH){if(!e.sshJwk)throw mt.createMissingSshJwkError();t.addSshJwk(e.sshJwk)}const r=e.correlationId||this.config.cryptoInterface.createNewGuid();let o;if(t.addCorrelationId(r),(!ct.isEmptyObj(e.claims)||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&t.addClaims(e.claims,this.config.authOptions.clientCapabilities),e.clientInfo)try{const t=yt(e.clientInfo,this.cryptoUtils);o={credential:`${t.uid}${we}${t.utid}`,type:Ft}}catch(e){this.logger.verbose("Could not parse client info for CCS Header: "+e)}else o=e.ccsCredential;if(this.config.systemOptions.preventCorsPreflight&&o)switch(o.type){case Ft:try{const e=Ct(o.credential);t.addCcsOid(e)}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case Bt:t.addCcsUpn(o.credential)}return e.tokenBodyParameters&&t.addExtraQueryParameters(e.tokenBodyParameters),!e.enableSpaAuthorizationCode||e.tokenBodyParameters&&e.tokenBodyParameters[re]||t.addExtraQueryParameters({[re]:"1"}),t.createQueryString()}async createAuthCodeUrlQueryString(e){this.performanceClient?.addQueueMeasurement(or.AuthClientCreateQueryString,e.correlationId);const t=new Gt;t.addClientId(e.extraQueryParameters?.[T]||this.config.authOptions.clientId);const r=[...e.scopes||[],...e.extraScopesToConsent||[]];t.addScopes(r,!0,this.oidcDefaultScopes),t.addRedirectUri(e.redirectUri);const o=e.correlationId||this.config.cryptoInterface.createNewGuid();if(t.addCorrelationId(o),t.addResponseMode(e.responseMode),t.addResponseTypeCode(),t.addLibraryInfo(this.config.libraryInfo),Ht(this.config)||t.addApplicationTelemetry(this.config.telemetry.application),t.addClientInfo(),e.codeChallenge&&e.codeChallengeMethod&&t.addCodeChallengeParams(e.codeChallenge,e.codeChallengeMethod),e.prompt&&t.addPrompt(e.prompt),e.domainHint&&t.addDomainHint(e.domainHint),e.prompt!==se.SELECT_ACCOUNT)if(e.sid&&e.prompt===se.NONE)this.logger.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from request"),t.addSid(e.sid);else if(e.account){const r=this.extractAccountSid(e.account),o=this.extractLoginHint(e.account);if(o){this.logger.verbose("createAuthCodeUrlQueryString: login_hint claim present on account"),t.addLoginHint(o);try{const r=Ct(e.account.homeAccountId);t.addCcsOid(r)}catch(e){this.logger.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}else if(r&&e.prompt===se.NONE){this.logger.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from account"),t.addSid(r);try{const r=Ct(e.account.homeAccountId);t.addCcsOid(r)}catch(e){this.logger.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}else if(e.loginHint)this.logger.verbose("createAuthCodeUrlQueryString: Adding login_hint from request"),t.addLoginHint(e.loginHint),t.addCcsUpn(e.loginHint);else if(e.account.username){this.logger.verbose("createAuthCodeUrlQueryString: Adding login_hint from account"),t.addLoginHint(e.account.username);try{const r=Ct(e.account.homeAccountId);t.addCcsOid(r)}catch(e){this.logger.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}}else e.loginHint&&(this.logger.verbose("createAuthCodeUrlQueryString: No account, adding login_hint from request"),t.addLoginHint(e.loginHint),t.addCcsUpn(e.loginHint));else this.logger.verbose("createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints");if(e.nonce&&t.addNonce(e.nonce),e.state&&t.addState(e.state),(!ct.isEmpty(e.claims)||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&t.addClaims(e.claims,this.config.authOptions.clientCapabilities),e.extraQueryParameters&&t.addExtraQueryParameters(e.extraQueryParameters),e.nativeBroker&&(t.addNativeBroker(),e.authenticationScheme===qe.POP)){const r=new cr(this.cryptoUtils),o=await r.generateCnf(e);t.addPopToken(o.reqCnfHash)}return t.createQueryString()}createLogoutUrlQueryString(e){const t=new Gt;return e.postLogoutRedirectUri&&t.addPostLogoutRedirectUri(e.postLogoutRedirectUri),e.correlationId&&t.addCorrelationId(e.correlationId),e.idTokenHint&&t.addIdTokenHint(e.idTokenHint),e.state&&t.addState(e.state),e.logoutHint&&t.addLogoutHint(e.logoutHint),e.extraQueryParameters&&t.addExtraQueryParameters(e.extraQueryParameters),t.createQueryString()}extractAccountSid(e){return e.idTokenClaims?.sid||null}extractLoginHint(e){return e.idTokenClaims?.login_hint||null}}
40
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class gr extends $t{constructor(e,t){super(e,t)}async acquireToken(e){this.performanceClient?.addQueueMeasurement(or.RefreshTokenClientAcquireToken,e.correlationId);const t=this.performanceClient?.startMeasurement(or.RefreshTokenClientAcquireToken,e.correlationId);this.logger.verbose("RefreshTokenClientAcquireToken called",e.correlationId);const r=jt.nowSeconds();this.performanceClient?.setPreQueueTime(or.RefreshTokenClientExecuteTokenRequest,e.correlationId);const o=await this.executeTokenRequest(e,this.authority),n=o.headers?.[l];t?.add({refreshTokenSize:o.body.refresh_token?.length||0}),n&&t?.add({httpVerToken:n});const i=o.headers?.[d],a=new hr(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin);return a.validateTokenResponse(o.body),this.performanceClient?.setPreQueueTime(or.HandleServerTokenResponse,e.correlationId),a.handleServerTokenResponse(o.body,this.authority,r,e,void 0,void 0,!0,e.forceCache,i).then((e=>(t?.end({success:!0}),e))).catch((r=>{throw this.logger.verbose("Error in fetching refresh token",e.correlationId),t?.end({errorCode:r.errorCode,subErrorCode:r.subError,success:!1}),r}))}async acquireTokenByRefreshToken(e){if(!e)throw mt.createEmptyTokenRequestError();if(this.performanceClient?.addQueueMeasurement(or.RefreshTokenClientAcquireTokenByRefreshToken,e.correlationId),!e.account)throw st.createNoAccountInSilentRequestError();if(this.cacheManager.isAppMetadataFOCI(e.account.environment))try{return this.performanceClient?.setPreQueueTime(or.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId),this.acquireTokenWithCachedRefreshToken(e,!0)}catch(t){const r=t instanceof Zt&&t.errorCode===Xt.noTokensFoundError.code,o=t instanceof Lt&&t.errorCode===De&&t.subError===Fe;if(r||o)return this.performanceClient?.setPreQueueTime(or.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId),this.acquireTokenWithCachedRefreshToken(e,!1);throw t}return this.performanceClient?.setPreQueueTime(or.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId),this.acquireTokenWithCachedRefreshToken(e,!1)}async acquireTokenWithCachedRefreshToken(e,t){this.performanceClient?.addQueueMeasurement(or.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId);const r=this.performanceClient?.startMeasurement(or.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId);this.logger.verbose("RefreshTokenClientAcquireTokenWithCachedRefreshToken called",e.correlationId);const o=this.cacheManager.getRefreshToken(e.account,t);if(!o)throw r?.discard(),Zt.createNoTokensFoundError();r?.end({success:!0});const n={...e,refreshToken:o.secret,authenticationScheme:e.authenticationScheme||qe.BEARER,ccsCredential:{credential:e.account.homeAccountId,type:Ft}};return this.performanceClient?.setPreQueueTime(or.RefreshTokenClientAcquireToken,e.correlationId),this.acquireToken(n)}async executeTokenRequest(e,t){this.performanceClient?.addQueueMeasurement(or.RefreshTokenClientExecuteTokenRequest,e.correlationId);const r=this.performanceClient?.startMeasurement(or.RefreshTokenClientExecuteTokenRequest,e.correlationId);this.performanceClient?.setPreQueueTime(or.RefreshTokenClientCreateTokenRequestBody,e.correlationId);const o=this.createTokenQueryParameters(e),n=rr.appendQueryString(t.tokenEndpoint,o),i=await this.createTokenRequestBody(e),a=this.createTokenRequestHeaders(e.ccsCredential),s={clientId:this.config.authOptions.clientId,authority:t.canonicalAuthority,scopes:e.scopes,claims:e.claims,authenticationScheme:e.authenticationScheme,resourceRequestMethod:e.resourceRequestMethod,resourceRequestUri:e.resourceRequestUri,shrClaims:e.shrClaims,sshKid:e.sshKid};return this.executePostToTokenEndpoint(n,i,a,s).then((e=>(r?.end({success:!0}),e))).catch((e=>{throw r?.end({success:!1}),e}))}async createTokenRequestBody(e){this.performanceClient?.addQueueMeasurement(or.RefreshTokenClientCreateTokenRequestBody,e.correlationId);const t=e.correlationId,r=this.performanceClient?.startMeasurement(or.BaseClientCreateTokenRequestHeaders,t),o=new Gt;if(o.addClientId(this.config.authOptions.clientId),o.addScopes(e.scopes,!0,this.config.authOptions.authority.options.OIDCOptions?.defaultScopes),o.addGrantType(me),o.addClientInfo(),o.addLibraryInfo(this.config.libraryInfo),o.addApplicationTelemetry(this.config.telemetry.application),o.addThrottling(),this.serverTelemetryManager&&!Ht(this.config)&&o.addServerTelemetry(this.serverTelemetryManager),o.addCorrelationId(t),o.addRefreshToken(e.refreshToken),this.config.clientCredentials.clientSecret&&o.addClientSecret(this.config.clientCredentials.clientSecret),this.config.clientCredentials.clientAssertion){const e=this.config.clientCredentials.clientAssertion;o.addClientAssertion(e.assertion),o.addClientAssertionType(e.assertionType)}if(e.authenticationScheme===qe.POP){const t=new cr(this.cryptoUtils,this.performanceClient);this.performanceClient?.setPreQueueTime(or.PopTokenGenerateCnf,e.correlationId);const r=await t.generateCnf(e);o.addPopToken(r.reqCnfString)}else if(e.authenticationScheme===qe.SSH){if(!e.sshJwk)throw r?.end({success:!1}),mt.createMissingSshJwkError();o.addSshJwk(e.sshJwk)}if((!ct.isEmptyObj(e.claims)||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&o.addClaims(e.claims,this.config.authOptions.clientCapabilities),this.config.systemOptions.preventCorsPreflight&&e.ccsCredential)switch(e.ccsCredential.type){case Ft:try{const t=Ct(e.ccsCredential.credential);o.addCcsOid(t)}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case Bt:o.addCcsUpn(e.ccsCredential.credential)}return r?.end({success:!0}),o.createQueryString()}}
41
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class pr extends $t{constructor(e,t){super(e,t)}async acquireToken(e){try{return await this.acquireCachedToken(e)}catch(t){if(t instanceof st&&t.errorCode===at.tokenRefreshRequired.code){return new gr(this.config,this.performanceClient).acquireTokenByRefreshToken(e)}throw t}}async acquireCachedToken(e){if(!e)throw mt.createEmptyTokenRequestError();if(e.forceRefresh)throw this.serverTelemetryManager?.setCacheOutcome(Xe),this.logger.info("SilentFlowClient:acquireCachedToken - Skipping cache because forceRefresh is true."),st.createRefreshRequiredError();if(!this.config.cacheOptions.claimsBasedCachingEnabled&&!ct.isEmptyObj(e.claims))throw this.logger.info("SilentFlowClient:acquireCachedToken - Skipping cache because claims-based caching is disabled and claims were requested."),st.createRefreshRequiredError();if(!e.account)throw st.createNoAccountInSilentRequestError();const t=e.authority||this.authority.getPreferredCache(),r=this.cacheManager.readCacheRecord(e.account,e,t);if(!r.accessToken)throw this.serverTelemetryManager?.setCacheOutcome(Ze),this.logger.info("SilentFlowClient:acquireCachedToken - No access token found in cache for the given properties."),st.createRefreshRequiredError();if(jt.wasClockTurnedBack(r.accessToken.cachedAt)||jt.isTokenExpired(r.accessToken.expiresOn,this.config.systemOptions.tokenRenewalOffsetSeconds))throw this.serverTelemetryManager?.setCacheOutcome(et),this.logger.info(`SilentFlowClient:acquireCachedToken - Cached access token is expired or will expire within ${this.config.systemOptions.tokenRenewalOffsetSeconds} seconds.`),st.createRefreshRequiredError();if(r.accessToken.refreshOn&&jt.isTokenExpired(r.accessToken.refreshOn,0))throw this.serverTelemetryManager?.setCacheOutcome(tt),this.logger.info("SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'."),st.createRefreshRequiredError();return this.config.serverTelemetryManager&&this.config.serverTelemetryManager.incrementCacheHits(),await this.generateResultFromCacheRecord(r,e)}async generateResultFromCacheRecord(e,t){let r;if(e.idToken&&(r=new kt(e.idToken.secret,this.config.cryptoInterface)),t.maxAge||0===t.maxAge){const e=r?.claims.auth_time;if(!e)throw st.createAuthTimeNotFoundError();kt.checkMaxAge(e,t.maxAge)}return await hr.generateAuthenticationResult(this.cryptoUtils,this.authority,e,!0,t,r)}}
42
+ /*! @azure/msal-common v14.0.1 2023-08-11 */
43
+ /*! @azure/msal-common v14.0.1 2023-08-11 */
44
+ const mr={"https://login.microsoftonline.com/common/":{token_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.com/common/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.com/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.com/common/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.com",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pas.windows.net"},"https://login.chinacloudapi.cn/common/":{token_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.chinacloudapi.cn/common/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.partner.microsoftonline.cn/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo",authorization_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.chinacloudapi.cn/common/kerberos",tenant_region_scope:null,cloud_instance_name:"partner.microsoftonline.cn",cloud_graph_host_name:"graph.chinacloudapi.cn",msgraph_host:"microsoftgraph.chinacloudapi.cn",rbac_url:"https://pas.chinacloudapi.cn"},"https://login.microsoftonline.us/common/":{token_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.us/common/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.us/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.us/common/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.us",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pasff.usgovcloudapi.net"},"https://login.microsoftonline.com/consumers/":{token_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.com/consumers/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.com/consumers/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.com",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pas.windows.net"},"https://login.chinacloudapi.cn/consumers/":{token_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.chinacloudapi.cn/consumers/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.partner.microsoftonline.cn/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo",authorization_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.chinacloudapi.cn/consumers/kerberos",tenant_region_scope:null,cloud_instance_name:"partner.microsoftonline.cn",cloud_graph_host_name:"graph.chinacloudapi.cn",msgraph_host:"microsoftgraph.chinacloudapi.cn",rbac_url:"https://pas.chinacloudapi.cn"},"https://login.microsoftonline.us/consumers/":{token_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.us/consumers/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.us/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.us/consumers/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.us",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pasff.usgovcloudapi.net"},"https://login.microsoftonline.com/organizations/":{token_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.com/organizations/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.com/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.com/organizations/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.com",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pas.windows.net"},"https://login.chinacloudapi.cn/organizations/":{token_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.chinacloudapi.cn/organizations/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.partner.microsoftonline.cn/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo",authorization_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.chinacloudapi.cn/organizations/kerberos",tenant_region_scope:null,cloud_instance_name:"partner.microsoftonline.cn",cloud_graph_host_name:"graph.chinacloudapi.cn",msgraph_host:"microsoftgraph.chinacloudapi.cn",rbac_url:"https://pas.chinacloudapi.cn"},"https://login.microsoftonline.us/organizations/":{token_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.us/organizations/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.us/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.us/organizations/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.us",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pasff.usgovcloudapi.net"}},fr={"https://login.microsoftonline.com/common/":{tenant_discovery_endpoint:"https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.chinacloudapi.cn/common/":{tenant_discovery_endpoint:"https://login.chinacloudapi.cn/common/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.us/common/":{tenant_discovery_endpoint:"https://login.microsoftonline.us/common/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.com/consumers/":{tenant_discovery_endpoint:"https://login.microsoftonline.com/consumers/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.chinacloudapi.cn/consumers/":{tenant_discovery_endpoint:"https://login.chinacloudapi.cn/consumers/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.us/consumers/":{tenant_discovery_endpoint:"https://login.microsoftonline.us/consumers/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.com/organizations/":{tenant_discovery_endpoint:"https://login.microsoftonline.com/organizations/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.chinacloudapi.cn/organizations/":{tenant_discovery_endpoint:"https://login.chinacloudapi.cn/organizations/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.us/organizations/":{tenant_discovery_endpoint:"https://login.microsoftonline.us/organizations/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]}},yr=new Set;for(const e in fr)for(const t of fr[e].metadata)for(const e of t.aliases)yr.add(e);
45
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class Cr{constructor(){this.expiresAt=jt.nowSeconds()+be}updateCloudDiscoveryMetadata(e,t){this.aliases=e.aliases,this.preferred_cache=e.preferred_cache,this.preferred_network=e.preferred_network,this.aliasesFromNetwork=t}updateEndpointMetadata(e,t){this.authorization_endpoint=e.authorization_endpoint,this.token_endpoint=e.token_endpoint,this.end_session_endpoint=e.end_session_endpoint,this.issuer=e.issuer,this.endpointsFromNetwork=t,this.jwks_uri=e.jwks_uri}updateCanonicalAuthority(e){this.canonical_authority=e}resetExpiresAt(){this.expiresAt=jt.nowSeconds()+be}isExpired(){return this.expiresAt<=jt.nowSeconds()}static isAuthorityMetadataEntity(e,t){return!!t&&(0===e.indexOf(Ae)&&t.hasOwnProperty("aliases")&&t.hasOwnProperty("preferred_cache")&&t.hasOwnProperty("preferred_network")&&t.hasOwnProperty("canonical_authority")&&t.hasOwnProperty("authorization_endpoint")&&t.hasOwnProperty("token_endpoint")&&t.hasOwnProperty("issuer")&&t.hasOwnProperty("aliasesFromNetwork")&&t.hasOwnProperty("endpointsFromNetwork")&&t.hasOwnProperty("expiresAt")&&t.hasOwnProperty("jwks_uri"))}}
46
+ /*! @azure/msal-common v14.0.1 2023-08-11 */
47
+ /*! @azure/msal-common v14.0.1 2023-08-11 */
48
+ class vr{constructor(e,t,r){this.networkInterface=e,this.performanceClient=t,this.correlationId=r}async detectRegion(e,r){this.performanceClient?.addQueueMeasurement(or.RegionDiscoveryDetectRegion,this.correlationId);let o=e;if(o)r.region_source=Qe;else{const e=vr.IMDS_OPTIONS;try{this.performanceClient?.setPreQueueTime(or.RegionDiscoveryGetRegionFromIMDS,this.correlationId);const n=await this.getRegionFromIMDS(t.IMDS_VERSION,e);if(n.status===Ge&&(o=n.body,r.region_source=je),n.status===$e){this.performanceClient?.setPreQueueTime(or.RegionDiscoveryGetCurrentVersion,this.correlationId);const t=await this.getCurrentVersion(e);if(!t)return r.region_source=ze,null;this.performanceClient?.setPreQueueTime(or.RegionDiscoveryGetRegionFromIMDS,this.correlationId);const n=await this.getRegionFromIMDS(t,e);n.status===Ge&&(o=n.body,r.region_source=je)}}catch(e){return r.region_source=ze,null}}return o||(r.region_source=ze),o||null}async getRegionFromIMDS(e,r){return this.performanceClient?.addQueueMeasurement(or.RegionDiscoveryGetRegionFromIMDS,this.correlationId),this.networkInterface.sendGetRequestAsync(`${t.IMDS_ENDPOINT}?api-version=${e}&format=text`,r,t.IMDS_TIMEOUT)}async getCurrentVersion(e){this.performanceClient?.addQueueMeasurement(or.RegionDiscoveryGetCurrentVersion,this.correlationId);try{const r=await this.networkInterface.sendGetRequestAsync(`${t.IMDS_ENDPOINT}?format=json`,e);return r.status===$e&&r.body&&r.body["newest-versions"]&&r.body["newest-versions"].length>0?r.body["newest-versions"][0]:null}catch(e){return null}}}vr.IMDS_OPTIONS={headers:{Metadata:"true"}};
49
+ /*! @azure/msal-common v14.0.1 2023-08-11 */
50
+ class wr{constructor(e,t,r,o,n,i,a){this.canonicalAuthority=e,this._canonicalAuthority.validateAsUri(),this.networkInterface=t,this.cacheManager=r,this.authorityOptions=o,this.regionDiscoveryMetadata={region_used:void 0,region_source:void 0,region_outcome:void 0},this.logger=n,this.performanceClient=i,this.correlationId=a,this.regionDiscovery=new vr(t,this.performanceClient,this.correlationId)}getAuthorityType(e){if(e.HostNameAndPort.endsWith(t.CIAM_AUTH_URL))return It;const r=e.PathSegments;if(r.length)switch(r[0].toLowerCase()){case t.ADFS:return wt;case t.DSTS:return Tt}return vt}get authorityType(){return this.getAuthorityType(this.canonicalAuthorityUrlComponents)}get protocolMode(){return this.authorityOptions.protocolMode}get options(){return this.authorityOptions}get canonicalAuthority(){return this._canonicalAuthority.urlString}set canonicalAuthority(e){this._canonicalAuthority=new rr(e),this._canonicalAuthority.validateAsUri(),this._canonicalAuthorityUrlComponents=null}get canonicalAuthorityUrlComponents(){return this._canonicalAuthorityUrlComponents||(this._canonicalAuthorityUrlComponents=this._canonicalAuthority.getUrlComponents()),this._canonicalAuthorityUrlComponents}get hostnameAndPort(){return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase()}get tenant(){return this.canonicalAuthorityUrlComponents.PathSegments[0]}get authorizationEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.authorization_endpoint);throw st.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get tokenEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint);throw st.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get deviceCodeEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint.replace("/token","/devicecode"));throw st.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get endSessionEndpoint(){if(this.discoveryComplete()){if(!this.metadata.end_session_endpoint)throw st.createLogoutNotSupportedError();return this.replacePath(this.metadata.end_session_endpoint)}throw st.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get selfSignedJwtAudience(){if(this.discoveryComplete())return this.replacePath(this.metadata.issuer);throw st.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get jwksUri(){if(this.discoveryComplete())return this.replacePath(this.metadata.jwks_uri);throw st.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}canReplaceTenant(e){return 1===e.PathSegments.length&&!wr.reservedTenantDomains.has(e.PathSegments[0])&&this.getAuthorityType(e)===vt&&this.protocolMode===Et.AAD}replaceTenant(e){return e.replace(/{tenant}|{tenantid}/g,this.tenant)}replacePath(e){let t=e;const r=new rr(this.metadata.canonical_authority).getUrlComponents(),o=r.PathSegments;return this.canonicalAuthorityUrlComponents.PathSegments.forEach(((e,n)=>{let i=o[n];if(0===n&&this.canReplaceTenant(r)){const e=new rr(this.metadata.authorization_endpoint).getUrlComponents().PathSegments[0];i!==e&&(this.logger.verbose(`Replacing tenant domain name ${i} with id ${e}`),i=e)}e!==i&&(t=t.replace(`/${i}/`,`/${e}/`))})),this.replaceTenant(t)}get defaultOpenIdConfigurationEndpoint(){const e=this.hostnameAndPort;return this.authorityType!==wt&&this.isAliasOfKnownMicrosoftAuthority(e)?`${this.canonicalAuthority}v2.0/.well-known/openid-configuration`:`${this.canonicalAuthority}.well-known/openid-configuration`}discoveryComplete(){return!!this.metadata}async resolveEndpointsAsync(){this.performanceClient?.addQueueMeasurement(or.AuthorityResolveEndpointsAsync,this.correlationId);let e=this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);e||(e=new Cr,e.updateCanonicalAuthority(this.canonicalAuthority)),this.performanceClient?.setPreQueueTime(or.AuthorityUpdateCloudDiscoveryMetadata,this.correlationId);const t=await this.updateCloudDiscoveryMetadata(e);this.canonicalAuthority=this.canonicalAuthority.replace(this.hostnameAndPort,e.preferred_network),this.performanceClient?.setPreQueueTime(or.AuthorityUpdateEndpointMetadata,this.correlationId);const r=await this.updateEndpointMetadata(e);t!==Pe&&r!==Pe&&(e.resetExpiresAt(),e.updateCanonicalAuthority(this.canonicalAuthority));const o=this.cacheManager.generateAuthorityMetadataCacheKey(e.preferred_cache);this.cacheManager.setAuthorityMetadata(o,e),this.metadata=e}async updateEndpointMetadata(e){this.performanceClient?.addQueueMeasurement(or.AuthorityUpdateEndpointMetadata,this.correlationId),this.logger.verbose("Attempting to get endpoint metadata from authority configuration");let t=this.getEndpointMetadataFromConfig();if(t)return this.logger.verbose("Found endpoint metadata in authority configuration"),e.updateEndpointMetadata(t,!1),Re;if(this.logger.verbose("Did not find endpoint metadata in the config... Attempting to get endpoint metadata from the hardcoded values."),this.authorityOptions.skipAuthorityMetadataCache)this.logger.verbose("Skipping hardcoded metadata cache since skipAuthorityMetadataCache is set to true. Attempting to get endpoint metadata from the network metadata cache.");else{let t=this.getEndpointMetadataFromHardcodedValues();if(t)return this.logger.verbose("Found endpoint metadata from hardcoded values."),this.authorityOptions.azureRegionConfiguration?.azureRegion&&(this.performanceClient?.setPreQueueTime(or.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId),this.logger.verbose("Found azure region configuration. Updating endpoints with regional information."),t=await this.updateMetadataWithRegionalInformation(t)),e.updateEndpointMetadata(t,!1),Ne;this.logger.verbose("Did not find endpoint metadata in hardcoded values... Attempting to get endpoint metadata from the network metadata cache.")}const r=e.isExpired();if(this.isAuthoritySameType(e)&&e.endpointsFromNetwork&&!r)return this.logger.verbose("Found endpoint metadata in the cache."),Pe;if(r&&this.logger.verbose("The metadata entity is expired."),this.logger.verbose("Did not find cached endpoint metadata... Attempting to get endpoint metadata from the network."),this.performanceClient?.setPreQueueTime(or.AuthorityGetEndpointMetadataFromNetwork,this.correlationId),t=await this.getEndpointMetadataFromNetwork(),t)return this.logger.verbose("Endpoint metadata was successfully returned from getEndpointMetadataFromNetwork()"),this.authorityOptions.azureRegionConfiguration?.azureRegion&&(this.performanceClient?.setPreQueueTime(or.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId),this.logger.verbose("Found azure region configuration. Updating endpoints with regional information."),t=await this.updateMetadataWithRegionalInformation(t)),e.updateEndpointMetadata(t,!0),Me;throw this.logger.error("Did not find endpoint metadata from network... Metadata could not be obtained from config, cache, network or hardcoded values. Throwing Untrusted Authority Error."),st.createUnableToGetOpenidConfigError(this.defaultOpenIdConfigurationEndpoint)}isAuthoritySameType(e){return new rr(e.canonical_authority).getUrlComponents().PathSegments.length===this.canonicalAuthorityUrlComponents.PathSegments.length}getEndpointMetadataFromConfig(){if(this.authorityOptions.authorityMetadata)try{return JSON.parse(this.authorityOptions.authorityMetadata)}catch(e){throw mt.createInvalidAuthorityMetadataError()}return null}async getEndpointMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(or.AuthorityGetEndpointMetadataFromNetwork,this.correlationId);const e=this.performanceClient?.startMeasurement(or.AuthorityGetEndpointMetadataFromNetwork,this.correlationId),t={},r=this.defaultOpenIdConfigurationEndpoint;this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: attempting to retrieve OAuth endpoints from ${r}`);try{const o=await this.networkInterface.sendGetRequestAsync(r,t),n=function(e){return e.hasOwnProperty("authorization_endpoint")&&e.hasOwnProperty("token_endpoint")&&e.hasOwnProperty("issuer")&&e.hasOwnProperty("jwks_uri")}(o.body);return n?(e?.end({success:!0}),o.body):(e?.end({success:!1,errorCode:"invalid_response"}),this.logger.verbose("Authority.getEndpointMetadataFromNetwork: could not parse response as OpenID configuration"),null)}catch(t){return e?.end({success:!1,errorCode:"request_failure"}),this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: ${t}`),null}}getEndpointMetadataFromHardcodedValues(){return this.canonicalAuthority in mr?mr[this.canonicalAuthority]:null}async updateMetadataWithRegionalInformation(e){this.performanceClient?.addQueueMeasurement(or.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId);const r=this.authorityOptions.azureRegionConfiguration?.azureRegion;if(r){if(r!==t.AZURE_REGION_AUTO_DISCOVER_FLAG)return this.regionDiscoveryMetadata.region_outcome=Ye,this.regionDiscoveryMetadata.region_used=r,wr.replaceWithRegionalInformation(e,r);this.performanceClient?.setPreQueueTime(or.RegionDiscoveryDetectRegion,this.correlationId);const o=await this.regionDiscovery.detectRegion(this.authorityOptions.azureRegionConfiguration?.environmentRegion,this.regionDiscoveryMetadata);if(o)return this.regionDiscoveryMetadata.region_outcome=We,this.regionDiscoveryMetadata.region_used=o,wr.replaceWithRegionalInformation(e,o);this.regionDiscoveryMetadata.region_outcome=Ve}return e}async updateCloudDiscoveryMetadata(e){this.performanceClient?.addQueueMeasurement(or.AuthorityUpdateCloudDiscoveryMetadata,this.correlationId),this.logger.verbose("Attempting to get cloud discovery metadata from authority configuration"),this.logger.verbosePii(`Known Authorities: ${this.authorityOptions.knownAuthorities||t.NOT_APPLICABLE}`),this.logger.verbosePii(`Authority Metadata: ${this.authorityOptions.authorityMetadata||t.NOT_APPLICABLE}`),this.logger.verbosePii(`Canonical Authority: ${e.canonical_authority||t.NOT_APPLICABLE}`);let r=this.getCloudDiscoveryMetadataFromConfig();if(r)return this.logger.verbose("Found cloud discovery metadata in authority configuration"),e.updateCloudDiscoveryMetadata(r,!1),Re;if(this.logger.verbose("Did not find cloud discovery metadata in the config... Attempting to get cloud discovery metadata from the hardcoded values."),this.options.skipAuthorityMetadataCache)this.logger.verbose("Skipping hardcoded cloud discovery metadata cache since skipAuthorityMetadataCache is set to true. Attempting to get cloud discovery metadata from the network metadata cache.");else{const t=this.getCloudDiscoveryMetadataFromHardcodedValues();if(t)return this.logger.verbose("Found cloud discovery metadata from hardcoded values."),e.updateCloudDiscoveryMetadata(t,!1),Ne;this.logger.verbose("Did not find cloud discovery metadata in hardcoded values... Attempting to get cloud discovery metadata from the network metadata cache.")}const o=e.isExpired();if(this.isAuthoritySameType(e)&&e.aliasesFromNetwork&&!o)return this.logger.verbose("Found cloud discovery metadata in the cache."),Pe;if(o&&this.logger.verbose("The metadata entity is expired."),this.logger.verbose("Did not find cloud discovery metadata in the cache... Attempting to get cloud discovery metadata from the network."),this.performanceClient?.setPreQueueTime(or.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.correlationId),r=await this.getCloudDiscoveryMetadataFromNetwork(),r)return this.logger.verbose("cloud discovery metadata was successfully returned from getCloudDiscoveryMetadataFromNetwork()"),e.updateCloudDiscoveryMetadata(r,!0),Me;throw this.logger.error("Did not find cloud discovery metadata from network... Metadata could not be obtained from config, cache, network or hardcoded values. Throwing Untrusted Authority Error."),mt.createUntrustedAuthorityError()}getCloudDiscoveryMetadataFromConfig(){if(this.authorityType===It)return this.logger.verbose("CIAM authorities do not support cloud discovery metadata, generate the aliases from authority host."),wr.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);if(this.authorityOptions.cloudDiscoveryMetadata){this.logger.verbose("The cloud discovery metadata has been provided as a network response, in the config.");try{this.logger.verbose("Attempting to parse the cloud discovery metadata.");const e=JSON.parse(this.authorityOptions.cloudDiscoveryMetadata),t=wr.getCloudDiscoveryMetadataFromNetworkResponse(e.metadata,this.hostnameAndPort);if(this.logger.verbose("Parsed the cloud discovery metadata."),t)return this.logger.verbose("There is returnable metadata attached to the parsed cloud discovery metadata."),t;this.logger.verbose("There is no metadata attached to the parsed cloud discovery metadata.")}catch(e){throw this.logger.verbose("Unable to parse the cloud discovery metadata. Throwing Invalid Cloud Discovery Metadata Error."),mt.createInvalidCloudDiscoveryMetadataError()}}return this.isInKnownAuthorities()?(this.logger.verbose("The host is included in knownAuthorities. Creating new cloud discovery metadata from the host."),wr.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)):null}async getCloudDiscoveryMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(or.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.correlationId);const e=`${t.AAD_INSTANCE_DISCOVERY_ENDPT}${this.canonicalAuthority}oauth2/v2.0/authorize`,r={};let o=null;try{const n=await this.networkInterface.sendGetRequestAsync(e,r);let i,a;if(function(e){return e.hasOwnProperty("tenant_discovery_endpoint")&&e.hasOwnProperty("metadata")}
51
+ /*! @azure/msal-common v14.0.1 2023-08-11 */(n.body))i=n.body,a=i.metadata,this.logger.verbosePii(`tenant_discovery_endpoint is: ${i.tenant_discovery_endpoint}`);else{if(!function(e){return e.hasOwnProperty("error")&&e.hasOwnProperty("error_description")}(n.body))return this.logger.error("AAD did not return a CloudInstanceDiscoveryResponse or CloudInstanceDiscoveryErrorResponse"),null;if(this.logger.warning(`A CloudInstanceDiscoveryErrorResponse was returned. The cloud instance discovery network request's status code is: ${n.status}`),i=n.body,i.error===t.INVALID_INSTANCE)return this.logger.error("The CloudInstanceDiscoveryErrorResponse error is invalid_instance."),null;this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error is ${i.error}`),this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error description is ${i.error_description}`),this.logger.warning("Setting the value of the CloudInstanceDiscoveryMetadata (returned from the network) to []"),a=[]}this.logger.verbose("Attempting to find a match between the developer's authority and the CloudInstanceDiscoveryMetadata returned from the network request."),o=wr.getCloudDiscoveryMetadataFromNetworkResponse(a,this.hostnameAndPort)}catch(e){if(e instanceof nt)this.logger.error(`There was a network error while attempting to get the cloud discovery instance metadata.\nError: ${e.errorCode}\nError Description: ${e.errorMessage}`);else{const t=e;this.logger.error(`A non-MSALJS error was thrown while attempting to get the cloud instance discovery metadata.\nError: ${t.name}\nError Description: ${t.message}`)}return null}return o||(this.logger.warning("The developer's authority was not found within the CloudInstanceDiscoveryMetadata returned from the network request."),this.logger.verbose("Creating custom Authority for custom domain scenario."),o=wr.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)),o}getCloudDiscoveryMetadataFromHardcodedValues(){if(this.canonicalAuthority in fr){const e=fr[this.canonicalAuthority];return wr.getCloudDiscoveryMetadataFromNetworkResponse(e.metadata,this.hostnameAndPort)}return null}isInKnownAuthorities(){return this.authorityOptions.knownAuthorities.filter((e=>rr.getDomainFromUrl(e).toLowerCase()===this.hostnameAndPort)).length>0}static generateAuthority(e,r){let o;if(r&&r.azureCloudInstance!==gt.None){const e=r.tenant?r.tenant:t.DEFAULT_COMMON_TENANT;o=`${r.azureCloudInstance}/${e}/`}return o||e}static createCloudDiscoveryMetadataFromHost(e){return{preferred_network:e,preferred_cache:e,aliases:[e]}}static getCloudDiscoveryMetadataFromNetworkResponse(e,t){for(let r=0;r<e.length;r++){const o=e[r];if(o.aliases.indexOf(t)>-1)return o}return null}getPreferredCache(){if(this.discoveryComplete())return this.metadata.preferred_cache;throw st.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}isAlias(e){return this.metadata.aliases.indexOf(e)>-1}isAliasOfKnownMicrosoftAuthority(e){return yr.has(e)}static isPublicCloudAuthority(e){return t.KNOWN_PUBLIC_CLOUDS.indexOf(e)>=0}static buildRegionalAuthorityString(e,r,o){const n=new rr(e);n.validateAsUri();const i=n.getUrlComponents();let a=`${r}.${i.HostNameAndPort}`;this.isPublicCloudAuthority(i.HostNameAndPort)&&(a=`${r}.${t.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX}`);const s=rr.constructAuthorityUriFromObject({...n.getUrlComponents(),HostNameAndPort:a}).urlString;return o?`${s}?${o}`:s}static replaceWithRegionalInformation(e,r){const o={...e};return o.authorization_endpoint=wr.buildRegionalAuthorityString(o.authorization_endpoint,r),o.token_endpoint=wr.buildRegionalAuthorityString(o.token_endpoint,r,t.REGIONAL_AUTH_NON_MSI_QUERY_STRING),o.end_session_endpoint&&(o.end_session_endpoint=wr.buildRegionalAuthorityString(o.end_session_endpoint,r)),o}static transformCIAMAuthority(e){let r=e.endsWith(t.FORWARD_SLASH)?e:`${e}${t.FORWARD_SLASH}`;const o=new rr(e).getUrlComponents();if(0===o.PathSegments.length&&o.HostNameAndPort.endsWith(t.CIAM_AUTH_URL)){r=`${r}${o.HostNameAndPort.split(".")[0]}${t.AAD_TENANT_DOMAIN_SUFFIX}`}return r}}wr.reservedTenantDomains=new Set(["{tenant}","{tenantid}",C,w,v]);
52
+ /*! @azure/msal-common v14.0.1 2023-08-11 */
53
+ class Tr{static async createDiscoveredInstance(e,t,r,o,n,i,a){i?.addQueueMeasurement(or.AuthorityFactoryCreateDiscoveredInstance,a);const s=wr.transformCIAMAuthority(e),c=Tr.createInstance(s,t,r,o,n,i,a);try{return i?.setPreQueueTime(or.AuthorityResolveEndpointsAsync,a),await c.resolveEndpointsAsync(),c}catch(e){throw st.createEndpointDiscoveryIncompleteError(e)}}static createInstance(e,t,r,o,n,i,a){if(ct.isEmpty(e))throw mt.createUrlEmptyError();return new wr(e,t,r,o,n,i,a)}}
54
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class Ir{constructor(){this.failedRequests=[],this.errors=[],this.cacheHits=0}static isServerTelemetryEntity(e,t){const r=0===e.indexOf(Oe.CACHE_KEY);let o=!0;return t&&(o=t.hasOwnProperty("failedRequests")&&t.hasOwnProperty("errors")&&t.hasOwnProperty("cacheHits")),r&&o}}
55
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class Er{static isThrottlingEntity(e,t){let r=!1;e&&(r=0===e.indexOf(Le));let o=!0;return t&&(o=t.hasOwnProperty("throttleTime")),r&&o}}
56
+ /*! @azure/msal-common v14.0.1 2023-08-11 */const _r={sendGetRequestAsync:()=>Promise.reject(nt.createUnexpectedError("Network interface - sendGetRequestAsync() has not been implemented for the Network interface.")),sendPostRequestAsync:()=>Promise.reject(nt.createUnexpectedError("Network interface - sendPostRequestAsync() has not been implemented for the Network interface."))},kr={code:"missing_kid_error",desc:"The JOSE Header for the requested JWT, JWS or JWK object requires a keyId to be configured as the 'kid' header claim. No 'kid' value was provided."},Sr={code:"missing_alg_error",desc:"The JOSE Header for the requested JWT, JWS or JWK object requires an algorithm to be specified as the 'alg' header claim. No 'alg' value was provided."};
57
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class Ar extends nt{constructor(e,t){super(e,t),this.name="JoseHeaderError",Object.setPrototypeOf(this,Ar.prototype)}static createMissingKidError(){return new Ar(kr.code,kr.desc)}static createMissingAlgError(){return new Ar(Sr.code,Sr.desc)}}
58
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class br{constructor(e){this.typ=e.typ,this.alg=e.alg,this.kid=e.kid}static getShrHeaderString(e){if(!e.kid)throw Ar.createMissingKidError();if(!e.alg)throw Ar.createMissingAlgError();const t=new br({typ:e.typ||rt,kid:e.kid,alg:e.alg});return JSON.stringify(t)}}
59
+ /*! @azure/msal-common v14.0.1 2023-08-11 */
60
+ /*! @azure/msal-common v14.0.1 2023-08-11 */
61
+ class Rr{constructor(e,r){this.cacheOutcome=Je,this.cacheManager=r,this.apiId=e.apiId,this.correlationId=e.correlationId,this.wrapperSKU=e.wrapperSKU||t.EMPTY_STRING,this.wrapperVer=e.wrapperVer||t.EMPTY_STRING,this.telemetryCacheKey=Oe.CACHE_KEY+ve+e.clientId}generateCurrentRequestHeaderValue(){const e=`${this.apiId}${Oe.VALUE_SEPARATOR}${this.cacheOutcome}`,t=[this.wrapperSKU,this.wrapperVer].join(Oe.VALUE_SEPARATOR),r=[e,this.getRegionDiscoveryFields()].join(Oe.VALUE_SEPARATOR);return[Oe.SCHEMA_VERSION,r,t].join(Oe.CATEGORY_SEPARATOR)}generateLastRequestHeaderValue(){const e=this.getLastRequests(),t=Rr.maxErrorsToSend(e),r=e.failedRequests.slice(0,2*t).join(Oe.VALUE_SEPARATOR),o=e.errors.slice(0,t).join(Oe.VALUE_SEPARATOR),n=e.errors.length,i=[n,t<n?Oe.OVERFLOW_TRUE:Oe.OVERFLOW_FALSE].join(Oe.VALUE_SEPARATOR);return[Oe.SCHEMA_VERSION,e.cacheHits,r,o,i].join(Oe.CATEGORY_SEPARATOR)}cacheFailedRequest(e){const t=this.getLastRequests();t.errors.length>=Oe.MAX_CACHED_ERRORS&&(t.failedRequests.shift(),t.failedRequests.shift(),t.errors.shift()),t.failedRequests.push(this.apiId,this.correlationId),e instanceof Error&&e&&e.toString()?e instanceof nt?ct.isEmpty(e.subError)?ct.isEmpty(e.errorCode)?t.errors.push(e.toString()):t.errors.push(e.errorCode):t.errors.push(e.subError):t.errors.push(e.toString()):t.errors.push(Oe.UNKNOWN_ERROR),this.cacheManager.setServerTelemetry(this.telemetryCacheKey,t)}incrementCacheHits(){const e=this.getLastRequests();return e.cacheHits+=1,this.cacheManager.setServerTelemetry(this.telemetryCacheKey,e),e.cacheHits}getLastRequests(){const e=new Ir;return this.cacheManager.getServerTelemetry(this.telemetryCacheKey)||e}clearTelemetryCache(){const e=this.getLastRequests(),t=Rr.maxErrorsToSend(e);if(t===e.errors.length)this.cacheManager.removeItem(this.telemetryCacheKey);else{const r=new Ir;r.failedRequests=e.failedRequests.slice(2*t),r.errors=e.errors.slice(t),this.cacheManager.setServerTelemetry(this.telemetryCacheKey,r)}}static maxErrorsToSend(e){let r,o=0,n=0;const i=e.errors.length;for(r=0;r<i;r++){const i=e.failedRequests[2*r]||t.EMPTY_STRING,a=e.failedRequests[2*r+1]||t.EMPTY_STRING,s=e.errors[r]||t.EMPTY_STRING;if(n+=i.toString().length+a.toString().length+s.length+3,!(n<Oe.MAX_LAST_HEADER_BYTES))break;o+=1}return o}getRegionDiscoveryFields(){const e=[];return e.push(this.regionUsed||t.EMPTY_STRING),e.push(this.regionSource||t.EMPTY_STRING),e.push(this.regionOutcome||t.EMPTY_STRING),e.join(",")}updateRegionDiscoveryMetadata(e){this.regionUsed=e.region_used,this.regionSource=e.region_source,this.regionOutcome=e.region_outcome}setCacheOutcome(e){this.cacheOutcome=e}}
62
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class Pr{constructor(e,t,r,o,n,i,a){this.authority=t,this.libraryName=o,this.libraryVersion=n,this.applicationTelemetry=i,this.clientId=e,this.logger=r,this.callbacks=new Map,this.eventsByCorrelationId=new Map,this.queueMeasurements=new Map,this.preQueueTimeByCorrelationId=new Map,this.intFields=a||new Set;for(const e of ar)this.intFields.add(e)}startPerformanceMeasurement(e,t){return{}}getPreQueueTime(e,t){const r=this.preQueueTimeByCorrelationId.get(t);if(r){if(r.name===e)return r.time;this.logger.trace(`PerformanceClient.getPreQueueTime: no pre-queue time found for ${e}, unable to add queue measurement`)}else this.logger.trace(`PerformanceClient.getPreQueueTime: no pre-queue times found for correlationId: ${t}, unable to add queue measurement`)}calculateQueuedTime(e,t){return e<1?(this.logger.trace(`PerformanceClient: preQueueTime should be a positive integer and not ${e}`),0):t<1?(this.logger.trace(`PerformanceClient: currentTime should be a positive integer and not ${t}`),0):t<e?(this.logger.trace("PerformanceClient: currentTime is less than preQueueTime, check how time is being retrieved"),0):t-e}addQueueMeasurement(e,t,r,o){if(!t)return void this.logger.trace(`PerformanceClient.addQueueMeasurement: correlationId not provided for ${e}, cannot add queue measurement`);if(0===r)this.logger.trace(`PerformanceClient.addQueueMeasurement: queue time provided for ${e} is ${r}`);else if(!r)return void this.logger.trace(`PerformanceClient.addQueueMeasurement: no queue time provided for ${e}`);const n={eventName:e,queueTime:r,manuallyCompleted:o},i=this.queueMeasurements.get(t);if(i)i.push(n),this.queueMeasurements.set(t,i);else{this.logger.trace(`PerformanceClient.addQueueMeasurement: adding correlationId ${t} to queue measurements`);const e=[n];this.queueMeasurements.set(t,e)}this.preQueueTimeByCorrelationId.delete(t)}startMeasurement(e,t){const r=t||this.generateId();t||this.logger.info(`PerformanceClient: No correlation id provided for ${e}, generating`,r),this.logger.trace(`PerformanceClient: Performance measurement started for ${e}`,r);const o=this.startPerformanceMeasurement(e,r);o.startMeasurement();const n={eventId:this.generateId(),status:nr,authority:this.authority,libraryName:this.libraryName,libraryVersion:this.libraryVersion,clientId:this.clientId,name:e,startTimeMs:Date.now(),correlationId:r,appName:this.applicationTelemetry?.appName,appVersion:this.applicationTelemetry?.appVersion};return this.cacheEventByCorrelationId(n),{end:e=>this.endMeasurement({...n,...e},o),discard:()=>this.discardMeasurements(n.correlationId),add:e=>this.addFields(e,n.correlationId),increment:e=>this.incrementFields(e,n.correlationId),measurement:o,event:n}}endMeasurement(e,t){const r=this.eventsByCorrelationId.get(e.correlationId);if(!r)return this.logger.trace(`PerformanceClient: Measurement not found for ${e.eventId}`,e.correlationId),null;const o=e.eventId===r.eventId;let n={totalQueueTime:0,totalQueueCount:0,manuallyCompletedCount:0};o?(n=this.getQueueInfo(e.correlationId),this.discardCache(r.correlationId)):r.incompleteSubMeasurements?.delete(e.eventId),t?.endMeasurement();const i=t?.flushMeasurement();if(!i)return this.logger.trace("PerformanceClient: Performance measurement not taken",r.correlationId),null;if(this.logger.trace(`PerformanceClient: Performance measurement ended for ${e.name}: ${i} ms`,e.correlationId),!o)return r[e.name+"DurationMs"]=Math.floor(i),{...r};let a={...r,...e},s=0;return a.incompleteSubMeasurements?.forEach((t=>{this.logger.trace(`PerformanceClient: Incomplete submeasurement ${t.name} found for ${e.name}`,a.correlationId),s++})),a.incompleteSubMeasurements=void 0,a={...a,durationMs:Math.round(i),queuedTimeMs:n.totalQueueTime,queuedCount:n.totalQueueCount,queuedManuallyCompletedCount:n.manuallyCompletedCount,status:ir,incompleteSubsCount:s},this.truncateIntegralFields(a),this.emitEvents([a],e.correlationId),a}addFields(e,t){this.logger.trace("PerformanceClient: Updating static fields");const r=this.eventsByCorrelationId.get(t);r?this.eventsByCorrelationId.set(t,{...r,...e}):this.logger.trace("PerformanceClient: Event not found for",t)}incrementFields(e,t){this.logger.trace("PerformanceClient: Updating counters");const r=this.eventsByCorrelationId.get(t);if(r)for(const t in e){if(r.hasOwnProperty(t)){if(isNaN(Number(r[t])))return}else r[t]=0;r[t]+=e[t]}else this.logger.trace("PerformanceClient: Event not found for",t)}cacheEventByCorrelationId(e){const t=this.eventsByCorrelationId.get(e.correlationId);t?(this.logger.trace(`PerformanceClient: Performance measurement for ${e.name} added/updated`,e.correlationId),t.incompleteSubMeasurements=t.incompleteSubMeasurements||new Map,t.incompleteSubMeasurements.set(e.eventId,{name:e.name,startTimeMs:e.startTimeMs})):(this.logger.trace(`PerformanceClient: Performance measurement for ${e.name} started`,e.correlationId),this.eventsByCorrelationId.set(e.correlationId,{...e}))}getQueueInfo(e){const t=this.queueMeasurements.get(e);t||this.logger.trace(`PerformanceClient: no queue measurements found for for correlationId: ${e}`);let r=0,o=0,n=0;return t?.forEach((e=>{r+=e.queueTime,o++,n+=e.manuallyCompleted?1:0})),{totalQueueTime:r,totalQueueCount:o,manuallyCompletedCount:n}}discardMeasurements(e){this.logger.trace("PerformanceClient: Performance measurements discarded",e),this.eventsByCorrelationId.delete(e)}discardCache(e){this.discardMeasurements(e),this.logger.trace("PerformanceClient: QueueMeasurements discarded",e),this.queueMeasurements.delete(e),this.logger.trace("PerformanceClient: Pre-queue times discarded",e),this.preQueueTimeByCorrelationId.delete(e)}addPerformanceCallback(e){const t=this.generateId();return this.callbacks.set(t,e),this.logger.verbose(`PerformanceClient: Performance callback registered with id: ${t}`),t}removePerformanceCallback(e){const t=this.callbacks.delete(e);return t?this.logger.verbose(`PerformanceClient: Performance callback ${e} removed.`):this.logger.verbose(`PerformanceClient: Performance callback ${e} not removed.`),t}emitEvents(e,t){this.logger.verbose("PerformanceClient: Emitting performance events",t),this.callbacks.forEach(((r,o)=>{this.logger.trace(`PerformanceClient: Emitting event to callback ${o}`,t),r.apply(null,[e])}))}truncateIntegralFields(e){this.intFields.forEach((t=>{t in e&&"number"==typeof e[t]&&(e[t]=Math.floor(e[t]))}))}}
63
+ /*! @azure/msal-common v14.0.1 2023-08-11 */class Mr{startMeasurement(){}endMeasurement(){}flushMeasurement(){return null}}class Nr extends Pr{generateId(){return"callback-id"}startPerformanceMeasurement(){return new Mr}calculateQueuedTime(){return 0}addQueueMeasurement(){}setPreQueueTime(){}endMeasurement(){return null}discardMeasurements(){}removePerformanceCallback(){return!0}addPerformanceCallback(){return""}emitEvents(){}addFields(){}incrementFields(){}cacheEventByCorrelationId(){}}const Or={pkceNotGenerated:{code:"pkce_not_created",desc:"The PKCE code challenge and verifier could not be generated."},cryptoDoesNotExist:{code:"crypto_nonexistent",desc:"The crypto object or function is not available."},httpMethodNotImplementedError:{code:"http_method_not_implemented",desc:"The HTTP method given has not been implemented in this library."},emptyNavigateUriError:{code:"empty_navigate_uri",desc:"Navigation URI is empty. Please check stack trace for more info."},hashEmptyError:{code:"hash_empty_error",desc:"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. For more visit: aka.ms/msaljs/browser-errors."},hashDoesNotContainStateError:{code:"no_state_in_hash",desc:"Hash does not contain state. Please verify that the request originated from msal."},hashDoesNotContainKnownPropertiesError:{code:"hash_does_not_contain_known_properties",desc:"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. For more visit: aka.ms/msaljs/browser-errors."},unableToParseStateError:{code:"unable_to_parse_state",desc:"Unable to parse state. Please verify that the request originated from msal."},stateInteractionTypeMismatchError:{code:"state_interaction_type_mismatch",desc:"Hash contains state but the interaction type does not match the caller."},interactionInProgress:{code:"interaction_in_progress",desc:"Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. For more visit: aka.ms/msaljs/browser-errors."},popupWindowError:{code:"popup_window_error",desc:"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser."},emptyWindowError:{code:"empty_window_error",desc:"window.open returned null or undefined window object."},userCancelledError:{code:"user_cancelled",desc:"User cancelled the flow."},monitorPopupTimeoutError:{code:"monitor_window_timeout",desc:"Token acquisition in popup failed due to timeout. For more visit: aka.ms/msaljs/browser-errors."},monitorIframeTimeoutError:{code:"monitor_window_timeout",desc:"Token acquisition in iframe failed due to timeout. For more visit: aka.ms/msaljs/browser-errors."},redirectInIframeError:{code:"redirect_in_iframe",desc:"Redirects are not supported for iframed or brokered applications. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs."},blockTokenRequestsInHiddenIframeError:{code:"block_iframe_reload",desc:"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors"},blockAcquireTokenInPopupsError:{code:"block_nested_popups",desc:"Request was blocked inside a popup because MSAL detected it was running in a popup."},iframeClosedPrematurelyError:{code:"iframe_closed_prematurely",desc:"The iframe being monitored was closed prematurely."},silentLogoutUnsupportedError:{code:"silent_logout_unsupported",desc:"Silent logout not supported. Please call logoutRedirect or logoutPopup instead."},noAccountError:{code:"no_account_error",desc:"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request."},silentPromptValueError:{code:"silent_prompt_value_error",desc:"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'."},noTokenRequestCacheError:{code:"no_token_request_cache_error",desc:"No token request found in cache."},unableToParseTokenRequestCacheError:{code:"unable_to_parse_token_request_cache_error",desc:"The cached token request could not be parsed."},noCachedAuthorityError:{code:"no_cached_authority_error",desc:"No cached authority found."},authRequestNotSet:{code:"auth_request_not_set_error",desc:"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler"},invalidCacheType:{code:"invalid_cache_type",desc:"Invalid cache type"},notInBrowserEnvironment:{code:"non_browser_environment",desc:"Login and token requests are not supported in non-browser environments."},databaseNotOpen:{code:"database_not_open",desc:"Database is not open!"},noNetworkConnectivity:{code:"no_network_connectivity",desc:"No network connectivity. Check your internet connection."},postRequestFailed:{code:"post_request_failed",desc:"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'"},getRequestFailed:{code:"get_request_failed",desc:"Network request failed. Please check the network trace to determine root cause."},failedToParseNetworkResponse:{code:"failed_to_parse_response",desc:"Failed to parse network response. Check network trace."},unableToLoadTokenError:{code:"unable_to_load_token",desc:"Error loading token to cache."},signingKeyNotFoundInStorage:{code:"crypto_key_not_found",desc:"Cryptographic Key or Keypair not found in browser storage."},authCodeRequired:{code:"auth_code_required",desc:"An authorization code must be provided (as the `code` property on the request) to this flow."},authCodeOrNativeAccountRequired:{code:"auth_code_or_nativeAccountId_required",desc:"An authorization code or nativeAccountId must be provided to this flow."},spaCodeAndNativeAccountPresent:{code:"spa_code_and_nativeAccountId_present",desc:"Request cannot contain both spa code and native account id."},databaseUnavailable:{code:"database_unavailable",desc:"IndexedDB, which is required for persistent cryptographic key storage, is unavailable. This may be caused by browser privacy features which block persistent storage in third-party contexts."},unableToAcquireTokenFromNativePlatform:{code:"unable_to_acquire_token_from_native_platform",desc:"Unable to acquire token from native platform. For a list of possible reasons visit aka.ms/msaljs/browser-errors."},nativeHandshakeTimeout:{code:"native_handshake_timeout",desc:"Timed out while attempting to establish connection to browser extension"},nativeExtensionNotInstalled:{code:"native_extension_not_installed",desc:"Native extension is not installed. If you think this is a mistake call the initialize function."},nativeConnectionNotEstablished:{code:"native_connection_not_established",desc:"Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). For more please visit aka.ms/msaljs/browser-errors."},uninitializedPublicClientApplication:{code:"uninitialized_public_client_application",desc:"You must call and await the initialize function before attempting to call any other MSAL API. For more please visit aka.ms/msaljs/browser-errors."},nativePromptNotSupported:{code:"native_prompt_not_supported",desc:"The provided prompt is not supported by the native platform. This request should be routed to the web based flow."}};class qr extends nt{constructor(e,t){super(e,t),Object.setPrototypeOf(this,qr.prototype),this.name="BrowserAuthError"}static createPkceNotGeneratedError(e){return new qr(Or.pkceNotGenerated.code,`${Or.pkceNotGenerated.desc} Detail:${e}`)}static createCryptoNotAvailableError(e){return new qr(Or.cryptoDoesNotExist.code,`${Or.cryptoDoesNotExist.desc} Detail:${e}`)}static createHttpMethodNotImplementedError(e){return new qr(Or.httpMethodNotImplementedError.code,`${Or.httpMethodNotImplementedError.desc} Given Method: ${e}`)}static createEmptyNavigationUriError(){return new qr(Or.emptyNavigateUriError.code,Or.emptyNavigateUriError.desc)}static createEmptyHashError(){return new qr(Or.hashEmptyError.code,`${Or.hashEmptyError.desc}`)}static createHashDoesNotContainStateError(){return new qr(Or.hashDoesNotContainStateError.code,Or.hashDoesNotContainStateError.desc)}static createHashDoesNotContainKnownPropertiesError(){return new qr(Or.hashDoesNotContainKnownPropertiesError.code,Or.hashDoesNotContainKnownPropertiesError.desc)}static createUnableToParseStateError(){return new qr(Or.unableToParseStateError.code,Or.unableToParseStateError.desc)}static createStateInteractionTypeMismatchError(){return new qr(Or.stateInteractionTypeMismatchError.code,Or.stateInteractionTypeMismatchError.desc)}static createInteractionInProgressError(){return new qr(Or.interactionInProgress.code,Or.interactionInProgress.desc)}static createPopupWindowError(e){let t=Or.popupWindowError.desc;return t=ct.isEmpty(e)?t:`${t} Details: ${e}`,new qr(Or.popupWindowError.code,t)}static createEmptyWindowCreatedError(){return new qr(Or.emptyWindowError.code,Or.emptyWindowError.desc)}static createUserCancelledError(){return new qr(Or.userCancelledError.code,Or.userCancelledError.desc)}static createMonitorPopupTimeoutError(){return new qr(Or.monitorPopupTimeoutError.code,Or.monitorPopupTimeoutError.desc)}static createMonitorIframeTimeoutError(){return new qr(Or.monitorIframeTimeoutError.code,Or.monitorIframeTimeoutError.desc)}static createRedirectInIframeError(e){return new qr(Or.redirectInIframeError.code,`${Or.redirectInIframeError.desc} (window.parent !== window) => ${e}`)}static createBlockReloadInHiddenIframeError(){return new qr(Or.blockTokenRequestsInHiddenIframeError.code,Or.blockTokenRequestsInHiddenIframeError.desc)}static createBlockAcquireTokenInPopupsError(){return new qr(Or.blockAcquireTokenInPopupsError.code,Or.blockAcquireTokenInPopupsError.desc)}static createIframeClosedPrematurelyError(){return new qr(Or.iframeClosedPrematurelyError.code,Or.iframeClosedPrematurelyError.desc)}static createSilentLogoutUnsupportedError(){return new qr(Or.silentLogoutUnsupportedError.code,Or.silentLogoutUnsupportedError.desc)}static createNoAccountError(){return new qr(Or.noAccountError.code,Or.noAccountError.desc)}static createSilentPromptValueError(e){return new qr(Or.silentPromptValueError.code,`${Or.silentPromptValueError.desc} Given value: ${e}`)}static createUnableToParseTokenRequestCacheError(){return new qr(Or.unableToParseTokenRequestCacheError.code,Or.unableToParseTokenRequestCacheError.desc)}static createNoTokenRequestCacheError(){return new qr(Or.noTokenRequestCacheError.code,Or.noTokenRequestCacheError.desc)}static createAuthRequestNotSetError(){return new qr(Or.authRequestNotSet.code,Or.authRequestNotSet.desc)}static createNoCachedAuthorityError(){return new qr(Or.noCachedAuthorityError.code,Or.noCachedAuthorityError.desc)}static createInvalidCacheTypeError(){return new qr(Or.invalidCacheType.code,`${Or.invalidCacheType.desc}`)}static createNonBrowserEnvironmentError(){return new qr(Or.notInBrowserEnvironment.code,Or.notInBrowserEnvironment.desc)}static createDatabaseNotOpenError(){return new qr(Or.databaseNotOpen.code,Or.databaseNotOpen.desc)}static createNoNetworkConnectivityError(){return new qr(Or.noNetworkConnectivity.code,Or.noNetworkConnectivity.desc)}static createPostRequestFailedError(e,t){return new qr(Or.postRequestFailed.code,`${Or.postRequestFailed.desc} | Network client threw: ${e} | Attempted to reach: ${t.split("?")[0]}`)}static createGetRequestFailedError(e,t){return new qr(Or.getRequestFailed.code,`${Or.getRequestFailed.desc} | Network client threw: ${e} | Attempted to reach: ${t.split("?")[0]}`)}static createFailedToParseNetworkResponseError(e){return new qr(Or.failedToParseNetworkResponse.code,`${Or.failedToParseNetworkResponse.desc} | Attempted to reach: ${e.split("?")[0]}`)}static createUnableToLoadTokenError(e){return new qr(Or.unableToLoadTokenError.code,`${Or.unableToLoadTokenError.desc} | ${e}`)}static createSigningKeyNotFoundInStorageError(e){return new qr(Or.signingKeyNotFoundInStorage.code,`${Or.signingKeyNotFoundInStorage.desc} | No match found for KeyId: ${e}`)}static createAuthCodeRequiredError(){return new qr(Or.authCodeRequired.code,Or.authCodeRequired.desc)}static createAuthCodeOrNativeAccountIdRequiredError(){return new qr(Or.authCodeOrNativeAccountRequired.code,Or.authCodeOrNativeAccountRequired.desc)}static createSpaCodeAndNativeAccountIdPresentError(){return new qr(Or.spaCodeAndNativeAccountPresent.code,Or.spaCodeAndNativeAccountPresent.desc)}static createDatabaseUnavailableError(){return new qr(Or.databaseUnavailable.code,Or.databaseUnavailable.desc)}static createUnableToAcquireTokenFromNativePlatformError(){return new qr(Or.unableToAcquireTokenFromNativePlatform.code,Or.unableToAcquireTokenFromNativePlatform.desc)}static createNativeHandshakeTimeoutError(){return new qr(Or.nativeHandshakeTimeout.code,Or.nativeHandshakeTimeout.desc)}static createNativeExtensionNotInstalledError(){return new qr(Or.nativeExtensionNotInstalled.code,Or.nativeExtensionNotInstalled.desc)}static createNativeConnectionNotEstablishedError(){return new qr(Or.nativeConnectionNotEstablished.code,Or.nativeConnectionNotEstablished.desc)}static createUninitializedPublicClientApplication(){return new qr(Or.uninitializedPublicClientApplication.code,Or.uninitializedPublicClientApplication.desc)}static createNativePromptParameterNotSupportedError(){return new qr(Or.nativePromptNotSupported.code,Or.nativePromptNotSupported.desc)}}const Ur={INTERACTION_IN_PROGRESS_VALUE:"interaction_in_progress",INVALID_GRANT_ERROR:"invalid_grant",POPUP_WIDTH:483,POPUP_HEIGHT:600,POPUP_NAME_PREFIX:"msal",DEFAULT_POLL_INTERVAL_MS:30,MSAL_SKU:"msal.js.browser"},Hr="53ee284d-920a-4b59-9d30-a60315b26836",Lr="ppnbnpeolgkicgegkbkbjmhlideopiji",xr="MATS",Dr="Handshake",Fr="HandshakeResponse",Br="GetToken",Kr="Response",Gr={LocalStorage:"localStorage",SessionStorage:"sessionStorage",MemoryStorage:"memoryStorage"},$r="GET",zr="POST",Qr={AUTHORITY:"authority",ACQUIRE_TOKEN_ACCOUNT:"acquireToken.account",SESSION_STATE:"session.state",REQUEST_STATE:"request.state",NONCE_IDTOKEN:"nonce.id_token",ORIGIN_URI:"request.origin",RENEW_STATUS:"token.renew.status",URL_HASH:"urlHash",REQUEST_PARAMS:"request.params",SCOPES:"scopes",INTERACTION_STATUS_KEY:"interaction.status",CCS_CREDENTIAL:"ccs.credential",CORRELATION_ID:"request.correlationId",NATIVE_REQUEST:"request.native",REDIRECT_CONTEXT:"request.redirect.context"},jr="msal.account.keys",Yr="msal.token.keys",Wr="wrapper.sku",Vr="wrapper.version",Jr={acquireTokenRedirect:861,acquireTokenPopup:862,ssoSilent:863,acquireTokenSilent_authCode:864,handleRedirectPromise:865,acquireTokenByCode:866,acquireTokenSilent_silentFlow:61,logout:961,logoutPopup:962};var Xr;e.InteractionType=void 0,(Xr=e.InteractionType||(e.InteractionType={})).Redirect="redirect",Xr.Popup="popup",Xr.Silent="silent",Xr.None="none";const Zr={Startup:"startup",Login:"login",Logout:"logout",AcquireToken:"acquireToken",SsoSilent:"ssoSilent",HandleRedirect:"handleRedirect",None:"none"},eo={scopes:r},to="msal.db",ro=`${to}.keys`,oo={Default:0,AccessToken:1,AccessTokenAndRefreshToken:2,RefreshToken:3,RefreshTokenAndNetwork:4,Skip:5},no={redirectUriNotSet:{code:"redirect_uri_empty",desc:"A redirect URI is required for all calls, and none has been set."},postLogoutUriNotSet:{code:"post_logout_uri_empty",desc:"A post logout redirect has not been set."},storageNotSupportedError:{code:"storage_not_supported",desc:"Given storage configuration option was not supported."},noRedirectCallbacksSet:{code:"no_redirect_callbacks",desc:"No redirect callbacks have been set. Please call setRedirectCallbacks() with the appropriate function arguments before continuing. More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics."},invalidCallbackObject:{code:"invalid_callback_object",desc:"The object passed for the callback was invalid. More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics."},stubPcaInstanceCalled:{code:"stubbed_public_client_application_called",desc:"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors"},inMemRedirectUnavailable:{code:"in_mem_redirect_unavailable",desc:"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true."},entropyNotProvided:{code:"entropy_not_provided",desc:"The available browser crypto interface requires entropy set via system.cryptoOptions.entropy configuration option."}};class io extends nt{constructor(e,t){super(e,t),this.name="BrowserConfigurationAuthError",Object.setPrototypeOf(this,io.prototype)}static createRedirectUriEmptyError(){return new io(no.redirectUriNotSet.code,no.redirectUriNotSet.desc)}static createPostLogoutRedirectUriEmptyError(){return new io(no.postLogoutUriNotSet.code,no.postLogoutUriNotSet.desc)}static createStorageNotSupportedError(e){return new io(no.storageNotSupportedError.code,`${no.storageNotSupportedError.desc} Given Location: ${e}`)}static createRedirectCallbacksNotSetError(){return new io(no.noRedirectCallbacksSet.code,no.noRedirectCallbacksSet.desc)}static createStubPcaInstanceCalledError(){return new io(no.stubPcaInstanceCalled.code,no.stubPcaInstanceCalled.desc)}static createInMemoryRedirectUnavailableError(){return new io(no.inMemRedirectUnavailable.code,no.inMemRedirectUnavailable.desc)}static createEntropyNotProvided(){return new io(no.entropyNotProvided.code,no.entropyNotProvided.desc)}}class ao{constructor(e){this.validateWindowStorage(e),this.windowStorage=window[e]}validateWindowStorage(e){if(e!==Gr.LocalStorage&&e!==Gr.SessionStorage)throw io.createStorageNotSupportedError(e);if(!!!window[e])throw io.createStorageNotSupportedError(e)}getItem(e){return this.windowStorage.getItem(e)}setItem(e,t){this.windowStorage.setItem(e,t)}removeItem(e){this.windowStorage.removeItem(e)}getKeys(){return Object.keys(this.windowStorage)}containsKey(e){return this.windowStorage.hasOwnProperty(e)}}class so{constructor(){this.cache=new Map}getItem(e){return this.cache.get(e)||null}setItem(e,t){this.cache.set(e,t)}removeItem(e){this.cache.delete(e)}getKeys(){const e=[];return this.cache.forEach(((t,r)=>{e.push(r)})),e}containsKey(e){return this.cache.has(e)}clear(){this.cache.clear()}}class co{static extractBrowserRequestState(e,t){if(ct.isEmpty(t))return null;try{return tr.parseRequestState(e,t).libraryState.meta}catch(e){throw st.createInvalidStateError(t,e)}}static parseServerResponseFromHash(e){if(!e)return{};const t=new rr(e);return rr.getDeserializedHash(t.getHash())}}class lo extends St{constructor(e,t,r,o){super(e,r,o),this.COOKIE_LIFE_MULTIPLIER=864e5,this.cacheConfig=t,this.logger=o,this.internalStorage=new so,this.browserStorage=this.setupBrowserStorage(this.cacheConfig.cacheLocation),this.temporaryCacheStorage=this.setupTemporaryCacheStorage(this.cacheConfig.temporaryCacheLocation,this.cacheConfig.cacheLocation),t.cacheMigrationEnabled&&(this.migrateCacheEntries(),this.createKeyMaps())}setupBrowserStorage(e){switch(e){case Gr.LocalStorage:case Gr.SessionStorage:try{return new ao(e)}catch(e){this.logger.verbose(e);break}}return this.cacheConfig.cacheLocation=Gr.MemoryStorage,new so}setupTemporaryCacheStorage(e,t){switch(t){case Gr.LocalStorage:case Gr.SessionStorage:try{return new ao(e||Gr.SessionStorage)}catch(e){return this.logger.verbose(e),this.internalStorage}default:return this.internalStorage}}migrateCacheEntries(){const e=`${t.CACHE_PREFIX}.${h}`,r=`${t.CACHE_PREFIX}.${u}`,o=`${t.CACHE_PREFIX}.${p}`,n=`${t.CACHE_PREFIX}.${m}`,i=[this.browserStorage.getItem(e),this.browserStorage.getItem(r),this.browserStorage.getItem(o),this.browserStorage.getItem(n)];[h,u,p,m].forEach(((e,t)=>this.migrateCacheEntry(e,i[t])))}migrateCacheEntry(e,t){t&&this.setTemporaryCache(e,t,!0)}createKeyMaps(){this.logger.trace("BrowserCacheManager - createKeyMaps called.");const e=this.getItem(jr),t=this.getItem(`${Yr}.${this.clientId}`);if(e&&t)return void this.logger.verbose("BrowserCacheManager:createKeyMaps - account and token key maps already exist, skipping migration.");this.browserStorage.getKeys().forEach((e=>{if(this.isCredentialKey(e)){const t=this.getItem(e);if(t){const r=this.validateAndParseJson(t);if(r&&r.hasOwnProperty("credentialType"))switch(r.credentialType){case Te.ID_TOKEN:if(Qt.isIdTokenEntity(r)){this.logger.trace("BrowserCacheManager:createKeyMaps - idToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - idToken with key: ${e} found, saving key to token key map`);const t=St.toObject(new Qt,r),o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Te.ID_TOKEN)}this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching idToken schema with value containing idToken credentialType field but value failed IdTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed idToken validation on key: ${e}`);break;case Te.ACCESS_TOKEN:case Te.ACCESS_TOKEN_WITH_AUTH_SCHEME:if(Yt.isAccessTokenEntity(r)){this.logger.trace("BrowserCacheManager:createKeyMaps - accessToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - accessToken with key: ${e} found, saving key to token key map`);const t=St.toObject(new Yt,r),o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Te.ACCESS_TOKEN)}this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching accessToken schema with value containing accessToken credentialType field but value failed AccessTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed accessToken validation on key: ${e}`);break;case Te.REFRESH_TOKEN:if(Wt.isRefreshTokenEntity(r)){this.logger.trace("BrowserCacheManager:createKeyMaps - refreshToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - refreshToken with key: ${e} found, saving key to token key map`);const t=St.toObject(new Wt,r),o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Te.REFRESH_TOKEN)}this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching refreshToken schema with value containing refreshToken credentialType field but value failed RefreshTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed refreshToken validation on key: ${e}`)}}}if(this.isAccountKey(e)){const t=this.getItem(e);if(t){const r=this.validateAndParseJson(t);r&&_t.isAccountEntity(r)&&(this.logger.trace("BrowserCacheManager:createKeyMaps - account found, saving key to account key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - account with key: ${e} found, saving key to account key map`),this.addAccountKeyToMap(e))}}}))}validateAndParseJson(e){try{const t=JSON.parse(e);return t&&"object"==typeof t?t:null}catch(e){return null}}getItem(e){return this.browserStorage.getItem(e)}setItem(e,t){this.browserStorage.setItem(e,t)}getAccount(e){this.logger.trace("BrowserCacheManager.getAccount called");const t=this.getItem(e);if(!t)return this.removeAccountKeyFromMap(e),null;const r=this.validateAndParseJson(t);return r&&_t.isAccountEntity(r)?St.toObject(new _t,r):(this.removeAccountKeyFromMap(e),null)}setAccount(e){this.logger.trace("BrowserCacheManager.setAccount called");const t=e.generateAccountKey();this.setItem(t,JSON.stringify(e)),this.addAccountKeyToMap(t)}getAccountKeys(){this.logger.trace("BrowserCacheManager.getAccountKeys called");const e=this.getItem(jr);return e?JSON.parse(e):(this.logger.verbose("BrowserCacheManager.getAccountKeys - No account keys found"),[])}addAccountKeyToMap(e){this.logger.trace("BrowserCacheManager.addAccountKeyToMap called"),this.logger.tracePii(`BrowserCacheManager.addAccountKeyToMap called with key: ${e}`);const t=this.getAccountKeys();-1===t.indexOf(e)?(t.push(e),this.setItem(jr,JSON.stringify(t)),this.logger.verbose("BrowserCacheManager.addAccountKeyToMap account key added")):this.logger.verbose("BrowserCacheManager.addAccountKeyToMap account key already exists in map")}removeAccountKeyFromMap(e){this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap called"),this.logger.tracePii(`BrowserCacheManager.removeAccountKeyFromMap called with key: ${e}`);const t=this.getAccountKeys(),r=t.indexOf(e);r>-1?(t.splice(r,1),this.setItem(jr,JSON.stringify(t)),this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap account key removed")):this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap key not found in existing map")}async removeAccount(e){super.removeAccount(e),this.removeAccountKeyFromMap(e)}removeIdToken(e){super.removeIdToken(e),this.removeTokenKey(e,Te.ID_TOKEN)}async removeAccessToken(e){super.removeAccessToken(e),this.removeTokenKey(e,Te.ACCESS_TOKEN)}removeRefreshToken(e){super.removeRefreshToken(e),this.removeTokenKey(e,Te.REFRESH_TOKEN)}getTokenKeys(){this.logger.trace("BrowserCacheManager.getTokenKeys called");const e=this.getItem(`${Yr}.${this.clientId}`);if(e){const t=this.validateAndParseJson(e);if(t&&t.hasOwnProperty("idToken")&&t.hasOwnProperty("accessToken")&&t.hasOwnProperty("refreshToken"))return t;this.logger.error("BrowserCacheManager.getTokenKeys - Token keys found but in an unknown format. Returning empty key map.")}else this.logger.verbose("BrowserCacheManager.getTokenKeys - No token keys found");return{idToken:[],accessToken:[],refreshToken:[]}}addTokenKey(e,t){this.logger.trace("BrowserCacheManager addTokenKey called");const r=this.getTokenKeys();switch(t){case Te.ID_TOKEN:-1===r.idToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - idToken added to map"),r.idToken.push(e));break;case Te.ACCESS_TOKEN:-1===r.accessToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - accessToken added to map"),r.accessToken.push(e));break;case Te.REFRESH_TOKEN:-1===r.refreshToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - refreshToken added to map"),r.refreshToken.push(e));break;default:this.logger.error(`BrowserCacheManager:addTokenKey - CredentialType provided invalid. CredentialType: ${t}`),st.createUnexpectedCredentialTypeError()}this.setItem(`${Yr}.${this.clientId}`,JSON.stringify(r))}removeTokenKey(e,t){this.logger.trace("BrowserCacheManager removeTokenKey called");const r=this.getTokenKeys();switch(t){case Te.ID_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove idToken with key: ${e} from map`);const o=r.idToken.indexOf(e);o>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - idToken removed from map"),r.idToken.splice(o,1)):this.logger.info("BrowserCacheManager: removeTokenKey - idToken does not exist in map. Either it was previously removed or it was never added.");break;case Te.ACCESS_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove accessToken with key: ${e} from map`);const n=r.accessToken.indexOf(e);n>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - accessToken removed from map"),r.accessToken.splice(n,1)):this.logger.info("BrowserCacheManager: removeTokenKey - accessToken does not exist in map. Either it was previously removed or it was never added.");break;case Te.REFRESH_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove refreshToken with key: ${e} from map`);const i=r.refreshToken.indexOf(e);i>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - refreshToken removed from map"),r.refreshToken.splice(i,1)):this.logger.info("BrowserCacheManager: removeTokenKey - refreshToken does not exist in map. Either it was previously removed or it was never added.");break;default:this.logger.error(`BrowserCacheManager:removeTokenKey - CredentialType provided invalid. CredentialType: ${t}`),st.createUnexpectedCredentialTypeError()}this.setItem(`${Yr}.${this.clientId}`,JSON.stringify(r))}getIdTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeTokenKey(e,Te.ID_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Qt.isIdTokenEntity(r)?(this.logger.trace("BrowserCacheManager.getIdTokenCredential: cache hit"),St.toObject(new Qt,r)):(this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeTokenKey(e,Te.ID_TOKEN),null)}setIdTokenCredential(e){this.logger.trace("BrowserCacheManager.setIdTokenCredential called");const t=e.generateCredentialKey();this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Te.ID_TOKEN)}getAccessTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,Te.ACCESS_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Yt.isAccessTokenEntity(r)?(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: cache hit"),St.toObject(new Yt,r)):(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,Te.ACCESS_TOKEN),null)}setAccessTokenCredential(e){this.logger.trace("BrowserCacheManager.setAccessTokenCredential called");const t=e.generateCredentialKey();this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Te.ACCESS_TOKEN)}getRefreshTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,Te.REFRESH_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Wt.isRefreshTokenEntity(r)?(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: cache hit"),St.toObject(new Wt,r)):(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,Te.REFRESH_TOKEN),null)}setRefreshTokenCredential(e){this.logger.trace("BrowserCacheManager.setRefreshTokenCredential called");const t=e.generateCredentialKey();this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Te.REFRESH_TOKEN)}getAppMetadata(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&dr.isAppMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAppMetadata: cache hit"),St.toObject(new dr,r)):(this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null)}setAppMetadata(e){this.logger.trace("BrowserCacheManager.setAppMetadata called");const t=e.generateAppMetadataKey();this.setItem(t,JSON.stringify(e))}getServerTelemetry(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getServerTelemetry: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&Ir.isServerTelemetryEntity(e,r)?(this.logger.trace("BrowserCacheManager.getServerTelemetry: cache hit"),St.toObject(new Ir,r)):(this.logger.trace("BrowserCacheManager.getServerTelemetry: called, no cache hit"),null)}setServerTelemetry(e,t){this.logger.trace("BrowserCacheManager.setServerTelemetry called"),this.setItem(e,JSON.stringify(t))}getAuthorityMetadata(e){const t=this.internalStorage.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAuthorityMetadata: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&Cr.isAuthorityMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAuthorityMetadata: cache hit"),St.toObject(new Cr,r)):null}getAuthorityMetadataKeys(){return this.internalStorage.getKeys().filter((e=>this.isAuthorityMetadata(e)))}setWrapperMetadata(e,t){this.internalStorage.setItem(Wr,e),this.internalStorage.setItem(Vr,t)}getWrapperMetadata(){return[this.internalStorage.getItem(Wr)||t.EMPTY_STRING,this.internalStorage.getItem(Vr)||t.EMPTY_STRING]}setAuthorityMetadata(e,t){this.logger.trace("BrowserCacheManager.setAuthorityMetadata called"),this.internalStorage.setItem(e,JSON.stringify(t))}getActiveAccount(){const e=this.generateCacheKey(y),t=this.getItem(e);if(!t){this.logger.trace("BrowserCacheManager.getActiveAccount: No active account filters cache schema found, looking for legacy schema");const e=this.generateCacheKey(f),t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getActiveAccount: No active account found"),null;const r=this.getAccountInfoByFilter({localAccountId:t})[0]||null;return r?(this.logger.trace("BrowserCacheManager.getActiveAccount: Legacy active account cache schema found"),this.logger.trace("BrowserCacheManager.getActiveAccount: Adding active account filters cache schema"),this.setActiveAccount(r),r):null}const r=this.validateAndParseJson(t);return r?(this.logger.trace("BrowserCacheManager.getActiveAccount: Active account filters schema found"),this.getAccountInfoByFilter({homeAccountId:r.homeAccountId,localAccountId:r.localAccountId})[0]||null):(this.logger.trace("BrowserCacheManager.getActiveAccount: No active account found"),null)}setActiveAccount(e){const t=this.generateCacheKey(y),r=this.generateCacheKey(f);if(e){this.logger.verbose("setActiveAccount: Active account set");const o={homeAccountId:e.homeAccountId,localAccountId:e.localAccountId};this.browserStorage.setItem(t,JSON.stringify(o)),this.browserStorage.setItem(r,e.localAccountId)}else this.logger.verbose("setActiveAccount: No account passed, active account not set"),this.browserStorage.removeItem(t),this.browserStorage.removeItem(r)}getAccountInfoByFilter(e){const t=this.getAllAccounts();return this.logger.trace(`BrowserCacheManager.getAccountInfoByFilter: total ${t.length} accounts found`),t.filter((t=>(!e.username||e.username.toLowerCase()===t.username.toLowerCase())&&((!e.homeAccountId||e.homeAccountId===t.homeAccountId)&&((!e.localAccountId||e.localAccountId===t.localAccountId)&&((!e.tenantId||e.tenantId===t.tenantId)&&(!e.environment||e.environment===t.environment))))))}getAccountInfoByHints(e,t){const r=this.getAllAccounts().filter((r=>{if(t){const e=r.idTokenClaims&&r.idTokenClaims.sid;return t===e}return!!e&&e===r.username}));if(1===r.length)return r[0];if(r.length>1)throw st.createMultipleMatchingAccountsInCacheError();return null}getThrottlingCache(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getThrottlingCache: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&Er.isThrottlingEntity(e,r)?(this.logger.trace("BrowserCacheManager.getThrottlingCache: cache hit"),St.toObject(new Er,r)):(this.logger.trace("BrowserCacheManager.getThrottlingCache: called, no cache hit"),null)}setThrottlingCache(e,t){this.logger.trace("BrowserCacheManager.setThrottlingCache called"),this.setItem(e,JSON.stringify(t))}getTemporaryCache(e,t){const r=t?this.generateCacheKey(e):e;if(this.cacheConfig.storeAuthStateInCookie){const e=this.getItemCookie(r);if(e)return this.logger.trace("BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies"),e}const o=this.temporaryCacheStorage.getItem(r);if(!o){if(this.cacheConfig.cacheLocation===Gr.LocalStorage){const e=this.browserStorage.getItem(r);if(e)return this.logger.trace("BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage"),e}return this.logger.trace("BrowserCacheManager.getTemporaryCache: No cache item found in local storage"),null}return this.logger.trace("BrowserCacheManager.getTemporaryCache: Temporary cache item returned"),o}setTemporaryCache(e,t,r){const o=r?this.generateCacheKey(e):e;this.temporaryCacheStorage.setItem(o,t),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie"),this.setItemCookie(o,t))}removeItem(e){this.browserStorage.removeItem(e),this.temporaryCacheStorage.removeItem(e),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie"),this.clearItemCookie(e))}containsKey(e){return this.browserStorage.containsKey(e)||this.temporaryCacheStorage.containsKey(e)}getKeys(){return[...this.browserStorage.getKeys(),...this.temporaryCacheStorage.getKeys()]}async clear(){await this.removeAllAccounts(),this.removeAppMetadata(),this.getKeys().forEach((e=>{!this.browserStorage.containsKey(e)&&!this.temporaryCacheStorage.containsKey(e)||-1===e.indexOf(t.CACHE_PREFIX)&&-1===e.indexOf(this.clientId)||this.removeItem(e)})),this.internalStorage.clear()}setItemCookie(e,t,r){let o=`${encodeURIComponent(e)}=${encodeURIComponent(t)};path=/;SameSite=Lax;`;if(r){o+=`expires=${this.getCookieExpirationTime(r)};`}this.cacheConfig.secureCookies&&(o+="Secure;"),document.cookie=o}getItemCookie(e){const r=`${encodeURIComponent(e)}=`,o=document.cookie.split(";");for(let e=0;e<o.length;e++){let t=o[e];for(;" "===t.charAt(0);)t=t.substring(1);if(0===t.indexOf(r))return decodeURIComponent(t.substring(r.length,t.length))}return t.EMPTY_STRING}clearMsalCookies(){const e=`${t.CACHE_PREFIX}.${this.clientId}`;document.cookie.split(";").forEach((t=>{for(;" "===t.charAt(0);)t=t.substring(1);if(0===t.indexOf(e)){const e=t.split("=")[0];this.clearItemCookie(e)}}))}clearItemCookie(e){this.setItemCookie(e,t.EMPTY_STRING,-1)}getCookieExpirationTime(e){const t=new Date;return new Date(t.getTime()+e*this.COOKIE_LIFE_MULTIPLIER).toUTCString()}getCache(){return this.browserStorage}setCache(){}generateCacheKey(e){return this.validateAndParseJson(e)?JSON.stringify(e):ct.startsWith(e,t.CACHE_PREFIX)||ct.startsWith(e,g)?e:`${t.CACHE_PREFIX}.${this.clientId}.${e}`}generateAuthorityKey(e){const{libraryState:{id:t}}=tr.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${Qr.AUTHORITY}.${t}`)}generateNonceKey(e){const{libraryState:{id:t}}=tr.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${Qr.NONCE_IDTOKEN}.${t}`)}generateStateKey(e){const{libraryState:{id:t}}=tr.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${Qr.REQUEST_STATE}.${t}`)}getCachedAuthority(e){const t=this.generateStateKey(e),r=this.getTemporaryCache(t);if(!r)return null;const o=this.generateAuthorityKey(r);return this.getTemporaryCache(o)}updateCacheEntries(e,t,r,o,n){this.logger.trace("BrowserCacheManager.updateCacheEntries called");const i=this.generateStateKey(e);this.setTemporaryCache(i,e,!1);const a=this.generateNonceKey(e);this.setTemporaryCache(a,t,!1);const s=this.generateAuthorityKey(e);if(this.setTemporaryCache(s,r,!1),n){const e={credential:n.homeAccountId,type:Ft};this.setTemporaryCache(Qr.CCS_CREDENTIAL,JSON.stringify(e),!0)}else if(!ct.isEmpty(o)){const e={credential:o,type:Bt};this.setTemporaryCache(Qr.CCS_CREDENTIAL,JSON.stringify(e),!0)}}resetRequestCache(e){this.logger.trace("BrowserCacheManager.resetRequestCache called"),ct.isEmpty(e)||this.getKeys().forEach((t=>{-1!==t.indexOf(e)&&this.removeItem(t)})),e&&(this.removeItem(this.generateStateKey(e)),this.removeItem(this.generateNonceKey(e)),this.removeItem(this.generateAuthorityKey(e))),this.removeItem(this.generateCacheKey(Qr.REQUEST_PARAMS)),this.removeItem(this.generateCacheKey(Qr.ORIGIN_URI)),this.removeItem(this.generateCacheKey(Qr.URL_HASH)),this.removeItem(this.generateCacheKey(Qr.CORRELATION_ID)),this.removeItem(this.generateCacheKey(Qr.CCS_CREDENTIAL)),this.removeItem(this.generateCacheKey(Qr.NATIVE_REQUEST)),this.setInteractionInProgress(!1)}cleanRequestByState(e){if(this.logger.trace("BrowserCacheManager.cleanRequestByState called"),e){const r=this.generateStateKey(e),o=this.temporaryCacheStorage.getItem(r);this.logger.infoPii(`BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: ${o}`),this.resetRequestCache(o||t.EMPTY_STRING)}this.clearMsalCookies()}cleanRequestByInteractionType(e){this.logger.trace("BrowserCacheManager.cleanRequestByInteractionType called"),this.getKeys().forEach((t=>{if(-1===t.indexOf(Qr.REQUEST_STATE))return;const r=this.temporaryCacheStorage.getItem(t);if(!r)return;const o=co.extractBrowserRequestState(this.cryptoImpl,r);o&&o.interactionType===e&&(this.logger.infoPii(`BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: ${r}`),this.resetRequestCache(r))})),this.clearMsalCookies(),this.setInteractionInProgress(!1)}cacheCodeRequest(e,t){this.logger.trace("BrowserCacheManager.cacheCodeRequest called");const r=t.base64Encode(JSON.stringify(e));this.setTemporaryCache(Qr.REQUEST_PARAMS,r,!0)}getCachedRequest(e,t){this.logger.trace("BrowserCacheManager.getCachedRequest called");const r=this.getTemporaryCache(Qr.REQUEST_PARAMS,!0);if(!r)throw qr.createNoTokenRequestCacheError();const o=this.validateAndParseJson(t.base64Decode(r));if(!o)throw qr.createUnableToParseTokenRequestCacheError();if(this.removeItem(this.generateCacheKey(Qr.REQUEST_PARAMS)),ct.isEmpty(o.authority)){const t=this.generateAuthorityKey(e),r=this.getTemporaryCache(t);if(!r)throw qr.createNoCachedAuthorityError();o.authority=r}return o}getCachedNativeRequest(){this.logger.trace("BrowserCacheManager.getCachedNativeRequest called");const e=this.getTemporaryCache(Qr.NATIVE_REQUEST,!0);if(!e)return this.logger.trace("BrowserCacheManager.getCachedNativeRequest: No cached native request found"),null;const t=this.validateAndParseJson(e);return t||(this.logger.error("BrowserCacheManager.getCachedNativeRequest: Unable to parse native request"),null)}isInteractionInProgress(e){const t=this.getInteractionInProgress();return e?t===this.clientId:!!t}getInteractionInProgress(){const e=`${t.CACHE_PREFIX}.${Qr.INTERACTION_STATUS_KEY}`;return this.getTemporaryCache(e,!1)}setInteractionInProgress(e){const r=`${t.CACHE_PREFIX}.${Qr.INTERACTION_STATUS_KEY}`;if(e){if(this.getInteractionInProgress())throw qr.createInteractionInProgressError();this.setTemporaryCache(r,this.clientId,!1)}else e||this.getInteractionInProgress()!==this.clientId||this.removeItem(r)}getLegacyLoginHint(){const e=this.getTemporaryCache(g);e&&(this.browserStorage.removeItem(g),this.logger.verbose("Cached ADAL id token retrieved."));const t=this.getTemporaryCache(h,!0);t&&(this.removeItem(this.generateCacheKey(h)),this.logger.verbose("Cached MSAL.js v1 id token retrieved"));const r=t||e;if(r){const e=new kt(r,this.cryptoImpl);if(e.claims&&e.claims.preferred_username)return this.logger.verbose("No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 preferred_username as loginHint"),e.claims.preferred_username;if(e.claims&&e.claims.upn)return this.logger.verbose("No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 upn as loginHint"),e.claims.upn;this.logger.verbose("No SSO params used and ADAL/MSAL v1 token retrieved, however, no account hint claim found. Enable preferred_username or upn id token claim to get SSO.")}return null}updateCredentialCacheKey(e,t){const r=t.generateCredentialKey();if(e!==r){const o=this.getItem(e);if(o)return this.removeItem(e),this.setItem(r,o),this.logger.verbose(`Updated an outdated ${t.credentialType} cache key`),r;this.logger.error(`Attempted to update an outdated ${t.credentialType} cache key but no item matching the outdated key was found in storage`)}return e}getRedirectRequestContext(){return this.getTemporaryCache(Qr.REDIRECT_CONTEXT,!0)}setRedirectRequestContext(e){this.setTemporaryCache(Qr.REDIRECT_CONTEXT,e,!0)}async hydrateCache(e,t){const r=Qt.createIdTokenEntity(e.account?.homeAccountId,e.account?.environment,e.idToken,this.clientId,e.tenantId);let o;t.claims&&(o=await this.cryptoImpl.hashString(t.claims));const n=Yt.createAccessTokenEntity(e.account?.homeAccountId,e.account.environment,e.accessToken,this.clientId,e.tenantId,e.scopes.join(" "),e.expiresOn?.getTime()||0,e.extExpiresOn?.getTime()||0,this.cryptoImpl,void 0,e.tokenType,void 0,t.sshKid,t.claims,o),i=new er(void 0,r,n);return this.saveCacheRecord(i)}}const ho="@azure/msal-browser",uo="3.0.1";class go{async sendGetRequestAsync(e,t){let r;try{r=await fetch(e,{method:$r,headers:this.getFetchHeaders(t)})}catch(t){throw window.navigator.onLine?qr.createGetRequestFailedError(t,e):qr.createNoNetworkConnectivityError()}try{return{headers:this.getHeaderDict(r.headers),body:await r.json(),status:r.status}}catch(t){throw qr.createFailedToParseNetworkResponseError(e)}}async sendPostRequestAsync(e,r){const o=r&&r.body||t.EMPTY_STRING;let n;try{n=await fetch(e,{method:zr,headers:this.getFetchHeaders(r),body:o})}catch(t){throw window.navigator.onLine?qr.createPostRequestFailedError(t,e):qr.createNoNetworkConnectivityError()}try{return{headers:this.getHeaderDict(n.headers),body:await n.json(),status:n.status}}catch(t){throw qr.createFailedToParseNetworkResponseError(e)}}getFetchHeaders(e){const t=new Headers;if(!e||!e.headers)return t;const r=e.headers;return Object.keys(r).forEach((e=>{t.append(e,r[e])})),t}getHeaderDict(e){const t={};return e.forEach(((e,r)=>{t[r]=e})),t}}class po{async sendGetRequestAsync(e,t){return this.sendRequestAsync(e,$r,t)}async sendPostRequestAsync(e,t){return this.sendRequestAsync(e,zr,t)}sendRequestAsync(e,t,r){return new Promise(((o,n)=>{const i=new XMLHttpRequest;if(i.open(t,e,!0),this.setXhrHeaders(i,r),i.onload=()=>{(i.status<200||i.status>=300)&&n(t===zr?qr.createPostRequestFailedError(`Failed with status ${i.status}`,e):qr.createGetRequestFailedError(`Failed with status ${i.status}`,e));try{const e=JSON.parse(i.responseText),t={headers:this.getHeaderDict(i),body:e,status:i.status};o(t)}catch(t){n(qr.createFailedToParseNetworkResponseError(e))}},i.onerror=()=>{window.navigator.onLine?n(t===zr?qr.createPostRequestFailedError(`Failed with status ${i.status}`,e):qr.createGetRequestFailedError(`Failed with status ${i.status}`,e)):n(qr.createNoNetworkConnectivityError())},t===zr&&r&&r.body)i.send(r.body);else{if(t!==$r)throw qr.createHttpMethodNotImplementedError(t);i.send()}}))}setXhrHeaders(e,t){if(t&&t.headers){const r=t.headers;Object.keys(r).forEach((t=>{e.setRequestHeader(t,r[t])}))}}getHeaderDict(e){const t=e.getAllResponseHeaders().trim().split(/[\r\n]+/),r={};return t.forEach((e=>{const t=e.split(": "),o=t.shift(),n=t.join(": ");o&&n&&(r[o]=n)})),r}}class mo{static clearHash(e){e.location.hash=t.EMPTY_STRING,"function"==typeof e.history.replaceState&&e.history.replaceState(null,t.EMPTY_STRING,`${e.location.origin}${e.location.pathname}${e.location.search}`)}static replaceHash(e){const r=e.split("#");r.shift(),window.location.hash=r.length>0?r.join("#"):t.EMPTY_STRING}static isInIframe(){return window.parent!==window}static isInPopup(){return"undefined"!=typeof window&&!!window.opener&&window.opener!==window&&"string"==typeof window.name&&0===window.name.indexOf(`${Ur.POPUP_NAME_PREFIX}.`)}static getCurrentUri(){return window.location.href.split("?")[0].split("#")[0]}static getHomepage(){const e=new rr(window.location.href).getUrlComponents();return`${e.Protocol}//${e.HostNameAndPort}/`}static getBrowserNetworkClient(){return window.fetch&&window.Headers?new go:new po}static blockReloadInHiddenIframes(){if(rr.hashContainsKnownProperties(window.location.hash)&&mo.isInIframe())throw qr.createBlockReloadInHiddenIframeError()}static blockRedirectInIframe(t,r){const o=mo.isInIframe();if(t===e.InteractionType.Redirect&&o&&!r)throw qr.createRedirectInIframeError(o)}static blockAcquireTokenInPopups(){if(mo.isInPopup())throw qr.createBlockAcquireTokenInPopupsError()}static blockNonBrowserEnvironment(e){if(!e)throw qr.createNonBrowserEnvironmentError()}static blockAPICallsBeforeInitialize(e){if(!e)throw qr.createUninitializedPublicClientApplication()}static detectIEOrEdge(){const e=window.navigator.userAgent,t=e.indexOf("MSIE "),r=e.indexOf("Trident/"),o=e.indexOf("Edge/");return t>0||r>0||o>0}}class fo{constructor(e,t,r,o,n,i,a,s,c){this.config=e,this.browserStorage=t,this.browserCrypto=r,this.networkClient=this.config.system.networkClient,this.eventHandler=n,this.navigationClient=i,this.nativeMessageHandler=s,this.correlationId=c||this.browserCrypto.createNewGuid(),this.logger=o.clone(Ur.MSAL_SKU,uo,this.correlationId),this.performanceClient=a}async clearCacheOnLogout(e){if(e){_t.accountInfoIsEqual(e,this.browserStorage.getActiveAccount(),!1)&&(this.logger.verbose("Setting active account to null"),this.browserStorage.setActiveAccount(null));try{await this.browserStorage.removeAccount(_t.generateAccountCacheKey(e)),this.logger.verbose("Cleared cache items belonging to the account provided in the logout request.")}catch(e){this.logger.error("Account provided in logout request was not found. Local cache unchanged.")}}else try{this.logger.verbose("No account provided in logout request, clearing all cache items.",this.correlationId),await this.browserStorage.clear(),await this.browserCrypto.clearKeystore()}catch(e){this.logger.error("Attempted to clear all MSAL cache items and failed. Local cache unchanged.")}}async initializeBaseRequest(e,t){this.performanceClient.addQueueMeasurement(or.InitializeBaseRequest,e.correlationId),this.logger.verbose("Initializing BaseAuthRequest");const r=e.authority||this.config.auth.authority;t&&await this.validateRequestAuthority(r,t);const o=[...e&&e.scopes||[]],n={...e,correlationId:this.correlationId,authority:r,scopes:o};if(n.authenticationScheme){if(n.authenticationScheme===qe.SSH){if(!e.sshJwk)throw mt.createMissingSshJwkError();if(!e.sshKid)throw mt.createMissingSshKidError()}this.logger.verbose(`Authentication Scheme set to "${n.authenticationScheme}" as configured in Auth request`)}else n.authenticationScheme=qe.BEARER,this.logger.verbose('Authentication Scheme wasn\'t explicitly set in request, defaulting to "Bearer" request');return this.config.cache.claimsBasedCachingEnabled&&e.claims&&!ct.isEmptyObj(e.claims)&&(n.requestedClaimsHash=await this.browserCrypto.hashString(e.claims)),n}getRedirectUri(e){this.logger.verbose("getRedirectUri called");const t=e||this.config.auth.redirectUri||mo.getCurrentUri();return rr.getAbsoluteUrl(t,mo.getCurrentUri())}async validateRequestAuthority(e,t){if(!(await this.getDiscoveredAuthority(e)).isAlias(t.environment))throw mt.createAuthorityMismatchError()}initializeServerTelemetryManager(e,t){this.logger.verbose("initializeServerTelemetryManager called");const r={clientId:this.config.auth.clientId,correlationId:this.correlationId,apiId:e,forceRefresh:t||!1,wrapperSKU:this.browserStorage.getWrapperMetadata()[0],wrapperVer:this.browserStorage.getWrapperMetadata()[1]};return new Rr(r,this.browserStorage)}async getDiscoveredAuthority(e){this.logger.verbose("getDiscoveredAuthority called");const t={protocolMode:this.config.auth.protocolMode,OIDCOptions:this.config.auth.OIDCOptions,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata};return e?(this.logger.verbose("Creating discovered authority with request authority"),await Tr.createDiscoveredInstance(e,this.config.system.networkClient,this.browserStorage,t,this.logger)):(this.logger.verbose("Creating discovered authority with configured authority"),await Tr.createDiscoveredInstance(this.config.auth.authority,this.config.system.networkClient,this.browserStorage,t,this.logger))}}class yo extends fo{async initializeAuthorizationCodeRequest(e){this.performanceClient.addQueueMeasurement(or.StandardInteractionClientInitializeAuthorizationCodeRequest,e.correlationId),this.logger.verbose("initializeAuthorizationRequest called",e.correlationId);const r=await this.browserCrypto.generatePkceCodes(),o={...e,redirectUri:e.redirectUri,code:t.EMPTY_STRING,codeVerifier:r.verifier};return e.codeChallenge=r.challenge,e.codeChallengeMethod=t.S256_CODE_CHALLENGE_METHOD,o}initializeLogoutRequest(e){this.logger.verbose("initializeLogoutRequest called",e?.correlationId);const t={correlationId:this.correlationId||this.browserCrypto.createNewGuid(),...e};if(e)if(e.logoutHint)this.logger.verbose("logoutHint has already been set in logoutRequest");else if(e.account){const r=this.getLogoutHintFromIdTokenClaims(e.account);r&&(this.logger.verbose("Setting logoutHint to login_hint ID Token Claim value for the account provided"),t.logoutHint=r)}else this.logger.verbose("logoutHint was not set and account was not passed into logout request, logoutHint will not be set");else this.logger.verbose("logoutHint will not be set since no logout request was configured");return e&&null===e.postLogoutRedirectUri?this.logger.verbose("postLogoutRedirectUri passed as null, not setting post logout redirect uri",t.correlationId):e&&e.postLogoutRedirectUri?(this.logger.verbose("Setting postLogoutRedirectUri to uri set on logout request",t.correlationId),t.postLogoutRedirectUri=rr.getAbsoluteUrl(e.postLogoutRedirectUri,mo.getCurrentUri())):null===this.config.auth.postLogoutRedirectUri?this.logger.verbose("postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect",t.correlationId):this.config.auth.postLogoutRedirectUri?(this.logger.verbose("Setting postLogoutRedirectUri to configured uri",t.correlationId),t.postLogoutRedirectUri=rr.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri,mo.getCurrentUri())):(this.logger.verbose("Setting postLogoutRedirectUri to current page",t.correlationId),t.postLogoutRedirectUri=rr.getAbsoluteUrl(mo.getCurrentUri(),mo.getCurrentUri())),t}getLogoutHintFromIdTokenClaims(e){const t=e.idTokenClaims;if(t){if(t.login_hint)return t.login_hint;this.logger.verbose("The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request")}else this.logger.verbose("The provided account does not contain ID Token Claims, logoutHint will not be added to logout request");return null}async createAuthCodeClient(e,t,r){this.performanceClient.addQueueMeasurement(or.StandardInteractionClientCreateAuthCodeClient,this.correlationId),this.performanceClient.setPreQueueTime(or.StandardInteractionClientGetClientConfiguration,this.correlationId);const o=await this.getClientConfiguration(e,t,r);return new ur(o,this.performanceClient)}async getClientConfiguration(e,r,o){this.performanceClient.addQueueMeasurement(or.StandardInteractionClientGetClientConfiguration,this.correlationId),this.logger.verbose("getClientConfiguration called",this.correlationId),this.performanceClient.setPreQueueTime(or.StandardInteractionClientGetDiscoveredAuthority,this.correlationId);const n=await this.getDiscoveredAuthority(r,o),i=this.config.system.loggerOptions;return{authOptions:{clientId:this.config.auth.clientId,authority:n,clientCapabilities:this.config.auth.clientCapabilities},systemOptions:{tokenRenewalOffsetSeconds:this.config.system.tokenRenewalOffsetSeconds,preventCorsPreflight:!0},loggerOptions:{loggerCallback:i.loggerCallback,piiLoggingEnabled:i.piiLoggingEnabled,logLevel:i.logLevel,correlationId:this.correlationId},cacheOptions:{claimsBasedCachingEnabled:this.config.cache.claimsBasedCachingEnabled},cryptoInterface:this.browserCrypto,networkInterface:this.networkClient,storageInterface:this.browserStorage,serverTelemetryManager:e,libraryInfo:{sku:Ur.MSAL_SKU,version:uo,cpu:t.EMPTY_STRING,os:t.EMPTY_STRING},telemetry:this.config.telemetry}}validateAndExtractStateFromHash(e,t,r){if(this.logger.verbose("validateAndExtractStateFromHash called",r),!e.state)throw qr.createHashDoesNotContainStateError();const o=co.extractBrowserRequestState(this.browserCrypto,e.state);if(!o)throw qr.createUnableToParseStateError();if(o.interactionType!==t)throw qr.createStateInteractionTypeMismatchError();return this.logger.verbose("Returning state from hash",r),e.state}async getDiscoveredAuthority(e,t){this.performanceClient.addQueueMeasurement(or.StandardInteractionClientGetDiscoveredAuthority,this.correlationId),this.logger.verbose("getDiscoveredAuthority called",this.correlationId);const r=this.performanceClient?.startMeasurement(or.StandardInteractionClientGetDiscoveredAuthority,this.correlationId),o={protocolMode:this.config.auth.protocolMode,OIDCOptions:this.config.auth.OIDCOptions,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata,skipAuthorityMetadataCache:this.config.auth.skipAuthorityMetadataCache},n=e||this.config.auth.authority,i=wr.generateAuthority(n,t||this.config.auth.azureCloudOptions);return this.logger.verbose("Creating discovered authority with configured authority",this.correlationId),this.performanceClient.setPreQueueTime(or.AuthorityFactoryCreateDiscoveredInstance,this.correlationId),await Tr.createDiscoveredInstance(i,this.config.system.networkClient,this.browserStorage,o,this.logger,this.performanceClient,this.correlationId).then((e=>(r.end({success:!0}),e))).catch((e=>{throw r.end({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e}))}async initializeAuthorizationRequest(e,r){this.performanceClient.addQueueMeasurement(or.StandardInteractionClientInitializeAuthorizationRequest,this.correlationId),this.logger.verbose("initializeAuthorizationRequest called",this.correlationId);const o=this.getRedirectUri(e.redirectUri),n={interactionType:r},i=tr.setRequestState(this.browserCrypto,e&&e.state||t.EMPTY_STRING,n);this.performanceClient.setPreQueueTime(or.InitializeBaseRequest,this.correlationId);const a={...await this.initializeBaseRequest(e),redirectUri:o,state:i,nonce:e.nonce||this.browserCrypto.createNewGuid(),responseMode:this.config.auth.OIDCOptions.serverResponseType},s=e.account||this.browserStorage.getActiveAccount();if(s&&(this.logger.verbose("Setting validated request account",this.correlationId),this.logger.verbosePii(`Setting validated request account: ${s.homeAccountId}`,this.correlationId),a.account=s),ct.isEmpty(a.loginHint)&&!s){const e=this.browserStorage.getLegacyLoginHint();e&&(a.loginHint=e)}return a}}class Co{constructor(e,t,r,o,n){this.authModule=e,this.browserStorage=t,this.authCodeRequest=r,this.logger=o,this.performanceClient=n}async handleCodeResponseFromHash(e,t,r,o){if(this.performanceClient.addQueueMeasurement(or.HandleCodeResponseFromHash,this.authCodeRequest.correlationId),this.logger.verbose("InteractionHandler.handleCodeResponse called"),ct.isEmpty(e))throw qr.createEmptyHashError();const n=this.browserStorage.generateStateKey(t),i=this.browserStorage.getTemporaryCache(n);if(!i)throw st.createStateNotFoundError("Cached State");let a;try{a=this.authModule.handleFragmentResponse(e,i)}catch(e){throw e instanceof Lt&&e.subError===Or.userCancelledError.code?qr.createUserCancelledError():e}return this.performanceClient.setPreQueueTime(or.HandleCodeResponseFromServer,this.authCodeRequest.correlationId),this.handleCodeResponseFromServer(a,t,r,o)}async handleCodeResponseFromServer(e,t,r,o,n=!0){this.performanceClient.addQueueMeasurement(or.HandleCodeResponseFromServer,this.authCodeRequest.correlationId),this.logger.trace("InteractionHandler.handleCodeResponseFromServer called");const i=this.browserStorage.generateStateKey(t),a=this.browserStorage.getTemporaryCache(i);if(!a)throw st.createStateNotFoundError("Cached State");const s=this.browserStorage.generateNonceKey(a),c=this.browserStorage.getTemporaryCache(s);if(this.authCodeRequest.code=e.code,e.cloud_instance_host_name&&(this.performanceClient.setPreQueueTime(or.UpdateTokenEndpointAuthority,this.authCodeRequest.correlationId),await this.updateTokenEndpointAuthority(e.cloud_instance_host_name,r,o)),n&&(e.nonce=c||void 0),e.state=a,e.client_info)this.authCodeRequest.clientInfo=e.client_info;else{const e=this.checkCcsCredentials();e&&(this.authCodeRequest.ccsCredential=e)}this.performanceClient.setPreQueueTime(or.AuthClientAcquireToken,this.authCodeRequest.correlationId);const d=await this.authModule.acquireToken(this.authCodeRequest,e);return this.browserStorage.cleanRequestByState(t),d}async updateTokenEndpointAuthority(e,t,r){this.performanceClient.addQueueMeasurement(or.UpdateTokenEndpointAuthority,this.authCodeRequest.correlationId);const o=`https://${e}/${t.tenant}/`,n=await Tr.createDiscoveredInstance(o,r,this.browserStorage,t.options,this.logger,this.performanceClient,this.authCodeRequest.correlationId);this.authModule.updateAuthority(n)}checkCcsCredentials(){const e=this.browserStorage.getTemporaryCache(Qr.CCS_CREDENTIAL,!0);if(e)try{return JSON.parse(e)}catch(t){this.authModule.logger.error("Cache credential could not be parsed"),this.authModule.logger.errorPii(`Cache credential could not be parsed: ${e}`)}return null}}class vo extends Co{constructor(e,t,r,o,n,i){super(e,t,r,o,i),this.browserCrypto=n}async initiateAuthRequest(e,t){if(this.logger.verbose("RedirectHandler.initiateAuthRequest called"),ct.isEmpty(e))throw this.logger.info("RedirectHandler.initiateAuthRequest: Navigate url is empty"),qr.createEmptyNavigationUriError();{t.redirectStartPage&&(this.logger.verbose("RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page"),this.browserStorage.setTemporaryCache(Qr.ORIGIN_URI,t.redirectStartPage,!0)),this.browserStorage.setTemporaryCache(Qr.CORRELATION_ID,this.authCodeRequest.correlationId,!0),this.browserStorage.cacheCodeRequest(this.authCodeRequest,this.browserCrypto),this.logger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${e}`);const r={apiId:Jr.acquireTokenRedirect,timeout:t.redirectTimeout,noHistory:!1};if("function"==typeof t.onRedirectNavigate){this.logger.verbose("RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback");return!1!==t.onRedirectNavigate(e)?(this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating"),void await t.navigationClient.navigateExternal(e,r)):void this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation")}return this.logger.verbose("RedirectHandler.initiateAuthRequest: Navigating window to navigate url"),void await t.navigationClient.navigateExternal(e,r)}}async handleCodeResponseFromHash(e,t,r,o){if(this.logger.verbose("RedirectHandler.handleCodeResponse called"),ct.isEmpty(e))throw qr.createEmptyHashError();this.browserStorage.setInteractionInProgress(!1);const n=this.browserStorage.generateStateKey(t),i=this.browserStorage.getTemporaryCache(n);if(!i)throw st.createStateNotFoundError("Cached State");let a;try{a=this.authModule.handleFragmentResponse(e,i)}catch(e){throw e instanceof Lt&&e.subError===Or.userCancelledError.code?qr.createUserCancelledError():e}const s=this.browserStorage.generateNonceKey(i),c=this.browserStorage.getTemporaryCache(s);if(this.authCodeRequest.code=a.code,a.cloud_instance_host_name&&await this.updateTokenEndpointAuthority(a.cloud_instance_host_name,r,o),a.nonce=c||void 0,a.state=i,a.client_info)this.authCodeRequest.clientInfo=a.client_info;else{const e=this.checkCcsCredentials();e&&(this.authCodeRequest.ccsCredential=e)}const d=await this.authModule.acquireToken(this.authCodeRequest,a);return this.browserStorage.cleanRequestByState(t),d}}const wo={INITIALIZE_START:"msal:initializeStart",INITIALIZE_END:"msal:initializeEnd",ACCOUNT_ADDED:"msal:accountAdded",ACCOUNT_REMOVED:"msal:accountRemoved",LOGIN_START:"msal:loginStart",LOGIN_SUCCESS:"msal:loginSuccess",LOGIN_FAILURE:"msal:loginFailure",ACQUIRE_TOKEN_START:"msal:acquireTokenStart",ACQUIRE_TOKEN_SUCCESS:"msal:acquireTokenSuccess",ACQUIRE_TOKEN_FAILURE:"msal:acquireTokenFailure",ACQUIRE_TOKEN_NETWORK_START:"msal:acquireTokenFromNetworkStart",SSO_SILENT_START:"msal:ssoSilentStart",SSO_SILENT_SUCCESS:"msal:ssoSilentSuccess",SSO_SILENT_FAILURE:"msal:ssoSilentFailure",ACQUIRE_TOKEN_BY_CODE_START:"msal:acquireTokenByCodeStart",ACQUIRE_TOKEN_BY_CODE_SUCCESS:"msal:acquireTokenByCodeSuccess",ACQUIRE_TOKEN_BY_CODE_FAILURE:"msal:acquireTokenByCodeFailure",HANDLE_REDIRECT_START:"msal:handleRedirectStart",HANDLE_REDIRECT_END:"msal:handleRedirectEnd",POPUP_OPENED:"msal:popupOpened",LOGOUT_START:"msal:logoutStart",LOGOUT_SUCCESS:"msal:logoutSuccess",LOGOUT_FAILURE:"msal:logoutFailure",LOGOUT_END:"msal:logoutEnd",RESTORE_FROM_BFCACHE:"msal:restoreFromBFCache"},To="USER_INTERACTION_REQUIRED",Io="USER_CANCEL",Eo="NO_NETWORK",_o="PERSISTENT_ERROR",ko="DISABLED",So="ACCOUNT_UNAVAILABLE",Ao={code:"ContentError"},bo={code:"user_switch",desc:"User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again."},Ro={code:"tokens_not_found_in_internal_memory_cache",desc:"Tokens not cached in MSAL JS internal memory, please make the WAM request"};class Po extends nt{constructor(e,t,r){super(e,t),Object.setPrototypeOf(this,Po.prototype),this.name="NativeAuthError",this.ext=r}isFatal(){return!(!this.ext||!this.ext.status||this.ext.status!==_o&&this.ext.status!==ko)||(!(!this.ext||!this.ext.error||-2147186943!==this.ext.error)||this.errorCode===Ao.code)}static createError(e,t,r){if(r&&r.status)switch(r.status){case So:return Zt.createNativeAccountUnavailableError();case To:return new Zt(e,t);case Io:return qr.createUserCancelledError();case Eo:return qr.createNoNetworkConnectivityError()}return new Po(e,t,r)}static createUserSwitchError(){return new Po(bo.code,bo.desc)}static createTokensNotFoundInCacheError(){return new Po(Ro.code,Ro.desc)}}class Mo extends yo{async acquireToken(e){const t=this.performanceClient.startMeasurement(or.SilentCacheClientAcquireToken,e.correlationId),r=this.initializeServerTelemetryManager(Jr.acquireTokenSilent_silentFlow),o=await this.createSilentFlowClient(r,e.authority,e.azureCloudOptions);this.logger.verbose("Silent auth client created");try{const r=await o.acquireCachedToken(e);return t.end({success:!0,fromCache:!0}),r}catch(e){throw e instanceof qr&&e.errorCode===Or.signingKeyNotFoundInStorage.code&&this.logger.verbose("Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair."),t.end({errorCode:e instanceof nt&&e.errorCode||void 0,subErrorCode:e instanceof nt&&e.subError||void 0,success:!1}),e}}logout(){return Promise.reject(qr.createSilentLogoutUnsupportedError())}async createSilentFlowClient(e,t,r){this.performanceClient.setPreQueueTime(or.StandardInteractionClientGetClientConfiguration,this.correlationId);const o=await this.getClientConfiguration(e,t,r);return new pr(o,this.performanceClient)}async initializeSilentRequest(e,t){return this.performanceClient.addQueueMeasurement(or.InitializeSilentRequest,this.correlationId),this.performanceClient.setPreQueueTime(or.InitializeBaseRequest,this.correlationId),{...e,...await this.initializeBaseRequest(e,t),account:t,forceRefresh:e.forceRefresh||!1}}}const No="brk_client_id",Oo="brk_redirect_uri";class qo extends fo{constructor(e,t,r,o,n,i,a,s,c,d,l,h){super(e,t,r,o,n,i,s,c,h),this.apiId=a,this.accountId=d,this.nativeMessageHandler=c,this.nativeStorageManager=l,this.silentCacheClient=new Mo(e,this.nativeStorageManager,r,o,n,i,s,c,h)}async acquireToken(e){this.logger.trace("NativeInteractionClient - acquireToken called.");const t=this.performanceClient.startMeasurement(or.NativeInteractionClientAcquireToken,e.correlationId),r=jt.nowSeconds(),o=await this.initializeNativeRequest(e);try{const e=await this.acquireTokensFromCache(this.accountId,o);return t.end({success:!0,isNativeBroker:!1,fromCache:!0}),e}catch(e){this.logger.info("MSAL internal Cache does not contain tokens, proceed to make a native call")}const n={method:Br,request:o},i=await this.nativeMessageHandler.sendMessage(n),a=this.validateNativeResponse(i);return this.handleNativeResponse(a,o,r).then((e=>(t.end({success:!0,isNativeBroker:!0,requestId:e.requestId}),e))).catch((e=>{throw t.end({success:!1,errorCode:e.errorCode,subErrorCode:e.subError,isNativeBroker:!0}),e}))}createSilentCacheRequest(e,t){return{authority:e.authority,correlationId:this.correlationId,scopes:ft.fromString(e.scope).asArray(),account:t,forceRefresh:!1}}async acquireTokensFromCache(e,t){if(!e)throw this.logger.warning("NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided"),st.createNoAccountFoundError();const r=this.browserStorage.getAccountInfoFilteredBy({nativeAccountId:e});if(!r)throw st.createNoAccountFoundError();try{const e=this.createSilentCacheRequest(t,r);return{...await this.silentCacheClient.acquireToken(e),account:r}}catch(e){throw e}}async acquireTokenRedirect(e){this.logger.trace("NativeInteractionClient - acquireTokenRedirect called.");const t=await this.initializeNativeRequest(e),r={method:Br,request:t};try{const e=await this.nativeMessageHandler.sendMessage(r);this.validateNativeResponse(e)}catch(e){if(e instanceof Po&&e.isFatal())throw e}this.browserStorage.setTemporaryCache(Qr.NATIVE_REQUEST,JSON.stringify(t),!0);const o={apiId:Jr.acquireTokenRedirect,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},n=this.config.auth.navigateToLoginRequestUrl?window.location.href:this.getRedirectUri(e.redirectUri);await this.navigationClient.navigateExternal(n,o)}async handleRedirectPromise(){if(this.logger.trace("NativeInteractionClient - handleRedirectPromise called."),!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;const e=this.browserStorage.getCachedNativeRequest();if(!e)return this.logger.verbose("NativeInteractionClient - handleRedirectPromise called but there is no cached request, returning null."),null;const{prompt:t,...r}=e;t&&this.logger.verbose("NativeInteractionClient - handleRedirectPromise called and prompt was included in the original request, removing prompt from cached request to prevent second interaction with native broker window."),this.browserStorage.removeItem(this.browserStorage.generateCacheKey(Qr.NATIVE_REQUEST));const o={method:Br,request:r},n=jt.nowSeconds();try{this.logger.verbose("NativeInteractionClient - handleRedirectPromise sending message to native broker.");const e=await this.nativeMessageHandler.sendMessage(o);this.validateNativeResponse(e);const t=this.handleNativeResponse(e,r,n);return this.browserStorage.setInteractionInProgress(!1),t}catch(e){throw this.browserStorage.setInteractionInProgress(!1),e}}logout(){return this.logger.trace("NativeInteractionClient - logout called."),Promise.reject("Logout not implemented yet")}async handleNativeResponse(e,t,r){if(this.logger.trace("NativeInteractionClient - handleNativeResponse called."),e.account.id!==t.accountId)throw Po.createUserSwitchError();const o=await this.getDiscoveredAuthority(t.authority),n=this.createIdTokenObj(e),i=this.createHomeAccountIdentifier(e,n),a=_t.createAccount({homeAccountId:i,idTokenClaims:n.claims,clientInfo:e.client_info,nativeAccountId:e.account.id},o),s=await this.generateAuthenticationResult(e,t,n,a,o.canonicalAuthority,r);return this.cacheAccount(a),this.cacheNativeTokens(e,t,i,n,s.accessToken,s.tenantId,r),s}createIdTokenObj(e){return new kt(e.id_token||t.EMPTY_STRING,this.browserCrypto)}createHomeAccountIdentifier(e,r){return _t.generateHomeAccountId(e.client_info||t.EMPTY_STRING,vt,this.logger,this.browserCrypto,r.claims)}generateScopes(e,t){return e.scope?ft.fromString(e.scope):ft.fromString(t.scope)}async generatePopAccessToken(e,t){if(t.tokenType===qe.POP){if(e.shr)return this.logger.trace("handleNativeServerResponse: SHR is enabled in native layer"),e.shr;const r=new cr(this.browserCrypto),o={resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,shrNonce:t.shrNonce};if(!t.keyId)throw st.createKeyIdMissingError();return await r.signPopToken(e.access_token,t.keyId,o)}return e.access_token}async generateAuthenticationResult(e,r,o,n,i,a){const s=this.addTelemetryFromNativeResponse(e),c=e.scope?ft.fromString(e.scope):ft.fromString(r.scope),d=e.account.properties||{},l=d.UID||o.claims.oid||o.claims.sub||t.EMPTY_STRING,h=d.TenantId||o.claims.tid||t.EMPTY_STRING,u=await this.generatePopAccessToken(e,r),g=r.tokenType===qe.POP?qe.POP:qe.BEARER;return{authority:i,uniqueId:l,tenantId:h,scopes:c.asArray(),account:n.getAccountInfo(),idToken:e.id_token,idTokenClaims:o.claims,accessToken:u,fromCache:!!s&&this.isResponseFromCache(s),expiresOn:new Date(1e3*Number(a+e.expires_in)),tokenType:g,correlationId:this.correlationId,state:e.state,fromNativeBroker:!0}}cacheAccount(e){this.browserStorage.setAccount(e),this.browserStorage.removeAccountContext(e).catch((e=>{this.logger.error(`Error occurred while removing account context from browser storage. ${e}`)}))}cacheNativeTokens(e,r,o,n,i,a,s){const c=Qt.createIdTokenEntity(o,r.authority,e.id_token||t.EMPTY_STRING,r.clientId,n.claims.tid||t.EMPTY_STRING),d=s+(r.tokenType===qe.POP?t.SHR_NONCE_VALIDITY:("string"==typeof e.expires_in?parseInt(e.expires_in,10):e.expires_in)||0),l=this.generateScopes(e,r),h=Yt.createAccessTokenEntity(o,r.authority,i,r.clientId,n?n.claims.tid||t.EMPTY_STRING:a,l.printScopes(),d,0,this.browserCrypto),u=new er(void 0,c,h);this.nativeStorageManager.saveCacheRecord(u,r.storeInCache)}addTelemetryFromNativeResponse(e){const t=this.getMATSFromResponse(e);return t?(this.performanceClient.addFields({extensionId:this.nativeMessageHandler.getExtensionId(),extensionVersion:this.nativeMessageHandler.getExtensionVersion(),matsBrokerVersion:t.broker_version,matsAccountJoinOnStart:t.account_join_on_start,matsAccountJoinOnEnd:t.account_join_on_end,matsDeviceJoin:t.device_join,matsPromptBehavior:t.prompt_behavior,matsApiErrorCode:t.api_error_code,matsUiVisible:t.ui_visible,matsSilentCode:t.silent_code,matsSilentBiSubCode:t.silent_bi_sub_code,matsSilentMessage:t.silent_message,matsSilentStatus:t.silent_status,matsHttpStatus:t.http_status,matsHttpEventCount:t.http_event_count},this.correlationId),t):null}validateNativeResponse(e){if(e.hasOwnProperty("access_token")&&e.hasOwnProperty("id_token")&&e.hasOwnProperty("client_info")&&e.hasOwnProperty("account")&&e.hasOwnProperty("scope")&&e.hasOwnProperty("expires_in"))return e;throw Po.createUnexpectedError("Response missing expected properties.")}getMATSFromResponse(e){if(e.properties.MATS)try{return JSON.parse(e.properties.MATS)}catch(e){this.logger.error("NativeInteractionClient - Error parsing MATS telemetry, returning null instead")}return null}isResponseFromCache(e){return void 0===e.is_cached?(this.logger.verbose("NativeInteractionClient - MATS telemetry does not contain field indicating if response was served from cache. Returning false."),!1):!!e.is_cached}async initializeNativeRequest(e){this.logger.trace("NativeInteractionClient - initializeNativeRequest called");const t=e.authority||this.config.auth.authority;e.account&&await this.validateRequestAuthority(t,e.account);const o=new rr(t);o.validateAsUri();const{scopes:n,...i}=e,a=new ft(n||[]);a.appendScopes(r);const s={...i,accountId:this.accountId,clientId:this.config.auth.clientId,authority:o.urlString,scope:a.printScopes(),redirectUri:this.getRedirectUri(e.redirectUri),prompt:(()=>{switch(this.apiId){case Jr.ssoSilent:case Jr.acquireTokenSilent_silentFlow:return this.logger.trace("initializeNativeRequest: silent request sets prompt to none"),se.NONE}if(e.prompt)switch(e.prompt){case se.NONE:case se.CONSENT:case se.LOGIN:return this.logger.trace("initializeNativeRequest: prompt is compatible with native flow"),e.prompt;default:throw this.logger.trace(`initializeNativeRequest: prompt = ${e.prompt} is not compatible with native flow`),qr.createNativePromptParameterNotSupportedError()}else this.logger.trace("initializeNativeRequest: prompt was not provided")})(),correlationId:this.correlationId,tokenType:e.authenticationScheme,windowTitleSubstring:document.title,extraParameters:{...e.extraQueryParameters,...e.tokenQueryParameters},extendedExpiryToken:!1};if(this.handleExtraBrokerParams(s),s.extraParameters=s.extraParameters||{},s.extraParameters.telemetry=xr,e.authenticationScheme===qe.POP){const t={resourceRequestUri:e.resourceRequestUri,resourceRequestMethod:e.resourceRequestMethod,shrClaims:e.shrClaims,shrNonce:e.shrNonce},r=new cr(this.browserCrypto),o=await r.generateCnf(t);s.reqCnf=o.reqCnfHash,s.keyId=o.kid}return s}handleExtraBrokerParams(e){if(e.extraParameters&&e.extraParameters.hasOwnProperty(No)&&e.extraParameters.hasOwnProperty(Oo)&&e.extraParameters.hasOwnProperty(T)){const t=e.extraParameters[T],r=e.redirectUri,o=e.extraParameters[Oo];e.extraParameters={child_client_id:t,child_redirect_uri:r},e.redirectUri=o}}}class Uo{constructor(e,t,r,o,n){this.logger=e,this.handshakeTimeoutMs=t,this.extensionId=n,this.resolvers=new Map,this.handshakeResolvers=new Map,this.messageChannel=new MessageChannel,this.windowListener=this.onWindowMessage.bind(this),this.performanceClient=r,this.handshakeEvent=r.startMeasurement(or.NativeMessageHandlerHandshake),this.crypto=o}async sendMessage(e){this.logger.trace("NativeMessageHandler - sendMessage called.");const t={channel:Hr,extensionId:this.extensionId,responseId:this.crypto.createNewGuid(),body:e};return this.logger.trace("NativeMessageHandler - Sending request to browser extension"),this.logger.tracePii(`NativeMessageHandler - Sending request to browser extension: ${JSON.stringify(t)}`),this.messageChannel.port1.postMessage(t),new Promise(((e,r)=>{this.resolvers.set(t.responseId,{resolve:e,reject:r})}))}static async createProvider(e,t,r,o){e.trace("NativeMessageHandler - createProvider called.");try{const n=new Uo(e,t,r,o,Lr);return await n.sendHandshakeRequest(),n}catch(n){const i=new Uo(e,t,r,o);return await i.sendHandshakeRequest(),i}}async sendHandshakeRequest(){this.logger.trace("NativeMessageHandler - sendHandshakeRequest called."),window.addEventListener("message",this.windowListener,!1);const e={channel:Hr,extensionId:this.extensionId,responseId:this.crypto.createNewGuid(),body:{method:Dr}};return this.handshakeEvent.add({extensionId:this.extensionId,extensionHandshakeTimeoutMs:this.handshakeTimeoutMs}),this.messageChannel.port1.onmessage=e=>{this.onChannelMessage(e)},window.postMessage(e,window.origin,[this.messageChannel.port2]),new Promise(((t,r)=>{this.handshakeResolvers.set(e.responseId,{resolve:t,reject:r}),this.timeoutId=window.setTimeout((()=>{window.removeEventListener("message",this.windowListener,!1),this.messageChannel.port1.close(),this.messageChannel.port2.close(),this.handshakeEvent.end({extensionHandshakeTimedOut:!0,success:!1}),r(qr.createNativeHandshakeTimeoutError()),this.handshakeResolvers.delete(e.responseId)}),this.handshakeTimeoutMs)}))}onWindowMessage(e){if(this.logger.trace("NativeMessageHandler - onWindowMessage called"),e.source!==window)return;const t=e.data;if(t.channel&&t.channel===Hr&&(!t.extensionId||t.extensionId===this.extensionId)&&t.body.method===Dr){const e=this.handshakeResolvers.get(t.responseId);if(!e)return void this.logger.trace(`NativeMessageHandler.onWindowMessage - resolver can't be found for request ${t.responseId}`);this.logger.verbose(t.extensionId?`Extension with id: ${t.extensionId} not installed`:"No extension installed"),clearTimeout(this.timeoutId),this.messageChannel.port1.close(),this.messageChannel.port2.close(),window.removeEventListener("message",this.windowListener,!1),this.handshakeEvent.end({success:!1,extensionInstalled:!1}),e.reject(qr.createNativeExtensionNotInstalledError())}}onChannelMessage(e){this.logger.trace("NativeMessageHandler - onChannelMessage called.");const t=e.data,r=this.resolvers.get(t.responseId),o=this.handshakeResolvers.get(t.responseId);try{const e=t.body.method;if(e===Kr){if(!r)return;const e=t.body.response;if(this.logger.trace("NativeMessageHandler - Received response from browser extension"),this.logger.tracePii(`NativeMessageHandler - Received response from browser extension: ${JSON.stringify(e)}`),"Success"!==e.status)r.reject(Po.createError(e.code,e.description,e.ext));else{if(!e.result)throw nt.createUnexpectedError("Event does not contain result.");e.result.code&&e.result.description?r.reject(Po.createError(e.result.code,e.result.description,e.result.ext)):r.resolve(e.result)}this.resolvers.delete(t.responseId)}else if(e===Fr){if(!o)return void this.logger.trace(`NativeMessageHandler.onChannelMessage - resolver can't be found for request ${t.responseId}`);clearTimeout(this.timeoutId),window.removeEventListener("message",this.windowListener,!1),this.extensionId=t.extensionId,this.extensionVersion=t.body.version,this.logger.verbose(`NativeMessageHandler - Received HandshakeResponse from extension: ${this.extensionId}`),this.handshakeEvent.end({extensionInstalled:!0,success:!0}),o.resolve(),this.handshakeResolvers.delete(t.responseId)}}catch(t){this.logger.error("Error parsing response from WAM Extension"),this.logger.errorPii(`Error parsing response from WAM Extension: ${t}`),this.logger.errorPii(`Unable to parse ${e}`),r?r.reject(t):o&&o.reject(t)}}getExtensionId(){return this.extensionId}getExtensionVersion(){return this.extensionVersion}static isNativeAvailable(e,t,r,o){if(t.trace("isNativeAvailable called"),!e.system.allowNativeBroker)return t.trace("isNativeAvailable: allowNativeBroker is not enabled, returning false"),!1;if(!r)return t.trace("isNativeAvailable: WAM extension provider is not initialized, returning false"),!1;if(o)switch(o){case qe.BEARER:case qe.POP:return t.trace("isNativeAvailable: authenticationScheme is supported, returning true"),!0;default:return t.trace("isNativeAvailable: authenticationScheme is not supported, returning false"),!1}return!0}}class Ho extends yo{constructor(e,t,r,o,n,i,a,s,c,d){super(e,t,r,o,n,i,a,c,d),this.nativeStorage=s}async acquireToken(r){this.performanceClient.setPreQueueTime(or.StandardInteractionClientInitializeAuthorizationRequest,r.correlationId);const o=await this.initializeAuthorizationRequest(r,e.InteractionType.Redirect);this.browserStorage.updateCacheEntries(o.state,o.nonce,o.authority,o.loginHint||t.EMPTY_STRING,o.account||null);const n=this.initializeServerTelemetryManager(Jr.acquireTokenRedirect),i=t=>{t.persisted&&(this.logger.verbose("Page was restored from back/forward cache. Clearing temporary cache."),this.browserStorage.cleanRequestByState(o.state),this.eventHandler.emitEvent(wo.RESTORE_FROM_BFCACHE,e.InteractionType.Redirect))};try{this.performanceClient.setPreQueueTime(or.StandardInteractionClientInitializeAuthorizationCodeRequest,r.correlationId);const e=await this.initializeAuthorizationCodeRequest(o);this.performanceClient.setPreQueueTime(or.StandardInteractionClientCreateAuthCodeClient,r.correlationId);const t=await this.createAuthCodeClient(n,o.authority,o.azureCloudOptions);this.logger.verbose("Auth code client created");const a=new vo(t,this.browserStorage,e,this.logger,this.browserCrypto,this.performanceClient),s=await t.getAuthCodeUrl({...o,nativeBroker:Uo.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,r.authenticationScheme)}),c=this.getRedirectStartPage(r.redirectStartPage);return this.logger.verbosePii(`Redirect start page: ${c}`),window.addEventListener("pageshow",i),await a.initiateAuthRequest(s,{navigationClient:this.navigationClient,redirectTimeout:this.config.system.redirectNavigationTimeout,redirectStartPage:c,onRedirectNavigate:r.onRedirectNavigate})}catch(e){throw e instanceof nt&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),window.removeEventListener("pageshow",i),this.browserStorage.cleanRequestByState(o.state),e}}async handleRedirectPromise(r){const o=this.initializeServerTelemetryManager(Jr.handleRedirectPromise);try{if(!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;const n=this.getRedirectResponseHash(r||window.location.hash);if(!n)return this.logger.info("handleRedirectPromise did not detect a response hash as a result of a redirect. Cleaning temporary cache."),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),null;let i;try{const t=rr.getDeserializedHash(n);i=this.validateAndExtractStateFromHash(t,e.InteractionType.Redirect),this.logger.verbose("State extracted from hash")}catch(t){return this.logger.info(`handleRedirectPromise was unable to extract state due to: ${t}`),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),null}const a=this.browserStorage.getTemporaryCache(Qr.ORIGIN_URI,!0)||t.EMPTY_STRING,s=rr.removeHashFromUrl(a);if(s===rr.removeHashFromUrl(window.location.href)&&this.config.auth.navigateToLoginRequestUrl){this.logger.verbose("Current page is loginRequestUrl, handling hash");const e=await this.handleHash(n,i,o);return a.indexOf("#")>-1&&mo.replaceHash(a),e}if(!this.config.auth.navigateToLoginRequestUrl)return this.logger.verbose("NavigateToLoginRequestUrl set to false, handling hash"),this.handleHash(n,i,o);if(!mo.isInIframe()||this.config.system.allowRedirectInIframe){this.browserStorage.setTemporaryCache(Qr.URL_HASH,n,!0);const e={apiId:Jr.handleRedirectPromise,timeout:this.config.system.redirectNavigationTimeout,noHistory:!0};let t=!0;if(a&&"null"!==a)this.logger.verbose(`Navigating to loginRequestUrl: ${a}`),t=await this.navigationClient.navigateInternal(a,e);else{const r=mo.getHomepage();this.browserStorage.setTemporaryCache(Qr.ORIGIN_URI,r,!0),this.logger.warning("Unable to get valid login request url from cache, redirecting to home page"),t=await this.navigationClient.navigateInternal(r,e)}if(!t)return this.handleHash(n,i,o)}return null}catch(t){throw t instanceof nt&&(t.setCorrelationId(this.correlationId),o.cacheFailedRequest(t)),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),t}}getRedirectResponseHash(e){this.logger.verbose("getRedirectResponseHash called");if(rr.hashContainsKnownProperties(e))return mo.clearHash(window),this.logger.verbose("Hash contains known properties, returning response hash"),e;const t=this.browserStorage.getTemporaryCache(Qr.URL_HASH,!0);return this.browserStorage.removeItem(this.browserStorage.generateCacheKey(Qr.URL_HASH)),this.logger.verbose("Hash does not contain known properties, returning cached hash"),t}async handleHash(e,t,r){const o=this.browserStorage.getCachedRequest(t,this.browserCrypto);this.logger.verbose("handleHash called, retrieved cached request");const n=rr.getDeserializedHash(e);if(n.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw qr.createNativeConnectionNotEstablishedError();const e=new qo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Jr.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,n.accountId,this.nativeStorage,o.correlationId),{userRequestState:r}=tr.parseRequestState(this.browserCrypto,t);return e.acquireToken({...o,state:r,prompt:void 0}).finally((()=>{this.browserStorage.cleanRequestByState(t)}))}const i=this.browserStorage.getCachedAuthority(t);if(!i)throw qr.createNoCachedAuthorityError();this.performanceClient.setPreQueueTime(or.StandardInteractionClientCreateAuthCodeClient,o.correlationId);const a=await this.createAuthCodeClient(r,i);this.logger.verbose("Auth code client created"),xt.removeThrottle(this.browserStorage,this.config.auth.clientId,o);const s=new vo(a,this.browserStorage,o,this.logger,this.browserCrypto,this.performanceClient);return await s.handleCodeResponseFromHash(e,t,a.authority,this.networkClient)}async logout(t){this.logger.verbose("logoutRedirect called");const r=this.initializeLogoutRequest(t),o=this.initializeServerTelemetryManager(Jr.logout);try{this.eventHandler.emitEvent(wo.LOGOUT_START,e.InteractionType.Redirect,t),await this.clearCacheOnLogout(r.account);const n={apiId:Jr.logout,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1};this.performanceClient.setPreQueueTime(or.StandardInteractionClientCreateAuthCodeClient,r.correlationId);const i=await this.createAuthCodeClient(o,t&&t.authority);if(this.logger.verbose("Auth code client created"),i.authority.protocolMode===Et.OIDC)try{i.authority.endSessionEndpoint}catch{if(r.account?.homeAccountId)return this.browserStorage.removeAccount(r.account?.homeAccountId),void this.eventHandler.emitEvent(wo.LOGOUT_SUCCESS,e.InteractionType.Redirect,r)}const a=i.getLogoutUri(r);if(this.eventHandler.emitEvent(wo.LOGOUT_SUCCESS,e.InteractionType.Redirect,r),!t||"function"!=typeof t.onRedirectNavigate)return this.browserStorage.getInteractionInProgress()||this.browserStorage.setInteractionInProgress(!0),void await this.navigationClient.navigateExternal(a,n);if(!1!==t.onRedirectNavigate(a))return this.logger.verbose("Logout onRedirectNavigate did not return false, navigating"),this.browserStorage.getInteractionInProgress()||this.browserStorage.setInteractionInProgress(!0),void await this.navigationClient.navigateExternal(a,n);this.browserStorage.setInteractionInProgress(!1),this.logger.verbose("Logout onRedirectNavigate returned false, stopping navigation")}catch(t){throw t instanceof nt&&(t.setCorrelationId(this.correlationId),o.cacheFailedRequest(t)),this.eventHandler.emitEvent(wo.LOGOUT_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent(wo.LOGOUT_END,e.InteractionType.Redirect),t}this.eventHandler.emitEvent(wo.LOGOUT_END,e.InteractionType.Redirect)}getRedirectStartPage(e){const t=e||window.location.href;return rr.getAbsoluteUrl(t,mo.getCurrentUri())}}class Lo extends yo{constructor(e,t,r,o,n,i,a,s,c,d){super(e,t,r,o,n,i,a,c,d),this.unloadWindow=this.unloadWindow.bind(this),this.nativeStorage=s}acquireToken(e){try{const t=this.generatePopupName(e.scopes||r,e.authority||this.config.auth.authority),o=e.popupWindowAttributes||{};if(this.config.system.asyncPopups)return this.logger.verbose("asyncPopups set to true, acquiring token"),this.acquireTokenPopupAsync(e,t,o);{this.logger.verbose("asyncPopup set to false, opening popup before acquiring token");const r=this.openSizedPopup("about:blank",t,o);return this.acquireTokenPopupAsync(e,t,o,r)}}catch(e){return Promise.reject(e)}}logout(e){try{this.logger.verbose("logoutPopup called");const t=this.initializeLogoutRequest(e),r=this.generateLogoutPopupName(t),o=e&&e.authority,n=e&&e.mainWindowRedirectUri,i=e?.popupWindowAttributes||{};if(this.config.system.asyncPopups)return this.logger.verbose("asyncPopups set to true"),this.logoutPopupAsync(t,r,i,o,void 0,n);{this.logger.verbose("asyncPopup set to false, opening popup");const e=this.openSizedPopup("about:blank",r,i);return this.logoutPopupAsync(t,r,i,o,e,n)}}catch(e){return Promise.reject(e)}}async acquireTokenPopupAsync(r,o,n,i){this.logger.verbose("acquireTokenPopupAsync called");const a=this.initializeServerTelemetryManager(Jr.acquireTokenPopup);this.performanceClient.setPreQueueTime(or.StandardInteractionClientInitializeAuthorizationRequest,r.correlationId);const s=await this.initializeAuthorizationRequest(r,e.InteractionType.Popup);this.browserStorage.updateCacheEntries(s.state,s.nonce,s.authority,s.loginHint||t.EMPTY_STRING,s.account||null);try{this.performanceClient.setPreQueueTime(or.StandardInteractionClientInitializeAuthorizationCodeRequest,r.correlationId);const t=await this.initializeAuthorizationCodeRequest(s);this.performanceClient.setPreQueueTime(or.StandardInteractionClientCreateAuthCodeClient,r.correlationId);const c=await this.createAuthCodeClient(a,s.authority,s.azureCloudOptions);this.logger.verbose("Auth code client created");const d=Uo.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,r.authenticationScheme);let l;d&&(l=this.performanceClient.startMeasurement(or.FetchAccountIdWithNativeBroker,r.correlationId));const h=await c.getAuthCodeUrl({...s,nativeBroker:d}),u=new Co(c,this.browserStorage,t,this.logger,this.performanceClient),g={popup:i,popupName:o,popupWindowAttributes:n},p=this.initiateAuthRequest(h,g);this.eventHandler.emitEvent(wo.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:p},null);const m=await this.monitorPopupForHash(p),f=rr.getDeserializedHash(m),y=this.validateAndExtractStateFromHash(f,e.InteractionType.Popup,s.correlationId);if(xt.removeThrottle(this.browserStorage,this.config.auth.clientId,t),f.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),l&&l.end({success:!0,isNativeBroker:!0}),!this.nativeMessageHandler)throw qr.createNativeConnectionNotEstablishedError();const e=new qo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Jr.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,f.accountId,this.nativeStorage,s.correlationId),{userRequestState:t}=tr.parseRequestState(this.browserCrypto,y);return e.acquireToken({...s,state:t,prompt:void 0}).finally((()=>{this.browserStorage.cleanRequestByState(y)}))}return await u.handleCodeResponseFromHash(m,y,c.authority,this.networkClient)}catch(e){throw i&&i.close(),e instanceof nt&&(e.setCorrelationId(this.correlationId),a.cacheFailedRequest(e)),this.browserStorage.cleanRequestByState(s.state),e}}async logoutPopupAsync(t,r,o,n,i,a){this.logger.verbose("logoutPopupAsync called"),this.eventHandler.emitEvent(wo.LOGOUT_START,e.InteractionType.Popup,t);const s=this.initializeServerTelemetryManager(Jr.logoutPopup);try{await this.clearCacheOnLogout(t.account),this.performanceClient.setPreQueueTime(or.StandardInteractionClientCreateAuthCodeClient,t.correlationId);const c=await this.createAuthCodeClient(s,n);this.logger.verbose("Auth code client created");try{c.authority.endSessionEndpoint}catch{if(t.account?.homeAccountId&&t.postLogoutRedirectUri&&c.authority.protocolMode===Et.OIDC){if(this.browserStorage.removeAccount(t.account?.homeAccountId),this.eventHandler.emitEvent(wo.LOGOUT_SUCCESS,e.InteractionType.Popup,t),a){const e={apiId:Jr.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=rr.getAbsoluteUrl(a,mo.getCurrentUri());await this.navigationClient.navigateInternal(t,e)}return void(i&&i.close())}}const d=c.getLogoutUri(t);this.eventHandler.emitEvent(wo.LOGOUT_SUCCESS,e.InteractionType.Popup,t);const l=this.openPopup(d,{popupName:r,popupWindowAttributes:o,popup:i});if(this.eventHandler.emitEvent(wo.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:l},null),await this.waitForLogoutPopup(l),a){const e={apiId:Jr.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=rr.getAbsoluteUrl(a,mo.getCurrentUri());this.logger.verbose("Redirecting main window to url specified in the request"),this.logger.verbosePii(`Redirecting main window to: ${t}`),this.navigationClient.navigateInternal(t,e)}else this.logger.verbose("No main window navigation requested")}catch(t){throw i&&i.close(),t instanceof nt&&(t.setCorrelationId(this.correlationId),s.cacheFailedRequest(t)),this.browserStorage.setInteractionInProgress(!1),this.eventHandler.emitEvent(wo.LOGOUT_FAILURE,e.InteractionType.Popup,null,t),this.eventHandler.emitEvent(wo.LOGOUT_END,e.InteractionType.Popup),t}this.eventHandler.emitEvent(wo.LOGOUT_END,e.InteractionType.Popup)}initiateAuthRequest(e,t){if(ct.isEmpty(e))throw this.logger.error("Navigate url is empty"),qr.createEmptyNavigationUriError();return this.logger.infoPii(`Navigate to: ${e}`),this.openPopup(e,t)}monitorPopupForHash(e){return new Promise(((r,o)=>{const n=this.config.system.windowHashTimeout/this.config.system.pollIntervalMilliseconds;let i=0;this.logger.verbose("PopupHandler.monitorPopupForHash - polling started");const a=setInterval((()=>{if(e.closed)return this.logger.error("PopupHandler.monitorPopupForHash - window closed"),this.cleanPopup(),clearInterval(a),void o(qr.createUserCancelledError());let s=t.EMPTY_STRING,c=t.EMPTY_STRING;try{s=e.location.href,c=this.extractServerResponseStringFromPopup(e,s)}catch(e){}ct.isEmpty(s)||"about:blank"===s||(this.logger.verbose("PopupHandler.monitorPopupForHash - popup window is on same origin as caller"),i++,c?(this.logger.verbose("PopupHandler.monitorPopupForHash - found hash in url"),clearInterval(a),this.cleanPopup(e),rr.hashContainsKnownProperties(c)?(this.logger.verbose("PopupHandler.monitorPopupForHash - hash contains known properties, returning."),r(c)):(this.logger.error("PopupHandler.monitorPopupForHash - found hash in url but it does not contain known properties. Check that your router is not changing the hash prematurely."),this.logger.errorPii(`PopupHandler.monitorPopupForHash - hash found: ${c}`),o(qr.createHashDoesNotContainKnownPropertiesError()))):i>n&&(this.logger.error("PopupHandler.monitorPopupForHash - unable to find hash in url, timing out"),clearInterval(a),o(qr.createMonitorPopupTimeoutError())))}),this.config.system.pollIntervalMilliseconds)}))}waitForLogoutPopup(e){return new Promise((r=>{this.logger.verbose("PopupHandler.waitForLogoutPopup - polling started");const o=setInterval((()=>{e.closed&&(this.logger.error("PopupHandler.waitForLogoutPopup - window closed"),this.cleanPopup(),clearInterval(o),r());let n=t.EMPTY_STRING;try{n=e.location.href}catch(e){}ct.isEmpty(n)||"about:blank"===n||(this.logger.verbose("PopupHandler.waitForLogoutPopup - popup window is on same origin as caller, closing."),clearInterval(o),this.cleanPopup(e),r())}),this.config.system.pollIntervalMilliseconds)}))}openPopup(e,t){try{let r;if(t.popup?(r=t.popup,this.logger.verbosePii(`Navigating popup window to: ${e}`),r.location.assign(e)):void 0===t.popup&&(this.logger.verbosePii(`Opening popup window to: ${e}`),r=this.openSizedPopup(e,t.popupName,t.popupWindowAttributes)),!r)throw qr.createEmptyWindowCreatedError();return r.focus&&r.focus(),this.currentWindow=r,window.addEventListener("beforeunload",this.unloadWindow),r}catch(e){throw this.logger.error("error opening popup "+e.message),this.browserStorage.setInteractionInProgress(!1),qr.createPopupWindowError(e.toString())}}openSizedPopup(e,t,r){const o=window.screenLeft?window.screenLeft:window.screenX,n=window.screenTop?window.screenTop:window.screenY,i=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;let s=r.popupSize?.width,c=r.popupSize?.height,d=r.popupPosition?.top,l=r.popupPosition?.left;return(!s||s<0||s>i)&&(this.logger.verbose("Default popup window width used. Window width not configured or invalid."),s=Ur.POPUP_WIDTH),(!c||c<0||c>a)&&(this.logger.verbose("Default popup window height used. Window height not configured or invalid."),c=Ur.POPUP_HEIGHT),(!d||d<0||d>a)&&(this.logger.verbose("Default popup window top position used. Window top not configured or invalid."),d=Math.max(0,a/2-Ur.POPUP_HEIGHT/2+n)),(!l||l<0||l>i)&&(this.logger.verbose("Default popup window left position used. Window left not configured or invalid."),l=Math.max(0,i/2-Ur.POPUP_WIDTH/2+o)),window.open(e,t,`width=${s}, height=${c}, top=${d}, left=${l}, scrollbars=yes`)}unloadWindow(t){this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Popup),this.currentWindow&&this.currentWindow.close(),t.preventDefault()}cleanPopup(e){e&&e.close(),window.removeEventListener("beforeunload",this.unloadWindow),this.browserStorage.setInteractionInProgress(!1)}generatePopupName(e,t){return`${Ur.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${e.join("-")}.${t}.${this.correlationId}`}generateLogoutPopupName(e){const t=e.account&&e.account.homeAccountId;return`${Ur.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${t}.${this.correlationId}`}extractServerResponseStringFromPopup(e,t){let r;return r=this.config.auth.OIDCOptions?.serverResponseType===ue.QUERY?rr.parseQueryServerResponse(t):e.location.hash,r}}class xo{navigateInternal(e,t){return xo.defaultNavigateWindow(e,t)}navigateExternal(e,t){return xo.defaultNavigateWindow(e,t)}static defaultNavigateWindow(e,t){return t.noHistory?window.location.replace(e):window.location.assign(e),new Promise((e=>{setTimeout((()=>{e(!0)}),t.timeout)}))}}const Do=6e3;class Fo extends Co{constructor(e,t,r,o,n,i){super(e,t,r,o,i),this.navigateFrameWait=n.navigateFrameWait,this.pollIntervalMilliseconds=n.pollIntervalMilliseconds}async initiateAuthRequest(e){if(this.performanceClient.addQueueMeasurement(or.SilentHandlerInitiateAuthRequest,this.authCodeRequest.correlationId),ct.isEmpty(e))throw this.logger.info("Navigate url is empty"),qr.createEmptyNavigationUriError();return this.navigateFrameWait?(this.performanceClient.setPreQueueTime(or.SilentHandlerLoadFrame,this.authCodeRequest.correlationId),await this.loadFrame(e)):this.loadFrameSync(e)}monitorIframeForHash(e,r){return this.performanceClient.addQueueMeasurement(or.SilentHandlerMonitorIframeForHash,this.authCodeRequest.correlationId),new Promise(((o,n)=>{r<Do&&this.logger.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${r}ms) than the default (6000ms). This may result in timeouts.`);const i=window.performance.now()+r,a=setInterval((()=>{if(window.performance.now()>i)return this.removeHiddenIframe(e),clearInterval(a),void n(qr.createMonitorIframeTimeoutError());let r=t.EMPTY_STRING;const s=e.contentWindow;try{r=s?s.location.href:t.EMPTY_STRING}catch(e){}if(ct.isEmpty(r)||"about:blank"===r)return;const c=s?s.location.hash:t.EMPTY_STRING;return c?rr.hashContainsKnownProperties(c)?(this.removeHiddenIframe(e),clearInterval(a),void o(c)):(this.logger.error("SilentHandler:monitorIFrameForHash - a hash is present in the iframe but it does not contain known properties. It's likely that the hash has been replaced by code running on the redirectUri page."),this.logger.errorPii(`SilentHandler:monitorIFrameForHash - the url detected in the iframe is: ${r}`),this.removeHiddenIframe(e),clearInterval(a),void n(qr.createHashDoesNotContainKnownPropertiesError())):(this.logger.error("SilentHandler:monitorIFrameForHash - the request has returned to the redirectUri but a hash is not present in the iframe. It's likely that the hash has been removed or the page has been redirected by code running on the redirectUri page."),this.logger.errorPii(`SilentHandler:monitorIFrameForHash - the url detected in the iframe is: ${r}`),this.removeHiddenIframe(e),clearInterval(a),void n(qr.createEmptyHashError()))}),this.pollIntervalMilliseconds)}))}loadFrame(e){return this.performanceClient.addQueueMeasurement(or.SilentHandlerLoadFrame,this.authCodeRequest.correlationId),new Promise(((t,r)=>{const o=this.createHiddenIframe();setTimeout((()=>{o?(o.src=e,t(o)):r("Unable to load iframe")}),this.navigateFrameWait)}))}loadFrameSync(e){const t=this.createHiddenIframe();return t.src=e,t}createHiddenIframe(){const e=document.createElement("iframe");return e.style.visibility="hidden",e.style.position="absolute",e.style.width=e.style.height="0",e.style.border="0",e.setAttribute("sandbox","allow-scripts allow-same-origin allow-forms"),document.getElementsByTagName("body")[0].appendChild(e),e}removeHiddenIframe(e){document.body===e.parentNode&&document.body.removeChild(e)}}class Bo extends yo{constructor(e,t,r,o,n,i,a,s,c,d,l){super(e,t,r,o,n,i,s,d,l),this.apiId=a,this.nativeStorage=c}async acquireToken(r){this.performanceClient.addQueueMeasurement(or.SilentIframeClientAcquireToken,r.correlationId),this.logger.verbose("acquireTokenByIframe called");const o=this.performanceClient.startMeasurement(or.SilentIframeClientAcquireToken,r.correlationId);if(ct.isEmpty(r.loginHint)&&ct.isEmpty(r.sid)&&(!r.account||ct.isEmpty(r.account.username))&&this.logger.warning("No user hint provided. The authorization server may need more information to complete this request."),r.prompt&&r.prompt!==se.NONE&&r.prompt!==se.NO_SESSION)throw o.end({success:!1}),qr.createSilentPromptValueError(r.prompt);this.performanceClient.setPreQueueTime(or.StandardInteractionClientInitializeAuthorizationRequest,r.correlationId);const n=await this.initializeAuthorizationRequest({...r,prompt:r.prompt||se.NONE},e.InteractionType.Silent);this.browserStorage.updateCacheEntries(n.state,n.nonce,n.authority,n.loginHint||t.EMPTY_STRING,n.account||null);const i=this.initializeServerTelemetryManager(this.apiId);try{this.performanceClient.setPreQueueTime(or.StandardInteractionClientCreateAuthCodeClient,r.correlationId);const e=await this.createAuthCodeClient(i,n.authority,n.azureCloudOptions);return this.logger.verbose("Auth code client created"),this.performanceClient.setPreQueueTime(or.SilentIframeClientTokenHelper,r.correlationId),await this.silentTokenHelper(e,n).then((e=>(o.end({success:!0,fromCache:!1,requestId:e.requestId}),e)))}catch(e){throw e instanceof nt&&(e.setCorrelationId(this.correlationId),i.cacheFailedRequest(e)),this.browserStorage.cleanRequestByState(n.state),o.end({errorCode:e instanceof nt&&e.errorCode||void 0,subErrorCode:e instanceof nt&&e.subError||void 0,success:!1}),e}}logout(){return Promise.reject(qr.createSilentLogoutUnsupportedError())}async silentTokenHelper(t,r){this.performanceClient.addQueueMeasurement(or.SilentIframeClientTokenHelper,r.correlationId),this.performanceClient.setPreQueueTime(or.StandardInteractionClientInitializeAuthorizationCodeRequest,r.correlationId);const o=await this.initializeAuthorizationCodeRequest(r);this.performanceClient.setPreQueueTime(or.GetAuthCodeUrl,r.correlationId);const n=await t.getAuthCodeUrl({...r,nativeBroker:Uo.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,r.authenticationScheme)}),i=new Fo(t,this.browserStorage,o,this.logger,this.config.system,this.performanceClient);this.performanceClient.setPreQueueTime(or.SilentHandlerInitiateAuthRequest,r.correlationId);const a=await i.initiateAuthRequest(n);this.performanceClient.setPreQueueTime(or.SilentHandlerMonitorIframeForHash,r.correlationId);const s=await i.monitorIframeForHash(a,this.config.system.iframeHashTimeout),c=rr.getDeserializedHash(s),d=this.validateAndExtractStateFromHash(c,e.InteractionType.Silent,o.correlationId);if(c.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw qr.createNativeConnectionNotEstablishedError();const e=new qo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.apiId,this.performanceClient,this.nativeMessageHandler,c.accountId,this.browserStorage,this.correlationId),{userRequestState:t}=tr.parseRequestState(this.browserCrypto,d);return e.acquireToken({...r,state:t,prompt:r.prompt||se.NONE}).finally((()=>{this.browserStorage.cleanRequestByState(d)}))}return this.performanceClient.setPreQueueTime(or.HandleCodeResponseFromHash,r.correlationId),i.handleCodeResponseFromHash(s,d,t.authority,this.networkClient)}}class Ko extends yo{async acquireToken(e){this.performanceClient.addQueueMeasurement(or.SilentRefreshClientAcquireToken,e.correlationId),this.performanceClient.setPreQueueTime(or.InitializeBaseRequest,e.correlationId);const t={...e,...await this.initializeBaseRequest(e,e.account)},r=this.performanceClient.startMeasurement(or.SilentRefreshClientAcquireToken,t.correlationId),o=this.initializeServerTelemetryManager(Jr.acquireTokenSilent_silentFlow),n=await this.createRefreshTokenClient(o,t.authority,t.azureCloudOptions);return this.logger.verbose("Refresh token client created"),this.performanceClient.setPreQueueTime(or.RefreshTokenClientAcquireTokenByRefreshToken,e.correlationId),n.acquireTokenByRefreshToken(t).then((e=>e)).then((e=>(r.end({success:!0,fromCache:e.fromCache,requestId:e.requestId}),e))).catch((e=>{throw e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e),r.end({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e}))}logout(){return Promise.reject(qr.createSilentLogoutUnsupportedError())}async createRefreshTokenClient(e,t,r){this.performanceClient.setPreQueueTime(or.StandardInteractionClientGetClientConfiguration,this.correlationId);const o=await this.getClientConfiguration(e,t,r);return new gr(o,this.performanceClient)}}class Go{constructor(e,t){this.eventCallbacks=new Map,this.logger=e,this.browserCrypto=t,this.listeningToStorageEvents=!1,this.handleAccountCacheChange=this.handleAccountCacheChange.bind(this)}addEventCallback(e){if("undefined"!=typeof window){const t=this.browserCrypto.createNewGuid();return this.eventCallbacks.set(t,e),this.logger.verbose(`Event callback registered with id: ${t}`),t}return null}removeEventCallback(e){this.eventCallbacks.delete(e),this.logger.verbose(`Event callback ${e} removed.`)}enableAccountStorageEvents(){"undefined"!=typeof window&&(this.listeningToStorageEvents?this.logger.verbose("Account storage listener already registered."):(this.logger.verbose("Adding account storage listener."),this.listeningToStorageEvents=!0,window.addEventListener("storage",this.handleAccountCacheChange)))}disableAccountStorageEvents(){"undefined"!=typeof window&&(this.listeningToStorageEvents?(this.logger.verbose("Removing account storage listener."),window.removeEventListener("storage",this.handleAccountCacheChange),this.listeningToStorageEvents=!1):this.logger.verbose("No account storage listener registered."))}emitEvent(e,t,r,o){if("undefined"!=typeof window){const n={eventType:e,interactionType:t||null,payload:r||null,error:o||null,timestamp:Date.now()};this.logger.info(`Emitting event: ${e}`),this.eventCallbacks.forEach(((t,r)=>{this.logger.verbose(`Emitting event to callback ${r}: ${e}`),t.apply(null,[n])}))}}handleAccountCacheChange(e){try{const t=e.newValue||e.oldValue;if(!t)return;const r=JSON.parse(t);if("object"!=typeof r||!_t.isAccountEntity(r))return;const o=St.toObject(new _t,r).getAccountInfo();!e.oldValue&&e.newValue?(this.logger.info("Account was added to cache in a different window"),this.emitEvent(wo.ACCOUNT_ADDED,void 0,o)):!e.newValue&&e.oldValue&&(this.logger.info("Account was removed from cache in a different window"),this.emitEvent(wo.ACCOUNT_REMOVED,void 0,o))}catch(e){return}}}class $o{static decimalToHex(e){let t=e.toString(16);for(;t.length<2;)t="0"+t;return t}}class zo{constructor(e){this.cryptoObj=e}generateGuid(){try{const e=new Uint8Array(16);return this.cryptoObj.getRandomValues(e),e[6]|=64,e[6]&=79,e[8]|=128,e[8]&=191,$o.decimalToHex(e[0])+$o.decimalToHex(e[1])+$o.decimalToHex(e[2])+$o.decimalToHex(e[3])+"-"+$o.decimalToHex(e[4])+$o.decimalToHex(e[5])+"-"+$o.decimalToHex(e[6])+$o.decimalToHex(e[7])+"-"+$o.decimalToHex(e[8])+$o.decimalToHex(e[9])+"-"+$o.decimalToHex(e[10])+$o.decimalToHex(e[11])+$o.decimalToHex(e[12])+$o.decimalToHex(e[13])+$o.decimalToHex(e[14])+$o.decimalToHex(e[15])}catch(e){const r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",o="0123456789abcdef";let n=0,i=t.EMPTY_STRING;for(let e=0;e<36;e++)"-"!==r[e]&&"4"!==r[e]&&(n=16*Math.random()|0),"x"===r[e]?i+=o[n]:"y"===r[e]?(n&=3,n|=8,i+=o[n]):i+=r[e];return i}}isGuid(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}}class Qo{static stringToUtf8Arr(e){let t,r=0;const o=e.length;for(let n=0;n<o;n++)t=e.charCodeAt(n),r+=t<128?1:t<2048?2:t<65536?3:t<2097152?4:t<67108864?5:6;const n=new Uint8Array(r);for(let o=0,i=0;o<r;i++)t=e.charCodeAt(i),t<128?n[o++]=t:t<2048?(n[o++]=192+(t>>>6),n[o++]=128+(63&t)):t<65536?(n[o++]=224+(t>>>12),n[o++]=128+(t>>>6&63),n[o++]=128+(63&t)):t<2097152?(n[o++]=240+(t>>>18),n[o++]=128+(t>>>12&63),n[o++]=128+(t>>>6&63),n[o++]=128+(63&t)):t<67108864?(n[o++]=248+(t>>>24),n[o++]=128+(t>>>18&63),n[o++]=128+(t>>>12&63),n[o++]=128+(t>>>6&63),n[o++]=128+(63&t)):(n[o++]=252+(t>>>30),n[o++]=128+(t>>>24&63),n[o++]=128+(t>>>18&63),n[o++]=128+(t>>>12&63),n[o++]=128+(t>>>6&63),n[o++]=128+(63&t));return n}static utf8ArrToString(e){let r=t.EMPTY_STRING;for(let t,o=e.length,n=0;n<o;n++)t=e[n],r+=String.fromCharCode(t>251&&t<254&&n+5<o?1073741824*(t-252)+(e[++n]-128<<24)+(e[++n]-128<<18)+(e[++n]-128<<12)+(e[++n]-128<<6)+e[++n]-128:t>247&&t<252&&n+4<o?(t-248<<24)+(e[++n]-128<<18)+(e[++n]-128<<12)+(e[++n]-128<<6)+e[++n]-128:t>239&&t<248&&n+3<o?(t-240<<18)+(e[++n]-128<<12)+(e[++n]-128<<6)+e[++n]-128:t>223&&t<240&&n+2<o?(t-224<<12)+(e[++n]-128<<6)+e[++n]-128:t>191&&t<224&&n+1<o?(t-192<<6)+e[++n]-128:t);return r}static getSortedObjectString(e){return JSON.stringify(e,Object.keys(e).sort())}}class jo{urlEncode(e){return encodeURIComponent(this.encode(e).replace(/=/g,t.EMPTY_STRING).replace(/\+/g,"-").replace(/\//g,"_"))}urlEncodeArr(e){return this.base64EncArr(e).replace(/=/g,t.EMPTY_STRING).replace(/\+/g,"-").replace(/\//g,"_")}encode(e){const t=Qo.stringToUtf8Arr(e);return this.base64EncArr(t)}base64EncArr(e){const r=(3-e.length%3)%3;let o=t.EMPTY_STRING;for(let t,r=e.length,n=0,i=0;i<r;i++)t=i%3,n|=e[i]<<(16>>>t&24),2!==t&&e.length-i!=1||(o+=String.fromCharCode(this.uint6ToB64(n>>>18&63),this.uint6ToB64(n>>>12&63),this.uint6ToB64(n>>>6&63),this.uint6ToB64(63&n)),n=0);return 0===r?o:o.substring(0,o.length-r)+(1===r?"=":"==")}uint6ToB64(e){return e<26?e+65:e<52?e+71:e<62?e-4:62===e?43:63===e?47:65}}class Yo{decode(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw new Error("Invalid base64 string")}const r=this.base64DecToArr(t);return Qo.utf8ArrToString(r)}base64DecToArr(e,r){const o=e.replace(/[^A-Za-z0-9\+\/]/g,t.EMPTY_STRING),n=o.length,i=r?Math.ceil((3*n+1>>>2)/r)*r:3*n+1>>>2,a=new Uint8Array(i);for(let e,t,r=0,s=0,c=0;c<n;c++)if(t=3&c,r|=this.b64ToUint6(o.charCodeAt(c))<<18-6*t,3===t||n-c==1){for(e=0;e<3&&s<i;e++,s++)a[s]=r>>>(16>>>e&24)&255;r=0}return a}b64ToUint6(e){return e>64&&e<91?e-65:e>96&&e<123?e-71:e>47&&e<58?e+4:43===e?62:47===e?63:0}}class Wo{constructor(e){this.base64Encode=new jo,this.cryptoObj=e}async generateCodes(){const e=this.generateCodeVerifier();return{verifier:e,challenge:await this.generateCodeChallengeFromVerifier(e)}}generateCodeVerifier(){try{const e=new Uint8Array(32);this.cryptoObj.getRandomValues(e);return this.base64Encode.urlEncodeArr(e)}catch(e){throw qr.createPkceNotGeneratedError(e)}}async generateCodeChallengeFromVerifier(e){try{const t=await this.cryptoObj.sha256Digest(e);return this.base64Encode.urlEncodeArr(new Uint8Array(t))}catch(e){throw qr.createPkceNotGeneratedError(e)}}}class Vo{getRandomValues(e){return window.crypto.getRandomValues(e)}async generateKey(e,t,r){return window.crypto.subtle.generateKey(e,t,r)}async exportKey(e){return window.crypto.subtle.exportKey("jwk",e)}async importKey(e,t,r,o){return window.crypto.subtle.importKey("jwk",e,t,r,o)}async sign(e,t,r){return window.crypto.subtle.sign(e,t,r)}async digest(e,t){return window.crypto.subtle.digest(e,t)}}const Jo="SHA-256",Xo=new Uint8Array([1,0,1]);class Zo{constructor(e){if(this.logger=e,!this.hasBrowserCrypto())throw this.logger.error("BrowserCrypto: crypto interface is unavailable"),qr.createCryptoNotAvailableError("Browser crypto interface is not available.");this.logger.verbose("BrowserCrypto: modern crypto interface available"),this.subtleCrypto=new Vo,this.keygenAlgorithmOptions={name:"RSASSA-PKCS1-v1_5",hash:Jo,modulusLength:2048,publicExponent:Xo}}hasBrowserCrypto(){return"crypto"in window}async sha256Digest(e){const t=Qo.stringToUtf8Arr(e);return this.subtleCrypto.digest({name:Jo},t)}getRandomValues(e){return this.subtleCrypto.getRandomValues(e)}async generateKeyPair(e,t){return this.subtleCrypto.generateKey(this.keygenAlgorithmOptions,e,t)}async exportJwk(e){return this.subtleCrypto.exportKey(e)}async importJwk(e,t,r){return this.subtleCrypto.importKey(e,this.keygenAlgorithmOptions,t,r)}async sign(e,t){return this.subtleCrypto.sign(this.keygenAlgorithmOptions,e,t)}}class en{constructor(){this.dbName=to,this.version=1,this.tableName=ro,this.dbOpen=!1}async open(){return new Promise(((e,t)=>{const r=window.indexedDB.open(this.dbName,this.version);r.addEventListener("upgradeneeded",(e=>{e.target.result.createObjectStore(this.tableName)})),r.addEventListener("success",(t=>{const r=t;this.db=r.target.result,this.dbOpen=!0,e()})),r.addEventListener("error",(()=>t(qr.createDatabaseUnavailableError())))}))}closeConnection(){const e=this.db;e&&this.dbOpen&&(e.close(),this.dbOpen=!1)}async validateDbIsOpen(){if(!this.dbOpen)return await this.open()}async getItem(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(qr.createDatabaseNotOpenError());const o=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).get(e);o.addEventListener("success",(e=>{const r=e;this.closeConnection(),t(r.target.result)})),o.addEventListener("error",(e=>{this.closeConnection(),r(e)}))}))}async setItem(e,t){return await this.validateDbIsOpen(),new Promise(((r,o)=>{if(!this.db)return o(qr.createDatabaseNotOpenError());const n=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).put(t,e);n.addEventListener("success",(()=>{this.closeConnection(),r()})),n.addEventListener("error",(e=>{this.closeConnection(),o(e)}))}))}async removeItem(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(qr.createDatabaseNotOpenError());const o=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).delete(e);o.addEventListener("success",(()=>{this.closeConnection(),t()})),o.addEventListener("error",(e=>{this.closeConnection(),r(e)}))}))}async getKeys(){return await this.validateDbIsOpen(),new Promise(((e,t)=>{if(!this.db)return t(qr.createDatabaseNotOpenError());const r=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).getAllKeys();r.addEventListener("success",(t=>{const r=t;this.closeConnection(),e(r.target.result)})),r.addEventListener("error",(e=>{this.closeConnection(),t(e)}))}))}async containsKey(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(qr.createDatabaseNotOpenError());const o=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).count(e);o.addEventListener("success",(e=>{const r=e;this.closeConnection(),t(1===r.target.result)})),o.addEventListener("error",(e=>{this.closeConnection(),r(e)}))}))}async deleteDatabase(){return this.db&&this.dbOpen&&this.closeConnection(),new Promise(((e,t)=>{const r=window.indexedDB.deleteDatabase(to);r.addEventListener("success",(()=>e(!0))),r.addEventListener("blocked",(()=>e(!0))),r.addEventListener("error",(()=>t(!1)))}))}}class tn{constructor(e,t){this.inMemoryCache=new so,this.indexedDBCache=new en,this.logger=e,this.storeName=t}handleDatabaseAccessError(e){if(!(e instanceof qr&&e.errorCode===Or.databaseUnavailable.code))throw e;this.logger.error("Could not access persistent storage. This may be caused by browser privacy features which block persistent storage in third-party contexts.")}async getItem(e){const t=this.inMemoryCache.getItem(e);if(!t)try{return this.logger.verbose("Queried item not found in in-memory cache, now querying persistent storage."),await this.indexedDBCache.getItem(e)}catch(e){this.handleDatabaseAccessError(e)}return t}async setItem(e,t){this.inMemoryCache.setItem(e,t);try{await this.indexedDBCache.setItem(e,t)}catch(e){this.handleDatabaseAccessError(e)}}async removeItem(e){this.inMemoryCache.removeItem(e);try{await this.indexedDBCache.removeItem(e)}catch(e){this.handleDatabaseAccessError(e)}}async getKeys(){const e=this.inMemoryCache.getKeys();if(0===e.length)try{return this.logger.verbose("In-memory cache is empty, now querying persistent storage."),await this.indexedDBCache.getKeys()}catch(e){this.handleDatabaseAccessError(e)}return e}async containsKey(e){const t=this.inMemoryCache.containsKey(e);if(!t)try{return this.logger.verbose("Key not found in in-memory cache, now querying persistent storage."),await this.indexedDBCache.containsKey(e)}catch(e){this.handleDatabaseAccessError(e)}return t}clearInMemory(){this.logger.verbose(`Deleting in-memory keystore ${this.storeName}`),this.inMemoryCache.clear(),this.logger.verbose(`In-memory keystore ${this.storeName} deleted`)}async clearPersistent(){try{this.logger.verbose("Deleting persistent keystore");const e=await this.indexedDBCache.deleteDatabase();return e&&this.logger.verbose("Persistent keystore deleted"),e}catch(e){return this.handleDatabaseAccessError(e),!1}}}const rn="asymmetricKeys",on="symmetricKeys";class nn{constructor(e){this.logger=e,this.asymmetricKeys=new tn(this.logger,rn),this.symmetricKeys=new tn(this.logger,on)}async clear(){this.asymmetricKeys.clearInMemory(),this.symmetricKeys.clearInMemory();try{return await this.asymmetricKeys.clearPersistent(),!0}catch(e){return e instanceof Error?this.logger.error(`Clearing keystore failed with error: ${e.message}`):this.logger.error("Clearing keystore failed with unknown error"),!1}}}class an{constructor(e,t){this.logger=e,this.browserCrypto=new Zo(this.logger),this.b64Encode=new jo,this.b64Decode=new Yo,this.guidGenerator=new zo(this.browserCrypto),this.pkceGenerator=new Wo(this.browserCrypto),this.cache=new nn(this.logger),this.performanceClient=t}createNewGuid(){return this.guidGenerator.generateGuid()}base64Encode(e){return this.b64Encode.encode(e)}base64Decode(e){return this.b64Decode.decode(e)}async generatePkceCodes(){return this.pkceGenerator.generateCodes()}async getPublicKeyThumbprint(e){const t=this.performanceClient?.startMeasurement(or.CryptoOptsGetPublicKeyThumbprint,e.correlationId),r=await this.browserCrypto.generateKeyPair(an.EXTRACTABLE,an.POP_KEY_USAGES),o=await this.browserCrypto.exportJwk(r.publicKey),n={e:o.e,kty:o.kty,n:o.n},i=Qo.getSortedObjectString(n),a=await this.hashString(i),s=await this.browserCrypto.exportJwk(r.privateKey),c=await this.browserCrypto.importJwk(s,!1,["sign"]);return await this.cache.asymmetricKeys.setItem(a,{privateKey:c,publicKey:r.publicKey,requestMethod:e.resourceRequestMethod,requestUri:e.resourceRequestUri}),t&&t.end({success:!0}),a}async removeTokenBindingKey(e){await this.cache.asymmetricKeys.removeItem(e);return!await this.cache.asymmetricKeys.containsKey(e)}async clearKeystore(){return await this.cache.clear()}async signJwt(e,t,r){const o=this.performanceClient?.startMeasurement(or.CryptoOptsSignJwt,r),n=await this.cache.asymmetricKeys.getItem(t);if(!n)throw qr.createSigningKeyNotFoundInStorageError(t);const i=await this.browserCrypto.exportJwk(n.publicKey),a=Qo.getSortedObjectString(i),s=this.b64Encode.urlEncode(JSON.stringify({kid:t})),c=br.getShrHeaderString({kid:s,alg:i.alg}),d=this.b64Encode.urlEncode(c);e.cnf={jwk:JSON.parse(a)};const l=`${d}.${this.b64Encode.urlEncode(JSON.stringify(e))}`,h=Qo.stringToUtf8Arr(l),u=await this.browserCrypto.sign(n.privateKey,h),g=`${l}.${this.b64Encode.urlEncodeArr(new Uint8Array(u))}`;return o&&o.end({success:!0}),g}async hashString(e){const t=await this.browserCrypto.sha256Digest(e),r=new Uint8Array(t);return this.b64Encode.urlEncodeArr(r)}}an.POP_KEY_USAGES=["sign","verify"],an.EXTRACTABLE=!0;var sn=Object.freeze({__proto__:null,BrowserCacheManager:lo,BrowserConstants:Ur,CacheRecord:er,CryptoOps:an,EventHandler:Go,NativeAuthError:Po,NativeInteractionClient:qo,NativeMessageHandler:Uo,PopupClient:Lo,RedirectClient:Ho,RedirectHandler:vo,SilentCacheClient:Mo,SilentIframeClient:Bo,SilentRefreshClient:Ko,StandardInteractionClient:yo,TemporaryCacheKeys:Qr});class cn{constructor(r){this.browserEnvironment="undefined"!=typeof window,this.config=function({auth:r,cache:o,system:n,telemetry:i},a){const s={clientId:t.EMPTY_STRING,authority:`${t.DEFAULT_AUTHORITY}`,knownAuthorities:[],cloudDiscoveryMetadata:t.EMPTY_STRING,authorityMetadata:t.EMPTY_STRING,redirectUri:t.EMPTY_STRING,postLogoutRedirectUri:t.EMPTY_STRING,navigateToLoginRequestUrl:!0,clientCapabilities:[],protocolMode:Et.AAD,OIDCOptions:{serverResponseType:ue.FRAGMENT,defaultScopes:[t.OPENID_SCOPE,t.PROFILE_SCOPE,t.OFFLINE_ACCESS_SCOPE]},azureCloudOptions:{azureCloudInstance:gt.None,tenant:t.EMPTY_STRING},skipAuthorityMetadataCache:!1},c={cacheLocation:Gr.SessionStorage,temporaryCacheLocation:Gr.SessionStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!(!o||o.cacheLocation!==Gr.LocalStorage),claimsBasedCachingEnabled:!1},d={loggerCallback:()=>{},logLevel:e.LogLevel.Info,piiLoggingEnabled:!1},l={...bt,loggerOptions:d,networkClient:a?mo.getBrowserNetworkClient():_r,navigationClient:new xo,loadFrameTimeout:0,windowHashTimeout:n?.loadFrameTimeout||6e4,iframeHashTimeout:n?.loadFrameTimeout||Do,navigateFrameWait:a&&mo.detectIEOrEdge()?500:0,redirectNavigationTimeout:3e4,asyncPopups:!1,allowRedirectInIframe:!1,allowNativeBroker:!1,nativeBrokerHandshakeTimeout:n?.nativeBrokerHandshakeTimeout||2e3,pollIntervalMilliseconds:Ur.DEFAULT_POLL_INTERVAL_MS},h={...n,loggerOptions:n?.loggerOptions||d},u={application:{appName:t.EMPTY_STRING,appVersion:t.EMPTY_STRING},client:new Nr(s.clientId,s.authority,new lt(d,ho,uo),ho,uo,{appName:t.EMPTY_STRING,appVersion:t.EMPTY_STRING})};if(r?.protocolMode!==Et.OIDC&&r?.OIDCOptions&&console.warn(mt.createCannotSetOIDCOptionsError()),r?.protocolMode&&r.protocolMode!==Et.AAD&&h?.allowNativeBroker)throw mt.createCannotAllowNativeBrokerError();return{auth:{...s,...r,OIDCOptions:{...s.OIDCOptions,...r?.OIDCOptions}},cache:{...c,...o},system:{...l,...h},telemetry:{...u,...i}}}(r,this.browserEnvironment),this.logger=new lt(this.config.system.loggerOptions,ho,uo),this.available=!1}getConfig(){return this.config}getLogger(){return this.logger}isAvailable(){return this.available}isBrowserEnvironment(){return this.browserEnvironment}}class dn extends cn{getModuleName(){return dn.MODULE_NAME}getId(){return dn.ID}async initialize(){return!1}}dn.MODULE_NAME="",dn.ID="TeamsAppOperatingContext";class ln extends cn{getModuleName(){return ln.MODULE_NAME}getId(){return ln.ID}async initialize(){return this.available="undefined"!=typeof window,this.available}}ln.MODULE_NAME="",ln.ID="StandardOperatingContext";class hn{constructor(e){this.config=e;const t={loggerCallback:void 0,piiLoggingEnabled:!1,logLevel:void 0,correlationId:void 0};this.logger=new lt(t,ho,uo)}async createController(){const e=new ln(this.config),t=new dn(this.config),r=[e.initialize(),t.initialize()];return Promise.all(r).then((async()=>{if(t.isAvailable()){const t=await Promise.resolve().then((function(){return fn}));return await t.StandardController.createController(e)}if(e.isAvailable()){const t=await Promise.resolve().then((function(){return fn}));return await t.StandardController.createController(e)}throw new Error("No controller found.")}))}}class un{constructor(e,t,r,o){this.isBrowserEnvironment="undefined"!=typeof window,this.config=e,this.storage=t,this.logger=r,this.cryptoObj=o}loadExternalTokens(e,t,r){if(this.logger.info("TokenCache - loadExternalTokens called"),!t.id_token)throw qr.createUnableToLoadTokenError("Please ensure server response includes id token.");const o=new kt(t.id_token,this.cryptoObj);let n,i,a;if(e.account)a=_t.createFromAccountInfo(e.account),n=new er(a,this.loadIdToken(o,a.homeAccountId,e.account.environment,e.account.tenantId),this.loadAccessToken(e,t,a.homeAccountId,e.account.environment,e.account.tenantId,r),this.loadRefreshToken(e,t,a.homeAccountId,e.account.environment));else{if(!e.authority)throw qr.createUnableToLoadTokenError("Please provide a request with an account or a request with authority.");{const s=wr.generateAuthority(e.authority,e.azureCloudOptions),c={protocolMode:this.config.auth.protocolMode,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata,skipAuthorityMetadataCache:this.config.auth.skipAuthorityMetadataCache};if(i=new wr(s,this.config.system.networkClient,this.storage,c,this.logger),r.clientInfo)this.logger.trace("TokenCache - homeAccountId from options"),a=this.loadAccount(o,i,r.clientInfo),n=new er(a,this.loadIdToken(o,a.homeAccountId,i.hostnameAndPort,i.tenant),this.loadAccessToken(e,t,a.homeAccountId,i.hostnameAndPort,i.tenant,r),this.loadRefreshToken(e,t,a.homeAccountId,i.hostnameAndPort));else{if(!t.client_info)throw qr.createUnableToLoadTokenError("Please provide clientInfo in the response or options.");this.logger.trace("TokenCache - homeAccountId from response"),a=this.loadAccount(o,i,t.client_info),n=new er(a,this.loadIdToken(o,a.homeAccountId,i.hostnameAndPort,i.tenant),this.loadAccessToken(e,t,a.homeAccountId,i.hostnameAndPort,i.tenant,r),this.loadRefreshToken(e,t,a.homeAccountId,i.hostnameAndPort))}}}return this.generateAuthenticationResult(e,o,n,a,i)}loadAccount(e,t,r,o){let n;if(o?n=o:void 0!==t.authorityType&&r&&(n=_t.generateHomeAccountId(r,t.authorityType,this.logger,this.cryptoObj,e.claims)),!n)throw qr.createUnableToLoadTokenError("Unexpected missing homeAccountId");const i=_t.createAccount({homeAccountId:n,idTokenClaims:e.claims,clientInfo:r,environment:t.hostnameAndPort},t);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading account"),this.storage.setAccount(i),i;throw qr.createUnableToLoadTokenError("loadExternalTokens is designed to work in browser environments only.")}loadIdToken(e,t,r,o){const n=Qt.createIdTokenEntity(t,r,e.rawToken,this.config.auth.clientId,o);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading id token"),this.storage.setIdTokenCredential(n),n;throw qr.createUnableToLoadTokenError("loadExternalTokens is designed to work in browser environments only.")}loadAccessToken(e,t,r,o,n,i){if(!t.access_token)return this.logger.verbose("TokenCache - No access token provided for caching"),null;if(!t.expires_in)throw qr.createUnableToLoadTokenError("Please ensure server response includes expires_in value.");if(!i.extendedExpiresOn)throw qr.createUnableToLoadTokenError("Please provide an extendedExpiresOn value in the options.");const a=new ft(e.scopes).printScopes(),s=i.expiresOn||t.expires_in+(new Date).getTime()/1e3,c=i.extendedExpiresOn,d=Yt.createAccessTokenEntity(r,o,t.access_token,this.config.auth.clientId,n,a,s,c,this.cryptoObj);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading access token"),this.storage.setAccessTokenCredential(d),d;throw qr.createUnableToLoadTokenError("loadExternalTokens is designed to work in browser environments only.")}loadRefreshToken(e,t,r,o){if(!t.refresh_token)return this.logger.verbose("TokenCache - No refresh token provided for caching"),null;const n=Wt.createRefreshTokenEntity(r,o,t.refresh_token,this.config.auth.clientId);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading refresh token"),this.storage.setRefreshTokenCredential(n),n;throw qr.createUnableToLoadTokenError("loadExternalTokens is designed to work in browser environments only.")}generateAuthenticationResult(e,r,o,n,i){let a,s=t.EMPTY_STRING,c=[],d=null;o?.accessToken&&(s=o.accessToken.secret,c=ft.fromString(o.accessToken.target).asArray(),d=new Date(1e3*Number(o.accessToken.expiresOn)),a=new Date(1e3*Number(o.accessToken.extendedExpiresOn)));const l=r?.claims.oid||r?.claims.sub||t.EMPTY_STRING,h=r?.claims.tid||t.EMPTY_STRING;return{authority:i?i.canonicalAuthority:t.EMPTY_STRING,uniqueId:l,tenantId:h,scopes:c,account:n.getAccountInfo(),idToken:r?r.rawToken:t.EMPTY_STRING,idTokenClaims:r?r.claims:{},accessToken:s,fromCache:!0,expiresOn:d,correlationId:e.correlationId||t.EMPTY_STRING,requestId:t.EMPTY_STRING,extExpiresOn:a,familyId:t.EMPTY_STRING,tokenType:o?.accessToken?.tokenType||t.EMPTY_STRING,state:t.EMPTY_STRING,cloudGraphHostName:n.cloudGraphHostName||t.EMPTY_STRING,msGraphHost:n.msGraphHost||t.EMPTY_STRING,code:void 0,fromNativeBroker:!1}}}class gn extends ur{constructor(e){super(e),this.includeRedirectUri=!1}}class pn extends yo{constructor(e,t,r,o,n,i,a,s,c,d){super(e,t,r,o,n,i,s,c,d),this.apiId=a}async acquireToken(r){if(this.logger.trace("SilentAuthCodeClient.acquireToken called"),!r.code)throw qr.createAuthCodeRequiredError();this.performanceClient.setPreQueueTime(or.StandardInteractionClientInitializeAuthorizationRequest,r.correlationId);const o=await this.initializeAuthorizationRequest(r,e.InteractionType.Silent);this.browserStorage.updateCacheEntries(o.state,o.nonce,o.authority,o.loginHint||t.EMPTY_STRING,o.account||null);const n=this.initializeServerTelemetryManager(this.apiId);try{const e={...o,code:r.code};this.performanceClient.setPreQueueTime(or.StandardInteractionClientGetClientConfiguration,r.correlationId);const t=await this.getClientConfiguration(n,o.authority),i=new gn(t);this.logger.verbose("Auth code client created");return new Fo(i,this.browserStorage,e,this.logger,this.config.system,this.performanceClient).handleCodeResponseFromServer({code:r.code,msgraph_host:r.msGraphHost,cloud_graph_host_name:r.cloudGraphHostName,cloud_instance_host_name:r.cloudInstanceHostName},o.state,i.authority,this.networkClient,!1)}catch(e){throw e instanceof nt&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),this.browserStorage.cleanRequestByState(o.state),e}}logout(){return Promise.reject(qr.createSilentLogoutUnsupportedError())}}class mn{constructor(e){var t,r;this.atsAsyncMeasurement=void 0,this.operatingContext=e,this.isBrowserEnvironment=this.operatingContext.isBrowserEnvironment(),this.config=e.getConfig(),this.initialized=!1,this.logger=this.operatingContext.getLogger(),this.networkClient=this.config.system.networkClient,this.navigationClient=this.config.system.navigationClient,this.redirectResponse=new Map,this.hybridAuthCodeResponses=new Map,this.performanceClient=this.config.telemetry.client,this.browserCrypto=this.isBrowserEnvironment?new an(this.logger,this.performanceClient):it,this.eventHandler=new Go(this.logger,this.browserCrypto),this.browserStorage=this.isBrowserEnvironment?new lo(this.config.auth.clientId,this.config.cache,this.browserCrypto,this.logger):(t=this.config.auth.clientId,r=this.logger,new lo(t,{cacheLocation:Gr.MemoryStorage,temporaryCacheLocation:Gr.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1},it,r));const o={cacheLocation:Gr.MemoryStorage,temporaryCacheLocation:Gr.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1};this.nativeInternalStorage=new lo(this.config.auth.clientId,o,this.browserCrypto,this.logger),this.tokenCache=new un(this.config,this.browserStorage,this.logger,this.browserCrypto),this.activeSilentTokenRequests=new Map,this.trackPageVisibility=this.trackPageVisibility.bind(this),this.trackPageVisibilityWithMeasurement=this.trackPageVisibilityWithMeasurement.bind(this)}static async createController(e){const t=new mn(e);return t.initialize(),t}trackPageVisibility(){this.atsAsyncMeasurement&&(this.logger.info("Perf: Visibility change detected"),this.atsAsyncMeasurement.increment({visibilityChangeCount:1}))}async initialize(){if(this.logger.trace("initialize called"),this.initialized)return void this.logger.info("initialize has already been called, exiting early.");const e=this.config.system.allowNativeBroker,t=this.performanceClient.startMeasurement(or.InitializeClientApplication);if(this.eventHandler.emitEvent(wo.INITIALIZE_START),e)try{this.nativeExtensionProvider=await Uo.createProvider(this.logger,this.config.system.nativeBrokerHandshakeTimeout,this.performanceClient,this.browserCrypto)}catch(e){this.logger.verbose(e)}this.initialized=!0,this.eventHandler.emitEvent(wo.INITIALIZE_END),t.end({allowNativeBroker:e,success:!0})}async handleRedirectPromise(r){this.logger.verbose("handleRedirectPromise called"),mo.blockAPICallsBeforeInitialize(this.initialized);let o=r;if(this.config.auth.OIDCOptions?.serverResponseType===ue.QUERY){const e=window.location.href;o=rr.parseQueryServerResponse(e)}const n=this.getAllAccounts();if(this.isBrowserEnvironment){const r=o||t.EMPTY_STRING;let i=this.redirectResponse.get(r);if(void 0===i){this.eventHandler.emitEvent(wo.HANDLE_REDIRECT_START,e.InteractionType.Redirect),this.logger.verbose("handleRedirectPromise has been called for the first time, storing the promise");const a=this.browserStorage.getCachedNativeRequest();let s;if(a&&Uo.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider)&&this.nativeExtensionProvider&&!o){this.logger.trace("handleRedirectPromise - acquiring token from native platform");s=new qo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Jr.handleRedirectPromise,this.performanceClient,this.nativeExtensionProvider,a.accountId,this.nativeInternalStorage,a.correlationId).handleRedirectPromise()}else{this.logger.trace("handleRedirectPromise - acquiring token from web flow");const e=this.browserStorage.getTemporaryCache(Qr.CORRELATION_ID,!0)||t.EMPTY_STRING;s=this.createRedirectClient(e).handleRedirectPromise(o)}i=s.then((t=>{if(t){n.length<this.getAllAccounts().length?(this.eventHandler.emitEvent(wo.LOGIN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, login success")):(this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, acquire token success"))}return this.eventHandler.emitEvent(wo.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})).catch((t=>{throw n.length>0?this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent(wo.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent(wo.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})),this.redirectResponse.set(r,i)}else this.logger.verbose("handleRedirectPromise has been called previously, returning the result from the first call");return i}return this.logger.verbose("handleRedirectPromise returns null, not browser environment"),null}async acquireTokenRedirect(t){const r=this.getRequestCorrelationId(t);this.logger.verbose("acquireTokenRedirect called",r),this.preflightBrowserEnvironmentCheck(e.InteractionType.Redirect);const o=this.getAllAccounts().length>0;let n;if(o?this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_START,e.InteractionType.Redirect,t):this.eventHandler.emitEvent(wo.LOGIN_START,e.InteractionType.Redirect,t),this.nativeExtensionProvider&&this.canUseNative(t)){n=new qo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Jr.acquireTokenRedirect,this.performanceClient,this.nativeExtensionProvider,this.getNativeAccountId(t),this.nativeInternalStorage,t.correlationId).acquireTokenRedirect(t).catch((e=>{if(e instanceof Po&&e.isFatal()){this.nativeExtensionProvider=void 0;return this.createRedirectClient(t.correlationId).acquireToken(t)}if(e instanceof Zt){this.logger.verbose("acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow");return this.createRedirectClient(t.correlationId).acquireToken(t)}throw this.browserStorage.setInteractionInProgress(!1),e}))}else{n=this.createRedirectClient(t.correlationId).acquireToken(t)}return n.catch((t=>{throw o?this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent(wo.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),t}))}acquireTokenPopup(t){const r=this.getRequestCorrelationId(t),o=this.performanceClient.startMeasurement(or.AcquireTokenPopup,r);try{this.logger.verbose("acquireTokenPopup called",r),this.preflightBrowserEnvironmentCheck(e.InteractionType.Popup)}catch(e){return Promise.reject(e)}const n=this.getAllAccounts();let i;if(n.length>0?this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_START,e.InteractionType.Popup,t):this.eventHandler.emitEvent(wo.LOGIN_START,e.InteractionType.Popup,t),this.canUseNative(t))i=this.acquireTokenNative(t,Jr.acquireTokenPopup).then((e=>(this.browserStorage.setInteractionInProgress(!1),o.end({success:!0,isNativeBroker:!0,requestId:e.requestId}),e))).catch((e=>{if(e instanceof Po&&e.isFatal()){this.nativeExtensionProvider=void 0;return this.createPopupClient(t.correlationId).acquireToken(t)}if(e instanceof Zt){this.logger.verbose("acquireTokenPopup - Resolving interaction required error thrown by native broker by falling back to web flow");return this.createPopupClient(t.correlationId).acquireToken(t)}throw this.browserStorage.setInteractionInProgress(!1),e}));else{i=this.createPopupClient(t.correlationId).acquireToken(t)}return i.then((t=>(n.length<this.getAllAccounts().length?this.eventHandler.emitEvent(wo.LOGIN_SUCCESS,e.InteractionType.Popup,t):this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Popup,t),o.add({accessTokenSize:t.accessToken.length,idTokenSize:t.idToken.length}),o.end({success:!0,requestId:t.requestId}),t))).catch((t=>(n.length>0?this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Popup,null,t):this.eventHandler.emitEvent(wo.LOGIN_FAILURE,e.InteractionType.Popup,null,t),o.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),Promise.reject(t))))}trackPageVisibilityWithMeasurement(){const e=this.ssoSilentMeasurement||this.acquireTokenByCodeAsyncMeasurement;e&&(this.logger.info("Perf: Visibility change detected in ",e.event.name),e.increment({visibilityChangeCount:1}))}async ssoSilent(t){const r=this.getRequestCorrelationId(t),o={...t,prompt:t.prompt,correlationId:r};let n;if(this.preflightBrowserEnvironmentCheck(e.InteractionType.Silent),this.ssoSilentMeasurement=this.performanceClient.startMeasurement(or.SsoSilent,r),this.ssoSilentMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement),this.logger.verbose("ssoSilent called",r),this.eventHandler.emitEvent(wo.SSO_SILENT_START,e.InteractionType.Silent,o),this.canUseNative(o))n=this.acquireTokenNative(o,Jr.ssoSilent).catch((e=>{if(e instanceof Po&&e.isFatal()){this.nativeExtensionProvider=void 0;return this.createSilentIframeClient(o.correlationId).acquireToken(o)}throw e}));else{n=this.createSilentIframeClient(o.correlationId).acquireToken(o)}return n.then((t=>(this.eventHandler.emitEvent(wo.SSO_SILENT_SUCCESS,e.InteractionType.Silent,t),this.ssoSilentMeasurement?.add({accessTokenSize:t.accessToken.length,idTokenSize:t.idToken.length}),this.ssoSilentMeasurement?.end({success:!0,isNativeBroker:t.fromNativeBroker,requestId:t.requestId}),t))).catch((t=>{throw this.eventHandler.emitEvent(wo.SSO_SILENT_FAILURE,e.InteractionType.Silent,null,t),this.ssoSilentMeasurement?.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t})).finally((()=>{document.removeEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement)}))}async acquireTokenByCode(t){const r=this.getRequestCorrelationId(t);this.preflightBrowserEnvironmentCheck(e.InteractionType.Silent),this.logger.trace("acquireTokenByCode called",r),this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_BY_CODE_START,e.InteractionType.Silent,t);const o=this.performanceClient.startMeasurement(or.AcquireTokenByCode,t.correlationId);try{if(t.code&&t.nativeAccountId)throw qr.createSpaCodeAndNativeAccountIdPresentError();if(t.code){const n=t.code;let i=this.hybridAuthCodeResponses.get(n);return i?(this.logger.verbose("Existing acquireTokenByCode request found",t.correlationId),o.discard()):(this.logger.verbose("Initiating new acquireTokenByCode request",r),i=this.acquireTokenByCodeAsync({...t,correlationId:r}).then((t=>(this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_BY_CODE_SUCCESS,e.InteractionType.Silent,t),this.hybridAuthCodeResponses.delete(n),o.add({accessTokenSize:t.accessToken.length,idTokenSize:t.idToken.length}),o.end({success:!0,isNativeBroker:t.fromNativeBroker,requestId:t.requestId}),t))).catch((t=>{throw this.hybridAuthCodeResponses.delete(n),this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_BY_CODE_FAILURE,e.InteractionType.Silent,null,t),o.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t})),this.hybridAuthCodeResponses.set(n,i)),i}if(t.nativeAccountId){if(this.canUseNative(t,t.nativeAccountId))return this.acquireTokenNative(t,Jr.acquireTokenByCode,t.nativeAccountId).catch((e=>{throw e instanceof Po&&e.isFatal()&&(this.nativeExtensionProvider=void 0),e}));throw qr.createUnableToAcquireTokenFromNativePlatformError()}throw qr.createAuthCodeOrNativeAccountIdRequiredError()}catch(t){throw this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_BY_CODE_FAILURE,e.InteractionType.Silent,null,t),o.end({errorCode:t instanceof nt&&t.errorCode||void 0,subErrorCode:t instanceof nt&&t.subError||void 0,success:!1}),t}}async acquireTokenByCodeAsync(e){this.logger.trace("acquireTokenByCodeAsync called",e.correlationId),this.acquireTokenByCodeAsyncMeasurement=this.performanceClient.startMeasurement(or.AcquireTokenByCodeAsync,e.correlationId),this.acquireTokenByCodeAsyncMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement);const t=this.createSilentAuthCodeClient(e.correlationId);return await t.acquireToken(e).then((e=>(this.acquireTokenByCodeAsyncMeasurement?.end({success:!0,fromCache:e.fromCache,isNativeBroker:e.fromNativeBroker,requestId:e.requestId}),e))).catch((e=>{throw this.acquireTokenByCodeAsyncMeasurement?.end({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e})).finally((()=>{document.removeEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement)}))}async acquireTokenFromCache(e,t,r){switch(this.performanceClient.addQueueMeasurement(or.AcquireTokenFromCache,t.correlationId),r.cacheLookupPolicy){case oo.Default:case oo.AccessToken:case oo.AccessTokenAndRefreshToken:return e.acquireToken(t);default:throw st.createRefreshRequiredError()}}async acquireTokenByRefreshToken(e,t){switch(this.performanceClient.addQueueMeasurement(or.AcquireTokenByRefreshToken,e.correlationId),t.cacheLookupPolicy){case oo.Default:case oo.AccessTokenAndRefreshToken:case oo.RefreshToken:case oo.RefreshTokenAndNetwork:const t=this.createSilentRefreshClient(e.correlationId);return this.performanceClient.setPreQueueTime(or.SilentRefreshClientAcquireToken,e.correlationId),t.acquireToken(e);default:throw st.createRefreshRequiredError()}}async acquireTokenBySilentIframe(e){this.performanceClient.addQueueMeasurement(or.AcquireTokenBySilentIframe,e.correlationId);const t=this.createSilentIframeClient(e.correlationId);return this.performanceClient.setPreQueueTime(or.SilentIframeClientAcquireToken,e.correlationId),t.acquireToken(e)}async logout(e){const t=this.getRequestCorrelationId(e);return this.logger.warning("logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.",t),this.logoutRedirect({correlationId:t,...e})}async logoutRedirect(t){const r=this.getRequestCorrelationId(t);this.preflightBrowserEnvironmentCheck(e.InteractionType.Redirect);return this.createRedirectClient(r).logout(t)}logoutPopup(t){try{const r=this.getRequestCorrelationId(t);this.preflightBrowserEnvironmentCheck(e.InteractionType.Popup);return this.createPopupClient(r).logout(t)}catch(e){return Promise.reject(e)}}getAllAccounts(){return this.logger.verbose("getAllAccounts called"),this.isBrowserEnvironment?this.browserStorage.getAllAccounts():[]}getAccountByUsername(e){if(this.logger.trace("getAccountByUsername called"),!e)return this.logger.warning("getAccountByUsername: No username provided"),null;const t=this.browserStorage.getAccountInfoFilteredBy({username:e});return t?(this.logger.verbose("getAccountByUsername: Account matching username found, returning"),this.logger.verbosePii(`getAccountByUsername: Returning signed-in accounts matching username: ${e}`),t):(this.logger.verbose("getAccountByUsername: No matching account found, returning null"),null)}getAccountByHomeId(e){if(this.logger.trace("getAccountByHomeId called"),!e)return this.logger.warning("getAccountByHomeId: No homeAccountId provided"),null;const t=this.browserStorage.getAccountInfoFilteredBy({homeAccountId:e});return t?(this.logger.verbose("getAccountByHomeId: Account matching homeAccountId found, returning"),this.logger.verbosePii(`getAccountByHomeId: Returning signed-in accounts matching homeAccountId: ${e}`),t):(this.logger.verbose("getAccountByHomeId: No matching account found, returning null"),null)}getAccountByLocalId(e){if(this.logger.trace("getAccountByLocalId called"),!e)return this.logger.warning("getAccountByLocalId: No localAccountId provided"),null;const t=this.browserStorage.getAccountInfoFilteredBy({localAccountId:e});return t?(this.logger.verbose("getAccountByLocalId: Account matching localAccountId found, returning"),this.logger.verbosePii(`getAccountByLocalId: Returning signed-in accounts matching localAccountId: ${e}`),t):(this.logger.verbose("getAccountByLocalId: No matching account found, returning null"),null)}setActiveAccount(e){this.browserStorage.setActiveAccount(e)}getActiveAccount(){return this.browserStorage.getActiveAccount()}async hydrateCache(e,t){this.logger.verbose("hydrateCache called");const r=_t.createFromAccountInfo(e.account,e.cloudGraphHostName,e.msGraphHost);return this.browserStorage.setAccount(r),e.fromNativeBroker?(this.logger.verbose("Response was from native broker, storing in-memory"),this.nativeInternalStorage.hydrateCache(e,t)):this.browserStorage.hydrateCache(e,t)}preflightBrowserEnvironmentCheck(t,r=!1){if(this.logger.verbose("preflightBrowserEnvironmentCheck started"),mo.blockNonBrowserEnvironment(this.isBrowserEnvironment),mo.blockRedirectInIframe(t,this.config.system.allowRedirectInIframe),mo.blockReloadInHiddenIframes(),mo.blockAcquireTokenInPopups(),mo.blockAPICallsBeforeInitialize(this.initialized),t===e.InteractionType.Redirect&&this.config.cache.cacheLocation===Gr.MemoryStorage&&!this.config.cache.storeAuthStateInCookie)throw io.createInMemoryRedirectUnavailableError();t!==e.InteractionType.Redirect&&t!==e.InteractionType.Popup||this.preflightInteractiveRequest(!r)}preflightInteractiveRequest(e){this.logger.verbose("preflightInteractiveRequest called, validating app environment"),mo.blockReloadInHiddenIframes(),e&&this.browserStorage.setInteractionInProgress(!0)}async acquireTokenNative(e,t,r){if(this.logger.trace("acquireTokenNative called"),!this.nativeExtensionProvider)throw qr.createNativeConnectionNotEstablishedError();return new qo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,t,this.performanceClient,this.nativeExtensionProvider,r||this.getNativeAccountId(e),this.nativeInternalStorage,e.correlationId).acquireToken(e)}canUseNative(e,t){if(this.logger.trace("canUseNative called"),!Uo.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider,e.authenticationScheme))return this.logger.trace("canUseNative: isNativeAvailable returned false, returning false"),!1;if(e.prompt)switch(e.prompt){case se.NONE:case se.CONSENT:case se.LOGIN:this.logger.trace("canUseNative: prompt is compatible with native flow");break;default:return this.logger.trace(`canUseNative: prompt = ${e.prompt} is not compatible with native flow, returning false`),!1}return!(!t&&!this.getNativeAccountId(e))||(this.logger.trace("canUseNative: nativeAccountId is not available, returning false"),!1)}getNativeAccountId(e){const t=e.account||this.browserStorage.getAccountInfoByHints(e.loginHint,e.sid)||this.getActiveAccount();return t&&t.nativeAccountId||""}createPopupClient(e){return new Lo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createRedirectClient(e){return new Ho(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentIframeClient(e){return new Bo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Jr.ssoSilent,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentCacheClient(e){return new Mo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentRefreshClient(e){return new Ko(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentAuthCodeClient(e){return new pn(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Jr.acquireTokenByCode,this.performanceClient,this.nativeExtensionProvider,e)}addEventCallback(e){return this.eventHandler.addEventCallback(e)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){return this.performanceClient.addPerformanceCallback(e)}removePerformanceCallback(e){return this.performanceClient.removePerformanceCallback(e)}enableAccountStorageEvents(){this.eventHandler.enableAccountStorageEvents()}disableAccountStorageEvents(){this.eventHandler.disableAccountStorageEvents()}getTokenCache(){return this.tokenCache}getLogger(){return this.logger}setLogger(e){this.logger=e}initializeWrapperLibrary(e,t){this.browserStorage.setWrapperMetadata(e,t)}setNavigationClient(e){this.navigationClient=e}getConfiguration(){return this.config}getPerformanceClient(){return this.performanceClient}getBrowserStorage(){return this.browserStorage}getNativeInternalStorage(){return this.nativeInternalStorage}getBrowserCrypto(){return this.browserCrypto}isBrowserEnv(){return this.isBrowserEnvironment}getNativeExtensionProvider(){return this.nativeExtensionProvider}setNativeExtensionProvider(e){this.nativeExtensionProvider=e}getEventHandler(){return this.eventHandler}getNavigationClient(){return this.navigationClient}getRedirectResponse(){return this.redirectResponse}getRequestCorrelationId(e){return e?.correlationId?e.correlationId:this.isBrowserEnvironment?this.browserCrypto.createNewGuid():t.EMPTY_STRING}async loginRedirect(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginRedirect called",t),this.acquireTokenRedirect({correlationId:t,...e||eo})}loginPopup(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginPopup called",t),this.acquireTokenPopup({correlationId:t,...e||eo})}async acquireTokenSilent(r){const o=this.getRequestCorrelationId(r),n=this.performanceClient.startMeasurement(or.AcquireTokenSilent,o);n.add({cacheLookupPolicy:r.cacheLookupPolicy}),this.preflightBrowserEnvironmentCheck(e.InteractionType.Silent),this.logger.verbose("acquireTokenSilent called",o);const i=r.account||this.getActiveAccount();if(!i)throw qr.createNoAccountError();const a={clientId:this.config.auth.clientId,authority:r.authority||t.EMPTY_STRING,scopes:r.scopes,homeAccountIdentifier:i.homeAccountId,claims:r.claims,authenticationScheme:r.authenticationScheme,resourceRequestMethod:r.resourceRequestMethod,resourceRequestUri:r.resourceRequestUri,shrClaims:r.shrClaims,sshKid:r.sshKid},s=JSON.stringify(a),c=this.activeSilentTokenRequests.get(s);if(void 0===c){this.logger.verbose("acquireTokenSilent called for the first time, storing active request",o),this.performanceClient.setPreQueueTime(or.AcquireTokenSilentAsync,o);const e=this.acquireTokenSilentAsync({...r,correlationId:o},i).then((e=>(this.activeSilentTokenRequests.delete(s),n.add({accessTokenSize:e.accessToken.length,idTokenSize:e.idToken.length}),n.end({success:!0,fromCache:e.fromCache,isNativeBroker:e.fromNativeBroker,cacheLookupPolicy:r.cacheLookupPolicy,requestId:e.requestId}),e))).catch((e=>{throw this.activeSilentTokenRequests.delete(s),n.end({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e}));return this.activeSilentTokenRequests.set(s,e),e}return this.logger.verbose("acquireTokenSilent has been called previously, returning the result from the first call",o),n.discard(),c}async acquireTokenSilentAsync(t,r){let o;if(this.performanceClient.addQueueMeasurement(or.AcquireTokenSilentAsync,t.correlationId),this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_START,e.InteractionType.Silent,t),this.atsAsyncMeasurement=this.performanceClient.startMeasurement(or.AcquireTokenSilentAsync,t.correlationId),this.atsAsyncMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibility),Uo.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider,t.authenticationScheme)&&r.nativeAccountId){this.logger.verbose("acquireTokenSilent - attempting to acquire token from native platform");const e={...t,account:r};o=this.acquireTokenNative(e,Jr.acquireTokenSilent_silentFlow).catch((async e=>{if(e instanceof Po&&e.isFatal()){this.logger.verbose("acquireTokenSilent - native platform unavailable, falling back to web flow"),this.nativeExtensionProvider=void 0;return this.createSilentIframeClient(t.correlationId).acquireToken(t)}throw e}))}else{this.logger.verbose("acquireTokenSilent - attempting to acquire token from web flow");const n=this.createSilentCacheClient(t.correlationId);this.performanceClient.setPreQueueTime(or.InitializeSilentRequest,t.correlationId);const i=await n.initializeSilentRequest(t,r),a={...t,cacheLookupPolicy:t.cacheLookupPolicy||oo.Default};this.performanceClient.setPreQueueTime(or.AcquireTokenFromCache,i.correlationId),o=this.acquireTokenFromCache(n,i,a).catch((r=>{if(a.cacheLookupPolicy===oo.AccessToken)throw r;return mo.blockReloadInHiddenIframes(),this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_NETWORK_START,e.InteractionType.Silent,i),this.performanceClient.setPreQueueTime(or.AcquireTokenByRefreshToken,i.correlationId),this.acquireTokenByRefreshToken(i,a).catch((e=>{const r=e instanceof Lt,o=e instanceof Zt,n=e.errorCode===Ur.INVALID_GRANT_ERROR;if((!r||!n||o||a.cacheLookupPolicy===oo.AccessTokenAndRefreshToken||a.cacheLookupPolicy===oo.RefreshToken)&&a.cacheLookupPolicy!==oo.Skip)throw e;return this.logger.verbose("Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.",t.correlationId),this.performanceClient.setPreQueueTime(or.AcquireTokenBySilentIframe,i.correlationId),this.acquireTokenBySilentIframe(i)}))}))}return o.then((t=>(this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Silent,t),this.atsAsyncMeasurement?.end({success:!0,fromCache:t.fromCache,isNativeBroker:t.fromNativeBroker,requestId:t.requestId}),t))).catch((t=>{throw this.eventHandler.emitEvent(wo.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Silent,null,t),this.atsAsyncMeasurement?.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t})).finally((()=>{document.removeEventListener("visibilitychange",this.trackPageVisibility)}))}}var fn=Object.freeze({__proto__:null,StandardController:mn});class yn{static async createPublicClientApplication(e){const t=new hn(e),r=await t.createController();return new yn(e,r)}constructor(e,t){if(t)this.controller=t;else{const t=new ln(e);this.controller=new mn(t)}}async initialize(){return this.controller.initialize()}async acquireTokenPopup(e){return this.controller.acquireTokenPopup(e)}acquireTokenRedirect(e){return this.controller.acquireTokenRedirect(e)}acquireTokenSilent(e){return this.controller.acquireTokenSilent(e)}acquireTokenByCode(e){return this.controller.acquireTokenByCode(e)}addEventCallback(e){return this.controller.addEventCallback(e)}removeEventCallback(e){return this.controller.removeEventCallback(e)}addPerformanceCallback(e){return this.controller.addPerformanceCallback(e)}removePerformanceCallback(e){return this.controller.removePerformanceCallback(e)}enableAccountStorageEvents(){this.controller.enableAccountStorageEvents()}disableAccountStorageEvents(){this.controller.disableAccountStorageEvents()}getAccountByHomeId(e){return this.controller.getAccountByHomeId(e)}getAccountByLocalId(e){return this.controller.getAccountByLocalId(e)}getAccountByUsername(e){return this.controller.getAccountByUsername(e)}getAllAccounts(){return this.controller.getAllAccounts()}handleRedirectPromise(e){return this.controller.handleRedirectPromise(e)}loginPopup(e){return this.controller.loginPopup(e)}loginRedirect(e){return this.controller.loginRedirect(e)}logout(e){return this.controller.logout(e)}logoutRedirect(e){return this.controller.logoutRedirect(e)}logoutPopup(e){return this.controller.logoutPopup(e)}ssoSilent(e){return this.controller.ssoSilent(e)}getTokenCache(){return this.controller.getTokenCache()}getLogger(){return this.controller.getLogger()}setLogger(e){this.controller.setLogger(e)}setActiveAccount(e){this.controller.setActiveAccount(e)}getActiveAccount(){return this.controller.getActiveAccount()}initializeWrapperLibrary(e,t){return this.controller.initializeWrapperLibrary(e,t)}setNavigationClient(e){this.controller.setNavigationClient(e)}getConfiguration(){return this.controller.getConfiguration()}async hydrateCache(e,t){return this.controller.hydrateCache(e,t)}}const Cn={initialize:()=>Promise.reject(io.createStubPcaInstanceCalledError()),acquireTokenPopup:()=>Promise.reject(io.createStubPcaInstanceCalledError()),acquireTokenRedirect:()=>Promise.reject(io.createStubPcaInstanceCalledError()),acquireTokenSilent:()=>Promise.reject(io.createStubPcaInstanceCalledError()),acquireTokenByCode:()=>Promise.reject(io.createStubPcaInstanceCalledError()),getAllAccounts:()=>[],getAccountByHomeId:()=>null,getAccountByUsername:()=>null,getAccountByLocalId:()=>null,handleRedirectPromise:()=>Promise.reject(io.createStubPcaInstanceCalledError()),loginPopup:()=>Promise.reject(io.createStubPcaInstanceCalledError()),loginRedirect:()=>Promise.reject(io.createStubPcaInstanceCalledError()),logout:()=>Promise.reject(io.createStubPcaInstanceCalledError()),logoutRedirect:()=>Promise.reject(io.createStubPcaInstanceCalledError()),logoutPopup:()=>Promise.reject(io.createStubPcaInstanceCalledError()),ssoSilent:()=>Promise.reject(io.createStubPcaInstanceCalledError()),addEventCallback:()=>null,removeEventCallback:()=>{},addPerformanceCallback:()=>"",removePerformanceCallback:()=>!1,enableAccountStorageEvents:()=>{},disableAccountStorageEvents:()=>{},getTokenCache:()=>{throw io.createStubPcaInstanceCalledError()},getLogger:()=>{throw io.createStubPcaInstanceCalledError()},setLogger:()=>{},setActiveAccount:()=>{},getActiveAccount:()=>null,initializeWrapperLibrary:()=>{},setNavigationClient:()=>{},getConfiguration:()=>{throw io.createStubPcaInstanceCalledError()},hydrateCache:()=>Promise.reject(io.createStubPcaInstanceCalledError())};class vn{constructor(e,t){this.correlationId=t,this.measureName=vn.makeMeasureName(e,t),this.startMark=vn.makeStartMark(e,t),this.endMark=vn.makeEndMark(e,t)}static makeMeasureName(e,t){return`msal.measure.${e}.${t}`}static makeStartMark(e,t){return`msal.start.${e}.${t}`}static makeEndMark(e,t){return`msal.end.${e}.${t}`}static supportsBrowserPerformance(){return"undefined"!=typeof window&&void 0!==window.performance&&"function"==typeof window.performance.mark&&"function"==typeof window.performance.measure&&"function"==typeof window.performance.clearMarks&&"function"==typeof window.performance.clearMeasures&&"function"==typeof window.performance.getEntriesByName}static flushMeasurements(e,t){if(vn.supportsBrowserPerformance())try{t.forEach((t=>{const r=vn.makeMeasureName(t.name,e);window.performance.getEntriesByName(r,"measure").length>0&&(window.performance.clearMeasures(r),window.performance.clearMarks(vn.makeStartMark(r,e)),window.performance.clearMarks(vn.makeEndMark(r,e)))}))}catch(e){}}startMeasurement(){if(vn.supportsBrowserPerformance())try{window.performance.mark(this.startMark)}catch(e){}}endMeasurement(){if(vn.supportsBrowserPerformance())try{window.performance.mark(this.endMark),window.performance.measure(this.measureName,this.startMark,this.endMark)}catch(e){}}flushMeasurement(){if(vn.supportsBrowserPerformance())try{const e=window.performance.getEntriesByName(this.measureName,"measure");if(e.length>0){const t=e[0].duration;return window.performance.clearMeasures(this.measureName),window.performance.clearMarks(this.startMark),window.performance.clearMarks(this.endMark),t}}catch(e){}return null}}e.AccountEntity=_t,e.ApiId=Jr,e.AuthError=nt,e.AuthErrorMessage=ot,e.AuthenticationHeaderParser=class{constructor(e){this.headers=e}getShrNonce(){const e=this.headers[c];if(e){const t=this.parseChallenges(e);if(t.nextnonce)return t.nextnonce;throw mt.createInvalidAuthenticationHeaderError(c,"nextnonce challenge is missing.")}const t=this.headers[s];if(t){const e=this.parseChallenges(t);if(e.nonce)return e.nonce;throw mt.createInvalidAuthenticationHeaderError(s,"nonce challenge is missing.")}throw mt.createMissingNonceAuthenticationHeadersError()}parseChallenges(e){const r=e.indexOf(" "),o=e.substr(r+1).split(","),n={};return o.forEach((e=>{const[r,o]=e.split("=");n[r]=unescape(o.replace(/['"]+/g,t.EMPTY_STRING))})),n}},e.AuthenticationScheme=qe,e.AzureCloudInstance=gt,e.BrowserAuthError=qr,e.BrowserAuthErrorMessage=Or,e.BrowserCacheLocation=Gr,e.BrowserConfigurationAuthError=io,e.BrowserConfigurationAuthErrorMessage=no,e.BrowserPerformanceClient=class extends Pr{constructor(e,r){super(e.auth.clientId,e.auth.authority||`${t.DEFAULT_AUTHORITY}`,new lt(e.system?.loggerOptions||{},ho,uo),ho,uo,e.telemetry?.application||{appName:"",appVersion:""},r),this.browserCrypto=new Zo(this.logger),this.guidGenerator=new zo(this.browserCrypto)}startPerformanceMeasurement(e,t){return new vn(e,t)}generateId(){return this.guidGenerator.generateGuid()}getPageVisibility(){return document.visibilityState?.toString()||null}deleteIncompleteSubMeasurements(e){const t=this.eventsByCorrelationId.get(e.event.correlationId),r=t&&t.eventId===e.event.eventId,o=[];r&&t?.incompleteSubMeasurements&&t.incompleteSubMeasurements.forEach((e=>{o.push({...e})})),o.length>0&&vn.flushMeasurements(e.event.correlationId,o)}supportsBrowserPerformanceNow(){return"undefined"!=typeof window&&void 0!==window.performance&&"function"==typeof window.performance.now}startMeasurement(e,t){const r=this.getPageVisibility(),o=super.startMeasurement(e,t);return{...o,end:e=>{const t=o.end({startPageVisibility:r,endPageVisibility:this.getPageVisibility(),...e});return this.deleteIncompleteSubMeasurements(o),t},discard:()=>{o.discard(),this.deleteIncompleteSubMeasurements(o),o.measurement.flushMeasurement()}}}setPreQueueTime(e,t){if(!this.supportsBrowserPerformanceNow())return void this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to set telemetry queue time for ${e}`);if(!t)return void this.logger.trace(`BrowserPerformanceClient: correlationId for ${e} not provided, unable to set telemetry queue time`);const r=this.preQueueTimeByCorrelationId.get(t);r&&(this.logger.trace(`BrowserPerformanceClient: Incomplete pre-queue ${r.name} found`,t),this.addQueueMeasurement(r.name,t,void 0,!0)),this.preQueueTimeByCorrelationId.set(t,{name:e,time:window.performance.now()})}addQueueMeasurement(e,t,r,o){if(!this.supportsBrowserPerformanceNow())return void this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to add queue measurement for ${e}`);if(!t)return void this.logger.trace(`BrowserPerformanceClient: correlationId for ${e} not provided, unable to add queue measurement`);const n=super.getPreQueueTime(e,t);if(!n)return;const i=window.performance.now(),a=r||super.calculateQueuedTime(n,i);return super.addQueueMeasurement(e,t,a,o)}},e.BrowserPerformanceMeasurement=vn,e.BrowserUtils=mo,e.CacheLookupPolicy=oo,e.ClientAuthError=st,e.ClientAuthErrorMessage=at,e.ClientConfigurationError=mt,e.ClientConfigurationErrorMessage=pt,e.DEFAULT_IFRAME_TIMEOUT_MS=Do,e.EventMessageUtils=class{static getInteractionStatusFromEvent(t,r){switch(t.eventType){case wo.LOGIN_START:return Zr.Login;case wo.SSO_SILENT_START:return Zr.SsoSilent;case wo.ACQUIRE_TOKEN_START:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup)return Zr.AcquireToken;break;case wo.HANDLE_REDIRECT_START:return Zr.HandleRedirect;case wo.LOGOUT_START:return Zr.Logout;case wo.SSO_SILENT_SUCCESS:case wo.SSO_SILENT_FAILURE:if(r&&r!==Zr.SsoSilent)break;return Zr.None;case wo.LOGOUT_END:if(r&&r!==Zr.Logout)break;return Zr.None;case wo.HANDLE_REDIRECT_END:if(r&&r!==Zr.HandleRedirect)break;return Zr.None;case wo.LOGIN_SUCCESS:case wo.LOGIN_FAILURE:case wo.ACQUIRE_TOKEN_SUCCESS:case wo.ACQUIRE_TOKEN_FAILURE:case wo.RESTORE_FROM_BFCACHE:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup){if(r&&r!==Zr.Login&&r!==Zr.AcquireToken)break;return Zr.None}}return null}},e.EventType=wo,e.InteractionRequiredAuthError=Zt,e.InteractionRequiredAuthErrorMessage=Xt,e.InteractionStatus=Zr,e.Logger=lt,e.NavigationClient=xo,e.OIDC_DEFAULT_SCOPES=r,e.PerformanceEvents=or,e.PromptValue=se,e.ProtocolMode=Et,e.PublicClientApplication=yn,e.ServerError=Lt,e.ServerResponseType=ue,e.SignedHttpRequest=class{constructor(e,t){const r=t&&t.loggerOptions||{};this.logger=new lt(r,ho,uo),this.cryptoOps=new an(this.logger),this.popTokenGenerator=new cr(this.cryptoOps),this.shrParameters=e}async generatePublicKeyThumbprint(){const{kid:e}=await this.popTokenGenerator.generateKid(this.shrParameters);return e}async signRequest(e,t,r){return this.popTokenGenerator.signPayload(e,t,this.shrParameters,r)}async removeKeys(e){return await this.cryptoOps.removeTokenBindingKey(e)}},e.StringUtils=ct,e.UrlString=rr,e.WrapperSKU={React:"@azure/msal-react",Angular:"@azure/msal-angular"},e.internals=sn,e.stubbedPublicClientApplication=Cn,e.version=uo}));