@azure/msal-browser 2.23.0 → 2.24.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +214 -214
  3. package/dist/_virtual/_tslib.js +1 -1
  4. package/dist/app/ClientApplication.d.ts +58 -1
  5. package/dist/app/ClientApplication.d.ts.map +1 -1
  6. package/dist/app/ClientApplication.js +290 -75
  7. package/dist/app/ClientApplication.js.map +1 -1
  8. package/dist/app/IPublicClientApplication.d.ts +1 -0
  9. package/dist/app/IPublicClientApplication.d.ts.map +1 -1
  10. package/dist/app/IPublicClientApplication.js +4 -1
  11. package/dist/app/IPublicClientApplication.js.map +1 -1
  12. package/dist/app/PublicClientApplication.d.ts.map +1 -1
  13. package/dist/app/PublicClientApplication.js +48 -42
  14. package/dist/app/PublicClientApplication.js.map +1 -1
  15. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +49 -0
  16. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts.map +1 -0
  17. package/dist/broker/nativeBroker/NativeMessageHandler.js +246 -0
  18. package/dist/broker/nativeBroker/NativeMessageHandler.js.map +1 -0
  19. package/dist/broker/nativeBroker/NativeRequest.d.ts +43 -0
  20. package/dist/broker/nativeBroker/NativeRequest.d.ts.map +1 -0
  21. package/dist/broker/nativeBroker/NativeResponse.d.ts +24 -0
  22. package/dist/broker/nativeBroker/NativeResponse.d.ts.map +1 -0
  23. package/dist/cache/AsyncMemoryStorage.js +1 -1
  24. package/dist/cache/AsyncMemoryStorage.js.map +1 -1
  25. package/dist/cache/BrowserCacheManager.d.ts +11 -0
  26. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  27. package/dist/cache/BrowserCacheManager.js +44 -2
  28. package/dist/cache/BrowserCacheManager.js.map +1 -1
  29. package/dist/cache/BrowserStorage.js +1 -1
  30. package/dist/cache/BrowserStorage.js.map +1 -1
  31. package/dist/cache/DatabaseStorage.js +1 -1
  32. package/dist/cache/DatabaseStorage.js.map +1 -1
  33. package/dist/cache/MemoryStorage.js +1 -1
  34. package/dist/cache/MemoryStorage.js.map +1 -1
  35. package/dist/cache/TokenCache.js +1 -1
  36. package/dist/cache/TokenCache.js.map +1 -1
  37. package/dist/config/Configuration.d.ts +99 -38
  38. package/dist/config/Configuration.d.ts.map +1 -1
  39. package/dist/config/Configuration.js +4 -3
  40. package/dist/config/Configuration.js.map +1 -1
  41. package/dist/crypto/BrowserCrypto.js +1 -1
  42. package/dist/crypto/BrowserCrypto.js.map +1 -1
  43. package/dist/crypto/CryptoOps.js +1 -1
  44. package/dist/crypto/CryptoOps.js.map +1 -1
  45. package/dist/crypto/GuidGenerator.js +1 -1
  46. package/dist/crypto/GuidGenerator.js.map +1 -1
  47. package/dist/crypto/PkceGenerator.js +1 -1
  48. package/dist/crypto/PkceGenerator.js.map +1 -1
  49. package/dist/crypto/SignedHttpRequest.js +1 -1
  50. package/dist/crypto/SignedHttpRequest.js.map +1 -1
  51. package/dist/encode/Base64Decode.js +1 -1
  52. package/dist/encode/Base64Decode.js.map +1 -1
  53. package/dist/encode/Base64Encode.js +1 -1
  54. package/dist/encode/Base64Encode.js.map +1 -1
  55. package/dist/error/BrowserAuthError.d.ts +58 -0
  56. package/dist/error/BrowserAuthError.d.ts.map +1 -1
  57. package/dist/error/BrowserAuthError.js +73 -1
  58. package/dist/error/BrowserAuthError.js.map +1 -1
  59. package/dist/error/BrowserConfigurationAuthError.js +1 -1
  60. package/dist/error/BrowserConfigurationAuthError.js.map +1 -1
  61. package/dist/error/NativeAuthError.d.ts +46 -0
  62. package/dist/error/NativeAuthError.d.ts.map +1 -0
  63. package/dist/error/NativeAuthError.js +82 -0
  64. package/dist/error/NativeAuthError.js.map +1 -0
  65. package/dist/event/EventHandler.js +1 -1
  66. package/dist/event/EventHandler.js.map +1 -1
  67. package/dist/event/EventMessage.js +1 -1
  68. package/dist/event/EventMessage.js.map +1 -1
  69. package/dist/event/EventType.d.ts +2 -0
  70. package/dist/event/EventType.d.ts.map +1 -1
  71. package/dist/event/EventType.js +3 -1
  72. package/dist/event/EventType.js.map +1 -1
  73. package/dist/index.cjs.js +1633 -449
  74. package/dist/index.cjs.js.map +1 -1
  75. package/dist/index.js +1 -1
  76. package/dist/interaction_client/BaseInteractionClient.d.ts +12 -2
  77. package/dist/interaction_client/BaseInteractionClient.d.ts.map +1 -1
  78. package/dist/interaction_client/BaseInteractionClient.js +35 -3
  79. package/dist/interaction_client/BaseInteractionClient.js.map +1 -1
  80. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.js +1 -1
  81. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.js.map +1 -1
  82. package/dist/interaction_client/NativeInteractionClient.d.ts +57 -0
  83. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -0
  84. package/dist/interaction_client/NativeInteractionClient.js +334 -0
  85. package/dist/interaction_client/NativeInteractionClient.js.map +1 -0
  86. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  87. package/dist/interaction_client/PopupClient.js +36 -7
  88. package/dist/interaction_client/PopupClient.js.map +1 -1
  89. package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
  90. package/dist/interaction_client/RedirectClient.js +26 -8
  91. package/dist/interaction_client/RedirectClient.js.map +1 -1
  92. package/dist/interaction_client/SilentAuthCodeClient.d.ts +2 -1
  93. package/dist/interaction_client/SilentAuthCodeClient.d.ts.map +1 -1
  94. package/dist/interaction_client/SilentAuthCodeClient.js +3 -3
  95. package/dist/interaction_client/SilentAuthCodeClient.js.map +1 -1
  96. package/dist/interaction_client/SilentCacheClient.d.ts.map +1 -1
  97. package/dist/interaction_client/SilentCacheClient.js +2 -4
  98. package/dist/interaction_client/SilentCacheClient.js.map +1 -1
  99. package/dist/interaction_client/SilentIframeClient.d.ts +5 -3
  100. package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
  101. package/dist/interaction_client/SilentIframeClient.js +38 -25
  102. package/dist/interaction_client/SilentIframeClient.js.map +1 -1
  103. package/dist/interaction_client/SilentRefreshClient.js +1 -1
  104. package/dist/interaction_client/SilentRefreshClient.js.map +1 -1
  105. package/dist/interaction_client/StandardInteractionClient.d.ts +2 -8
  106. package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  107. package/dist/interaction_client/StandardInteractionClient.js +5 -9
  108. package/dist/interaction_client/StandardInteractionClient.js.map +1 -1
  109. package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
  110. package/dist/interaction_handler/InteractionHandler.js +15 -4
  111. package/dist/interaction_handler/InteractionHandler.js.map +1 -1
  112. package/dist/interaction_handler/PopupHandler.js +1 -1
  113. package/dist/interaction_handler/PopupHandler.js.map +1 -1
  114. package/dist/interaction_handler/RedirectHandler.d.ts +1 -1
  115. package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
  116. package/dist/interaction_handler/RedirectHandler.js +16 -9
  117. package/dist/interaction_handler/RedirectHandler.js.map +1 -1
  118. package/dist/interaction_handler/SilentHandler.js +1 -1
  119. package/dist/interaction_handler/SilentHandler.js.map +1 -1
  120. package/dist/navigation/NavigationClient.js +1 -1
  121. package/dist/navigation/NavigationClient.js.map +1 -1
  122. package/dist/network/FetchClient.js +1 -1
  123. package/dist/network/FetchClient.js.map +1 -1
  124. package/dist/network/XhrClient.js +1 -1
  125. package/dist/network/XhrClient.js.map +1 -1
  126. package/dist/packageMetadata.d.ts +1 -1
  127. package/dist/packageMetadata.d.ts.map +1 -1
  128. package/dist/packageMetadata.js +2 -2
  129. package/dist/packageMetadata.js.map +1 -1
  130. package/dist/request/AuthorizationCodeRequest.d.ts +2 -1
  131. package/dist/request/AuthorizationCodeRequest.d.ts.map +1 -1
  132. package/dist/request/AuthorizationUrlRequest.d.ts +1 -1
  133. package/dist/request/AuthorizationUrlRequest.d.ts.map +1 -1
  134. package/dist/request/PopupRequest.d.ts +1 -1
  135. package/dist/request/PopupRequest.d.ts.map +1 -1
  136. package/dist/request/RedirectRequest.d.ts +1 -1
  137. package/dist/request/RedirectRequest.d.ts.map +1 -1
  138. package/dist/request/SsoSilentRequest.d.ts +1 -1
  139. package/dist/request/SsoSilentRequest.d.ts.map +1 -1
  140. package/dist/telemetry/BrowserPerformanceClient.js +1 -1
  141. package/dist/telemetry/BrowserPerformanceClient.js.map +1 -1
  142. package/dist/telemetry/BrowserPerformanceMeasurement.js +1 -1
  143. package/dist/telemetry/BrowserPerformanceMeasurement.js.map +1 -1
  144. package/dist/utils/BrowserConstants.d.ts +12 -1
  145. package/dist/utils/BrowserConstants.d.ts.map +1 -1
  146. package/dist/utils/BrowserConstants.js +14 -2
  147. package/dist/utils/BrowserConstants.js.map +1 -1
  148. package/dist/utils/BrowserProtocolUtils.js +1 -1
  149. package/dist/utils/BrowserProtocolUtils.js.map +1 -1
  150. package/dist/utils/BrowserStringUtils.js +1 -1
  151. package/dist/utils/BrowserStringUtils.js.map +1 -1
  152. package/dist/utils/BrowserUtils.d.ts +6 -0
  153. package/dist/utils/BrowserUtils.d.ts.map +1 -1
  154. package/dist/utils/BrowserUtils.js +11 -1
  155. package/dist/utils/BrowserUtils.js.map +1 -1
  156. package/dist/utils/MathUtils.js +1 -1
  157. package/dist/utils/MathUtils.js.map +1 -1
  158. package/dist/utils/PopupUtils.js +1 -1
  159. package/dist/utils/PopupUtils.js.map +1 -1
  160. package/lib/msal-browser.js +1633 -449
  161. package/lib/msal-browser.js.map +1 -1
  162. package/lib/msal-browser.min.js +38 -38
  163. package/package.json +2 -2
@@ -20,6 +20,6 @@ export declare class RedirectHandler extends InteractionHandler {
20
20
  * Handle authorization code response in the window.
21
21
  * @param hash
22
22
  */
23
- handleCodeResponseFromHash(locationHash: string, state: string, authority: Authority, networkModule: INetworkModule, clientId?: string): Promise<AuthenticationResult>;
23
+ handleCodeResponseFromHash(locationHash: string, state: string, authority: Authority, networkModule: INetworkModule): Promise<AuthenticationResult>;
24
24
  }
