@azure/msal-browser 3.19.1 → 3.21.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.
- package/dist/app/IPublicClientApplication.d.ts +53 -53
- package/dist/app/IPublicClientApplication.mjs +105 -105
- package/dist/app/PublicClientApplication.d.ts +293 -293
- package/dist/app/PublicClientApplication.mjs +364 -364
- package/dist/app/PublicClientNext.d.ts +276 -276
- package/dist/app/PublicClientNext.mjs +354 -354
- package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +62 -62
- package/dist/broker/nativeBroker/NativeMessageHandler.mjs +254 -254
- package/dist/broker/nativeBroker/NativeRequest.d.ts +45 -45
- package/dist/broker/nativeBroker/NativeResponse.d.ts +48 -48
- package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +7 -7
- package/dist/broker/nativeBroker/NativeStatusCodes.mjs +11 -11
- package/dist/cache/AccountManager.d.ts +48 -48
- package/dist/cache/AccountManager.mjs +126 -126
- package/dist/cache/AsyncMemoryStorage.d.ts +50 -50
- package/dist/cache/AsyncMemoryStorage.mjs +131 -131
- package/dist/cache/BrowserCacheManager.d.ts +410 -385
- package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
- package/dist/cache/BrowserCacheManager.mjs +1364 -1294
- package/dist/cache/BrowserCacheManager.mjs.map +1 -1
- package/dist/cache/BrowserStorage.d.ts +11 -11
- package/dist/cache/BrowserStorage.mjs +32 -32
- package/dist/cache/DatabaseStorage.d.ts +56 -56
- package/dist/cache/DatabaseStorage.mjs +200 -200
- package/dist/cache/IAsyncStorage.d.ts +27 -27
- package/dist/cache/ITokenCache.d.ts +11 -11
- package/dist/cache/IWindowStorage.d.ts +27 -27
- package/dist/cache/MemoryStorage.d.ts +11 -11
- package/dist/cache/MemoryStorage.mjs +31 -31
- package/dist/cache/TokenCache.d.ts +77 -77
- package/dist/cache/TokenCache.mjs +195 -195
- package/dist/config/Configuration.d.ts +213 -208
- package/dist/config/Configuration.d.ts.map +1 -1
- package/dist/config/Configuration.mjs +128 -128
- package/dist/config/Configuration.mjs.map +1 -1
- package/dist/controllers/ControllerFactory.d.ts +5 -5
- package/dist/controllers/ControllerFactory.mjs +25 -25
- package/dist/controllers/IController.d.ts +60 -60
- package/dist/controllers/NestedAppAuthController.d.ts +202 -202
- package/dist/controllers/NestedAppAuthController.mjs +473 -473
- package/dist/controllers/StandardController.d.ts +405 -405
- package/dist/controllers/StandardController.d.ts.map +1 -1
- package/dist/controllers/StandardController.mjs +1334 -1316
- package/dist/controllers/StandardController.mjs.map +1 -1
- package/dist/controllers/UnknownOperatingContextController.d.ts +86 -86
- package/dist/controllers/UnknownOperatingContextController.mjs +256 -256
- package/dist/crypto/BrowserCrypto.d.ts +52 -52
- package/dist/crypto/BrowserCrypto.mjs +151 -151
- package/dist/crypto/CryptoOps.d.ts +74 -74
- package/dist/crypto/CryptoOps.mjs +176 -176
- package/dist/crypto/PkceGenerator.d.ts +8 -8
- package/dist/crypto/PkceGenerator.mjs +54 -54
- package/dist/crypto/SignedHttpRequest.d.ts +30 -30
- package/dist/crypto/SignedHttpRequest.mjs +39 -39
- package/dist/encode/Base64Decode.d.ts +9 -9
- package/dist/encode/Base64Decode.mjs +36 -36
- package/dist/encode/Base64Encode.d.ts +19 -19
- package/dist/encode/Base64Encode.mjs +43 -43
- package/dist/error/BrowserAuthError.d.ts +256 -255
- package/dist/error/BrowserAuthError.d.ts.map +1 -1
- package/dist/error/BrowserAuthError.mjs +265 -264
- package/dist/error/BrowserAuthError.mjs.map +1 -1
- package/dist/error/BrowserAuthErrorCodes.d.ts +47 -46
- package/dist/error/BrowserAuthErrorCodes.d.ts.map +1 -1
- package/dist/error/BrowserAuthErrorCodes.mjs +53 -52
- package/dist/error/BrowserAuthErrorCodes.mjs.map +1 -1
- package/dist/error/BrowserConfigurationAuthError.d.ts +33 -33
- package/dist/error/BrowserConfigurationAuthError.mjs +40 -40
- package/dist/error/BrowserConfigurationAuthError.mjs.map +1 -1
- package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +3 -3
- package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +7 -7
- package/dist/error/NativeAuthError.d.ts +29 -29
- package/dist/error/NativeAuthError.mjs +60 -60
- package/dist/error/NativeAuthErrorCodes.d.ts +2 -2
- package/dist/error/NativeAuthErrorCodes.mjs +6 -6
- package/dist/error/NestedAppAuthError.d.ts +14 -14
- package/dist/error/NestedAppAuthError.mjs +23 -23
- package/dist/event/EventHandler.d.ts +41 -41
- package/dist/event/EventHandler.mjs +125 -125
- package/dist/event/EventMessage.d.ts +25 -25
- package/dist/event/EventMessage.mjs +68 -68
- package/dist/event/EventType.d.ts +29 -29
- package/dist/event/EventType.mjs +32 -32
- package/dist/index.d.ts +40 -40
- package/dist/index.mjs +1 -1
- package/dist/interaction_client/BaseInteractionClient.d.ts +50 -50
- package/dist/interaction_client/BaseInteractionClient.mjs +106 -106
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +10 -10
- package/dist/interaction_client/NativeInteractionClient.d.ts +151 -143
- package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/NativeInteractionClient.mjs +624 -584
- package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
- package/dist/interaction_client/PopupClient.d.ts +118 -105
- package/dist/interaction_client/PopupClient.d.ts.map +1 -1
- package/dist/interaction_client/PopupClient.mjs +460 -434
- package/dist/interaction_client/PopupClient.mjs.map +1 -1
- package/dist/interaction_client/RedirectClient.d.ts +50 -50
- package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
- package/dist/interaction_client/RedirectClient.mjs +349 -317
- package/dist/interaction_client/RedirectClient.mjs.map +1 -1
- package/dist/interaction_client/SilentAuthCodeClient.d.ts +23 -23
- package/dist/interaction_client/SilentAuthCodeClient.mjs +57 -57
- package/dist/interaction_client/SilentCacheClient.d.ts +16 -16
- package/dist/interaction_client/SilentCacheClient.mjs +42 -42
- package/dist/interaction_client/SilentIframeClient.d.ts +32 -32
- package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentIframeClient.mjs +111 -101
- package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
- package/dist/interaction_client/SilentRefreshClient.d.ts +20 -20
- package/dist/interaction_client/SilentRefreshClient.mjs +47 -47
- package/dist/interaction_client/StandardInteractionClient.d.ts +48 -48
- package/dist/interaction_client/StandardInteractionClient.mjs +199 -199
- package/dist/interaction_handler/InteractionHandler.d.ts +33 -33
- package/dist/interaction_handler/InteractionHandler.mjs +93 -93
- package/dist/interaction_handler/RedirectHandler.d.ts +32 -32
- package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
- package/dist/interaction_handler/RedirectHandler.mjs +135 -134
- package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
- package/dist/interaction_handler/SilentHandler.d.ts +13 -13
- package/dist/interaction_handler/SilentHandler.mjs +134 -134
- package/dist/naa/AccountInfo.d.ts +11 -11
- package/dist/naa/AuthBridge.d.ts +8 -8
- package/dist/naa/AuthResult.d.ts +6 -6
- package/dist/naa/BridgeAccountContext.d.ts +12 -12
- package/dist/naa/BridgeCapabilities.d.ts +3 -3
- package/dist/naa/BridgeError.d.ts +9 -9
- package/dist/naa/BridgeError.mjs +7 -7
- package/dist/naa/BridgeProxy.d.ts +67 -67
- package/dist/naa/BridgeProxy.d.ts.map +1 -1
- package/dist/naa/BridgeProxy.mjs +153 -148
- package/dist/naa/BridgeProxy.mjs.map +1 -1
- package/dist/naa/BridgeRequest.d.ts +7 -7
- package/dist/naa/BridgeRequestEnvelope.d.ts +12 -12
- package/dist/naa/BridgeResponseEnvelope.d.ts +13 -13
- package/dist/naa/BridgeStatusCode.d.ts +11 -11
- package/dist/naa/BridgeStatusCode.mjs +14 -14
- package/dist/naa/IBridgeProxy.d.ts +10 -10
- package/dist/naa/InitContext.d.ts +8 -8
- package/dist/naa/TokenRequest.d.ts +18 -18
- package/dist/naa/TokenResponse.d.ts +13 -13
- package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +35 -35
- package/dist/naa/mapping/NestedAppAuthAdapter.mjs +179 -179
- package/dist/navigation/INavigationClient.d.ts +16 -16
- package/dist/navigation/NavigationClient.d.ts +22 -22
- package/dist/navigation/NavigationClient.mjs +40 -40
- package/dist/navigation/NavigationOptions.d.ts +12 -12
- package/dist/network/FetchClient.d.ts +26 -26
- package/dist/network/FetchClient.mjs +99 -99
- package/dist/operatingcontext/BaseOperatingContext.d.ts +41 -41
- package/dist/operatingcontext/BaseOperatingContext.mjs +94 -94
- package/dist/operatingcontext/NestedAppOperatingContext.d.ts +34 -34
- package/dist/operatingcontext/NestedAppOperatingContext.mjs +71 -71
- package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
- package/dist/operatingcontext/StandardOperatingContext.mjs +43 -43
- package/dist/operatingcontext/UnknownOperatingContext.d.ts +25 -25
- package/dist/operatingcontext/UnknownOperatingContext.mjs +42 -42
- package/dist/packageMetadata.d.ts +2 -2
- package/dist/packageMetadata.mjs +4 -4
- package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
- package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
- package/dist/request/ClearCacheRequest.d.ts +10 -10
- package/dist/request/EndSessionPopupRequest.d.ts +18 -18
- package/dist/request/EndSessionRequest.d.ts +15 -15
- package/dist/request/InitializeApplicationRequest.d.ts +8 -8
- package/dist/request/PopupRequest.d.ts +34 -34
- package/dist/request/PopupWindowAttributes.d.ts +15 -15
- package/dist/request/RedirectRequest.d.ts +40 -35
- package/dist/request/RedirectRequest.d.ts.map +1 -1
- package/dist/request/RequestHelpers.d.ts +13 -13
- package/dist/request/RequestHelpers.mjs +53 -53
- package/dist/request/SilentRequest.d.ts +33 -33
- package/dist/request/SsoSilentRequest.d.ts +29 -29
- package/dist/response/AuthenticationResult.d.ts +4 -4
- package/dist/response/ResponseHandler.d.ts +7 -7
- package/dist/response/ResponseHandler.mjs +36 -36
- package/dist/telemetry/BrowserPerformanceClient.d.ts +38 -34
- package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/BrowserPerformanceClient.mjs +163 -163
- package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -1
- package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
- package/dist/telemetry/BrowserPerformanceMeasurement.mjs +92 -92
- package/dist/utils/BrowserConstants.d.ts +182 -180
- package/dist/utils/BrowserConstants.d.ts.map +1 -1
- package/dist/utils/BrowserConstants.mjs +214 -212
- package/dist/utils/BrowserConstants.mjs.map +1 -1
- package/dist/utils/BrowserProtocolUtils.d.ts +11 -11
- package/dist/utils/BrowserProtocolUtils.mjs +21 -21
- package/dist/utils/BrowserUtils.d.ts +75 -75
- package/dist/utils/BrowserUtils.mjs +157 -157
- package/lib/msal-browser.cjs +19028 -18759
- package/lib/msal-browser.cjs.map +1 -1
- package/lib/msal-browser.js +19028 -18759
- package/lib/msal-browser.js.map +1 -1
- package/lib/msal-browser.min.js +65 -65
- package/package.json +2 -2
- package/src/cache/BrowserCacheManager.ts +95 -0
- package/src/config/Configuration.ts +9 -1
- package/src/controllers/StandardController.ts +30 -12
- package/src/error/BrowserAuthError.ts +2 -0
- package/src/error/BrowserAuthErrorCodes.ts +1 -0
- package/src/interaction_client/NativeInteractionClient.ts +105 -54
- package/src/interaction_client/PopupClient.ts +202 -117
- package/src/interaction_client/RedirectClient.ts +62 -2
- package/src/interaction_client/SilentIframeClient.ts +41 -3
- package/src/interaction_handler/RedirectHandler.ts +1 -0
- package/src/naa/BridgeProxy.ts +7 -2
- package/src/packageMetadata.ts +1 -1
- package/src/request/RedirectRequest.ts +5 -0
- package/src/telemetry/BrowserPerformanceClient.ts +1 -1
- package/src/utils/BrowserConstants.ts +2 -0
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
import { invoke, invokeAsync } from "@azure/msal-common";
|
|
2
|
-
import { BrowserConfiguration } from "../config/Configuration";
|
|
3
|
-
/**
|
|
4
|
-
* Clears hash from window url.
|
|
5
|
-
*/
|
|
6
|
-
export declare function clearHash(contentWindow: Window): void;
|
|
7
|
-
/**
|
|
8
|
-
* Replaces current hash with hash from provided url
|
|
9
|
-
*/
|
|
10
|
-
export declare function replaceHash(url: string): void;
|
|
11
|
-
/**
|
|
12
|
-
* Returns boolean of whether the current window is in an iframe or not.
|
|
13
|
-
*/
|
|
14
|
-
export declare function isInIframe(): boolean;
|
|
15
|
-
/**
|
|
16
|
-
* Returns boolean of whether or not the current window is a popup opened by msal
|
|
17
|
-
*/
|
|
18
|
-
export declare function isInPopup(): boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Returns current window URL as redirect uri
|
|
21
|
-
*/
|
|
22
|
-
export declare function getCurrentUri(): string;
|
|
23
|
-
/**
|
|
24
|
-
* Gets the homepage url for the current window location.
|
|
25
|
-
*/
|
|
26
|
-
export declare function getHomepage(): string;
|
|
27
|
-
/**
|
|
28
|
-
* Throws error if we have completed an auth and are
|
|
29
|
-
* attempting another auth request inside an iframe.
|
|
30
|
-
*/
|
|
31
|
-
export declare function blockReloadInHiddenIframes(): void;
|
|
32
|
-
/**
|
|
33
|
-
* Block redirect operations in iframes unless explicitly allowed
|
|
34
|
-
* @param interactionType Interaction type for the request
|
|
35
|
-
* @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe
|
|
36
|
-
*/
|
|
37
|
-
export declare function blockRedirectInIframe(allowRedirectInIframe: boolean): void;
|
|
38
|
-
/**
|
|
39
|
-
* Block redirectUri loaded in popup from calling AcquireToken APIs
|
|
40
|
-
*/
|
|
41
|
-
export declare function blockAcquireTokenInPopups(): void;
|
|
42
|
-
/**
|
|
43
|
-
* Throws error if token requests are made in non-browser environment
|
|
44
|
-
* @param isBrowserEnvironment Flag indicating if environment is a browser.
|
|
45
|
-
*/
|
|
46
|
-
export declare function blockNonBrowserEnvironment(): void;
|
|
47
|
-
/**
|
|
48
|
-
* Throws error if initialize hasn't been called
|
|
49
|
-
* @param initialized
|
|
50
|
-
*/
|
|
51
|
-
export declare function blockAPICallsBeforeInitialize(initialized: boolean): void;
|
|
52
|
-
/**
|
|
53
|
-
* Helper to validate app environment before making an auth request
|
|
54
|
-
* @param initialized
|
|
55
|
-
*/
|
|
56
|
-
export declare function preflightCheck(initialized: boolean): void;
|
|
57
|
-
/**
|
|
58
|
-
* Helper to validate app enviornment before making redirect request
|
|
59
|
-
* @param initialized
|
|
60
|
-
* @param config
|
|
61
|
-
*/
|
|
62
|
-
export declare function redirectPreflightCheck(initialized: boolean, config: BrowserConfiguration): void;
|
|
63
|
-
/**
|
|
64
|
-
* Adds a preconnect link element to the header which begins DNS resolution and SSL connection in anticipation of the /token request
|
|
65
|
-
* @param loginDomain Authority domain, including https protocol e.g. https://login.microsoftonline.com
|
|
66
|
-
* @returns
|
|
67
|
-
*/
|
|
68
|
-
export declare function preconnect(authority: string): void;
|
|
69
|
-
/**
|
|
70
|
-
* Wrapper function that creates a UUID v7 from the current timestamp.
|
|
71
|
-
* @returns {string}
|
|
72
|
-
*/
|
|
73
|
-
export declare function createGuid(): string;
|
|
74
|
-
export { invoke };
|
|
75
|
-
export { invokeAsync };
|
|
1
|
+
import { invoke, invokeAsync } from "@azure/msal-common";
|
|
2
|
+
import { BrowserConfiguration } from "../config/Configuration";
|
|
3
|
+
/**
|
|
4
|
+
* Clears hash from window url.
|
|
5
|
+
*/
|
|
6
|
+
export declare function clearHash(contentWindow: Window): void;
|
|
7
|
+
/**
|
|
8
|
+
* Replaces current hash with hash from provided url
|
|
9
|
+
*/
|
|
10
|
+
export declare function replaceHash(url: string): void;
|
|
11
|
+
/**
|
|
12
|
+
* Returns boolean of whether the current window is in an iframe or not.
|
|
13
|
+
*/
|
|
14
|
+
export declare function isInIframe(): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Returns boolean of whether or not the current window is a popup opened by msal
|
|
17
|
+
*/
|
|
18
|
+
export declare function isInPopup(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Returns current window URL as redirect uri
|
|
21
|
+
*/
|
|
22
|
+
export declare function getCurrentUri(): string;
|
|
23
|
+
/**
|
|
24
|
+
* Gets the homepage url for the current window location.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getHomepage(): string;
|
|
27
|
+
/**
|
|
28
|
+
* Throws error if we have completed an auth and are
|
|
29
|
+
* attempting another auth request inside an iframe.
|
|
30
|
+
*/
|
|
31
|
+
export declare function blockReloadInHiddenIframes(): void;
|
|
32
|
+
/**
|
|
33
|
+
* Block redirect operations in iframes unless explicitly allowed
|
|
34
|
+
* @param interactionType Interaction type for the request
|
|
35
|
+
* @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe
|
|
36
|
+
*/
|
|
37
|
+
export declare function blockRedirectInIframe(allowRedirectInIframe: boolean): void;
|
|
38
|
+
/**
|
|
39
|
+
* Block redirectUri loaded in popup from calling AcquireToken APIs
|
|
40
|
+
*/
|
|
41
|
+
export declare function blockAcquireTokenInPopups(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Throws error if token requests are made in non-browser environment
|
|
44
|
+
* @param isBrowserEnvironment Flag indicating if environment is a browser.
|
|
45
|
+
*/
|
|
46
|
+
export declare function blockNonBrowserEnvironment(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Throws error if initialize hasn't been called
|
|
49
|
+
* @param initialized
|
|
50
|
+
*/
|
|
51
|
+
export declare function blockAPICallsBeforeInitialize(initialized: boolean): void;
|
|
52
|
+
/**
|
|
53
|
+
* Helper to validate app environment before making an auth request
|
|
54
|
+
* @param initialized
|
|
55
|
+
*/
|
|
56
|
+
export declare function preflightCheck(initialized: boolean): void;
|
|
57
|
+
/**
|
|
58
|
+
* Helper to validate app enviornment before making redirect request
|
|
59
|
+
* @param initialized
|
|
60
|
+
* @param config
|
|
61
|
+
*/
|
|
62
|
+
export declare function redirectPreflightCheck(initialized: boolean, config: BrowserConfiguration): void;
|
|
63
|
+
/**
|
|
64
|
+
* Adds a preconnect link element to the header which begins DNS resolution and SSL connection in anticipation of the /token request
|
|
65
|
+
* @param loginDomain Authority domain, including https protocol e.g. https://login.microsoftonline.com
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
export declare function preconnect(authority: string): void;
|
|
69
|
+
/**
|
|
70
|
+
* Wrapper function that creates a UUID v7 from the current timestamp.
|
|
71
|
+
* @returns {string}
|
|
72
|
+
*/
|
|
73
|
+
export declare function createGuid(): string;
|
|
74
|
+
export { invoke };
|
|
75
|
+
export { invokeAsync };
|
|
76
76
|
//# sourceMappingURL=BrowserUtils.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.
|
|
1
|
+
/*! @azure/msal-browser v3.21.0 2024-08-13 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { UrlString } from '@azure/msal-common';
|
|
4
4
|
export { invoke, invokeAsync } from '@azure/msal-common';
|
|
@@ -9,162 +9,162 @@ import { createBrowserConfigurationAuthError } from '../error/BrowserConfigurati
|
|
|
9
9
|
import { blockIframeReload, redirectInIframe, blockNestedPopups, nonBrowserEnvironment, uninitializedPublicClientApplication } from '../error/BrowserAuthErrorCodes.mjs';
|
|
10
10
|
import { inMemRedirectUnavailable } from '../error/BrowserConfigurationAuthErrorCodes.mjs';
|
|
11
11
|
|
|
12
|
-
/*
|
|
13
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
14
|
-
* Licensed under the MIT License.
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* Clears hash from window url.
|
|
18
|
-
*/
|
|
19
|
-
function clearHash(contentWindow) {
|
|
20
|
-
// Office.js sets history.replaceState to null
|
|
21
|
-
contentWindow.location.hash = "";
|
|
22
|
-
if (typeof contentWindow.history.replaceState === "function") {
|
|
23
|
-
// Full removes "#" from url
|
|
24
|
-
contentWindow.history.replaceState(null, "", `${contentWindow.location.origin}${contentWindow.location.pathname}${contentWindow.location.search}`);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Replaces current hash with hash from provided url
|
|
29
|
-
*/
|
|
30
|
-
function replaceHash(url) {
|
|
31
|
-
const urlParts = url.split("#");
|
|
32
|
-
urlParts.shift(); // Remove part before the hash
|
|
33
|
-
window.location.hash = urlParts.length > 0 ? urlParts.join("#") : "";
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Returns boolean of whether the current window is in an iframe or not.
|
|
37
|
-
*/
|
|
38
|
-
function isInIframe() {
|
|
39
|
-
return window.parent !== window;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Returns boolean of whether or not the current window is a popup opened by msal
|
|
43
|
-
*/
|
|
44
|
-
function isInPopup() {
|
|
45
|
-
return (typeof window !== "undefined" &&
|
|
46
|
-
!!window.opener &&
|
|
47
|
-
window.opener !== window &&
|
|
48
|
-
typeof window.name === "string" &&
|
|
49
|
-
window.name.indexOf(`${BrowserConstants.POPUP_NAME_PREFIX}.`) === 0);
|
|
50
|
-
}
|
|
51
|
-
// #endregion
|
|
52
|
-
/**
|
|
53
|
-
* Returns current window URL as redirect uri
|
|
54
|
-
*/
|
|
55
|
-
function getCurrentUri() {
|
|
56
|
-
return window.location.href.split("?")[0].split("#")[0];
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Gets the homepage url for the current window location.
|
|
60
|
-
*/
|
|
61
|
-
function getHomepage() {
|
|
62
|
-
const currentUrl = new UrlString(window.location.href);
|
|
63
|
-
const urlComponents = currentUrl.getUrlComponents();
|
|
64
|
-
return `${urlComponents.Protocol}//${urlComponents.HostNameAndPort}/`;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Throws error if we have completed an auth and are
|
|
68
|
-
* attempting another auth request inside an iframe.
|
|
69
|
-
*/
|
|
70
|
-
function blockReloadInHiddenIframes() {
|
|
71
|
-
const isResponseHash = UrlString.hashContainsKnownProperties(window.location.hash);
|
|
72
|
-
// return an error if called from the hidden iframe created by the msal js silent calls
|
|
73
|
-
if (isResponseHash && isInIframe()) {
|
|
74
|
-
throw createBrowserAuthError(blockIframeReload);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Block redirect operations in iframes unless explicitly allowed
|
|
79
|
-
* @param interactionType Interaction type for the request
|
|
80
|
-
* @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe
|
|
81
|
-
*/
|
|
82
|
-
function blockRedirectInIframe(allowRedirectInIframe) {
|
|
83
|
-
if (isInIframe() && !allowRedirectInIframe) {
|
|
84
|
-
// If we are not in top frame, we shouldn't redirect. This is also handled by the service.
|
|
85
|
-
throw createBrowserAuthError(redirectInIframe);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Block redirectUri loaded in popup from calling AcquireToken APIs
|
|
90
|
-
*/
|
|
91
|
-
function blockAcquireTokenInPopups() {
|
|
92
|
-
// Popups opened by msal popup APIs are given a name that starts with "msal."
|
|
93
|
-
if (isInPopup()) {
|
|
94
|
-
throw createBrowserAuthError(blockNestedPopups);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Throws error if token requests are made in non-browser environment
|
|
99
|
-
* @param isBrowserEnvironment Flag indicating if environment is a browser.
|
|
100
|
-
*/
|
|
101
|
-
function blockNonBrowserEnvironment() {
|
|
102
|
-
if (typeof window === "undefined") {
|
|
103
|
-
throw createBrowserAuthError(nonBrowserEnvironment);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Throws error if initialize hasn't been called
|
|
108
|
-
* @param initialized
|
|
109
|
-
*/
|
|
110
|
-
function blockAPICallsBeforeInitialize(initialized) {
|
|
111
|
-
if (!initialized) {
|
|
112
|
-
throw createBrowserAuthError(uninitializedPublicClientApplication);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Helper to validate app environment before making an auth request
|
|
117
|
-
* @param initialized
|
|
118
|
-
*/
|
|
119
|
-
function preflightCheck(initialized) {
|
|
120
|
-
// Block request if not in browser environment
|
|
121
|
-
blockNonBrowserEnvironment();
|
|
122
|
-
// Block auth requests inside a hidden iframe
|
|
123
|
-
blockReloadInHiddenIframes();
|
|
124
|
-
// Block redirectUri opened in a popup from calling MSAL APIs
|
|
125
|
-
blockAcquireTokenInPopups();
|
|
126
|
-
// Block token acquisition before initialize has been called
|
|
127
|
-
blockAPICallsBeforeInitialize(initialized);
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Helper to validate app enviornment before making redirect request
|
|
131
|
-
* @param initialized
|
|
132
|
-
* @param config
|
|
133
|
-
*/
|
|
134
|
-
function redirectPreflightCheck(initialized, config) {
|
|
135
|
-
preflightCheck(initialized);
|
|
136
|
-
blockRedirectInIframe(config.system.allowRedirectInIframe);
|
|
137
|
-
// Block redirects if memory storage is enabled but storeAuthStateInCookie is not
|
|
138
|
-
if (config.cache.cacheLocation === BrowserCacheLocation.MemoryStorage &&
|
|
139
|
-
!config.cache.storeAuthStateInCookie) {
|
|
140
|
-
throw createBrowserConfigurationAuthError(inMemRedirectUnavailable);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Adds a preconnect link element to the header which begins DNS resolution and SSL connection in anticipation of the /token request
|
|
145
|
-
* @param loginDomain Authority domain, including https protocol e.g. https://login.microsoftonline.com
|
|
146
|
-
* @returns
|
|
147
|
-
*/
|
|
148
|
-
function preconnect(authority) {
|
|
149
|
-
const link = document.createElement("link");
|
|
150
|
-
link.rel = "preconnect";
|
|
151
|
-
link.href = new URL(authority).origin;
|
|
152
|
-
link.crossOrigin = "anonymous";
|
|
153
|
-
document.head.appendChild(link);
|
|
154
|
-
// The browser will close connection if not used within a few seconds, remove element from the header after 10s
|
|
155
|
-
window.setTimeout(() => {
|
|
156
|
-
try {
|
|
157
|
-
document.head.removeChild(link);
|
|
158
|
-
}
|
|
159
|
-
catch { }
|
|
160
|
-
}, 10000); // 10s Timeout
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Wrapper function that creates a UUID v7 from the current timestamp.
|
|
164
|
-
* @returns {string}
|
|
165
|
-
*/
|
|
166
|
-
function createGuid() {
|
|
167
|
-
return createNewGuid();
|
|
12
|
+
/*
|
|
13
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
14
|
+
* Licensed under the MIT License.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Clears hash from window url.
|
|
18
|
+
*/
|
|
19
|
+
function clearHash(contentWindow) {
|
|
20
|
+
// Office.js sets history.replaceState to null
|
|
21
|
+
contentWindow.location.hash = "";
|
|
22
|
+
if (typeof contentWindow.history.replaceState === "function") {
|
|
23
|
+
// Full removes "#" from url
|
|
24
|
+
contentWindow.history.replaceState(null, "", `${contentWindow.location.origin}${contentWindow.location.pathname}${contentWindow.location.search}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Replaces current hash with hash from provided url
|
|
29
|
+
*/
|
|
30
|
+
function replaceHash(url) {
|
|
31
|
+
const urlParts = url.split("#");
|
|
32
|
+
urlParts.shift(); // Remove part before the hash
|
|
33
|
+
window.location.hash = urlParts.length > 0 ? urlParts.join("#") : "";
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Returns boolean of whether the current window is in an iframe or not.
|
|
37
|
+
*/
|
|
38
|
+
function isInIframe() {
|
|
39
|
+
return window.parent !== window;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Returns boolean of whether or not the current window is a popup opened by msal
|
|
43
|
+
*/
|
|
44
|
+
function isInPopup() {
|
|
45
|
+
return (typeof window !== "undefined" &&
|
|
46
|
+
!!window.opener &&
|
|
47
|
+
window.opener !== window &&
|
|
48
|
+
typeof window.name === "string" &&
|
|
49
|
+
window.name.indexOf(`${BrowserConstants.POPUP_NAME_PREFIX}.`) === 0);
|
|
50
|
+
}
|
|
51
|
+
// #endregion
|
|
52
|
+
/**
|
|
53
|
+
* Returns current window URL as redirect uri
|
|
54
|
+
*/
|
|
55
|
+
function getCurrentUri() {
|
|
56
|
+
return window.location.href.split("?")[0].split("#")[0];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Gets the homepage url for the current window location.
|
|
60
|
+
*/
|
|
61
|
+
function getHomepage() {
|
|
62
|
+
const currentUrl = new UrlString(window.location.href);
|
|
63
|
+
const urlComponents = currentUrl.getUrlComponents();
|
|
64
|
+
return `${urlComponents.Protocol}//${urlComponents.HostNameAndPort}/`;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Throws error if we have completed an auth and are
|
|
68
|
+
* attempting another auth request inside an iframe.
|
|
69
|
+
*/
|
|
70
|
+
function blockReloadInHiddenIframes() {
|
|
71
|
+
const isResponseHash = UrlString.hashContainsKnownProperties(window.location.hash);
|
|
72
|
+
// return an error if called from the hidden iframe created by the msal js silent calls
|
|
73
|
+
if (isResponseHash && isInIframe()) {
|
|
74
|
+
throw createBrowserAuthError(blockIframeReload);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Block redirect operations in iframes unless explicitly allowed
|
|
79
|
+
* @param interactionType Interaction type for the request
|
|
80
|
+
* @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe
|
|
81
|
+
*/
|
|
82
|
+
function blockRedirectInIframe(allowRedirectInIframe) {
|
|
83
|
+
if (isInIframe() && !allowRedirectInIframe) {
|
|
84
|
+
// If we are not in top frame, we shouldn't redirect. This is also handled by the service.
|
|
85
|
+
throw createBrowserAuthError(redirectInIframe);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Block redirectUri loaded in popup from calling AcquireToken APIs
|
|
90
|
+
*/
|
|
91
|
+
function blockAcquireTokenInPopups() {
|
|
92
|
+
// Popups opened by msal popup APIs are given a name that starts with "msal."
|
|
93
|
+
if (isInPopup()) {
|
|
94
|
+
throw createBrowserAuthError(blockNestedPopups);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Throws error if token requests are made in non-browser environment
|
|
99
|
+
* @param isBrowserEnvironment Flag indicating if environment is a browser.
|
|
100
|
+
*/
|
|
101
|
+
function blockNonBrowserEnvironment() {
|
|
102
|
+
if (typeof window === "undefined") {
|
|
103
|
+
throw createBrowserAuthError(nonBrowserEnvironment);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Throws error if initialize hasn't been called
|
|
108
|
+
* @param initialized
|
|
109
|
+
*/
|
|
110
|
+
function blockAPICallsBeforeInitialize(initialized) {
|
|
111
|
+
if (!initialized) {
|
|
112
|
+
throw createBrowserAuthError(uninitializedPublicClientApplication);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Helper to validate app environment before making an auth request
|
|
117
|
+
* @param initialized
|
|
118
|
+
*/
|
|
119
|
+
function preflightCheck(initialized) {
|
|
120
|
+
// Block request if not in browser environment
|
|
121
|
+
blockNonBrowserEnvironment();
|
|
122
|
+
// Block auth requests inside a hidden iframe
|
|
123
|
+
blockReloadInHiddenIframes();
|
|
124
|
+
// Block redirectUri opened in a popup from calling MSAL APIs
|
|
125
|
+
blockAcquireTokenInPopups();
|
|
126
|
+
// Block token acquisition before initialize has been called
|
|
127
|
+
blockAPICallsBeforeInitialize(initialized);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Helper to validate app enviornment before making redirect request
|
|
131
|
+
* @param initialized
|
|
132
|
+
* @param config
|
|
133
|
+
*/
|
|
134
|
+
function redirectPreflightCheck(initialized, config) {
|
|
135
|
+
preflightCheck(initialized);
|
|
136
|
+
blockRedirectInIframe(config.system.allowRedirectInIframe);
|
|
137
|
+
// Block redirects if memory storage is enabled but storeAuthStateInCookie is not
|
|
138
|
+
if (config.cache.cacheLocation === BrowserCacheLocation.MemoryStorage &&
|
|
139
|
+
!config.cache.storeAuthStateInCookie) {
|
|
140
|
+
throw createBrowserConfigurationAuthError(inMemRedirectUnavailable);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Adds a preconnect link element to the header which begins DNS resolution and SSL connection in anticipation of the /token request
|
|
145
|
+
* @param loginDomain Authority domain, including https protocol e.g. https://login.microsoftonline.com
|
|
146
|
+
* @returns
|
|
147
|
+
*/
|
|
148
|
+
function preconnect(authority) {
|
|
149
|
+
const link = document.createElement("link");
|
|
150
|
+
link.rel = "preconnect";
|
|
151
|
+
link.href = new URL(authority).origin;
|
|
152
|
+
link.crossOrigin = "anonymous";
|
|
153
|
+
document.head.appendChild(link);
|
|
154
|
+
// The browser will close connection if not used within a few seconds, remove element from the header after 10s
|
|
155
|
+
window.setTimeout(() => {
|
|
156
|
+
try {
|
|
157
|
+
document.head.removeChild(link);
|
|
158
|
+
}
|
|
159
|
+
catch { }
|
|
160
|
+
}, 10000); // 10s Timeout
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Wrapper function that creates a UUID v7 from the current timestamp.
|
|
164
|
+
* @returns {string}
|
|
165
|
+
*/
|
|
166
|
+
function createGuid() {
|
|
167
|
+
return createNewGuid();
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
export { blockAPICallsBeforeInitialize, blockAcquireTokenInPopups, blockNonBrowserEnvironment, blockRedirectInIframe, blockReloadInHiddenIframes, clearHash, createGuid, getCurrentUri, getHomepage, isInIframe, isInPopup, preconnect, preflightCheck, redirectPreflightCheck, replaceHash };
|