@azure/msal-browser 2.37.0 → 3.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/dist/app/IPublicClientApplication.d.ts.map +1 -1
  2. package/dist/app/IPublicClientApplication.js +33 -33
  3. package/dist/app/IPublicClientApplication.js.map +1 -1
  4. package/dist/app/PublicClientApplication.d.ts +198 -24
  5. package/dist/app/PublicClientApplication.d.ts.map +1 -1
  6. package/dist/app/PublicClientApplication.js +263 -220
  7. package/dist/app/PublicClientApplication.js.map +1 -1
  8. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +5 -4
  9. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts.map +1 -1
  10. package/dist/broker/nativeBroker/NativeMessageHandler.js +118 -124
  11. package/dist/broker/nativeBroker/NativeMessageHandler.js.map +1 -1
  12. package/dist/broker/nativeBroker/NativeRequest.d.ts +4 -4
  13. package/dist/broker/nativeBroker/NativeRequest.d.ts.map +1 -1
  14. package/dist/broker/nativeBroker/NativeResponse.d.ts +4 -4
  15. package/dist/broker/nativeBroker/NativeResponse.d.ts.map +1 -1
  16. package/dist/cache/AsyncMemoryStorage.d.ts.map +1 -1
  17. package/dist/cache/AsyncMemoryStorage.js +83 -152
  18. package/dist/cache/AsyncMemoryStorage.js.map +1 -1
  19. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  20. package/dist/cache/BrowserCacheManager.js +420 -412
  21. package/dist/cache/BrowserCacheManager.js.map +1 -1
  22. package/dist/cache/BrowserStorage.d.ts.map +1 -1
  23. package/dist/cache/BrowserStorage.js +19 -19
  24. package/dist/cache/BrowserStorage.js.map +1 -1
  25. package/dist/cache/CryptoKeyStore.d.ts.map +1 -1
  26. package/dist/cache/CryptoKeyStore.js +26 -36
  27. package/dist/cache/CryptoKeyStore.js.map +1 -1
  28. package/dist/cache/DatabaseStorage.d.ts.map +1 -1
  29. package/dist/cache/DatabaseStorage.js +127 -191
  30. package/dist/cache/DatabaseStorage.js.map +1 -1
  31. package/dist/cache/ITokenCache.d.ts.map +1 -1
  32. package/dist/cache/MemoryStorage.d.ts.map +1 -1
  33. package/dist/cache/MemoryStorage.js +18 -19
  34. package/dist/cache/MemoryStorage.js.map +1 -1
  35. package/dist/cache/TokenCache.d.ts +1 -1
  36. package/dist/cache/TokenCache.d.ts.map +1 -1
  37. package/dist/cache/TokenCache.js +55 -49
  38. package/dist/cache/TokenCache.js.map +1 -1
  39. package/dist/config/Configuration.d.ts +8 -8
  40. package/dist/config/Configuration.d.ts.map +1 -1
  41. package/dist/config/Configuration.js +53 -31
  42. package/dist/config/Configuration.js.map +1 -1
  43. package/dist/controllers/ControllerFactory.d.ts +10 -0
  44. package/dist/controllers/ControllerFactory.d.ts.map +1 -0
  45. package/dist/controllers/ControllerFactory.js +47 -0
  46. package/dist/controllers/ControllerFactory.js.map +1 -0
  47. package/dist/controllers/IController.d.ts +67 -0
  48. package/dist/controllers/IController.d.ts.map +1 -0
  49. package/dist/{app/ClientApplication.d.ts → controllers/StandardController.d.ts} +96 -15
  50. package/dist/controllers/StandardController.d.ts.map +1 -0
  51. package/dist/controllers/StandardController.js +1299 -0
  52. package/dist/controllers/StandardController.js.map +1 -0
  53. package/dist/crypto/BrowserCrypto.d.ts.map +1 -1
  54. package/dist/crypto/BrowserCrypto.js +36 -60
  55. package/dist/crypto/BrowserCrypto.js.map +1 -1
  56. package/dist/crypto/CryptoOps.d.ts +1 -1
  57. package/dist/crypto/CryptoOps.d.ts.map +1 -1
  58. package/dist/crypto/CryptoOps.js +93 -151
  59. package/dist/crypto/CryptoOps.js.map +1 -1
  60. package/dist/crypto/GuidGenerator.d.ts.map +1 -1
  61. package/dist/crypto/GuidGenerator.js +36 -25
  62. package/dist/crypto/GuidGenerator.js.map +1 -1
  63. package/dist/crypto/ISubtleCrypto.d.ts.map +1 -1
  64. package/dist/crypto/ModernBrowserCrypto.d.ts.map +1 -1
  65. package/dist/crypto/ModernBrowserCrypto.js +20 -44
  66. package/dist/crypto/ModernBrowserCrypto.js.map +1 -1
  67. package/dist/crypto/MsBrowserCrypto.d.ts.map +1 -1
  68. package/dist/crypto/MsBrowserCrypto.js +65 -89
  69. package/dist/crypto/MsBrowserCrypto.js.map +1 -1
  70. package/dist/crypto/MsrBrowserCrypto.d.ts.map +1 -1
  71. package/dist/crypto/MsrBrowserCrypto.js +23 -47
  72. package/dist/crypto/MsrBrowserCrypto.js.map +1 -1
  73. package/dist/crypto/PkceGenerator.d.ts.map +1 -1
  74. package/dist/crypto/PkceGenerator.js +28 -49
  75. package/dist/crypto/PkceGenerator.js.map +1 -1
  76. package/dist/crypto/SignedHttpRequest.d.ts +1 -1
  77. package/dist/crypto/SignedHttpRequest.d.ts.map +1 -1
  78. package/dist/crypto/SignedHttpRequest.js +15 -37
  79. package/dist/crypto/SignedHttpRequest.js.map +1 -1
  80. package/dist/encode/Base64Decode.d.ts.map +1 -1
  81. package/dist/encode/Base64Decode.js +32 -33
  82. package/dist/encode/Base64Decode.js.map +1 -1
  83. package/dist/encode/Base64Encode.d.ts.map +1 -1
  84. package/dist/encode/Base64Encode.js +34 -35
  85. package/dist/encode/Base64Encode.js.map +1 -1
  86. package/dist/error/BrowserAuthError.d.ts +1 -1
  87. package/dist/error/BrowserAuthError.d.ts.map +1 -1
  88. package/dist/error/BrowserAuthError.js +161 -163
  89. package/dist/error/BrowserAuthError.js.map +1 -1
  90. package/dist/error/BrowserConfigurationAuthError.d.ts.map +1 -1
  91. package/dist/error/BrowserConfigurationAuthError.js +32 -36
  92. package/dist/error/BrowserConfigurationAuthError.js.map +1 -1
  93. package/dist/error/NativeAuthError.d.ts +1 -1
  94. package/dist/error/NativeAuthError.d.ts.map +1 -1
  95. package/dist/error/NativeAuthError.js +26 -27
  96. package/dist/error/NativeAuthError.js.map +1 -1
  97. package/dist/event/EventHandler.d.ts.map +1 -1
  98. package/dist/event/EventHandler.js +33 -33
  99. package/dist/event/EventHandler.js.map +1 -1
  100. package/dist/event/EventMessage.d.ts +5 -5
  101. package/dist/event/EventMessage.d.ts.map +1 -1
  102. package/dist/event/EventMessage.js +18 -14
  103. package/dist/event/EventMessage.js.map +1 -1
  104. package/dist/event/EventType.js +1 -1
  105. package/dist/event/EventType.js.map +1 -1
  106. package/dist/index.d.ts +8 -8
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +1 -1
  109. package/dist/interaction_client/BaseInteractionClient.d.ts.map +1 -1
  110. package/dist/interaction_client/BaseInteractionClient.js +92 -123
  111. package/dist/interaction_client/BaseInteractionClient.js.map +1 -1
  112. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts.map +1 -1
  113. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.js +6 -10
  114. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.js.map +1 -1
  115. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  116. package/dist/interaction_client/NativeInteractionClient.js +336 -393
  117. package/dist/interaction_client/NativeInteractionClient.js.map +1 -1
  118. package/dist/interaction_client/PopupClient.d.ts +1 -1
  119. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  120. package/dist/interaction_client/PopupClient.js +224 -246
  121. package/dist/interaction_client/PopupClient.js.map +1 -1
  122. package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
  123. package/dist/interaction_client/RedirectClient.js +244 -292
  124. package/dist/interaction_client/RedirectClient.js.map +1 -1
  125. package/dist/interaction_client/SilentAuthCodeClient.d.ts.map +1 -1
  126. package/dist/interaction_client/SilentAuthCodeClient.js +50 -63
  127. package/dist/interaction_client/SilentAuthCodeClient.js.map +1 -1
  128. package/dist/interaction_client/SilentCacheClient.d.ts.map +1 -1
  129. package/dist/interaction_client/SilentCacheClient.js +50 -81
  130. package/dist/interaction_client/SilentCacheClient.js.map +1 -1
  131. package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
  132. package/dist/interaction_client/SilentIframeClient.js +107 -125
  133. package/dist/interaction_client/SilentIframeClient.js.map +1 -1
  134. package/dist/interaction_client/SilentRefreshClient.d.ts.map +1 -1
  135. package/dist/interaction_client/SilentRefreshClient.js +44 -72
  136. package/dist/interaction_client/SilentRefreshClient.js.map +1 -1
  137. package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  138. package/dist/interaction_client/StandardInteractionClient.js +144 -180
  139. package/dist/interaction_client/StandardInteractionClient.js.map +1 -1
  140. package/dist/interaction_handler/InteractionHandler.d.ts +1 -1
  141. package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
  142. package/dist/interaction_handler/InteractionHandler.js +84 -110
  143. package/dist/interaction_handler/InteractionHandler.js.map +1 -1
  144. package/dist/interaction_handler/RedirectHandler.d.ts +1 -1
  145. package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
  146. package/dist/interaction_handler/RedirectHandler.js +105 -122
  147. package/dist/interaction_handler/RedirectHandler.js.map +1 -1
  148. package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
  149. package/dist/interaction_handler/SilentHandler.js +76 -65
  150. package/dist/interaction_handler/SilentHandler.js.map +1 -1
  151. package/dist/internals.js +1 -1
  152. package/dist/internals.js.map +1 -1
  153. package/dist/navigation/NavigationClient.d.ts.map +1 -1
  154. package/dist/navigation/NavigationClient.js +11 -14
  155. package/dist/navigation/NavigationClient.js.map +1 -1
  156. package/dist/navigation/NavigationOptions.d.ts +1 -1
  157. package/dist/navigation/NavigationOptions.d.ts.map +1 -1
  158. package/dist/network/FetchClient.d.ts.map +1 -1
  159. package/dist/network/FetchClient.js +66 -96
  160. package/dist/network/FetchClient.js.map +1 -1
  161. package/dist/network/XhrClient.d.ts.map +1 -1
  162. package/dist/network/XhrClient.js +38 -51
  163. package/dist/network/XhrClient.js.map +1 -1
  164. package/dist/operatingcontext/BaseOperatingContext.d.ts +41 -0
  165. package/dist/operatingcontext/BaseOperatingContext.d.ts.map +1 -0
  166. package/dist/operatingcontext/BaseOperatingContext.js +53 -0
  167. package/dist/operatingcontext/BaseOperatingContext.js.map +1 -0
  168. package/dist/operatingcontext/StandardOperatingContext.d.ts +26 -0
  169. package/dist/operatingcontext/StandardOperatingContext.d.ts.map +1 -0
  170. package/dist/operatingcontext/StandardOperatingContext.js +50 -0
  171. package/dist/operatingcontext/StandardOperatingContext.js.map +1 -0
  172. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +26 -0
  173. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts.map +1 -0
  174. package/dist/operatingcontext/TeamsAppOperatingContext.js +49 -0
  175. package/dist/operatingcontext/TeamsAppOperatingContext.js.map +1 -0
  176. package/dist/packageMetadata.d.ts +1 -1
  177. package/dist/packageMetadata.d.ts.map +1 -1
  178. package/dist/packageMetadata.js +3 -3
  179. package/dist/packageMetadata.js.map +1 -1
  180. package/dist/request/AuthorizationCodeRequest.d.ts +1 -1
  181. package/dist/request/AuthorizationCodeRequest.d.ts.map +1 -1
  182. package/dist/request/AuthorizationUrlRequest.d.ts +1 -1
  183. package/dist/request/AuthorizationUrlRequest.d.ts.map +1 -1
  184. package/dist/request/EndSessionPopupRequest.d.ts +1 -1
  185. package/dist/request/EndSessionPopupRequest.d.ts.map +1 -1
  186. package/dist/request/EndSessionRequest.d.ts +1 -1
  187. package/dist/request/EndSessionRequest.d.ts.map +1 -1
  188. package/dist/request/PopupRequest.d.ts +1 -1
  189. package/dist/request/PopupRequest.d.ts.map +1 -1
  190. package/dist/request/PopupWindowAttributes.d.ts +3 -3
  191. package/dist/request/PopupWindowAttributes.d.ts.map +1 -1
  192. package/dist/request/RedirectRequest.d.ts +1 -1
  193. package/dist/request/RedirectRequest.d.ts.map +1 -1
  194. package/dist/request/SilentRequest.d.ts +1 -1
  195. package/dist/request/SilentRequest.d.ts.map +1 -1
  196. package/dist/request/SsoSilentRequest.d.ts +1 -1
  197. package/dist/request/SsoSilentRequest.d.ts.map +1 -1
  198. package/dist/telemetry/BrowserPerformanceClient.d.ts +1 -1
  199. package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  200. package/dist/telemetry/BrowserPerformanceClient.js +62 -57
  201. package/dist/telemetry/BrowserPerformanceClient.js.map +1 -1
  202. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts.map +1 -1
  203. package/dist/telemetry/BrowserPerformanceMeasurement.js +30 -31
  204. package/dist/telemetry/BrowserPerformanceMeasurement.js.map +1 -1
  205. package/dist/utils/BrowserConstants.d.ts.map +1 -1
  206. package/dist/utils/BrowserConstants.js +10 -10
  207. package/dist/utils/BrowserConstants.js.map +1 -1
  208. package/dist/utils/BrowserProtocolUtils.d.ts +1 -1
  209. package/dist/utils/BrowserProtocolUtils.d.ts.map +1 -1
  210. package/dist/utils/BrowserProtocolUtils.js +9 -12
  211. package/dist/utils/BrowserProtocolUtils.js.map +1 -1
  212. package/dist/utils/BrowserStringUtils.d.ts.map +1 -1
  213. package/dist/utils/BrowserStringUtils.js +83 -49
  214. package/dist/utils/BrowserStringUtils.js.map +1 -1
  215. package/dist/utils/BrowserUtils.d.ts.map +1 -1
  216. package/dist/utils/BrowserUtils.js +51 -49
  217. package/dist/utils/BrowserUtils.js.map +1 -1
  218. package/dist/utils/MathUtils.d.ts.map +1 -1
  219. package/dist/utils/MathUtils.js +6 -9
  220. package/dist/utils/MathUtils.js.map +1 -1
  221. package/package.json +17 -16
  222. package/dist/_virtual/_tslib.js +0 -117
  223. package/dist/_virtual/_tslib.js.map +0 -1
  224. package/dist/app/ClientApplication.d.ts.map +0 -1
  225. package/dist/app/ClientApplication.js +0 -1053
  226. package/dist/app/ClientApplication.js.map +0 -1
  227. package/dist/index.cjs.js +0 -18080
  228. package/dist/index.cjs.js.map +0 -1
  229. package/lib/msal-browser.js +0 -18086
  230. package/lib/msal-browser.js.map +0 -1
  231. package/lib/msal-browser.min.js +0 -70
