@azure/msal-browser 3.5.1-beta.1 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/dist/app/IPublicClientApplication.d.ts +51 -51
  2. package/dist/app/IPublicClientApplication.mjs +102 -102
  3. package/dist/app/IPublicClientApplication.mjs.map +1 -1
  4. package/dist/app/PublicClientApplication.d.ts +269 -268
  5. package/dist/app/PublicClientApplication.d.ts.map +1 -1
  6. package/dist/app/PublicClientApplication.mjs +333 -333
  7. package/dist/app/PublicClientApplication.mjs.map +1 -1
  8. package/dist/app/PublicClientNext.d.ts +273 -273
  9. package/dist/app/PublicClientNext.mjs +351 -351
  10. package/dist/app/PublicClientNext.mjs.map +1 -1
  11. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +62 -62
  12. package/dist/broker/nativeBroker/NativeMessageHandler.mjs +254 -254
  13. package/dist/broker/nativeBroker/NativeMessageHandler.mjs.map +1 -1
  14. package/dist/broker/nativeBroker/NativeRequest.d.ts +44 -44
  15. package/dist/broker/nativeBroker/NativeResponse.d.ts +48 -48
  16. package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +7 -7
  17. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +11 -11
  18. package/dist/broker/nativeBroker/NativeStatusCodes.mjs.map +1 -1
  19. package/dist/cache/AsyncMemoryStorage.d.ts +51 -51
  20. package/dist/cache/AsyncMemoryStorage.mjs +132 -132
  21. package/dist/cache/AsyncMemoryStorage.mjs.map +1 -1
  22. package/dist/cache/BrowserCacheManager.d.ts +395 -383
  23. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  24. package/dist/cache/BrowserCacheManager.mjs +1282 -1262
  25. package/dist/cache/BrowserCacheManager.mjs.map +1 -1
  26. package/dist/cache/BrowserStorage.d.ts +11 -11
  27. package/dist/cache/BrowserStorage.mjs +32 -32
  28. package/dist/cache/BrowserStorage.mjs.map +1 -1
  29. package/dist/cache/CryptoKeyStore.d.ts +18 -18
  30. package/dist/cache/CryptoKeyStore.mjs +40 -40
  31. package/dist/cache/CryptoKeyStore.mjs.map +1 -1
  32. package/dist/cache/DatabaseStorage.d.ts +56 -56
  33. package/dist/cache/DatabaseStorage.mjs +190 -190
  34. package/dist/cache/DatabaseStorage.mjs.map +1 -1
  35. package/dist/cache/IAsyncMemoryStorage.d.ts +27 -27
  36. package/dist/cache/ITokenCache.d.ts +11 -11
  37. package/dist/cache/IWindowStorage.d.ts +27 -27
  38. package/dist/cache/MemoryStorage.d.ts +11 -11
  39. package/dist/cache/MemoryStorage.mjs +31 -31
  40. package/dist/cache/MemoryStorage.mjs.map +1 -1
  41. package/dist/cache/TokenCache.d.ts +77 -77
  42. package/dist/cache/TokenCache.d.ts.map +1 -1
  43. package/dist/cache/TokenCache.mjs +221 -225
  44. package/dist/cache/TokenCache.mjs.map +1 -1
  45. package/dist/config/Configuration.d.ts +206 -206
  46. package/dist/config/Configuration.d.ts.map +1 -1
  47. package/dist/config/Configuration.mjs +128 -128
  48. package/dist/config/Configuration.mjs.map +1 -1
  49. package/dist/controllers/ControllerFactory.d.ts +4 -4
  50. package/dist/controllers/ControllerFactory.d.ts.map +1 -1
  51. package/dist/controllers/ControllerFactory.mjs +29 -29
  52. package/dist/controllers/ControllerFactory.mjs.map +1 -1
  53. package/dist/controllers/IController.d.ts +61 -61
  54. package/dist/controllers/NestedAppAuthController.d.ts +95 -95
  55. package/dist/controllers/NestedAppAuthController.mjs +334 -334
  56. package/dist/controllers/NestedAppAuthController.mjs.map +1 -1
  57. package/dist/controllers/StandardController.d.ts +407 -407
  58. package/dist/controllers/StandardController.d.ts.map +1 -1
  59. package/dist/controllers/StandardController.mjs +1291 -1293
  60. package/dist/controllers/StandardController.mjs.map +1 -1
  61. package/dist/controllers/UnknownOperatingContextController.d.ts +87 -87
  62. package/dist/controllers/UnknownOperatingContextController.mjs +264 -264
  63. package/dist/controllers/UnknownOperatingContextController.mjs.map +1 -1
  64. package/dist/crypto/BrowserCrypto.d.ts +44 -44
  65. package/dist/crypto/BrowserCrypto.mjs +93 -93
  66. package/dist/crypto/BrowserCrypto.mjs.map +1 -1
  67. package/dist/crypto/CryptoOps.d.ts +63 -63
  68. package/dist/crypto/CryptoOps.mjs +145 -145
  69. package/dist/crypto/CryptoOps.mjs.map +1 -1
  70. package/dist/crypto/PkceGenerator.d.ts +8 -8
  71. package/dist/crypto/PkceGenerator.mjs +54 -54
  72. package/dist/crypto/PkceGenerator.mjs.map +1 -1
  73. package/dist/crypto/SignedHttpRequest.d.ts +30 -30
  74. package/dist/crypto/SignedHttpRequest.mjs +39 -39
  75. package/dist/crypto/SignedHttpRequest.mjs.map +1 -1
  76. package/dist/encode/Base64Decode.d.ts +9 -9
  77. package/dist/encode/Base64Decode.mjs +36 -36
  78. package/dist/encode/Base64Decode.mjs.map +1 -1
  79. package/dist/encode/Base64Encode.d.ts +19 -19
  80. package/dist/encode/Base64Encode.mjs +43 -43
  81. package/dist/encode/Base64Encode.mjs.map +1 -1
  82. package/dist/error/BrowserAuthError.d.ts +250 -250
  83. package/dist/error/BrowserAuthError.mjs +258 -258
  84. package/dist/error/BrowserAuthError.mjs.map +1 -1
  85. package/dist/error/BrowserAuthErrorCodes.d.ts +45 -45
  86. package/dist/error/BrowserAuthErrorCodes.mjs +49 -49
  87. package/dist/error/BrowserAuthErrorCodes.mjs.map +1 -1
  88. package/dist/error/BrowserConfigurationAuthError.d.ts +33 -33
  89. package/dist/error/BrowserConfigurationAuthError.mjs +40 -40
  90. package/dist/error/BrowserConfigurationAuthError.mjs.map +1 -1
  91. package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +3 -3
  92. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +7 -7
  93. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs.map +1 -1
  94. package/dist/error/NativeAuthError.d.ts +29 -29
  95. package/dist/error/NativeAuthError.mjs +60 -60
  96. package/dist/error/NativeAuthError.mjs.map +1 -1
  97. package/dist/error/NativeAuthErrorCodes.d.ts +2 -2
  98. package/dist/error/NativeAuthErrorCodes.mjs +6 -6
  99. package/dist/error/NativeAuthErrorCodes.mjs.map +1 -1
  100. package/dist/error/NestedAppAuthError.d.ts +14 -14
  101. package/dist/error/NestedAppAuthError.mjs +23 -23
  102. package/dist/error/NestedAppAuthError.mjs.map +1 -1
  103. package/dist/event/EventHandler.d.ts +41 -41
  104. package/dist/event/EventHandler.mjs +119 -119
  105. package/dist/event/EventHandler.mjs.map +1 -1
  106. package/dist/event/EventMessage.d.ts +25 -25
  107. package/dist/event/EventMessage.mjs +68 -68
  108. package/dist/event/EventMessage.mjs.map +1 -1
  109. package/dist/event/EventType.d.ts +28 -28
  110. package/dist/event/EventType.mjs +31 -31
  111. package/dist/event/EventType.mjs.map +1 -1
  112. package/dist/index.d.ts +39 -39
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.mjs +1 -1
  115. package/dist/interaction_client/BaseInteractionClient.d.ts +54 -54
  116. package/dist/interaction_client/BaseInteractionClient.mjs +152 -152
  117. package/dist/interaction_client/BaseInteractionClient.mjs.map +1 -1
  118. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
  119. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +10 -10
  120. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs.map +1 -1
  121. package/dist/interaction_client/NativeInteractionClient.d.ts +140 -140
  122. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  123. package/dist/interaction_client/NativeInteractionClient.mjs +539 -549
  124. package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
  125. package/dist/interaction_client/PopupClient.d.ts +105 -105
  126. package/dist/interaction_client/PopupClient.mjs +432 -432
  127. package/dist/interaction_client/PopupClient.mjs.map +1 -1
  128. package/dist/interaction_client/RedirectClient.d.ts +49 -49
  129. package/dist/interaction_client/RedirectClient.mjs +311 -311
  130. package/dist/interaction_client/RedirectClient.mjs.map +1 -1
  131. package/dist/interaction_client/SilentAuthCodeClient.d.ts +23 -23
  132. package/dist/interaction_client/SilentAuthCodeClient.mjs +57 -57
  133. package/dist/interaction_client/SilentAuthCodeClient.mjs.map +1 -1
  134. package/dist/interaction_client/SilentCacheClient.d.ts +24 -24
  135. package/dist/interaction_client/SilentCacheClient.mjs +61 -61
  136. package/dist/interaction_client/SilentCacheClient.mjs.map +1 -1
  137. package/dist/interaction_client/SilentIframeClient.d.ts +32 -32
  138. package/dist/interaction_client/SilentIframeClient.mjs +96 -96
  139. package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
  140. package/dist/interaction_client/SilentRefreshClient.d.ts +20 -20
  141. package/dist/interaction_client/SilentRefreshClient.mjs +43 -43
  142. package/dist/interaction_client/SilentRefreshClient.mjs.map +1 -1
  143. package/dist/interaction_client/StandardInteractionClient.d.ts +54 -54
  144. package/dist/interaction_client/StandardInteractionClient.mjs +222 -222
  145. package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
  146. package/dist/interaction_handler/InteractionHandler.d.ts +33 -33
  147. package/dist/interaction_handler/InteractionHandler.mjs +93 -93
  148. package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
  149. package/dist/interaction_handler/RedirectHandler.d.ts +32 -32
  150. package/dist/interaction_handler/RedirectHandler.mjs +134 -134
  151. package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
  152. package/dist/interaction_handler/SilentHandler.d.ts +13 -13
  153. package/dist/interaction_handler/SilentHandler.mjs +133 -133
  154. package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
  155. package/dist/naa/AccountInfo.d.ts +11 -11
  156. package/dist/naa/AccountRequests.d.ts +9 -9
  157. package/dist/naa/AuthBridge.d.ts +8 -5
  158. package/dist/naa/AuthBridge.d.ts.map +1 -1
  159. package/dist/naa/BridgeCapabilities.d.ts +3 -3
  160. package/dist/naa/BridgeError.d.ts +9 -9
  161. package/dist/naa/BridgeError.mjs +7 -7
  162. package/dist/naa/BridgeError.mjs.map +1 -1
  163. package/dist/naa/BridgeProxy.d.ts +72 -72
  164. package/dist/naa/BridgeProxy.d.ts.map +1 -1
  165. package/dist/naa/BridgeProxy.mjs +153 -152
  166. package/dist/naa/BridgeProxy.mjs.map +1 -1
  167. package/dist/naa/BridgeRequest.d.ts +6 -6
  168. package/dist/naa/BridgeRequestEnvelope.d.ts +13 -13
  169. package/dist/naa/BridgeResponseEnvelope.d.ts +10 -10
  170. package/dist/naa/BridgeStatusCode.d.ts +10 -10
  171. package/dist/naa/BridgeStatusCode.mjs +15 -15
  172. package/dist/naa/BridgeStatusCode.mjs.map +1 -1
  173. package/dist/naa/IBridgeProxy.d.ts +12 -12
  174. package/dist/naa/InitializeBridgeResponse.d.ts +6 -6
  175. package/dist/naa/TokenRequest.d.ts +19 -19
  176. package/dist/naa/TokenResponse.d.ts +15 -15
  177. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +23 -23
  178. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +141 -141
  179. package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -1
  180. package/dist/navigation/INavigationClient.d.ts +16 -16
  181. package/dist/navigation/NavigationClient.d.ts +22 -22
  182. package/dist/navigation/NavigationClient.mjs +40 -40
  183. package/dist/navigation/NavigationClient.mjs.map +1 -1
  184. package/dist/navigation/NavigationOptions.d.ts +12 -12
  185. package/dist/network/FetchClient.d.ts +26 -26
  186. package/dist/network/FetchClient.mjs +99 -99
  187. package/dist/network/FetchClient.mjs.map +1 -1
  188. package/dist/operatingcontext/BaseOperatingContext.d.ts +40 -40
  189. package/dist/operatingcontext/BaseOperatingContext.mjs +44 -44
  190. package/dist/operatingcontext/BaseOperatingContext.mjs.map +1 -1
  191. package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
  192. package/dist/operatingcontext/StandardOperatingContext.mjs +43 -43
  193. package/dist/operatingcontext/StandardOperatingContext.mjs.map +1 -1
  194. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +32 -32
  195. package/dist/operatingcontext/TeamsAppOperatingContext.mjs +85 -85
  196. package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -1
  197. package/dist/operatingcontext/UnknownOperatingContext.d.ts +25 -25
  198. package/dist/operatingcontext/UnknownOperatingContext.mjs +42 -42
  199. package/dist/operatingcontext/UnknownOperatingContext.mjs.map +1 -1
  200. package/dist/packageMetadata.d.ts +2 -2
  201. package/dist/packageMetadata.d.ts.map +1 -1
  202. package/dist/packageMetadata.mjs +4 -4
  203. package/dist/packageMetadata.mjs.map +1 -1
  204. package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
  205. package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
  206. package/dist/request/ClearCacheRequest.d.ts +10 -10
  207. package/dist/request/EndSessionPopupRequest.d.ts +18 -18
  208. package/dist/request/EndSessionRequest.d.ts +15 -15
  209. package/dist/request/PopupRequest.d.ts +34 -34
  210. package/dist/request/PopupWindowAttributes.d.ts +15 -15
  211. package/dist/request/RedirectRequest.d.ts +35 -35
  212. package/dist/request/SilentRequest.d.ts +32 -32
  213. package/dist/request/SsoSilentRequest.d.ts +29 -29
  214. package/dist/response/AuthenticationResult.d.ts +4 -4
  215. package/dist/response/ResponseHandler.d.ts +7 -7
  216. package/dist/response/ResponseHandler.mjs +36 -36
  217. package/dist/response/ResponseHandler.mjs.map +1 -1
  218. package/dist/telemetry/BrowserPerformanceClient.d.ts +36 -36
  219. package/dist/telemetry/BrowserPerformanceClient.mjs +125 -125
  220. package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -1
  221. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
  222. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +92 -92
  223. package/dist/telemetry/BrowserPerformanceMeasurement.mjs.map +1 -1
  224. package/dist/utils/BrowserConstants.d.ts +176 -176
  225. package/dist/utils/BrowserConstants.mjs +204 -204
  226. package/dist/utils/BrowserConstants.mjs.map +1 -1
  227. package/dist/utils/BrowserProtocolUtils.d.ts +11 -11
  228. package/dist/utils/BrowserProtocolUtils.mjs +21 -21
  229. package/dist/utils/BrowserProtocolUtils.mjs.map +1 -1
  230. package/dist/utils/BrowserUtils.d.ts +56 -56
  231. package/dist/utils/BrowserUtils.mjs +125 -125
  232. package/dist/utils/BrowserUtils.mjs.map +1 -1
  233. package/lib/msal-browser.cjs +18217 -17928
  234. package/lib/msal-browser.cjs.map +1 -1
  235. package/lib/msal-browser.js +18217 -17928
  236. package/lib/msal-browser.js.map +1 -1
  237. package/lib/msal-browser.min.js +71 -68
  238. package/package.json +103 -102
  239. package/src/app/PublicClientApplication.ts +2 -1
  240. package/src/cache/BrowserCacheManager.ts +31 -4
  241. package/src/cache/DatabaseStorage.ts +1 -1
  242. package/src/cache/TokenCache.ts +33 -29
  243. package/src/config/Configuration.ts +1 -1
  244. package/src/controllers/ControllerFactory.ts +3 -5
  245. package/src/controllers/StandardController.ts +4 -6
  246. package/src/crypto/CryptoOps.ts +1 -1
  247. package/src/crypto/SignedHttpRequest.ts +1 -1
  248. package/src/index.ts +1 -0
  249. package/src/interaction_client/BaseInteractionClient.ts +2 -2
  250. package/src/interaction_client/NativeInteractionClient.ts +23 -20
  251. package/src/interaction_client/PopupClient.ts +1 -1
  252. package/src/interaction_client/RedirectClient.ts +3 -3
  253. package/src/interaction_client/SilentAuthCodeClient.ts +1 -1
  254. package/src/interaction_client/StandardInteractionClient.ts +1 -1
  255. package/src/interaction_handler/SilentHandler.ts +2 -2
  256. package/src/naa/AuthBridge.ts +3 -2
  257. package/src/naa/BridgeProxy.ts +6 -4
  258. package/src/packageMetadata.ts +1 -1