25
25
  //# sourceMappingURL=RedirectHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RedirectHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/RedirectHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAe,8BAA8B,EAAE,OAAO,EAAE,oBAAoB,EAAmB,SAAS,EAAE,cAAc,EAAmB,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG9M,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,oBAAY,cAAc,GAAG,iBAAiB,GAAG;IAC7C,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;CACxD,CAAC;AAEF,qBAAa,eAAgB,SAAQ,kBAAkB;IAEnD,OAAO,CAAC,aAAa,CAAU;gBAEnB,cAAc,EAAE,uBAAuB,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO;IAK5L;;;OAGG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CpF;;;OAGG;IACG,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAuD/K"}
1
+ {"version":3,"file":"RedirectHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/RedirectHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAe,8BAA8B,EAAE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,cAAc,EAAmB,MAAM,EAAe,MAAM,oBAAoB,CAAC;AAG1M,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,oBAAY,cAAc,GAAG,iBAAiB,GAAG;IAC7C,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;CACxD,CAAC;AAEF,qBAAa,eAAgB,SAAQ,kBAAkB;IAEnD,OAAO,CAAC,aAAa,CAAU;gBAEnB,cAAc,EAAE,uBAAuB,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO;IAK5L;;;OAGG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CpF;;;OAGG;IACG,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA6D5J"}
@@ -1,8 +1,8 @@
1
- /*! @azure/msal-browser v2.23.0 2022-04-04 */
1
+ /*! @azure/msal-browser v2.24.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  import { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';
4
- import { StringUtils, ThrottlingUtils, ClientAuthError } from '@azure/msal-common';
5
- import { BrowserAuthError } from '../error/BrowserAuthError.js';
4
+ import { StringUtils, ClientAuthError, ServerError } from '@azure/msal-common';
5
+ import { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';
6
6
  import { TemporaryCacheKeys, ApiId } from '../utils/BrowserConstants.js';
7
7
  import { InteractionHandler } from './InteractionHandler.js';
8
8
 
@@ -77,7 +77,7 @@ var RedirectHandler = /** @class */ (function (_super) {
77
77
  * Handle authorization code response in the window.
78
78
  * @param hash
79
79
  */
80
- RedirectHandler.prototype.handleCodeResponseFromHash = function (locationHash, state, authority, networkModule, clientId) {
80
+ RedirectHandler.prototype.handleCodeResponseFromHash = function (locationHash, state, authority, networkModule) {
81
81
  return __awaiter(this, void 0, void 0, function () {
82
82
  var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;
83
83
  return __generator(this, function (_a) {
@@ -95,7 +95,18 @@ var RedirectHandler = /** @class */ (function (_super) {
95
95
  if (!requestState) {
96
96
  throw ClientAuthError.createStateNotFoundError("Cached State");
97
97
  }
98
- authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);
98
+ try {
99
+ authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);
100
+ }
101
+ catch (e) {
102
+ if (e instanceof ServerError && e.subError === BrowserAuthErrorMessage.userCancelledError.code) {
103
+ // Translate server error caused by user closing native prompt to corresponding first class MSAL error
104
+ throw BrowserAuthError.createUserCancelledError();
105
+ }
106
+ else {
107
+ throw e;
108
+ }
109
+ }
99
110
  nonceKey = this.browserStorage.generateNonceKey(requestState);
100
111
  cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);
101
112
  // Assign code to request
@@ -118,10 +129,6 @@ var RedirectHandler = /** @class */ (function (_super) {
118
129
  this.authCodeRequest.ccsCredential = cachedCcsCred;
119
130
  }
120
131
  }
121
- // Remove throttle if it exists
122
- if (clientId) {
123
- ThrottlingUtils.removeThrottle(this.browserStorage, clientId, this.authCodeRequest);
124
- }
125
132
  return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];
126
133
  case 3:
127
134
  tokenResponse = _a.sent();
@@ -1 +1 @@
1
- {"version":3,"file":"RedirectHandler.js","sources":["../../src/interaction_handler/RedirectHandler.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthorizationCodeClient, StringUtils, CommonAuthorizationCodeRequest, ICrypto, AuthenticationResult, ThrottlingUtils, Authority, INetworkModule, ClientAuthError, Logger } from \"@azure/msal-common\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { ApiId, TemporaryCacheKeys } from \"../utils/BrowserConstants\";\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\nimport { InteractionHandler, InteractionParams } from \"./InteractionHandler\";\nimport { INavigationClient } from \"../navigation/INavigationClient\";\nimport { NavigationOptions } from \"../navigation/NavigationOptions\";\n\nexport type RedirectParams = InteractionParams & {\n navigationClient: INavigationClient;\n redirectTimeout: number;\n redirectStartPage: string;\n onRedirectNavigate?: (url: string) => void | boolean;\n};\n\nexport class RedirectHandler extends InteractionHandler {\n\n private browserCrypto: ICrypto;\n\n constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger, browserCrypto: ICrypto) {\n super(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger);\n this.browserCrypto = browserCrypto;\n }\n\n /**\n * Redirects window to given URL.\n * @param urlNavigate\n */\n async initiateAuthRequest(requestUrl: string, params: RedirectParams): Promise<void> {\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest called\");\n // Navigate if valid URL\n if (!StringUtils.isEmpty(requestUrl)) {\n // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true\n if (params.redirectStartPage) {\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page\");\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);\n }\n\n // Set interaction status in the library.\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, this.authCodeRequest.correlationId, true);\n this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);\n this.browserRequestLogger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${requestUrl}`);\n const navigationOptions: NavigationOptions = {\n apiId: ApiId.acquireTokenRedirect,\n timeout: params.redirectTimeout,\n noHistory: false\n };\n \n // If onRedirectNavigate is implemented, invoke it and provide requestUrl\n if (typeof params.onRedirectNavigate === \"function\") {\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback\");\n const navigate = params.onRedirectNavigate(requestUrl);\n\n // Returning false from onRedirectNavigate will stop navigation\n if (navigate !== false) {\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating\");\n await params.navigationClient.navigateExternal(requestUrl, navigationOptions);\n return;\n } else {\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation\");\n return;\n }\n } else {\n // Navigate window to request URL\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: Navigating window to navigate url\");\n await params.navigationClient.navigateExternal(requestUrl, navigationOptions);\n return;\n }\n } else {\n // Throw error if request URL is empty.\n this.browserRequestLogger.info(\"RedirectHandler.initiateAuthRequest: Navigate url is empty\");\n throw BrowserAuthError.createEmptyNavigationUriError();\n }\n }\n\n /**\n * Handle authorization code response in the window.\n * @param hash\n */\n async handleCodeResponseFromHash(locationHash: string, state: string, authority: Authority, networkModule: INetworkModule, clientId?: string): Promise<AuthenticationResult> {\n this.browserRequestLogger.verbose(\"RedirectHandler.handleCodeResponse called\");\n\n // Check that location hash isn't empty.\n if (StringUtils.isEmpty(locationHash)) {\n throw BrowserAuthError.createEmptyHashError(locationHash);\n }\n\n // Interaction is completed - remove interaction status.\n this.browserStorage.setInteractionInProgress(false);\n\n // Handle code response.\n const stateKey = this.browserStorage.generateStateKey(state);\n const requestState = this.browserStorage.getTemporaryCache(stateKey);\n if (!requestState) {\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\n }\n const authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\n\n // Get cached items\n const nonceKey = this.browserStorage.generateNonceKey(requestState);\n const cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\n\n // Assign code to request\n this.authCodeRequest.code = authCodeResponse.code;\n\n // Check for new cloud instance\n if (authCodeResponse.cloud_instance_host_name) {\n await this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule);\n }\n\n authCodeResponse.nonce = cachedNonce || undefined;\n authCodeResponse.state = requestState;\n\n // Add CCS parameters if available\n if (authCodeResponse.client_info) {\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\n } else {\n const cachedCcsCred = this.checkCcsCredentials();\n if (cachedCcsCred) {\n this.authCodeRequest.ccsCredential = cachedCcsCred;\n }\n }\n\n // Remove throttle if it exists\n if (clientId) {\n ThrottlingUtils.removeThrottle(this.browserStorage, clientId, this.authCodeRequest);\n }\n\n // Acquire token with retrieved code.\n const tokenResponse = await this.authModule.acquireToken(this.authCodeRequest, authCodeResponse);\n\n this.browserStorage.cleanRequestByState(state);\n return tokenResponse;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RedirectHandler.js","sources":["../../src/interaction_handler/RedirectHandler.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { AuthorizationCodeClient, StringUtils, CommonAuthorizationCodeRequest, ICrypto, AuthenticationResult, Authority, INetworkModule, ClientAuthError, Logger, ServerError } from \"@azure/msal-common\";\r\nimport { BrowserAuthError, BrowserAuthErrorMessage } from \"../error/BrowserAuthError\";\r\nimport { ApiId, TemporaryCacheKeys } from \"../utils/BrowserConstants\";\r\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\r\nimport { InteractionHandler, InteractionParams } from \"./InteractionHandler\";\r\nimport { INavigationClient } from \"../navigation/INavigationClient\";\r\nimport { NavigationOptions } from \"../navigation/NavigationOptions\";\r\n\r\nexport type RedirectParams = InteractionParams & {\r\n navigationClient: INavigationClient;\r\n redirectTimeout: number;\r\n redirectStartPage: string;\r\n onRedirectNavigate?: (url: string) => void | boolean;\r\n};\r\n\r\nexport class RedirectHandler extends InteractionHandler {\r\n\r\n private browserCrypto: ICrypto;\r\n\r\n constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger, browserCrypto: ICrypto) {\r\n super(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger);\r\n this.browserCrypto = browserCrypto;\r\n }\r\n\r\n /**\r\n * Redirects window to given URL.\r\n * @param urlNavigate\r\n */\r\n async initiateAuthRequest(requestUrl: string, params: RedirectParams): Promise<void> {\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest called\");\r\n // Navigate if valid URL\r\n if (!StringUtils.isEmpty(requestUrl)) {\r\n // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true\r\n if (params.redirectStartPage) {\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page\");\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);\r\n }\r\n\r\n // Set interaction status in the library.\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, this.authCodeRequest.correlationId, true);\r\n this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);\r\n this.browserRequestLogger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${requestUrl}`);\r\n const navigationOptions: NavigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: params.redirectTimeout,\r\n noHistory: false\r\n };\r\n \r\n // If onRedirectNavigate is implemented, invoke it and provide requestUrl\r\n if (typeof params.onRedirectNavigate === \"function\") {\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback\");\r\n const navigate = params.onRedirectNavigate(requestUrl);\r\n\r\n // Returning false from onRedirectNavigate will stop navigation\r\n if (navigate !== false) {\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating\");\r\n await params.navigationClient.navigateExternal(requestUrl, navigationOptions);\r\n return;\r\n } else {\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation\");\r\n return;\r\n }\r\n } else {\r\n // Navigate window to request URL\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: Navigating window to navigate url\");\r\n await params.navigationClient.navigateExternal(requestUrl, navigationOptions);\r\n return;\r\n }\r\n } else {\r\n // Throw error if request URL is empty.\r\n this.browserRequestLogger.info(\"RedirectHandler.initiateAuthRequest: Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n }\r\n\r\n /**\r\n * Handle authorization code response in the window.\r\n * @param hash\r\n */\r\n async handleCodeResponseFromHash(locationHash: string, state: string, authority: Authority, networkModule: INetworkModule): Promise<AuthenticationResult> {\r\n this.browserRequestLogger.verbose(\"RedirectHandler.handleCodeResponse called\");\r\n\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n\r\n // Handle code response.\r\n const stateKey = this.browserStorage.generateStateKey(state);\r\n const requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n\r\n let authCodeResponse;\r\n try {\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n } catch (e) {\r\n if (e instanceof ServerError && e.subError === BrowserAuthErrorMessage.userCancelledError.code) {\r\n // Translate server error caused by user closing native prompt to corresponding first class MSAL error\r\n throw BrowserAuthError.createUserCancelledError();\r\n } else {\r\n throw e;\r\n }\r\n }\r\n\r\n // Get cached items\r\n const nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n const cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n\r\n // Check for new cloud instance\r\n if (authCodeResponse.cloud_instance_host_name) {\r\n await this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule);\r\n }\r\n\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n authCodeResponse.state = requestState;\r\n\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n } else {\r\n const cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n\r\n // Acquire token with retrieved code.\r\n const tokenResponse = await this.authModule.acquireToken(this.authCodeRequest, authCodeResponse);\r\n\r\n this.browserStorage.cleanRequestByState(state);\r\n return tokenResponse;\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.23.0 2022-04-04 */
1
+ /*! @azure/msal-browser v2.24.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  import { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';
4
4
  import { StringUtils, Constants, UrlString } from '@azure/msal-common';
@@ -1 +1 @@
1
- {"version":3,"file":"SilentHandler.js","sources":["../../src/interaction_handler/SilentHandler.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { UrlString, StringUtils, CommonAuthorizationCodeRequest, AuthorizationCodeClient, Constants, Logger } from \"@azure/msal-common\";\nimport { InteractionHandler } from \"./InteractionHandler\";\nimport { BrowserConstants } from \"../utils/BrowserConstants\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\nimport { DEFAULT_IFRAME_TIMEOUT_MS } from \"../config/Configuration\";\n\nexport class SilentHandler extends InteractionHandler {\n\n private navigateFrameWait: number;\n constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger, navigateFrameWait: number) {\n super(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger);\n this.navigateFrameWait = navigateFrameWait;\n }\n\n /**\n * Creates a hidden iframe to given URL using user-requested scopes as an id.\n * @param urlNavigate\n * @param userRequestScopes\n */\n async initiateAuthRequest(requestUrl: string): Promise<HTMLIFrameElement> {\n if (StringUtils.isEmpty(requestUrl)) {\n // Throw error if request URL is empty.\n this.browserRequestLogger.info(\"Navigate url is empty\");\n throw BrowserAuthError.createEmptyNavigationUriError();\n }\n\n return this.navigateFrameWait ? await this.loadFrame(requestUrl) : this.loadFrameSync(requestUrl);\n }\n\n /**\n * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.\n * @param iframe\n * @param timeout\n */\n monitorIframeForHash(iframe: HTMLIFrameElement, timeout: number): Promise<string> {\n return new Promise((resolve, reject) => {\n if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {\n this.browserRequestLogger.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${timeout}ms) than the default (${DEFAULT_IFRAME_TIMEOUT_MS}ms). This may result in timeouts.`);\n }\n\n /*\n * Polling for iframes can be purely timing based,\n * since we don't need to account for interaction.\n */\n const nowMark = window.performance.now();\n const timeoutMark = nowMark + timeout;\n\n const intervalId = setInterval(() => {\n if (window.performance.now() > timeoutMark) {\n this.removeHiddenIframe(iframe);\n clearInterval(intervalId);\n reject(BrowserAuthError.createMonitorIframeTimeoutError());\n return;\n }\n\n let href: string = Constants.EMPTY_STRING;\n const contentWindow = iframe.contentWindow;\n try {\n /*\n * Will throw if cross origin,\n * which should be caught and ignored\n * since we need the interval to keep running while on STS UI.\n */\n href = contentWindow ? contentWindow.location.href : Constants.EMPTY_STRING;\n } catch (e) {}\n\n if (StringUtils.isEmpty(href)) {\n return;\n }\n\n const contentHash = contentWindow ? contentWindow.location.hash: Constants.EMPTY_STRING;\n if (UrlString.hashContainsKnownProperties(contentHash)) {\n // Success case\n this.removeHiddenIframe(iframe);\n clearInterval(intervalId);\n resolve(contentHash);\n return;\n }\n }, BrowserConstants.POLL_INTERVAL_MS);\n });\n }\n\n /**\n * @hidden\n * Loads iframe with authorization endpoint URL\n * @ignore\n */\n private loadFrame(urlNavigate: string): Promise<HTMLIFrameElement> {\n /*\n * This trick overcomes iframe navigation in IE\n * IE does not load the page consistently in iframe\n */\n\n return new Promise((resolve, reject) => {\n const frameHandle = this.createHiddenIframe();\n\n setTimeout(() => {\n if (!frameHandle) {\n reject(\"Unable to load iframe\");\n return;\n }\n\n frameHandle.src = urlNavigate;\n\n resolve(frameHandle);\n }, this.navigateFrameWait);\n });\n }\n\n /**\n * @hidden\n * Loads the iframe synchronously when the navigateTimeFrame is set to `0`\n * @param urlNavigate\n * @param frameName\n * @param logger\n */\n private loadFrameSync(urlNavigate: string): HTMLIFrameElement{\n const frameHandle = this.createHiddenIframe();\n\n frameHandle.src = urlNavigate;\n\n return frameHandle;\n }\n\n /**\n * @hidden\n * Creates a new hidden iframe or gets an existing one for silent token renewal.\n * @ignore\n */\n private createHiddenIframe(): HTMLIFrameElement {\n const authFrame = document.createElement(\"iframe\");\n\n authFrame.style.visibility = \"hidden\";\n authFrame.style.position = \"absolute\";\n authFrame.style.width = authFrame.style.height = \"0\";\n authFrame.style.border = \"0\";\n authFrame.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\n document.getElementsByTagName(\"body\")[0].appendChild(authFrame);\n\n return authFrame;\n }\n\n /**\n * @hidden\n * Removes a hidden iframe from the page.\n * @ignore\n */\n private removeHiddenIframe(iframe: HTMLIFrameElement): void {\n if (document.body === iframe.parentNode) {\n document.body.removeChild(iframe);\n }\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SilentHandler.js","sources":["../../src/interaction_handler/SilentHandler.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { UrlString, StringUtils, CommonAuthorizationCodeRequest, AuthorizationCodeClient, Constants, Logger } from \"@azure/msal-common\";\r\nimport { InteractionHandler } from \"./InteractionHandler\";\r\nimport { BrowserConstants } from \"../utils/BrowserConstants\";\r\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\r\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\r\nimport { DEFAULT_IFRAME_TIMEOUT_MS } from \"../config/Configuration\";\r\n\r\nexport class SilentHandler extends InteractionHandler {\r\n\r\n private navigateFrameWait: number;\r\n constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger, navigateFrameWait: number) {\r\n super(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger);\r\n this.navigateFrameWait = navigateFrameWait;\r\n }\r\n\r\n /**\r\n * Creates a hidden iframe to given URL using user-requested scopes as an id.\r\n * @param urlNavigate\r\n * @param userRequestScopes\r\n */\r\n async initiateAuthRequest(requestUrl: string): Promise<HTMLIFrameElement> {\r\n if (StringUtils.isEmpty(requestUrl)) {\r\n // Throw error if request URL is empty.\r\n this.browserRequestLogger.info(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n\r\n return this.navigateFrameWait ? await this.loadFrame(requestUrl) : this.loadFrameSync(requestUrl);\r\n }\r\n\r\n /**\r\n * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.\r\n * @param iframe\r\n * @param timeout\r\n */\r\n monitorIframeForHash(iframe: HTMLIFrameElement, timeout: number): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {\r\n this.browserRequestLogger.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${timeout}ms) than the default (${DEFAULT_IFRAME_TIMEOUT_MS}ms). This may result in timeouts.`);\r\n }\r\n\r\n /*\r\n * Polling for iframes can be purely timing based,\r\n * since we don't need to account for interaction.\r\n */\r\n const nowMark = window.performance.now();\r\n const timeoutMark = nowMark + timeout;\r\n\r\n const intervalId = setInterval(() => {\r\n if (window.performance.now() > timeoutMark) {\r\n this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createMonitorIframeTimeoutError());\r\n return;\r\n }\r\n\r\n let href: string = Constants.EMPTY_STRING;\r\n const contentWindow = iframe.contentWindow;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = contentWindow ? contentWindow.location.href : Constants.EMPTY_STRING;\r\n } catch (e) {}\r\n\r\n if (StringUtils.isEmpty(href)) {\r\n return;\r\n }\r\n\r\n const contentHash = contentWindow ? contentWindow.location.hash: Constants.EMPTY_STRING;\r\n if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n // Success case\r\n this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n resolve(contentHash);\r\n return;\r\n }\r\n }, BrowserConstants.POLL_INTERVAL_MS);\r\n });\r\n }\r\n\r\n /**\r\n * @hidden\r\n * Loads iframe with authorization endpoint URL\r\n * @ignore\r\n */\r\n private loadFrame(urlNavigate: string): Promise<HTMLIFrameElement> {\r\n /*\r\n * This trick overcomes iframe navigation in IE\r\n * IE does not load the page consistently in iframe\r\n */\r\n\r\n return new Promise((resolve, reject) => {\r\n const frameHandle = this.createHiddenIframe();\r\n\r\n setTimeout(() => {\r\n if (!frameHandle) {\r\n reject(\"Unable to load iframe\");\r\n return;\r\n }\r\n\r\n frameHandle.src = urlNavigate;\r\n\r\n resolve(frameHandle);\r\n }, this.navigateFrameWait);\r\n });\r\n }\r\n\r\n /**\r\n * @hidden\r\n * Loads the iframe synchronously when the navigateTimeFrame is set to `0`\r\n * @param urlNavigate\r\n * @param frameName\r\n * @param logger\r\n */\r\n private loadFrameSync(urlNavigate: string): HTMLIFrameElement{\r\n const frameHandle = this.createHiddenIframe();\r\n\r\n frameHandle.src = urlNavigate;\r\n\r\n return frameHandle;\r\n }\r\n\r\n /**\r\n * @hidden\r\n * Creates a new hidden iframe or gets an existing one for silent token renewal.\r\n * @ignore\r\n */\r\n private createHiddenIframe(): HTMLIFrameElement {\r\n const authFrame = document.createElement(\"iframe\");\r\n\r\n authFrame.style.visibility = \"hidden\";\r\n authFrame.style.position = \"absolute\";\r\n authFrame.style.width = authFrame.style.height = \"0\";\r\n authFrame.style.border = \"0\";\r\n authFrame.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(authFrame);\r\n\r\n return authFrame;\r\n }\r\n\r\n /**\r\n * @hidden\r\n * Removes a hidden iframe from the page.\r\n * @ignore\r\n */\r\n private removeHiddenIframe(iframe: HTMLIFrameElement): void {\r\n if (document.body === iframe.parentNode) {\r\n document.body.removeChild(iframe);\r\n }\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.23.0 2022-04-04 */
1
+ /*! @azure/msal-browser v2.24.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  /*
4
4
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationClient.js","sources":["../../src/navigation/NavigationClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { INavigationClient } from \"./INavigationClient\";\nimport { NavigationOptions } from \"./NavigationOptions\";\n\nexport class NavigationClient implements INavigationClient {\n /**\n * Navigates to other pages within the same web application\n * @param url \n * @param options \n */\n navigateInternal(url: string, options: NavigationOptions): Promise<boolean>{\n return NavigationClient.defaultNavigateWindow(url, options);\n }\n\n /**\n * Navigates to other pages outside the web application i.e. the Identity Provider\n * @param url \n * @param options \n */\n navigateExternal(url: string, options: NavigationOptions): Promise<boolean> {\n return NavigationClient.defaultNavigateWindow(url, options);\n }\n\n /**\n * Default navigation implementation invoked by the internal and external functions\n * @param url \n * @param options \n */\n private static defaultNavigateWindow(url: string, options: NavigationOptions): Promise<boolean> {\n if (options.noHistory) {\n window.location.replace(url);\n } else {\n window.location.assign(url);\n }\n\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true);\n }, options.timeout);\n });\n }\n}\n"],"names":[],"mappings":";;AAAA;;;;;IAQA;KAqCC;;;;;;IA/BG,2CAAgB,GAAhB,UAAiB,GAAW,EAAE,OAA0B;QACpD,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KAC/D;;;;;;IAOD,2CAAgB,GAAhB,UAAiB,GAAW,EAAE,OAA0B;QACpD,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KAC/D;;;;;;IAOc,sCAAqB,GAApC,UAAqC,GAAW,EAAE,OAA0B;QACxE,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAChC;aAAM;YACH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC/B;QAED,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;YACvB,UAAU,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC;aACjB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;SACvB,CAAC,CAAC;KACN;IACL,uBAAC;AAAD,CAAC;;;;"}
1
+ {"version":3,"file":"NavigationClient.js","sources":["../../src/navigation/NavigationClient.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { INavigationClient } from \"./INavigationClient\";\r\nimport { NavigationOptions } from \"./NavigationOptions\";\r\n\r\nexport class NavigationClient implements INavigationClient {\r\n /**\r\n * Navigates to other pages within the same web application\r\n * @param url \r\n * @param options \r\n */\r\n navigateInternal(url: string, options: NavigationOptions): Promise<boolean>{\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n }\r\n\r\n /**\r\n * Navigates to other pages outside the web application i.e. the Identity Provider\r\n * @param url \r\n * @param options \r\n */\r\n navigateExternal(url: string, options: NavigationOptions): Promise<boolean> {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n }\r\n\r\n /**\r\n * Default navigation implementation invoked by the internal and external functions\r\n * @param url \r\n * @param options \r\n */\r\n private static defaultNavigateWindow(url: string, options: NavigationOptions): Promise<boolean> {\r\n if (options.noHistory) {\r\n window.location.replace(url);\r\n } else {\r\n window.location.assign(url);\r\n }\r\n\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(true);\r\n }, options.timeout);\r\n });\r\n }\r\n}\r\n"],"names":[],"mappings":";;AAAA;;;;;IAQA;KAqCC;;;;;;IA/BG,2CAAgB,GAAhB,UAAiB,GAAW,EAAE,OAA0B;QACpD,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KAC/D;;;;;;IAOD,2CAAgB,GAAhB,UAAiB,GAAW,EAAE,OAA0B;QACpD,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KAC/D;;;;;;IAOc,sCAAqB,GAApC,UAAqC,GAAW,EAAE,OAA0B;QACxE,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAChC;aAAM;YACH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC/B;QAED,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;YACvB,UAAU,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC;aACjB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;SACvB,CAAC,CAAC;KACN;IACL,uBAAC;AAAD,CAAC;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.23.0 2022-04-04 */
1
+ /*! @azure/msal-browser v2.24.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  import { __awaiter, __generator } from '../_virtual/_tslib.js';
4
4
  import { Constants } from '@azure/msal-common';
@@ -1 +1 @@
1
- {"version":3,"file":"FetchClient.js","sources":["../../src/network/FetchClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { Constants, INetworkModule, NetworkRequestOptions, NetworkResponse } from \"@azure/msal-common\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { HTTP_REQUEST_TYPE } from \"../utils/BrowserConstants\";\n\n/**\n * This class implements the Fetch API for GET and POST requests. See more here: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\n */\nexport class FetchClient implements INetworkModule {\n\n /**\n * Fetch Client for REST endpoints - Get request\n * @param url \n * @param headers \n * @param body \n */\n async sendGetRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\n let response;\n try {\n response = await fetch(url, {\n method: HTTP_REQUEST_TYPE.GET,\n headers: this.getFetchHeaders(options)\n });\n } catch (e) {\n if (window.navigator.onLine) {\n throw BrowserAuthError.createGetRequestFailedError(e, url);\n } else {\n throw BrowserAuthError.createNoNetworkConnectivityError();\n }\n }\n\n try {\n return {\n headers: this.getHeaderDict(response.headers),\n body: await response.json() as T,\n status: response.status\n };\n } catch (e) {\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\n }\n }\n\n /**\n * Fetch Client for REST endpoints - Post request\n * @param url \n * @param headers \n * @param body \n */\n async sendPostRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\n const reqBody = (options && options.body) || Constants.EMPTY_STRING;\n\n let response;\n try {\n response = await fetch(url, {\n method: HTTP_REQUEST_TYPE.POST,\n headers: this.getFetchHeaders(options),\n body: reqBody\n });\n } catch (e) {\n if (window.navigator.onLine) {\n throw BrowserAuthError.createPostRequestFailedError(e, url);\n } else {\n throw BrowserAuthError.createNoNetworkConnectivityError();\n }\n }\n\n try {\n return {\n headers: this.getHeaderDict(response.headers),\n body: await response.json() as T,\n status: response.status\n };\n } catch (e) {\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\n }\n }\n\n /**\n * Get Fetch API Headers object from string map\n * @param inputHeaders \n */\n private getFetchHeaders(options?: NetworkRequestOptions): Headers {\n const headers = new Headers();\n if (!(options && options.headers)) {\n return headers;\n }\n const optionsHeaders = options.headers;\n Object.keys(optionsHeaders).forEach((key) => {\n headers.append(key, optionsHeaders[key]);\n });\n return headers;\n }\n\n private getHeaderDict(headers: Headers): Record<string, string> {\n const headerDict: Record<string, string> = {};\n headers.forEach((value: string, key: string) => {\n headerDict[key] = value;\n });\n return headerDict;\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA;;;;AASA;;;;IAGA;KA4FC;;;;;;;IApFS,yCAAmB,GAAzB,UAA6B,GAAW,EAAE,OAA+B;;;;;;;wBAGtD,qBAAM,KAAK,CAAC,GAAG,EAAE;gCACxB,MAAM,EAAE,iBAAiB,CAAC,GAAG;gCAC7B,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;6BACzC,CAAC,EAAA;;wBAHF,QAAQ,GAAG,SAGT,CAAC;;;;wBAEH,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;4BACzB,MAAM,gBAAgB,CAAC,2BAA2B,CAAC,GAAC,EAAE,GAAG,CAAC,CAAC;yBAC9D;6BAAM;4BACH,MAAM,gBAAgB,CAAC,gCAAgC,EAAE,CAAC;yBAC7D;;;;4BAKG,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;;wBACvC,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;4BAF/B,uBAEI,OAAI,IAAE,SAA0B,CAAA;4BAChC,SAAM,GAAE,QAAQ,CAAC,MAAM;iCACzB;;;wBAEF,MAAM,gBAAgB,CAAC,uCAAuC,CAAC,GAAG,CAAC,CAAC;;;;;KAE3E;;;;;;;IAQK,0CAAoB,GAA1B,UAA8B,GAAW,EAAE,OAA+B;;;;;;wBAChE,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,YAAY,CAAC;;;;wBAIrD,qBAAM,KAAK,CAAC,GAAG,EAAE;gCACxB,MAAM,EAAE,iBAAiB,CAAC,IAAI;gCAC9B,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;gCACtC,IAAI,EAAE,OAAO;6BAChB,CAAC,EAAA;;wBAJF,QAAQ,GAAG,SAIT,CAAC;;;;wBAEH,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;4BACzB,MAAM,gBAAgB,CAAC,4BAA4B,CAAC,GAAC,EAAE,GAAG,CAAC,CAAC;yBAC/D;6BAAM;4BACH,MAAM,gBAAgB,CAAC,gCAAgC,EAAE,CAAC;yBAC7D;;;;4BAKG,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;;wBACvC,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;4BAF/B,uBAEI,OAAI,IAAE,SAA0B,CAAA;4BAChC,SAAM,GAAE,QAAQ,CAAC,MAAM;iCACzB;;;wBAEF,MAAM,gBAAgB,CAAC,uCAAuC,CAAC,GAAG,CAAC,CAAC;;;;;KAE3E;;;;;IAMO,qCAAe,GAAvB,UAAwB,OAA+B;QACnD,IAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC/B,OAAO,OAAO,CAAC;SAClB;QACD,IAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;YACpC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5C,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;KAClB;IAEO,mCAAa,GAArB,UAAsB,OAAgB;QAClC,IAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,OAAO,CAAC,OAAO,CAAC,UAAC,KAAa,EAAE,GAAW;YACvC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SAC3B,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;KACrB;IACL,kBAAC;AAAD,CAAC;;;;"}
1
+ {"version":3,"file":"FetchClient.js","sources":["../../src/network/FetchClient.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { Constants, INetworkModule, NetworkRequestOptions, NetworkResponse } from \"@azure/msal-common\";\r\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\r\nimport { HTTP_REQUEST_TYPE } from \"../utils/BrowserConstants\";\r\n\r\n/**\r\n * This class implements the Fetch API for GET and POST requests. See more here: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\r\n */\r\nexport class FetchClient implements INetworkModule {\r\n\r\n /**\r\n * Fetch Client for REST endpoints - Get request\r\n * @param url \r\n * @param headers \r\n * @param body \r\n */\r\n async sendGetRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\r\n let response;\r\n try {\r\n response = await fetch(url, {\r\n method: HTTP_REQUEST_TYPE.GET,\r\n headers: this.getFetchHeaders(options)\r\n });\r\n } catch (e) {\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createGetRequestFailedError(e, url);\r\n } else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n }\r\n\r\n try {\r\n return {\r\n headers: this.getHeaderDict(response.headers),\r\n body: await response.json() as T,\r\n status: response.status\r\n };\r\n } catch (e) {\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n }\r\n }\r\n\r\n /**\r\n * Fetch Client for REST endpoints - Post request\r\n * @param url \r\n * @param headers \r\n * @param body \r\n */\r\n async sendPostRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\r\n const reqBody = (options && options.body) || Constants.EMPTY_STRING;\r\n\r\n let response;\r\n try {\r\n response = await fetch(url, {\r\n method: HTTP_REQUEST_TYPE.POST,\r\n headers: this.getFetchHeaders(options),\r\n body: reqBody\r\n });\r\n } catch (e) {\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createPostRequestFailedError(e, url);\r\n } else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n }\r\n\r\n try {\r\n return {\r\n headers: this.getHeaderDict(response.headers),\r\n body: await response.json() as T,\r\n status: response.status\r\n };\r\n } catch (e) {\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n }\r\n }\r\n\r\n /**\r\n * Get Fetch API Headers object from string map\r\n * @param inputHeaders \r\n */\r\n private getFetchHeaders(options?: NetworkRequestOptions): Headers {\r\n const headers = new Headers();\r\n if (!(options && options.headers)) {\r\n return headers;\r\n }\r\n const optionsHeaders = options.headers;\r\n Object.keys(optionsHeaders).forEach((key) => {\r\n headers.append(key, optionsHeaders[key]);\r\n });\r\n return headers;\r\n }\r\n\r\n private getHeaderDict(headers: Headers): Record<string, string> {\r\n const headerDict: Record<string, string> = {};\r\n headers.forEach((value: string, key: string) => {\r\n headerDict[key] = value;\r\n });\r\n return headerDict;\r\n }\r\n}\r\n"],"names":[],"mappings":";;;;;;;AAAA;;;;AASA;;;;IAGA;KA4FC;;;;;;;IApFS,yCAAmB,GAAzB,UAA6B,GAAW,EAAE,OAA+B;;;;;;;wBAGtD,qBAAM,KAAK,CAAC,GAAG,EAAE;gCACxB,MAAM,EAAE,iBAAiB,CAAC,GAAG;gCAC7B,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;6BACzC,CAAC,EAAA;;wBAHF,QAAQ,GAAG,SAGT,CAAC;;;;wBAEH,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;4BACzB,MAAM,gBAAgB,CAAC,2BAA2B,CAAC,GAAC,EAAE,GAAG,CAAC,CAAC;yBAC9D;6BAAM;4BACH,MAAM,gBAAgB,CAAC,gCAAgC,EAAE,CAAC;yBAC7D;;;;4BAKG,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;;wBACvC,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;4BAF/B,uBAEI,OAAI,IAAE,SAA0B,CAAA;4BAChC,SAAM,GAAE,QAAQ,CAAC,MAAM;iCACzB;;;wBAEF,MAAM,gBAAgB,CAAC,uCAAuC,CAAC,GAAG,CAAC,CAAC;;;;;KAE3E;;;;;;;IAQK,0CAAoB,GAA1B,UAA8B,GAAW,EAAE,OAA+B;;;;;;wBAChE,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,YAAY,CAAC;;;;wBAIrD,qBAAM,KAAK,CAAC,GAAG,EAAE;gCACxB,MAAM,EAAE,iBAAiB,CAAC,IAAI;gCAC9B,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;gCACtC,IAAI,EAAE,OAAO;6BAChB,CAAC,EAAA;;wBAJF,QAAQ,GAAG,SAIT,CAAC;;;;wBAEH,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;4BACzB,MAAM,gBAAgB,CAAC,4BAA4B,CAAC,GAAC,EAAE,GAAG,CAAC,CAAC;yBAC/D;6BAAM;4BACH,MAAM,gBAAgB,CAAC,gCAAgC,EAAE,CAAC;yBAC7D;;;;4BAKG,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;;wBACvC,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;4BAF/B,uBAEI,OAAI,IAAE,SAA0B,CAAA;4BAChC,SAAM,GAAE,QAAQ,CAAC,MAAM;iCACzB;;;wBAEF,MAAM,gBAAgB,CAAC,uCAAuC,CAAC,GAAG,CAAC,CAAC;;;;;KAE3E;;;;;IAMO,qCAAe,GAAvB,UAAwB,OAA+B;QACnD,IAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC/B,OAAO,OAAO,CAAC;SAClB;QACD,IAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;YACpC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5C,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;KAClB;IAEO,mCAAa,GAArB,UAAsB,OAAgB;QAClC,IAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,OAAO,CAAC,OAAO,CAAC,UAAC,KAAa,EAAE,GAAW;YACvC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SAC3B,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;KACrB;IACL,kBAAC;AAAD,CAAC;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.23.0 2022-04-04 */
1
+ /*! @azure/msal-browser v2.24.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  import { __awaiter, __generator } from '../_virtual/_tslib.js';
4
4
  import { BrowserAuthError } from '../error/BrowserAuthError.js';
@@ -1 +1 @@
1
- {"version":3,"file":"XhrClient.js","sources":["../../src/network/XhrClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { INetworkModule, NetworkRequestOptions, NetworkResponse } from \"@azure/msal-common\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { HTTP_REQUEST_TYPE } from \"../utils/BrowserConstants\";\n\n/**\n * This client implements the XMLHttpRequest class to send GET and POST requests.\n */\nexport class XhrClient implements INetworkModule {\n\n /**\n * XhrClient for REST endpoints - Get request\n * @param url \n * @param headers \n * @param body \n */\n async sendGetRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\n return this.sendRequestAsync(url, HTTP_REQUEST_TYPE.GET, options);\n }\n\n /**\n * XhrClient for REST endpoints - Post request\n * @param url \n * @param headers \n * @param body \n */\n async sendPostRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\n return this.sendRequestAsync(url, HTTP_REQUEST_TYPE.POST, options);\n }\n\n /**\n * Helper for XhrClient requests.\n * @param url \n * @param method \n * @param options \n */\n private sendRequestAsync<T>(url: string, method: HTTP_REQUEST_TYPE, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\n return new Promise<NetworkResponse<T>>((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n xhr.open(method, url, /* async: */ true);\n this.setXhrHeaders(xhr, options);\n xhr.onload = (): void => {\n if (xhr.status < 200 || xhr.status >= 300) {\n if (method === HTTP_REQUEST_TYPE.POST) {\n reject(BrowserAuthError.createPostRequestFailedError(`Failed with status ${xhr.status}`, url));\n } else {\n reject(BrowserAuthError.createGetRequestFailedError(`Failed with status ${xhr.status}`, url));\n }\n }\n try {\n const jsonResponse = JSON.parse(xhr.responseText) as T;\n const networkResponse: NetworkResponse<T> = {\n headers: this.getHeaderDict(xhr),\n body: jsonResponse,\n status: xhr.status\n };\n resolve(networkResponse);\n } catch (e) {\n reject(BrowserAuthError.createFailedToParseNetworkResponseError(url));\n }\n };\n\n xhr.onerror = (): void => {\n if (window.navigator.onLine) {\n if (method === HTTP_REQUEST_TYPE.POST) {\n reject(BrowserAuthError.createPostRequestFailedError(`Failed with status ${xhr.status}`, url));\n } else {\n reject(BrowserAuthError.createGetRequestFailedError(`Failed with status ${xhr.status}`, url));\n }\n } else {\n reject(BrowserAuthError.createNoNetworkConnectivityError());\n }\n };\n\n if (method === HTTP_REQUEST_TYPE.POST && options && options.body) {\n xhr.send(options.body);\n } else if (method === HTTP_REQUEST_TYPE.GET) {\n xhr.send();\n } else {\n throw BrowserAuthError.createHttpMethodNotImplementedError(method);\n }\n });\n }\n\n /**\n * Helper to set XHR headers for request.\n * @param xhr \n * @param options \n */\n private setXhrHeaders(xhr: XMLHttpRequest, options?: NetworkRequestOptions): void {\n if (options && options.headers) {\n const headers = options.headers;\n Object.keys(headers).forEach((key: string) => {\n xhr.setRequestHeader(key, headers[key]);\n });\n }\n }\n\n /**\n * Gets a string map of the headers received in the response.\n * \n * Algorithm comes from https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders\n * @param xhr \n */\n private getHeaderDict(xhr: XMLHttpRequest): Record<string, string> {\n const headerString = xhr.getAllResponseHeaders();\n const headerArr = headerString.trim().split(/[\\r\\n]+/);\n const headerDict: Record<string, string> = {};\n headerArr.forEach((value: string) => {\n const parts = value.split(\": \");\n const headerName = parts.shift();\n const headerVal = parts.join(\": \");\n if (headerName && headerVal) {\n headerDict[headerName] = headerVal;\n }\n });\n\n return headerDict;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XhrClient.js","sources":["../../src/network/XhrClient.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { INetworkModule, NetworkRequestOptions, NetworkResponse } from \"@azure/msal-common\";\r\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\r\nimport { HTTP_REQUEST_TYPE } from \"../utils/BrowserConstants\";\r\n\r\n/**\r\n * This client implements the XMLHttpRequest class to send GET and POST requests.\r\n */\r\nexport class XhrClient implements INetworkModule {\r\n\r\n /**\r\n * XhrClient for REST endpoints - Get request\r\n * @param url \r\n * @param headers \r\n * @param body \r\n */\r\n async sendGetRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\r\n return this.sendRequestAsync(url, HTTP_REQUEST_TYPE.GET, options);\r\n }\r\n\r\n /**\r\n * XhrClient for REST endpoints - Post request\r\n * @param url \r\n * @param headers \r\n * @param body \r\n */\r\n async sendPostRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\r\n return this.sendRequestAsync(url, HTTP_REQUEST_TYPE.POST, options);\r\n }\r\n\r\n /**\r\n * Helper for XhrClient requests.\r\n * @param url \r\n * @param method \r\n * @param options \r\n */\r\n private sendRequestAsync<T>(url: string, method: HTTP_REQUEST_TYPE, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\r\n return new Promise<NetworkResponse<T>>((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(method, url, /* async: */ true);\r\n this.setXhrHeaders(xhr, options);\r\n xhr.onload = (): void => {\r\n if (xhr.status < 200 || xhr.status >= 300) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(`Failed with status ${xhr.status}`, url));\r\n } else {\r\n reject(BrowserAuthError.createGetRequestFailedError(`Failed with status ${xhr.status}`, url));\r\n }\r\n }\r\n try {\r\n const jsonResponse = JSON.parse(xhr.responseText) as T;\r\n const networkResponse: NetworkResponse<T> = {\r\n headers: this.getHeaderDict(xhr),\r\n body: jsonResponse,\r\n status: xhr.status\r\n };\r\n resolve(networkResponse);\r\n } catch (e) {\r\n reject(BrowserAuthError.createFailedToParseNetworkResponseError(url));\r\n }\r\n };\r\n\r\n xhr.onerror = (): void => {\r\n if (window.navigator.onLine) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(`Failed with status ${xhr.status}`, url));\r\n } else {\r\n reject(BrowserAuthError.createGetRequestFailedError(`Failed with status ${xhr.status}`, url));\r\n }\r\n } else {\r\n reject(BrowserAuthError.createNoNetworkConnectivityError());\r\n }\r\n };\r\n\r\n if (method === HTTP_REQUEST_TYPE.POST && options && options.body) {\r\n xhr.send(options.body);\r\n } else if (method === HTTP_REQUEST_TYPE.GET) {\r\n xhr.send();\r\n } else {\r\n throw BrowserAuthError.createHttpMethodNotImplementedError(method);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Helper to set XHR headers for request.\r\n * @param xhr \r\n * @param options \r\n */\r\n private setXhrHeaders(xhr: XMLHttpRequest, options?: NetworkRequestOptions): void {\r\n if (options && options.headers) {\r\n const headers = options.headers;\r\n Object.keys(headers).forEach((key: string) => {\r\n xhr.setRequestHeader(key, headers[key]);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Gets a string map of the headers received in the response.\r\n * \r\n * Algorithm comes from https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders\r\n * @param xhr \r\n */\r\n private getHeaderDict(xhr: XMLHttpRequest): Record<string, string> {\r\n const headerString = xhr.getAllResponseHeaders();\r\n const headerArr = headerString.trim().split(/[\\r\\n]+/);\r\n const headerDict: Record<string, string> = {};\r\n headerArr.forEach((value: string) => {\r\n const parts = value.split(\": \");\r\n const headerName = parts.shift();\r\n const headerVal = parts.join(\": \");\r\n if (headerName && headerVal) {\r\n headerDict[headerName] = headerVal;\r\n }\r\n });\r\n\r\n return headerDict;\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export declare const name = "@azure/msal-browser";
2
- export declare const version = "2.23.0";
2
+ export declare const version = "2.24.0-beta.0";
3
3
  //# sourceMappingURL=packageMetadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageMetadata.d.ts","sourceRoot":"","sources":["../src/packageMetadata.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,IAAI,wBAAwB,CAAC;AAC1C,eAAO,MAAM,OAAO,WAAW,CAAC"}
1
+ {"version":3,"file":"packageMetadata.d.ts","sourceRoot":"","sources":["../src/packageMetadata.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,IAAI,wBAAwB,CAAC;AAC1C,eAAO,MAAM,OAAO,kBAAkB,CAAC"}
@@ -1,8 +1,8 @@
1
- /*! @azure/msal-browser v2.23.0 2022-04-04 */
1
+ /*! @azure/msal-browser v2.24.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  /* eslint-disable header/header */
4
4
  var name = "@azure/msal-browser";
5
- var version = "2.23.0";
5
+ var version = "2.24.0-beta.0";
6
6
 
7
7
  export { name, version };
8
8
  //# sourceMappingURL=packageMetadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageMetadata.js","sources":["../src/packageMetadata.ts"],"sourcesContent":["/* eslint-disable header/header */\nexport const name = \"@azure/msal-browser\";\nexport const version = \"2.23.0\";\n"],"names":[],"mappings":";;AAAA;IACa,IAAI,GAAG,sBAAsB;IAC7B,OAAO,GAAG;;;;"}
1
+ {"version":3,"file":"packageMetadata.js","sources":["../src/packageMetadata.ts"],"sourcesContent":["/* eslint-disable header/header */\nexport const name = \"@azure/msal-browser\";\nexport const version = \"2.24.0-beta.0\";\n"],"names":[],"mappings":";;AAAA;IACa,IAAI,GAAG,sBAAsB;IAC7B,OAAO,GAAG;;;;"}
@@ -1,6 +1,7 @@
1
1
  import { CommonAuthorizationCodeRequest } from "@azure/msal-common";
2
2
  export declare type AuthorizationCodeRequest = Partial<Omit<CommonAuthorizationCodeRequest, "code" | "enableSpaAuthorizationCode" | "requestedClaimsHash">> & {
3
- code: string;
3
+ code?: string;
4
+ nativeAccountId?: string;
4
5
  cloudGraphHostName?: string;
5
6
  msGraphHost?: string;
6
7
  cloudInstanceHostName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"AuthorizationCodeRequest.d.ts","sourceRoot":"","sources":["../../src/request/AuthorizationCodeRequest.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEpE,oBAAY,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,MAAM,GAAC,4BAA4B,GAAC,qBAAqB,CAAC,CAAC,GAAG;IAC9I,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC"}
1
+ {"version":3,"file":"AuthorizationCodeRequest.d.ts","sourceRoot":"","sources":["../../src/request/AuthorizationCodeRequest.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEpE,oBAAY,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,MAAM,GAAC,4BAA4B,GAAC,qBAAqB,CAAC,CAAC,GAAG;IAC9I,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC"}
@@ -2,7 +2,7 @@ import { CommonAuthorizationUrlRequest } from "@azure/msal-common";
2
2
  /**
3
3
  * This type is deprecated and will be removed on the next major version update
4
4
  */
5
- export declare type AuthorizationUrlRequest = Omit<CommonAuthorizationUrlRequest, "state" | "nonce" | "requestedClaimsHash"> & {
5
+ export declare type AuthorizationUrlRequest = Omit<CommonAuthorizationUrlRequest, "state" | "nonce" | "requestedClaimsHash" | "nativeBroker"> & {
6
6
  state: string;
7
7
  nonce: string;
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AuthorizationUrlRequest.d.ts","sourceRoot":"","sources":["../../src/request/AuthorizationUrlRequest.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;GAEG;AACH,oBAAY,uBAAuB,GAAG,IAAI,CAAC,6BAA6B,EAAE,OAAO,GAAC,OAAO,GAAC,qBAAqB,CAAC,GAAG;IAC/G,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC"}
1
+ {"version":3,"file":"AuthorizationUrlRequest.d.ts","sourceRoot":"","sources":["../../src/request/AuthorizationUrlRequest.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;GAEG;AACH,oBAAY,uBAAuB,GAAG,IAAI,CAAC,6BAA6B,EAAE,OAAO,GAAC,OAAO,GAAC,qBAAqB,GAAC,cAAc,CAAC,GAAG;IAC9H,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC"}
@@ -25,7 +25,7 @@ import { PopupWindowAttributes } from "../utils/PopupUtils";
25
25
  * - nonce - A value included in the request that is returned in the id token. A randomly generated unique value is typically used to mitigate replay attacks.
26
26
  * - popupWindowAttributes - Optional popup window attributes. popupSize with height and width, and popupPosition with top and left can be set.
27
27
  */
28
- export declare type PopupRequest = Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "scopes" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash">> & {
28
+ export declare type PopupRequest = Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "scopes" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "nativeBroker">> & {
29
29
  scopes: Array<string>;
30
30
  popupWindowAttributes?: PopupWindowAttributes;
31
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PopupRequest.d.ts","sourceRoot":"","sources":["../../src/request/PopupRequest.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,oBAAY,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,cAAc,GAAC,QAAQ,GAAC,eAAe,GAAC,qBAAqB,GAAC,qBAAqB,CAAC,CAAC,GAAG;IAC3J,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CACjD,CAAC"}
1
+ {"version":3,"file":"PopupRequest.d.ts","sourceRoot":"","sources":["../../src/request/PopupRequest.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,oBAAY,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,cAAc,GAAC,QAAQ,GAAC,eAAe,GAAC,qBAAqB,GAAC,qBAAqB,GAAC,cAAc,CAAC,CAAC,GAAG;IAC1K,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CACjD,CAAC"}
@@ -25,7 +25,7 @@ import { CommonAuthorizationUrlRequest } from "@azure/msal-common";
25
25
  * - redirectStartPage - The page that should be returned to after loginRedirect or acquireTokenRedirect. This should only be used if this is different from the redirectUri and will default to the page that initiates the request. When the navigateToLoginRequestUrl config option is set to false this parameter will be ignored.
26
26
  * - onRedirectNavigate - Callback that will be passed the url that MSAL will navigate to. Returning false in the callback will stop navigation.
27
27
  */
28
- export declare type RedirectRequest = Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "scopes" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash">> & {
28
+ export declare type RedirectRequest = Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "scopes" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "nativeBroker">> & {
29
29
  scopes: Array<string>;
30
30
  redirectStartPage?: string;
31
31
  onRedirectNavigate?: (url: string) => boolean | void;
@@ -1 +1 @@
1
- {"version":3,"file":"RedirectRequest.d.ts","sourceRoot":"","sources":["../../src/request/RedirectRequest.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,oBAAY,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,cAAc,GAAC,QAAQ,GAAC,eAAe,GAAC,qBAAqB,GAAC,qBAAqB,CAAC,CAAC,GAAG;IAC9J,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;CACxD,CAAC"}
1
+ {"version":3,"file":"RedirectRequest.d.ts","sourceRoot":"","sources":["../../src/request/RedirectRequest.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,oBAAY,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,cAAc,GAAC,QAAQ,GAAC,eAAe,GAAC,qBAAqB,GAAC,qBAAqB,GAAC,cAAc,CAAC,CAAC,GAAG;IAC7K,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;CACxD,CAAC"}
@@ -22,5 +22,5 @@ import { CommonAuthorizationUrlRequest } from "@azure/msal-common";
22
22
  * - tokenQueryParameters - String to string map of custom query parameters added to the /token call
23
23
  * - nonce - A value included in the request that is returned in the id token. A randomly generated unique value is typically used to mitigate replay attacks.
24
24
  */
25
- export declare type SsoSilentRequest = Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash">>;
25
+ export declare type SsoSilentRequest = Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "nativeBroker">>;
26
26
  //# sourceMappingURL=SsoSilentRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SsoSilentRequest.d.ts","sourceRoot":"","sources":["../../src/request/SsoSilentRequest.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,oBAAY,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,cAAc,GAAC,eAAe,GAAC,qBAAqB,GAAC,qBAAqB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"SsoSilentRequest.d.ts","sourceRoot":"","sources":["../../src/request/SsoSilentRequest.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,oBAAY,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,cAAc,GAAC,eAAe,GAAC,qBAAqB,GAAC,qBAAqB,GAAC,cAAc,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.23.0 2022-04-04 */
1
+ /*! @azure/msal-browser v2.24.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  import { __extends, __assign } from '../_virtual/_tslib.js';
4
4
  import { PerformanceClient } from '@azure/msal-common';
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserPerformanceClient.js","sources":["../../src/telemetry/BrowserPerformanceClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { Logger, PerformanceEvent, PerformanceEvents, IPerformanceClient, PerformanceClient, IPerformanceMeasurement, InProgressPerformanceEvent, ApplicationTelemetry } from \"@azure/msal-common\";\nimport { BrowserCrypto } from \"../crypto/BrowserCrypto\";\nimport { GuidGenerator } from \"../crypto/GuidGenerator\";\nimport { BrowserPerformanceMeasurement } from \"./BrowserPerformanceMeasurement\";\n\nexport class BrowserPerformanceClient extends PerformanceClient implements IPerformanceClient {\n private browserCrypto: BrowserCrypto;\n private guidGenerator: GuidGenerator;\n \n constructor(clientId: string, authority: string, logger: Logger, libraryName: string, libraryVersion: string, applicationTelemetry: ApplicationTelemetry) {\n super(clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry);\n this.browserCrypto = new BrowserCrypto(this.logger);\n this.guidGenerator = new GuidGenerator(this.browserCrypto);\n }\n \n startPerformanceMeasuremeant(measureName: string, correlationId: string): IPerformanceMeasurement {\n return new BrowserPerformanceMeasurement(measureName, correlationId);\n }\n\n generateId() : string {\n return this.guidGenerator.generateGuid();\n }\n\n private getPageVisibility(): string | null {\n return document.visibilityState?.toString() || null;\n }\n \n /**\n * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.\n * Also captures browser page visibilityState.\n *\n * @param {PerformanceEvents} measureName\n * @param {?string} [correlationId]\n * @returns {((event?: Partial<PerformanceEvent>) => PerformanceEvent| null)}\n */\n startMeasurement(measureName: PerformanceEvents, correlationId?: string): InProgressPerformanceEvent {\n // Capture page visibilityState and then invoke start/end measurement\n const startPageVisibility = this.getPageVisibility();\n \n const inProgressEvent = super.startMeasurement(measureName, correlationId);\n\n return {\n ...inProgressEvent,\n endMeasurement: (event?: Partial<PerformanceEvent>): PerformanceEvent | null => {\n return inProgressEvent.endMeasurement({\n startPageVisibility,\n endPageVisibility: this.getPageVisibility(),\n ...event\n });\n }\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;;AAAA;;;;;IAU8C,4CAAiB;IAI3D,kCAAY,QAAgB,EAAE,SAAiB,EAAE,MAAc,EAAE,WAAmB,EAAE,cAAsB,EAAE,oBAA0C;QAAxJ,YACI,kBAAM,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,CAAC,SAGxF;QAFG,KAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;QACpD,KAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,KAAI,CAAC,aAAa,CAAC,CAAC;;KAC9D;IAED,+DAA4B,GAA5B,UAA6B,WAAmB,EAAE,aAAqB;QACnE,OAAO,IAAI,6BAA6B,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;KACxE;IAED,6CAAU,GAAV;QACI,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;KAC5C;IAEO,oDAAiB,GAAzB;;QACI,OAAO,OAAA,QAAQ,CAAC,eAAe,0CAAE,QAAQ,OAAM,IAAI,CAAC;KACvD;;;;;;;;;IAUD,mDAAgB,GAAhB,UAAiB,WAA8B,EAAE,aAAsB;QAAvE,iBAgBC;;QAdG,IAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAErD,IAAM,eAAe,GAAG,iBAAM,gBAAgB,YAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAE3E,6BACO,eAAe,KAClB,cAAc,EAAE,UAAC,KAAiC;gBAC9C,OAAO,eAAe,CAAC,cAAc,YACjC,mBAAmB,qBAAA,EACnB,iBAAiB,EAAE,KAAI,CAAC,iBAAiB,EAAE,IACxC,KAAK,EACV,CAAC;aACN,IACH;KACL;IACL,+BAAC;AAAD,CA/CA,CAA8C,iBAAiB;;;;"}
1
+ {"version":3,"file":"BrowserPerformanceClient.js","sources":["../../src/telemetry/BrowserPerformanceClient.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { Logger, PerformanceEvent, PerformanceEvents, IPerformanceClient, PerformanceClient, IPerformanceMeasurement, InProgressPerformanceEvent, ApplicationTelemetry } from \"@azure/msal-common\";\r\nimport { BrowserCrypto } from \"../crypto/BrowserCrypto\";\r\nimport { GuidGenerator } from \"../crypto/GuidGenerator\";\r\nimport { BrowserPerformanceMeasurement } from \"./BrowserPerformanceMeasurement\";\r\n\r\nexport class BrowserPerformanceClient extends PerformanceClient implements IPerformanceClient {\r\n private browserCrypto: BrowserCrypto;\r\n private guidGenerator: GuidGenerator;\r\n \r\n constructor(clientId: string, authority: string, logger: Logger, libraryName: string, libraryVersion: string, applicationTelemetry: ApplicationTelemetry) {\r\n super(clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry);\r\n this.browserCrypto = new BrowserCrypto(this.logger);\r\n this.guidGenerator = new GuidGenerator(this.browserCrypto);\r\n }\r\n \r\n startPerformanceMeasuremeant(measureName: string, correlationId: string): IPerformanceMeasurement {\r\n return new BrowserPerformanceMeasurement(measureName, correlationId);\r\n }\r\n\r\n generateId() : string {\r\n return this.guidGenerator.generateGuid();\r\n }\r\n\r\n private getPageVisibility(): string | null {\r\n return document.visibilityState?.toString() || null;\r\n }\r\n \r\n /**\r\n * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.\r\n * Also captures browser page visibilityState.\r\n *\r\n * @param {PerformanceEvents} measureName\r\n * @param {?string} [correlationId]\r\n * @returns {((event?: Partial<PerformanceEvent>) => PerformanceEvent| null)}\r\n */\r\n startMeasurement(measureName: PerformanceEvents, correlationId?: string): InProgressPerformanceEvent {\r\n // Capture page visibilityState and then invoke start/end measurement\r\n const startPageVisibility = this.getPageVisibility();\r\n \r\n const inProgressEvent = super.startMeasurement(measureName, correlationId);\r\n\r\n return {\r\n ...inProgressEvent,\r\n endMeasurement: (event?: Partial<PerformanceEvent>): PerformanceEvent | null => {\r\n return inProgressEvent.endMeasurement({\r\n startPageVisibility,\r\n endPageVisibility: this.getPageVisibility(),\r\n ...event\r\n });\r\n }\r\n };\r\n }\r\n}\r\n"],"names":[],"mappings":";;;;;;;;AAAA;;;;;IAU8C,4CAAiB;IAI3D,kCAAY,QAAgB,EAAE,SAAiB,EAAE,MAAc,EAAE,WAAmB,EAAE,cAAsB,EAAE,oBAA0C;QAAxJ,YACI,kBAAM,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,CAAC,SAGxF;QAFG,KAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;QACpD,KAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,KAAI,CAAC,aAAa,CAAC,CAAC;;KAC9D;IAED,+DAA4B,GAA5B,UAA6B,WAAmB,EAAE,aAAqB;QACnE,OAAO,IAAI,6BAA6B,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;KACxE;IAED,6CAAU,GAAV;QACI,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;KAC5C;IAEO,oDAAiB,GAAzB;;QACI,OAAO,OAAA,QAAQ,CAAC,eAAe,0CAAE,QAAQ,OAAM,IAAI,CAAC;KACvD;;;;;;;;;IAUD,mDAAgB,GAAhB,UAAiB,WAA8B,EAAE,aAAsB;QAAvE,iBAgBC;;QAdG,IAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAErD,IAAM,eAAe,GAAG,iBAAM,gBAAgB,YAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAE3E,6BACO,eAAe,KAClB,cAAc,EAAE,UAAC,KAAiC;gBAC9C,OAAO,eAAe,CAAC,cAAc,YACjC,mBAAmB,qBAAA,EACnB,iBAAiB,EAAE,KAAI,CAAC,iBAAiB,EAAE,IACxC,KAAK,EACV,CAAC;aACN,IACH;KACL;IACL,+BAAC;AAAD,CA/CA,CAA8C,iBAAiB;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.23.0 2022-04-04 */
1
+ /*! @azure/msal-browser v2.24.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  /*
4
4
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserPerformanceMeasurement.js","sources":["../../src/telemetry/BrowserPerformanceMeasurement.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IPerformanceMeasurement } from \"@azure/msal-common\";\n\nexport class BrowserPerformanceMeasurement implements IPerformanceMeasurement {\n private measureName: string;\n private correlationId: string;\n private startMark: string;\n private endMark: string;\n\n constructor(name: string, correlationId: string) {\n this.correlationId = correlationId;\n this.measureName = `msal.measure.${name}.${this.correlationId}`;\n this.startMark = `msal.start.${name}.${this.correlationId}`;\n this.endMark = `msal.end.${name}.${this.correlationId}`;\n }\n\n static supportsBrowserPerformance(): boolean {\n return typeof window !== \"undefined\" &&\n typeof window.performance !== \"undefined\" &&\n typeof window.performance.mark === \"function\" && \n typeof window.performance.measure === \"function\" &&\n typeof window.performance.clearMarks === \"function\" &&\n typeof window.performance.clearMeasures === \"function\" &&\n typeof window.performance.getEntriesByName === \"function\";\n }\n\n startMeasurement(): void {\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\n try {\n window.performance.mark(this.startMark);\n } catch (e) {\n // Silently catch\n }\n }\n }\n\n endMeasurement():void {\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\n try {\n window.performance.mark(this.endMark);\n window.performance.measure(this.measureName, this.startMark, this.endMark);\n } catch (e) {\n // Silently catch\n }\n }\n }\n\n flushMeasurement(): number | null {\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\n try {\n const entriesForMeasurement = window.performance.getEntriesByName(this.measureName, \"measure\");\n if (entriesForMeasurement.length > 0) {\n const durationMs = entriesForMeasurement[0].duration;\n window.performance.clearMeasures(this.measureName);\n window.performance.clearMarks(this.startMark);\n window.performance.clearMarks(this.endMark);\n return durationMs;\n }\n } catch (e) {\n // Silently catch and return null\n }\n }\n return null;\n }\n}\n"],"names":[],"mappings":";;AAAA;;;;;IAaI,uCAAY,IAAY,EAAE,aAAqB;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,kBAAgB,IAAI,SAAI,IAAI,CAAC,aAAe,CAAC;QAChE,IAAI,CAAC,SAAS,GAAG,gBAAc,IAAI,SAAI,IAAI,CAAC,aAAe,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,cAAY,IAAI,SAAI,IAAI,CAAC,aAAe,CAAC;KAC3D;IAEM,wDAA0B,GAAjC;QACI,OAAO,OAAO,MAAM,KAAK,WAAW;YAChC,OAAO,MAAM,CAAC,WAAW,KAAK,WAAW;YACzC,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU;YAC7C,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,KAAK,UAAU;YAChD,OAAO,MAAM,CAAC,WAAW,CAAC,UAAU,KAAK,UAAU;YACnD,OAAO,MAAM,CAAC,WAAW,CAAC,aAAa,KAAK,UAAU;YACtD,OAAO,MAAM,CAAC,WAAW,CAAC,gBAAgB,KAAK,UAAU,CAAC;KACjE;IAED,wDAAgB,GAAhB;QACI,IAAI,6BAA6B,CAAC,0BAA0B,EAAE,EAAE;YAC5D,IAAI;gBACA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC3C;YAAC,OAAO,CAAC,EAAE;;aAEX;SACJ;KACJ;IAED,sDAAc,GAAd;QACI,IAAI,6BAA6B,CAAC,0BAA0B,EAAE,EAAE;YAC5D,IAAI;gBACA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aAC9E;YAAC,OAAO,CAAC,EAAE;;aAEX;SACJ;KACJ;IAED,wDAAgB,GAAhB;QACI,IAAI,6BAA6B,CAAC,0BAA0B,EAAE,EAAE;YAC5D,IAAI;gBACA,IAAM,qBAAqB,GAAG,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC/F,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClC,IAAM,UAAU,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACrD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACnD,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC9C,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC5C,OAAO,UAAU,CAAC;iBACrB;aACJ;YAAC,OAAO,CAAC,EAAE;;aAEX;SACJ;QACD,OAAO,IAAI,CAAC;KACf;IACL,oCAAC;AAAD,CAAC;;;;"}
1
+ {"version":3,"file":"BrowserPerformanceMeasurement.js","sources":["../../src/telemetry/BrowserPerformanceMeasurement.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { IPerformanceMeasurement } from \"@azure/msal-common\";\r\n\r\nexport class BrowserPerformanceMeasurement implements IPerformanceMeasurement {\r\n private measureName: string;\r\n private correlationId: string;\r\n private startMark: string;\r\n private endMark: string;\r\n\r\n constructor(name: string, correlationId: string) {\r\n this.correlationId = correlationId;\r\n this.measureName = `msal.measure.${name}.${this.correlationId}`;\r\n this.startMark = `msal.start.${name}.${this.correlationId}`;\r\n this.endMark = `msal.end.${name}.${this.correlationId}`;\r\n }\r\n\r\n static supportsBrowserPerformance(): boolean {\r\n return typeof window !== \"undefined\" &&\r\n typeof window.performance !== \"undefined\" &&\r\n typeof window.performance.mark === \"function\" && \r\n typeof window.performance.measure === \"function\" &&\r\n typeof window.performance.clearMarks === \"function\" &&\r\n typeof window.performance.clearMeasures === \"function\" &&\r\n typeof window.performance.getEntriesByName === \"function\";\r\n }\r\n\r\n startMeasurement(): void {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n window.performance.mark(this.startMark);\r\n } catch (e) {\r\n // Silently catch\r\n }\r\n }\r\n }\r\n\r\n endMeasurement():void {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n window.performance.mark(this.endMark);\r\n window.performance.measure(this.measureName, this.startMark, this.endMark);\r\n } catch (e) {\r\n // Silently catch\r\n }\r\n }\r\n }\r\n\r\n flushMeasurement(): number | null {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n const entriesForMeasurement = window.performance.getEntriesByName(this.measureName, \"measure\");\r\n if (entriesForMeasurement.length > 0) {\r\n const durationMs = entriesForMeasurement[0].duration;\r\n window.performance.clearMeasures(this.measureName);\r\n window.performance.clearMarks(this.startMark);\r\n window.performance.clearMarks(this.endMark);\r\n return durationMs;\r\n }\r\n } catch (e) {\r\n // Silently catch and return null\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n"],"names":[],"mappings":";;AAAA;;;;;IAaI,uCAAY,IAAY,EAAE,aAAqB;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,kBAAgB,IAAI,SAAI,IAAI,CAAC,aAAe,CAAC;QAChE,IAAI,CAAC,SAAS,GAAG,gBAAc,IAAI,SAAI,IAAI,CAAC,aAAe,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,cAAY,IAAI,SAAI,IAAI,CAAC,aAAe,CAAC;KAC3D;IAEM,wDAA0B,GAAjC;QACI,OAAO,OAAO,MAAM,KAAK,WAAW;YAChC,OAAO,MAAM,CAAC,WAAW,KAAK,WAAW;YACzC,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU;YAC7C,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,KAAK,UAAU;YAChD,OAAO,MAAM,CAAC,WAAW,CAAC,UAAU,KAAK,UAAU;YACnD,OAAO,MAAM,CAAC,WAAW,CAAC,aAAa,KAAK,UAAU;YACtD,OAAO,MAAM,CAAC,WAAW,CAAC,gBAAgB,KAAK,UAAU,CAAC;KACjE;IAED,wDAAgB,GAAhB;QACI,IAAI,6BAA6B,CAAC,0BAA0B,EAAE,EAAE;YAC5D,IAAI;gBACA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC3C;YAAC,OAAO,CAAC,EAAE;;aAEX;SACJ;KACJ;IAED,sDAAc,GAAd;QACI,IAAI,6BAA6B,CAAC,0BAA0B,EAAE,EAAE;YAC5D,IAAI;gBACA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aAC9E;YAAC,OAAO,CAAC,EAAE;;aAEX;SACJ;KACJ;IAED,wDAAgB,GAAhB;QACI,IAAI,6BAA6B,CAAC,0BAA0B,EAAE,EAAE;YAC5D,IAAI;gBACA,IAAM,qBAAqB,GAAG,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC/F,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClC,IAAM,UAAU,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACrD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACnD,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC9C,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC5C,OAAO,UAAU,CAAC;iBACrB;aACJ;YAAC,OAAO,CAAC,EAAE;;aAEX;SACJ;QACD,OAAO,IAAI,CAAC;KACf;IACL,oCAAC;AAAD,CAAC;;;;"}
@@ -33,6 +33,16 @@ export declare const BrowserConstants: {
33
33
  */
34
34
  MSAL_SKU: string;
35
35
  };
36
+ export declare const NativeConstants: {
37
+ CHANNEL_ID: string;
38
+ PREFERRED_EXTENSION_ID: string;
39
+ };
40
+ export declare enum NativeExtensionMethod {
41
+ HandshakeRequest = "Handshake",
42
+ HandshakeResponse = "HandshakeResponse",
43
+ GetToken = "GetToken",
44
+ Response = "Response"
45
+ }
36
46
  export declare enum BrowserCacheLocation {
37
47
  LocalStorage = "localStorage",
38
48
  SessionStorage = "sessionStorage",
@@ -61,7 +71,8 @@ export declare enum TemporaryCacheKeys {
61
71
  SCOPES = "scopes",
62
72
  INTERACTION_STATUS_KEY = "interaction.status",
63
73
  CCS_CREDENTIAL = "ccs.credential",
64
- CORRELATION_ID = "request.correlationId"
74
+ CORRELATION_ID = "request.correlationId",
75
+ NATIVE_REQUEST = "request.native"
65
76
  }
66
77
  /**
67
78
  * Cache keys stored in-memory
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserConstants.d.ts","sourceRoot":"","sources":["../../src/utils/BrowserConstants.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,gBAAgB;IACzB;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;CAEN,CAAC;AAEF,oBAAY,oBAAoB;IAC5B,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;CAClC;AAED;;GAEG;AACH,oBAAY,iBAAiB;IACzB,GAAG,QAAQ;IACX,IAAI,SAAS;CAChB;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC1B,SAAS,cAAc;IACvB,qBAAqB,yBAAyB;IAC9C,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,aAAa,mBAAmB;IAChC,UAAU,mBAAmB;IAC7B,YAAY,uBAAuB;IACnC,QAAQ,YAAY;IACpB,cAAc,mBAAmB;IACjC,MAAM,WAAW;IACjB,sBAAsB,uBAAuB;IAC7C,cAAc,mBAAmB;IACjC,cAAc,0BAA0B;CAC3C;AAED;;GAEG;AACH,oBAAY,iBAAiB;IACzB,WAAW,gBAAgB;IAC3B,WAAW,oBAAoB;CAClC;AAED;;;;;GAKG;AACH,oBAAY,KAAK;IACb,oBAAoB,MAAM;IAC1B,iBAAiB,MAAM;IACvB,SAAS,MAAM;IACf,2BAA2B,MAAM;IACjC,qBAAqB,MAAM;IAC3B,kBAAkB,MAAM;IACxB,6BAA6B,KAAK;IAClC,MAAM,MAAM;IACZ,WAAW,MAAM;CACpB;AAKD,oBAAY,eAAe;IACvB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,IAAI,SAAS;CAChB;AAED;;;GAGG;AACH,oBAAY,iBAAiB;IACzB;;OAEG;IACH,OAAO,YAAY;IACnB;;OAEG;IACH,KAAK,UAAU;IACf;;OAEG;IACH,MAAM,WAAW;IACjB;;OAEG;IACH,YAAY,iBAAiB;IAC7B;;OAEG;IACH,SAAS,cAAc;IACvB;;OAEG;IACH,cAAc,mBAAmB;IACjC;;OAEG;IACH,IAAI,SAAS;CAChB;AAED,eAAO,MAAM,eAAe,EAAE,eAAe,GAAC,YAE7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,QAAQ,CAAC;AAGpC,oBAAY,UAAU;IAClB,KAAK,sBAAsB;IAC3B,OAAO,wBAAwB;CAClC;AAGD,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,aAAa,QAAoB,CAAC"}
1
+ {"version":3,"file":"BrowserConstants.d.ts","sourceRoot":"","sources":["../../src/utils/BrowserConstants.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,gBAAgB;IACzB;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;CAEN,CAAC;AAEF,eAAO,MAAM,eAAe;;;CAG3B,CAAC;AAEF,oBAAY,qBAAqB;IAC7B,gBAAgB,cAAc;IAC9B,iBAAiB,sBAAsB;IACvC,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACxB;AAED,oBAAY,oBAAoB;IAC5B,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;CAClC;AAED;;GAEG;AACH,oBAAY,iBAAiB;IACzB,GAAG,QAAQ;IACX,IAAI,SAAS;CAChB;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC1B,SAAS,cAAc;IACvB,qBAAqB,yBAAyB;IAC9C,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,aAAa,mBAAmB;IAChC,UAAU,mBAAmB;IAC7B,YAAY,uBAAuB;IACnC,QAAQ,YAAY;IACpB,cAAc,mBAAmB;IACjC,MAAM,WAAW;IACjB,sBAAsB,uBAAuB;IAC7C,cAAc,mBAAmB;IACjC,cAAc,0BAA0B;IACxC,cAAc,mBAAmB;CACpC;AAED;;GAEG;AACH,oBAAY,iBAAiB;IACzB,WAAW,gBAAgB;IAC3B,WAAW,oBAAoB;CAClC;AAED;;;;;GAKG;AACH,oBAAY,KAAK;IACb,oBAAoB,MAAM;IAC1B,iBAAiB,MAAM;IACvB,SAAS,MAAM;IACf,2BAA2B,MAAM;IACjC,qBAAqB,MAAM;IAC3B,kBAAkB,MAAM;IACxB,6BAA6B,KAAK;IAClC,MAAM,MAAM;IACZ,WAAW,MAAM;CACpB;AAKD,oBAAY,eAAe;IACvB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,IAAI,SAAS;CAChB;AAED;;;GAGG;AACH,oBAAY,iBAAiB;IACzB;;OAEG;IACH,OAAO,YAAY;IACnB;;OAEG;IACH,KAAK,UAAU;IACf;;OAEG;IACH,MAAM,WAAW;IACjB;;OAEG;IACH,YAAY,iBAAiB;IAC7B;;OAEG;IACH,SAAS,cAAc;IACvB;;OAEG;IACH,cAAc,mBAAmB;IACjC;;OAEG;IACH,IAAI,SAAS;CAChB;AAED,eAAO,MAAM,eAAe,EAAE,eAAe,GAAC,YAE7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,QAAQ,CAAC;AAGpC,oBAAY,UAAU;IAClB,KAAK,sBAAsB;IAC3B,OAAO,wBAAwB;CAClC;AAGD,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,aAAa,QAAoB,CAAC"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.23.0 2022-04-04 */
1
+ /*! @azure/msal-browser v2.24.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  import { OIDC_DEFAULT_SCOPES } from '@azure/msal-common';
4
4
 
@@ -39,6 +39,17 @@ var BrowserConstants = {
39
39
  */
40
40
  MSAL_SKU: "msal.js.browser",
41
41
  };
42
+ var NativeConstants = {
43
+ CHANNEL_ID: "53ee284d-920a-4b59-9d30-a60315b26836",
44
+ PREFERRED_EXTENSION_ID: "ppnbnpeolgkicgegkbkbjmhlideopiji"
45
+ };
46
+ var NativeExtensionMethod;
47
+ (function (NativeExtensionMethod) {
48
+ NativeExtensionMethod["HandshakeRequest"] = "Handshake";
49
+ NativeExtensionMethod["HandshakeResponse"] = "HandshakeResponse";
50
+ NativeExtensionMethod["GetToken"] = "GetToken";
51
+ NativeExtensionMethod["Response"] = "Response";
52
+ })(NativeExtensionMethod || (NativeExtensionMethod = {}));
42
53
  var BrowserCacheLocation;
43
54
  (function (BrowserCacheLocation) {
44
55
  BrowserCacheLocation["LocalStorage"] = "localStorage";
@@ -71,6 +82,7 @@ var TemporaryCacheKeys;
71
82
  TemporaryCacheKeys["INTERACTION_STATUS_KEY"] = "interaction.status";
72
83
  TemporaryCacheKeys["CCS_CREDENTIAL"] = "ccs.credential";
73
84
  TemporaryCacheKeys["CORRELATION_ID"] = "request.correlationId";
85
+ TemporaryCacheKeys["NATIVE_REQUEST"] = "request.native";
74
86
  })(TemporaryCacheKeys || (TemporaryCacheKeys = {}));
75
87
  /**
76
88
  * Cache keys stored in-memory
@@ -161,5 +173,5 @@ var DB_NAME = "msal.db";
161
173
  var DB_VERSION = 1;
162
174
  var DB_TABLE_NAME = DB_NAME + ".keys";
163
175
 
164
- export { ApiId, BrowserCacheLocation, BrowserConstants, DB_NAME, DB_TABLE_NAME, DB_VERSION, DEFAULT_REQUEST, HTTP_REQUEST_TYPE, InMemoryCacheKeys, InteractionStatus, InteractionType, KEY_FORMAT_JWK, TemporaryCacheKeys, WrapperSKU };
176
+ export { ApiId, BrowserCacheLocation, BrowserConstants, DB_NAME, DB_TABLE_NAME, DB_VERSION, DEFAULT_REQUEST, HTTP_REQUEST_TYPE, InMemoryCacheKeys, InteractionStatus, InteractionType, KEY_FORMAT_JWK, NativeConstants, NativeExtensionMethod, TemporaryCacheKeys, WrapperSKU };
165
177
  //# sourceMappingURL=BrowserConstants.js.map