@@ -1,6 +1,5 @@
1
- /*! @azure/msal-browser v2.37.0 2023-05-01 */
1
+ /*! @azure/msal-browser v3.0.0-alpha.1 2023-05-08 */
2
2
  'use strict';
3
- import { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';
4
3
  import { PerformanceEvents, StringUtils, Constants, UrlString } from '@azure/msal-common';
5
4
  import { InteractionHandler } from './InteractionHandler.js';
6
5
  import { BrowserAuthError } from '../error/BrowserAuthError.js';
@@ -10,113 +9,126 @@ import { DEFAULT_IFRAME_TIMEOUT_MS } from '../config/Configuration.js';
10
9
  * Copyright (c) Microsoft Corporation. All rights reserved.
11
10
  * Licensed under the MIT License.
12
11
  */
13
- var SilentHandler = /** @class */ (function (_super) {
14
- __extends(SilentHandler, _super);
15
- function SilentHandler(authCodeModule, storageImpl, authCodeRequest, logger, systemOptions, performanceClient) {
16
- var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) || this;
17
- _this.navigateFrameWait = systemOptions.navigateFrameWait;
18
- _this.pollIntervalMilliseconds = systemOptions.pollIntervalMilliseconds;
19
- return _this;
12
+ class SilentHandler extends InteractionHandler {
13
+ constructor(authCodeModule, storageImpl, authCodeRequest, logger, systemOptions, performanceClient) {
14
+ super(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient);
15
+ this.navigateFrameWait = systemOptions.navigateFrameWait;
16
+ this.pollIntervalMilliseconds = systemOptions.pollIntervalMilliseconds;
20
17
  }
21
18
  /**
22
19
  * Creates a hidden iframe to given URL using user-requested scopes as an id.
23
20
  * @param urlNavigate
24
21
  * @param userRequestScopes
25
22
  */
26
- SilentHandler.prototype.initiateAuthRequest = function (requestUrl) {
27
- return __awaiter(this, void 0, void 0, function () {
28
- return __generator(this, function (_a) {
29
- switch (_a.label) {
30
- case 0:
31
- this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerInitiateAuthRequest, this.authCodeRequest.correlationId);
32
- if (StringUtils.isEmpty(requestUrl)) {
33
- // Throw error if request URL is empty.
34
- this.logger.info("Navigate url is empty");
35
- throw BrowserAuthError.createEmptyNavigationUriError();
36
- }
37
- if (!this.navigateFrameWait) return [3 /*break*/, 2];
38
- this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerLoadFrame, this.authCodeRequest.correlationId);
39
- return [4 /*yield*/, this.loadFrame(requestUrl)];
40
- case 1: return [2 /*return*/, _a.sent()];
41
- case 2: return [2 /*return*/, this.loadFrameSync(requestUrl)];
42
- }
43
- });
44
- });
45
- };
23
+ async initiateAuthRequest(requestUrl) {
24
+ this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerInitiateAuthRequest, this.authCodeRequest.correlationId);
25
+ if (StringUtils.isEmpty(requestUrl)) {
26
+ // Throw error if request URL is empty.
27
+ this.logger.info("Navigate url is empty");
28
+ throw BrowserAuthError.createEmptyNavigationUriError();
29
+ }
30
+ if (this.navigateFrameWait) {
31
+ this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerLoadFrame, this.authCodeRequest.correlationId);
32
+ return await this.loadFrame(requestUrl);
33
+ }
34
+ return this.loadFrameSync(requestUrl);
35
+ }
46
36
  /**
47
37
  * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.
48
38
  * @param iframe
49
39
  * @param timeout
50
40
  */