@@ -1,134 +1,134 @@
1
- /*! @azure/msal-browser v3.5.1-beta.1 2023-11-14 */
1
+ /*! @azure/msal-browser v3.6.0 2023-12-01 */
2
2
  'use strict';
3
3
  import { UrlString } from '@azure/msal-common';
4
4
  import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
5
5
  import { BrowserConstants, InteractionType } from './BrowserConstants.mjs';
6
6
  import { blockIframeReload, redirectInIframe, blockNestedPopups, nonBrowserEnvironment, uninitializedPublicClientApplication } from '../error/BrowserAuthErrorCodes.mjs';
7
7
 
8
- /*
9
- * Copyright (c) Microsoft Corporation. All rights reserved.
10
- * Licensed under the MIT License.
11
- */
12
- /**
13
- * Clears hash from window url.
14
- */
15
- function clearHash(contentWindow) {
16
- // Office.js sets history.replaceState to null
17
- contentWindow.location.hash = "";
18
- if (typeof contentWindow.history.replaceState === "function") {
19
- // Full removes "#" from url
20
- contentWindow.history.replaceState(null, "", `${contentWindow.location.origin}${contentWindow.location.pathname}${contentWindow.location.search}`);
21
- }
22
- }
23
- /**
24
- * Replaces current hash with hash from provided url
25
- */
26
- function replaceHash(url) {
27
- const urlParts = url.split("#");
28
- urlParts.shift(); // Remove part before the hash
29
- window.location.hash = urlParts.length > 0 ? urlParts.join("#") : "";
30
- }
31
- /**
32
- * Returns boolean of whether the current window is in an iframe or not.
33
- */
34
- function isInIframe() {
35
- return window.parent !== window;
36
- }
37
- /**
38
- * Returns boolean of whether or not the current window is a popup opened by msal
39
- */
40
- function isInPopup() {
41
- return (typeof window !== "undefined" &&
42
- !!window.opener &&
43
- window.opener !== window &&
44
- typeof window.name === "string" &&
45
- window.name.indexOf(`${BrowserConstants.POPUP_NAME_PREFIX}.`) === 0);
46
- }
47
- // #endregion
48
- /**
49
- * Returns current window URL as redirect uri
50
- */
51
- function getCurrentUri() {
52
- return window.location.href.split("?")[0].split("#")[0];
53
- }
54
- /**
55
- * Gets the homepage url for the current window location.
56
- */
57
- function getHomepage() {
58
- const currentUrl = new UrlString(window.location.href);
59
- const urlComponents = currentUrl.getUrlComponents();
60
- return `${urlComponents.Protocol}//${urlComponents.HostNameAndPort}/`;
61
- }
62
- /**
63
- * Throws error if we have completed an auth and are
64
- * attempting another auth request inside an iframe.
65
- */
66
- function blockReloadInHiddenIframes() {
67
- const isResponseHash = UrlString.hashContainsKnownProperties(window.location.hash);
68
- // return an error if called from the hidden iframe created by the msal js silent calls
69
- if (isResponseHash && isInIframe()) {
70
- throw createBrowserAuthError(blockIframeReload);
71
- }
72
- }
73
- /**
74
- * Block redirect operations in iframes unless explicitly allowed
75
- * @param interactionType Interaction type for the request
76
- * @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe
77
- */
78
- function blockRedirectInIframe(interactionType, allowRedirectInIframe) {
79
- const isIframedApp = isInIframe();
80
- if (interactionType === InteractionType.Redirect &&
81
- isIframedApp &&
82
- !allowRedirectInIframe) {
83
- // If we are not in top frame, we shouldn't redirect. This is also handled by the service.
84
- throw createBrowserAuthError(redirectInIframe);
85
- }
86
- }
87
- /**
88
- * Block redirectUri loaded in popup from calling AcquireToken APIs
89
- */
90
- function blockAcquireTokenInPopups() {
91
- // Popups opened by msal popup APIs are given a name that starts with "msal."
92
- if (isInPopup()) {
93
- throw createBrowserAuthError(blockNestedPopups);
94
- }
95
- }
96
- /**
97
- * Throws error if token requests are made in non-browser environment
98
- * @param isBrowserEnvironment Flag indicating if environment is a browser.
99
- */
100
- function blockNonBrowserEnvironment(isBrowserEnvironment) {
101
- if (!isBrowserEnvironment) {
102
- throw createBrowserAuthError(nonBrowserEnvironment);
103
- }
104
- }
105
- /**
106
- * Throws error if initialize hasn't been called
107
- * @param initialized
108
- */
109
- function blockAPICallsBeforeInitialize(initialized) {
110
- if (!initialized) {
111
- throw createBrowserAuthError(uninitializedPublicClientApplication);
112
- }
113
- }
114
- /**
115
- * Adds a preconnect link element to the header which begins DNS resolution and SSL connection in anticipation of the /token request
116
- * @param loginDomain Authority domain, including https protocol e.g. https://login.microsoftonline.com
117
- * @returns
118
- */
119
- function preconnect(authority) {
120
- const link = document.createElement("link");
121
- link.rel = "preconnect";
122
- link.href = new URL(authority).origin;
123
- link.crossOrigin = "anonymous";
124
- document.head.appendChild(link);
125
- // The browser will close connection if not used within a few seconds, remove element from the header after 10s
126
- window.setTimeout(() => {
127
- try {
128
- document.head.removeChild(link);
129
- }
130
- catch { }
131
- }, 10000); // 10s Timeout
8
+ /*
9
+ * Copyright (c) Microsoft Corporation. All rights reserved.
10
+ * Licensed under the MIT License.
11
+ */
12
+ /**
13
+ * Clears hash from window url.
14
+ */
15
+ function clearHash(contentWindow) {
16
+ // Office.js sets history.replaceState to null
17
+ contentWindow.location.hash = "";
18
+ if (typeof contentWindow.history.replaceState === "function") {
19
+ // Full removes "#" from url
20
+ contentWindow.history.replaceState(null, "", `${contentWindow.location.origin}${contentWindow.location.pathname}${contentWindow.location.search}`);
21
+ }
22
+ }
23
+ /**
24
+ * Replaces current hash with hash from provided url
25
+ */
26
+ function replaceHash(url) {
27
+ const urlParts = url.split("#");
28
+ urlParts.shift(); // Remove part before the hash
29
+ window.location.hash = urlParts.length > 0 ? urlParts.join("#") : "";
30
+ }
31
+ /**
32
+ * Returns boolean of whether the current window is in an iframe or not.
33
+ */
34
+ function isInIframe() {
35
+ return window.parent !== window;
36
+ }
37
+ /**
38
+ * Returns boolean of whether or not the current window is a popup opened by msal
39
+ */
40
+ function isInPopup() {
41
+ return (typeof window !== "undefined" &&
42
+ !!window.opener &&
43
+ window.opener !== window &&
44
+ typeof window.name === "string" &&
45
+ window.name.indexOf(`${BrowserConstants.POPUP_NAME_PREFIX}.`) === 0);
46
+ }
47
+ // #endregion
48
+ /**
49
+ * Returns current window URL as redirect uri
50
+ */
51
+ function getCurrentUri() {
52
+ return window.location.href.split("?")[0].split("#")[0];
53
+ }
54
+ /**
55
+ * Gets the homepage url for the current window location.
56
+ */
57
+ function getHomepage() {
58
+ const currentUrl = new UrlString(window.location.href);
59
+ const urlComponents = currentUrl.getUrlComponents();
60
+ return `${urlComponents.Protocol}//${urlComponents.HostNameAndPort}/`;
61
+ }
62
+ /**
63
+ * Throws error if we have completed an auth and are
64
+ * attempting another auth request inside an iframe.
65
+ */
66
+ function blockReloadInHiddenIframes() {
67
+ const isResponseHash = UrlString.hashContainsKnownProperties(window.location.hash);
68
+ // return an error if called from the hidden iframe created by the msal js silent calls
69
+ if (isResponseHash && isInIframe()) {
70
+ throw createBrowserAuthError(blockIframeReload);
71
+ }
72
+ }
73
+ /**
74
+ * Block redirect operations in iframes unless explicitly allowed
75
+ * @param interactionType Interaction type for the request
76
+ * @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe
77
+ */
78
+ function blockRedirectInIframe(interactionType, allowRedirectInIframe) {
79
+ const isIframedApp = isInIframe();
80
+ if (interactionType === InteractionType.Redirect &&
81
+ isIframedApp &&
82
+ !allowRedirectInIframe) {
83
+ // If we are not in top frame, we shouldn't redirect. This is also handled by the service.
84
+ throw createBrowserAuthError(redirectInIframe);
85
+ }
86
+ }
87
+ /**
88
+ * Block redirectUri loaded in popup from calling AcquireToken APIs
89
+ */
90
+ function blockAcquireTokenInPopups() {
91
+ // Popups opened by msal popup APIs are given a name that starts with "msal."
92
+ if (isInPopup()) {
93
+ throw createBrowserAuthError(blockNestedPopups);
94
+ }
95
+ }
96
+ /**
97
+ * Throws error if token requests are made in non-browser environment
98
+ * @param isBrowserEnvironment Flag indicating if environment is a browser.
99
+ */
100
+ function blockNonBrowserEnvironment(isBrowserEnvironment) {
101
+ if (!isBrowserEnvironment) {
102
+ throw createBrowserAuthError(nonBrowserEnvironment);
103
+ }
104
+ }
105
+ /**
106
+ * Throws error if initialize hasn't been called
107
+ * @param initialized
108
+ */
109
+ function blockAPICallsBeforeInitialize(initialized) {
110
+ if (!initialized) {
111
+ throw createBrowserAuthError(uninitializedPublicClientApplication);
112
+ }
113
+ }
114
+ /**
115
+ * Adds a preconnect link element to the header which begins DNS resolution and SSL connection in anticipation of the /token request
116
+ * @param loginDomain Authority domain, including https protocol e.g. https://login.microsoftonline.com
117
+ * @returns
118
+ */
119
+ function preconnect(authority) {
120
+ const link = document.createElement("link");
121
+ link.rel = "preconnect";
122
+ link.href = new URL(authority).origin;
123
+ link.crossOrigin = "anonymous";
124
+ document.head.appendChild(link);
125
+ // The browser will close connection if not used within a few seconds, remove element from the header after 10s
126
+ window.setTimeout(() => {
127
+ try {
128
+ document.head.removeChild(link);
129
+ }
130
+ catch { }
131
+ }, 10000); // 10s Timeout
132
132
  }
133
133
 
134
134
  export { blockAPICallsBeforeInitialize, blockAcquireTokenInPopups, blockNonBrowserEnvironment, blockRedirectInIframe, blockReloadInHiddenIframes, clearHash, getCurrentUri, getHomepage, isInIframe, isInPopup, preconnect, replaceHash };
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserUtils.mjs","sources":["../../src/utils/BrowserUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAUA;AAEA;;AAEG;AAgBA;AACH;AAMA;;AAEG;AACH,IAAgB,aAAA,CAAA,QAAA,CAAA,IAAA,GAAU,EAAI,CAAA;AAI9B,IAAA,IAAA,OAAA,aAAA,CAAA,OAAA,CAAA,YAAA,KAAA,UAAA,EAAA;;AAEG,QAAA,aAAA,CAAA,OAAA,CAAA,YAAA,CAAA,IAAA,EAAA,EAAA,EAAA,CAAA,EAAA,aAAA,CAAA,QAAA,CAAA,MAAA,CAAA,EAAA,aAAA,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,aAAA,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AACH,KAAgB;AAYhB,CAAA;;AAEG;AACH;AAIA,SAAA,WAAA,CAAA,GAAA,EAAA;;AAEG,IAAA,QAAA,CAAA,KAAA,EAAA,CAAA;AACH,IAAgB,MAAA,CAAA,QAAA,CAAA,IAAA,GAAA,QAAW,CAAI,MAAA,GAAM,CAIpC,GAAA,QAAA,CAAA,IAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA;AAED,CAAA;;;AAGG;AACa,SAAA,UAAA,GAAA;AAUhB,IAAA,OAAA,MAAA,CAAA,MAAA,KAAA,MAAA,CAAA;;;;AAIG;AACa,SAAA,SAAA,GAAA;AAehB,IAAA,QAAA,OAAA,MAAA,KAAA,WAAA;;AAEG,QAAA,MAAA,CAAA,MAAA,KAAA,MAAA;AACH,QAAgB,OAAA,MAAA,CAAA,IAAA,KAAA,QAAA;AAOhB,QAAA,MAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA;;;AAGG;AACH;AAUA;;;AAGG,CAAA;AACH;AAQA;;;;AAIG,IAAA,MAAA,aAAA,GAAA,UAAA,CAAA,gBAAA,EAAA,CAAA;AACH,IAAA,OAAA,CAAA,EAAA,sBAA2B,CAAA,EAAA,EAAA,aAAiB,CAAG,eAa9C,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"BrowserUtils.mjs","sources":["../../src/utils/BrowserUtils.ts"],"sourcesContent":[null],"names":["BrowserAuthErrorCodes.blockIframeReload","BrowserAuthErrorCodes.redirectInIframe","BrowserAuthErrorCodes.blockNestedPopups","BrowserAuthErrorCodes.nonBrowserEnvironment","BrowserAuthErrorCodes.uninitializedPublicClientApplication"],"mappings":"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"}