51
- SilentHandler.prototype.monitorIframeForHash = function (iframe, timeout) {
52
- var _this = this;
41
+ monitorIframeForHash(iframe, timeout) {
53
42
  this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerMonitorIframeForHash, this.authCodeRequest.correlationId);
54
- return new Promise(function (resolve, reject) {
43
+ return new Promise((resolve, reject) => {
55
44
  if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {
56
- _this.logger.warning("system.loadFrameTimeout or system.iframeHashTimeout set to lower (" + timeout + "ms) than the default (" + DEFAULT_IFRAME_TIMEOUT_MS + "ms). This may result in timeouts.");
45
+ this.logger.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${timeout}ms) than the default (${DEFAULT_IFRAME_TIMEOUT_MS}ms). This may result in timeouts.`);
57
46
  }
58
47
  /*
59
48
  * Polling for iframes can be purely timing based,
60
49
  * since we don't need to account for interaction.
61
50
  */
62
- var nowMark = window.performance.now();
63
- var timeoutMark = nowMark + timeout;
64
- var intervalId = setInterval(function () {
51
+ const nowMark = window.performance.now();
52
+ const timeoutMark = nowMark + timeout;
53
+ const intervalId = setInterval(() => {
65
54
  if (window.performance.now() > timeoutMark) {
66
- _this.removeHiddenIframe(iframe);
55
+ this.removeHiddenIframe(iframe);
67
56
  clearInterval(intervalId);
68
57
  reject(BrowserAuthError.createMonitorIframeTimeoutError());
69
58
  return;
70
59
  }
71
- var href = Constants.EMPTY_STRING;
72
- var contentWindow = iframe.contentWindow;
60
+ let href = Constants.EMPTY_STRING;
61
+ const contentWindow = iframe.contentWindow;
73
62
  try {
74
63
  /*
75
64
  * Will throw if cross origin,
76
65
  * which should be caught and ignored
77
66
  * since we need the interval to keep running while on STS UI.
78
67
  */
79
- href = contentWindow ? contentWindow.location.href : Constants.EMPTY_STRING;
68
+ href = contentWindow
69
+ ? contentWindow.location.href
70
+ : Constants.EMPTY_STRING;
80
71
  }
81
72
  catch (e) { }
82
- if (StringUtils.isEmpty(href)) {
73
+ if (StringUtils.isEmpty(href) || href === "about:blank") {
83
74
  return;
84
75
  }
85
- var contentHash = contentWindow ? contentWindow.location.hash : Constants.EMPTY_STRING;
86
- if (UrlString.hashContainsKnownProperties(contentHash)) {
87
- // Success case
88
- _this.removeHiddenIframe(iframe);
76
+ const contentHash = contentWindow
77
+ ? contentWindow.location.hash
78
+ : Constants.EMPTY_STRING;
79
+ if (contentHash) {
80
+ if (UrlString.hashContainsKnownProperties(contentHash)) {
81
+ // Success case
82
+ this.removeHiddenIframe(iframe);
83
+ clearInterval(intervalId);
84
+ resolve(contentHash);
85
+ return;
86
+ }
87
+ else {
88
+ // Hash is present but incorrect
89
+ this.logger.error("SilentHandler:monitorIFrameForHash - a hash is present in the iframe but it does not contain known properties. It's likely that the hash has been replaced by code running on the redirectUri page.");
90
+ this.logger.errorPii(`SilentHandler:monitorIFrameForHash - the url detected in the iframe is: ${href}`);
91
+ this.removeHiddenIframe(iframe);
92
+ clearInterval(intervalId);
93
+ reject(BrowserAuthError.createHashDoesNotContainKnownPropertiesError());
94
+ return;
95
+ }
96
+ }
97
+ else {
98
+ // No hash is present
99
+ this.logger.error("SilentHandler:monitorIFrameForHash - the request has returned to the redirectUri but a hash is not present in the iframe. It's likely that the hash has been removed or the page has been redirected by code running on the redirectUri page.");
100
+ this.logger.errorPii(`SilentHandler:monitorIFrameForHash - the url detected in the iframe is: ${href}`);
101
+ this.removeHiddenIframe(iframe);
89
102
  clearInterval(intervalId);
90
- resolve(contentHash);
103
+ reject(BrowserAuthError.createEmptyHashError());
91
104
  return;
92
105
  }
93
- }, _this.pollIntervalMilliseconds);
106
+ }, this.pollIntervalMilliseconds);
94
107
  });
95
- };
108
+ }
96
109
  /**
97
110
  * @hidden
98
111
  * Loads iframe with authorization endpoint URL
99
112
  * @ignore
100
113
  */
101
- SilentHandler.prototype.loadFrame = function (urlNavigate) {
102
- var _this = this;
114
+ loadFrame(urlNavigate) {
103
115
  this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerLoadFrame, this.authCodeRequest.correlationId);
104
116
  /*
105
117
  * This trick overcomes iframe navigation in IE
106
118
  * IE does not load the page consistently in iframe
107
119
  */
108
- return new Promise(function (resolve, reject) {
109
- var frameHandle = _this.createHiddenIframe();
110
- setTimeout(function () {
120
+ return new Promise((resolve, reject) => {
121
+ const frameHandle = this.createHiddenIframe();
122
+ setTimeout(() => {
111
123
  if (!frameHandle) {
112
124
  reject("Unable to load iframe");
113
125
  return;
114
126
  }
115
127
  frameHandle.src = urlNavigate;
116
128
  resolve(frameHandle);
117
- }, _this.navigateFrameWait);
129
+ }, this.navigateFrameWait);
118
130
  });
119
- };
131
+ }
120
132
  /**
121
133
  * @hidden
122
134
  * Loads the iframe synchronously when the navigateTimeFrame is set to `0`
@@ -124,18 +136,18 @@ var SilentHandler = /** @class */ (function (_super) {
124
136
  * @param frameName
125
137
  * @param logger
126
138
  */
127
- SilentHandler.prototype.loadFrameSync = function (urlNavigate) {
128
- var frameHandle = this.createHiddenIframe();
139
+ loadFrameSync(urlNavigate) {
140
+ const frameHandle = this.createHiddenIframe();
129
141
  frameHandle.src = urlNavigate;
130
142
  return frameHandle;
131
- };
143
+ }
132
144
  /**
133
145
  * @hidden
134
146
  * Creates a new hidden iframe or gets an existing one for silent token renewal.
135
147
  * @ignore
136
148
  */
137
- SilentHandler.prototype.createHiddenIframe = function () {
138
- var authFrame = document.createElement("iframe");
149
+ createHiddenIframe() {
150
+ const authFrame = document.createElement("iframe");
139
151
  authFrame.style.visibility = "hidden";
140
152
  authFrame.style.position = "absolute";
141
153
  authFrame.style.width = authFrame.style.height = "0";
@@ -143,19 +155,18 @@ var SilentHandler = /** @class */ (function (_super) {
143
155
  authFrame.setAttribute("sandbox", "allow-scripts allow-same-origin allow-forms");
144
156
  document.getElementsByTagName("body")[0].appendChild(authFrame);
145
157
  return authFrame;
146
- };
158
+ }
147
159
  /**
148
160
  * @hidden
149
161
  * Removes a hidden iframe from the page.
150
162
  * @ignore
151
163
  */
152
- SilentHandler.prototype.removeHiddenIframe = function (iframe) {
164
+ removeHiddenIframe(iframe) {
153
165
  if (document.body === iframe.parentNode) {
154
166
  document.body.removeChild(iframe);
155
167
  }
156
- };
157
- return SilentHandler;
158
- }(InteractionHandler));
168
+ }
169
+ }
159
170
 
160
171
  export { SilentHandler };
161
172
  //# sourceMappingURL=SilentHandler.js.map
@@ -1 +1 @@
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, IPerformanceClient, PerformanceEvents } from \"@azure/msal-common\";\r\nimport { InteractionHandler } from \"./InteractionHandler\";\r\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\r\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\r\nimport { BrowserSystemOptions, DEFAULT_IFRAME_TIMEOUT_MS } from \"../config/Configuration\";\r\n\r\nexport class SilentHandler extends InteractionHandler {\r\n\r\n private navigateFrameWait: number;\r\n private pollIntervalMilliseconds: number;\r\n\r\n constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, logger: Logger, systemOptions: Required<Pick<BrowserSystemOptions, \"navigateFrameWait\" | \"pollIntervalMilliseconds\">>, performanceClient: IPerformanceClient) {\r\n super(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient);\r\n this.navigateFrameWait = systemOptions.navigateFrameWait;\r\n this.pollIntervalMilliseconds = systemOptions.pollIntervalMilliseconds;\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 this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerInitiateAuthRequest, this.authCodeRequest.correlationId);\r\n\r\n if (StringUtils.isEmpty(requestUrl)) {\r\n // Throw error if request URL is empty.\r\n this.logger.info(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n\r\n if (this.navigateFrameWait) {\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerLoadFrame, this.authCodeRequest.correlationId);\r\n return await this.loadFrame(requestUrl);\r\n }\r\n return 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 this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerMonitorIframeForHash, this.authCodeRequest.correlationId);\r\n\r\n return new Promise((resolve, reject) => {\r\n if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {\r\n this.logger.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${timeout}ms) than the default (${DEFAULT_IFRAME_TIMEOUT_MS}ms). This may result in timeouts.`);\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 }, this.pollIntervalMilliseconds);\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 this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerLoadFrame, this.authCodeRequest.correlationId);\r\n\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
+ {"version":3,"file":"SilentHandler.js","sources":["../../src/interaction_handler/SilentHandler.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/dist/internals.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.37.0 2023-05-01 */
1
+ /*! @azure/msal-browser v3.0.0-alpha.1 2023-05-08 */
2
2
  'use strict';
3
3
  export { BrowserCacheManager } from './cache/BrowserCacheManager.js';
4
4
  export { StandardInteractionClient } from './interaction_client/StandardInteractionClient.js';
@@ -1 +1 @@
1
- {"version":3,"file":"internals.js","sources":["../src/internals.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\n/**\r\n * Warning: This set of exports is purely intended to be used by other MSAL libraries, and should be considered potentially unstable. We strongly discourage using them directly, you do so at your own risk.\r\n * Breaking changes to these APIs will be shipped under a minor version, instead of a major version.\r\n */\r\n\r\n// Cache Manager\r\nexport { BrowserCacheManager } from \"./cache/BrowserCacheManager\";\r\n\r\n// Clients\r\nexport { StandardInteractionClient } from \"./interaction_client/StandardInteractionClient\";\r\nexport { RedirectClient } from \"./interaction_client/RedirectClient\";\r\nexport { PopupClient } from \"./interaction_client/PopupClient\";\r\nexport { SilentIframeClient } from \"./interaction_client/SilentIframeClient\";\r\nexport { SilentCacheClient } from \"./interaction_client/SilentCacheClient\";\r\nexport { SilentRefreshClient } from \"./interaction_client/SilentRefreshClient\";\r\nexport { NativeInteractionClient } from \"./interaction_client/NativeInteractionClient\";\r\n\r\n// Handlers\r\nexport { RedirectHandler } from \"./interaction_handler/RedirectHandler\";\r\nexport { EventHandler } from \"./event/EventHandler\";\r\nexport { NativeMessageHandler } from \"./broker/nativeBroker/NativeMessageHandler\";\r\n\r\n// Utilities\r\nexport { BrowserStateObject } from \"./utils/BrowserProtocolUtils\";\r\nexport { BrowserConstants, TemporaryCacheKeys } from \"./utils/BrowserConstants\";\r\n\r\n// Crypto\r\nexport { CryptoOps } from \"./crypto/CryptoOps\";\r\n\r\n// Browser Errors\r\nexport { NativeAuthError } from \"./error/NativeAuthError\";\r\n\r\n// Telemetry\r\nexport { BrowserPerformanceClient } from \"./telemetry/BrowserPerformanceClient\";\r\nexport { BrowserPerformanceMeasurement } from \"./telemetry/BrowserPerformanceMeasurement\";\r\n\r\n// Native request and response\r\nexport { NativeTokenRequest } from \"./broker/nativeBroker/NativeRequest\";\r\nexport { NativeResponse, MATS } from \"./broker/nativeBroker/NativeResponse\";\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;"}
1
+ {"version":3,"file":"internals.js","sources":["../src/internals.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;AAGG"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationClient.d.ts","sourceRoot":"","sources":["../../src/navigation/NavigationClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,qBAAa,gBAAiB,YAAW,iBAAiB;IACtD;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3E;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3E;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;CAavC"}
1
+ {"version":3,"file":"NavigationClient.d.ts","sourceRoot":"","sources":["../../src/navigation/NavigationClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,qBAAa,gBAAiB,YAAW,iBAAiB;IACtD;;;;OAIG;IACH,gBAAgB,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,iBAAiB,GAC3B,OAAO,CAAC,OAAO,CAAC;IAInB;;;;OAIG;IACH,gBAAgB,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,iBAAiB,GAC3B,OAAO,CAAC,OAAO,CAAC;IAInB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;CAgBvC"}
@@ -1,48 +1,45 @@
1
- /*! @azure/msal-browser v2.37.0 2023-05-01 */
1
+ /*! @azure/msal-browser v3.0.0-alpha.1 2023-05-08 */
2
2
  'use strict';
3
3
  /*
4
4
  * Copyright (c) Microsoft Corporation. All rights reserved.
5
5
  * Licensed under the MIT License.
6
6
  */
7
- var NavigationClient = /** @class */ (function () {
8
- function NavigationClient() {
9
- }
7
+ class NavigationClient {
10
8
  /**
11
9
  * Navigates to other pages within the same web application
12
10
  * @param url
13
11
  * @param options
14
12
  */
15
- NavigationClient.prototype.navigateInternal = function (url, options) {
13
+ navigateInternal(url, options) {
16
14
  return NavigationClient.defaultNavigateWindow(url, options);
17
- };
15
+ }
18
16
  /**
19
17
  * Navigates to other pages outside the web application i.e. the Identity Provider
20
18
  * @param url
21
19
  * @param options
22
20
  */
23
- NavigationClient.prototype.navigateExternal = function (url, options) {
21
+ navigateExternal(url, options) {
24
22
  return NavigationClient.defaultNavigateWindow(url, options);
25
- };
23
+ }
26
24
  /**
27
25
  * Default navigation implementation invoked by the internal and external functions
28
26
  * @param url
29
27
  * @param options
30
28
  */
31
- NavigationClient.defaultNavigateWindow = function (url, options) {
29
+ static defaultNavigateWindow(url, options) {
32
30
  if (options.noHistory) {
33
31
  window.location.replace(url);
34
32
  }
35
33
  else {
36
34
  window.location.assign(url);
37
35
  }
38
- return new Promise(function (resolve) {
39
- setTimeout(function () {
36
+ return new Promise((resolve) => {
37
+ setTimeout(() => {
40
38
  resolve(true);
41
39
  }, options.timeout);
42
40
  });
43
- };
44
- return NavigationClient;
45
- }());
41
+ }
42
+ }
46
43
 
47
44
  export { NavigationClient };
48
45
  //# sourceMappingURL=NavigationClient.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"NavigationClient.js","sources":["../../src/navigation/NavigationClient.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;MAKU,gBAAgB,CAAA;AACzB;;;;AAIG;IACH,gBAAgB,CACZ,GAAW,EACX,OAA0B,EAAA;QAE1B,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KAC/D;AAED;;;;AAIG;IACH,gBAAgB,CACZ,GAAW,EACX,OAA0B,EAAA;QAE1B,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KAC/D;AAED;;;;AAIG;AACK,IAAA,OAAO,qBAAqB,CAChC,GAAW,EACX,OAA0B,EAAA;QAE1B,IAAI,OAAO,CAAC,SAAS,EAAE;AACnB,YAAA,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAChC,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/B,SAAA;AAED,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;YAC3B,UAAU,CAAC,MAAK;gBACZ,OAAO,CAAC,IAAI,CAAC,CAAC;AAClB,aAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACxB,SAAC,CAAC,CAAC;KACN;AACJ;;;;"}
@@ -2,7 +2,7 @@ import { ApiId } from "../utils/BrowserConstants";
2
2
  /**
3
3
  * Additional information passed to the navigateInternal and navigateExternal functions
4
4
  */
5
- export declare type NavigationOptions = {
5
+ export type NavigationOptions = {
6
6
  /** The Id of the API that initiated navigation */
7
7
  apiId: ApiId;
8
8
  /** Suggested timeout (ms) based on the configuration provided to PublicClientApplication */
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationOptions.d.ts","sourceRoot":"","sources":["../../src/navigation/NavigationOptions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAElD;;GAEG;AACH,oBAAY,iBAAiB,GAAG;IAC5B,kDAAkD;IAClD,KAAK,EAAE,KAAK,CAAA;IACZ,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAA;IACf,0EAA0E;IAC1E,SAAS,EAAE,OAAO,CAAA;CACrB,CAAC"}
1
+ {"version":3,"file":"NavigationOptions.d.ts","sourceRoot":"","sources":["../../src/navigation/NavigationOptions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,kDAAkD;IAClD,KAAK,EAAE,KAAK,CAAC;IACb,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,SAAS,EAAE,OAAO,CAAC;CACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FetchClient.d.ts","sourceRoot":"","sources":["../../src/network/FetchClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAa,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIvG;;GAEG;AACH,qBAAa,WAAY,YAAW,cAAc;IAE9C;;;;;OAKG;IACG,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IA0BvG;;;;;OAKG;IACG,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IA6BxG;;;OAGG;IACH,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,aAAa;CAOxB"}
1
+ {"version":3,"file":"FetchClient.d.ts","sourceRoot":"","sources":["../../src/network/FetchClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAEH,cAAc,EACd,qBAAqB,EACrB,eAAe,EAClB,MAAM,oBAAoB,CAAC;AAI5B;;GAEG;AACH,qBAAa,WAAY,YAAW,cAAc;IAC9C;;;;;OAKG;IACG,mBAAmB,CAAC,CAAC,EACvB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,qBAAqB,GAChC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IA6B9B;;;;;OAKG;IACG,oBAAoB,CAAC,CAAC,EACxB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,qBAAqB,GAChC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAgC9B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,aAAa;CAOxB"}
@@ -1,6 +1,5 @@
1
- /*! @azure/msal-browser v2.37.0 2023-05-01 */
1
+ /*! @azure/msal-browser v3.0.0-alpha.1 2023-05-08 */
2
2
  'use strict';
3
- import { __awaiter, __generator } from '../_virtual/_tslib.js';
4
3
  import { Constants } from '@azure/msal-common';
5
4
  import { BrowserAuthError } from '../error/BrowserAuthError.js';
6
5
  import { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';
@@ -12,127 +11,98 @@ import { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';
12
11
  /**
13
12
  * 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
14
13
  */
15
- var FetchClient = /** @class */ (function () {
16
- function FetchClient() {
17
- }
14
+ class FetchClient {
18
15
  /**
19
16
  * Fetch Client for REST endpoints - Get request
20
17
  * @param url
21
18
  * @param headers
22
19
  * @param body
23
20
  */
24
- FetchClient.prototype.sendGetRequestAsync = function (url, options) {
25
- return __awaiter(this, void 0, void 0, function () {
26
- var response, e_1, _a;
27
- return __generator(this, function (_b) {
28
- switch (_b.label) {
29
- case 0:
30
- _b.trys.push([0, 2, , 3]);
31
- return [4 /*yield*/, fetch(url, {
32
- method: HTTP_REQUEST_TYPE.GET,
33
- headers: this.getFetchHeaders(options)
34
- })];
35
- case 1:
36
- response = _b.sent();
37
- return [3 /*break*/, 3];
38
- case 2:
39
- e_1 = _b.sent();
40
- if (window.navigator.onLine) {
41
- throw BrowserAuthError.createGetRequestFailedError(e_1, url);
42
- }
43
- else {
44
- throw BrowserAuthError.createNoNetworkConnectivityError();
45
- }
46
- case 3:
47
- _b.trys.push([3, 5, , 6]);
48
- _a = {
49
- headers: this.getHeaderDict(response.headers)
50
- };
51
- return [4 /*yield*/, response.json()];
52
- case 4: return [2 /*return*/, (_a.body = (_b.sent()),
53
- _a.status = response.status,
54
- _a)];
55
- case 5:
56
- _b.sent();
57
- throw BrowserAuthError.createFailedToParseNetworkResponseError(url);
58
- case 6: return [2 /*return*/];
59
- }
21
+ async sendGetRequestAsync(url, options) {
22
+ let response;
23
+ try {
24
+ response = await fetch(url, {
25
+ method: HTTP_REQUEST_TYPE.GET,
26
+ headers: this.getFetchHeaders(options),
60
27
  });
61
- });
62
- };
28
+ }
29
+ catch (e) {
30
+ if (window.navigator.onLine) {
31
+ throw BrowserAuthError.createGetRequestFailedError(e, url);
32
+ }
33
+ else {
34
+ throw BrowserAuthError.createNoNetworkConnectivityError();
35
+ }
36
+ }
37
+ try {
38
+ return {
39
+ headers: this.getHeaderDict(response.headers),
40
+ body: (await response.json()),
41
+ status: response.status,
42
+ };
43
+ }
44
+ catch (e) {
45
+ throw BrowserAuthError.createFailedToParseNetworkResponseError(url);
46
+ }
47
+ }
63
48
  /**
64
49
  * Fetch Client for REST endpoints - Post request
65
50
  * @param url
66
51
  * @param headers
67
52
  * @param body
68
53
  */
69
- FetchClient.prototype.sendPostRequestAsync = function (url, options) {
70
- return __awaiter(this, void 0, void 0, function () {
71
- var reqBody, response, e_3, _a;
72
- return __generator(this, function (_b) {
73
- switch (_b.label) {
74
- case 0:
75
- reqBody = (options && options.body) || Constants.EMPTY_STRING;
76
- _b.label = 1;
77
- case 1:
78
- _b.trys.push([1, 3, , 4]);
79
- return [4 /*yield*/, fetch(url, {
80
- method: HTTP_REQUEST_TYPE.POST,
81
- headers: this.getFetchHeaders(options),
82
- body: reqBody
83
- })];
84
- case 2:
85
- response = _b.sent();
86
- return [3 /*break*/, 4];
87
- case 3:
88
- e_3 = _b.sent();
89
- if (window.navigator.onLine) {
90
- throw BrowserAuthError.createPostRequestFailedError(e_3, url);
91
- }
92
- else {
93
- throw BrowserAuthError.createNoNetworkConnectivityError();
94
- }
95
- case 4:
96
- _b.trys.push([4, 6, , 7]);
97
- _a = {
98
- headers: this.getHeaderDict(response.headers)
99
- };
100
- return [4 /*yield*/, response.json()];
101
- case 5: return [2 /*return*/, (_a.body = (_b.sent()),
102
- _a.status = response.status,
103
- _a)];
104
- case 6:
105
- _b.sent();
106
- throw BrowserAuthError.createFailedToParseNetworkResponseError(url);
107
- case 7: return [2 /*return*/];
108
- }
54
+ async sendPostRequestAsync(url, options) {
55
+ const reqBody = (options && options.body) || Constants.EMPTY_STRING;
56
+ let response;
57
+ try {
58
+ response = await fetch(url, {
59
+ method: HTTP_REQUEST_TYPE.POST,
60
+ headers: this.getFetchHeaders(options),
61
+ body: reqBody,
109
62
  });
110
- });
111
- };
63
+ }
64
+ catch (e) {
65
+ if (window.navigator.onLine) {
66
+ throw BrowserAuthError.createPostRequestFailedError(e, url);
67
+ }
68
+ else {
69
+ throw BrowserAuthError.createNoNetworkConnectivityError();
70
+ }
71
+ }
72
+ try {
73
+ return {
74
+ headers: this.getHeaderDict(response.headers),
75
+ body: (await response.json()),
76
+ status: response.status,
77
+ };
78
+ }
79
+ catch (e) {
80
+ throw BrowserAuthError.createFailedToParseNetworkResponseError(url);
81
+ }
82
+ }
112
83
  /**
113
84
  * Get Fetch API Headers object from string map
114
85
  * @param inputHeaders
115
86
  */
116
- FetchClient.prototype.getFetchHeaders = function (options) {
117
- var headers = new Headers();
87
+ getFetchHeaders(options) {
88
+ const headers = new Headers();
118
89
  if (!(options && options.headers)) {
119
90
  return headers;
120
91
  }
121
- var optionsHeaders = options.headers;
122
- Object.keys(optionsHeaders).forEach(function (key) {
92
+ const optionsHeaders = options.headers;
93
+ Object.keys(optionsHeaders).forEach((key) => {
123
94
  headers.append(key, optionsHeaders[key]);
124
95
  });
125
96
  return headers;
126
- };
127
- FetchClient.prototype.getHeaderDict = function (headers) {
128
- var headerDict = {};
129
- headers.forEach(function (value, key) {
97
+ }
98
+ getHeaderDict(headers) {
99
+ const headerDict = {};
100
+ headers.forEach((value, key) => {
130
101
  headerDict[key] = value;
131
102
  });
132
103
  return headerDict;
133
- };
134
- return FetchClient;
135
- }());
104
+ }
105
+ }
136
106
 
137
107
  export { FetchClient };
138
108
  //# sourceMappingURL=FetchClient.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"FetchClient.js","sources":["../../src/network/FetchClient.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"XhrClient.d.ts","sourceRoot":"","sources":["../../src/network/XhrClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI5F;;GAEG;AACH,qBAAa,SAAU,YAAW,cAAc;IAE5C;;;;;OAKG;IACG,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAIvG;;;;;OAKG;IACG,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAIxG;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAgDxB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IASrB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;CAexB"}
1
+ {"version":3,"file":"XhrClient.d.ts","sourceRoot":"","sources":["../../src/network/XhrClient.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,cAAc,EACd,qBAAqB,EACrB,eAAe,EAClB,MAAM,oBAAoB,CAAC;AAI5B;;GAEG;AACH,qBAAa,SAAU,YAAW,cAAc;IAC5C;;;;;OAKG;IACG,mBAAmB,CAAC,CAAC,EACvB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,qBAAqB,GAChC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAI9B;;;;;OAKG;IACG,oBAAoB,CAAC,CAAC,EACxB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,qBAAqB,GAChC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAI9B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IA8ExB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAYrB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;CAexB"}