@azure/msal-browser
Advanced tools
Comparing version 2.24.0 to 2.25.0
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ /*! ***************************************************************************** |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -98,3 +98,3 @@ import { __awaiter, __generator, __assign } from '../_virtual/_tslib.js'; | ||
if (this.initialized) { | ||
this.logger.warning("initialize has already been called. This function only needs to be run once."); | ||
this.logger.info("initialize has already been called, exiting early."); | ||
return [2 /*return*/]; | ||
@@ -101,0 +101,0 @@ } |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __awaiter, __generator } from '../../_virtual/_tslib.js'; |
@@ -18,4 +18,5 @@ import { NativeExtensionMethod } from "../../utils/BrowserConstants"; | ||
state?: string; | ||
req_cnf?: string; | ||
token_type?: string; | ||
reqCnf?: string; | ||
keyId?: string; | ||
tokenType?: string; | ||
shrClaims?: string; | ||
@@ -26,3 +27,2 @@ shrNonce?: string; | ||
extendedExpiryToken?: boolean; | ||
instance_aware?: boolean; | ||
extraParameters?: StringDict; | ||
@@ -29,0 +29,0 @@ }; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __awaiter, __generator } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __extends, __spread, __awaiter, __generator } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __awaiter, __generator } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ /* |
@@ -8,2 +8,3 @@ import { ICrypto, Logger, ExternalTokenResponse } from "@azure/msal-common"; | ||
clientInfo?: string; | ||
expiresOn?: number; | ||
extendedExpiresOn?: number; | ||
@@ -10,0 +11,0 @@ }; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -110,3 +110,3 @@ import { Authority, IdTokenEntity, AuthToken, AccountEntity, ScopeSet, AccessTokenEntity } from '@azure/msal-common'; | ||
var scopes = new ScopeSet(request.scopes).printScopes(); | ||
var expiresOn = response.expires_in; | ||
var expiresOn = options.expiresOn || (response.expires_in + new Date().getTime() / 1000); | ||
var extendedExpiresOn = options.extendedExpiresOn; | ||
@@ -113,0 +113,0 @@ var accessTokenEntity = AccessTokenEntity.createAccessTokenEntity(homeAccountId, environment, response.access_token, this.config.auth.clientId, tenantId, scopes, expiresOn, extendedExpiresOn, this.cryptoObj); |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __assign } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __awaiter, __generator } from '../_virtual/_tslib.js'; |
@@ -1,5 +0,5 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
import { __awaiter, __generator } from '../_virtual/_tslib.js'; | ||
import { PerformanceEvents } from '@azure/msal-common'; | ||
import { PerformanceEvents, JoseHeader } from '@azure/msal-common'; | ||
import { GuidGenerator } from './GuidGenerator.js'; | ||
@@ -11,3 +11,2 @@ import { Base64Encode } from '../encode/Base64Encode.js'; | ||
import { BrowserStringUtils } from '../utils/BrowserStringUtils.js'; | ||
import { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js'; | ||
import { BrowserAuthError } from '../error/BrowserAuthError.js'; | ||
@@ -191,3 +190,3 @@ import { AsyncMemoryStorage } from '../cache/AsyncMemoryStorage.js'; | ||
return __awaiter(this, void 0, void 0, function () { | ||
var signJwtMeasurement, cachedKeyPair, publicKeyJwk, publicKeyJwkString, header, encodedHeader, encodedPayload, tokenString, tokenBuffer, signatureBuffer, encodedSignature, signedJwt; | ||
var signJwtMeasurement, cachedKeyPair, publicKeyJwk, publicKeyJwkString, encodedKeyIdThumbprint, shrHeader, encodedShrHeader, encodedPayload, tokenString, tokenBuffer, signatureBuffer, encodedSignature, signedJwt; | ||
return __generator(this, function (_b) { | ||
@@ -207,7 +206,5 @@ switch (_b.label) { | ||
publicKeyJwkString = BrowserCrypto.getJwkString(publicKeyJwk); | ||
header = { | ||
alg: publicKeyJwk.alg, | ||
type: KEY_FORMAT_JWK | ||
}; | ||
encodedHeader = this.b64Encode.urlEncode(JSON.stringify(header)); | ||
encodedKeyIdThumbprint = this.b64Encode.urlEncode(JSON.stringify({ kid: kid })); | ||
shrHeader = JoseHeader.getShrHeaderString({ kid: encodedKeyIdThumbprint, alg: publicKeyJwk.alg }); | ||
encodedShrHeader = this.b64Encode.urlEncode(shrHeader); | ||
// Generate payload | ||
@@ -218,3 +215,3 @@ payload.cnf = { | ||
encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload)); | ||
tokenString = encodedHeader + "." + encodedPayload; | ||
tokenString = encodedShrHeader + "." + encodedPayload; | ||
tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString); | ||
@@ -221,0 +218,0 @@ return [4 /*yield*/, this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer)]; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { Constants } from '@azure/msal-common'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __awaiter, __generator } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __awaiter, __generator } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { Constants } from '@azure/msal-common'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { Constants } from '@azure/msal-common'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -32,3 +32,3 @@ import { __extends } from '../_virtual/_tslib.js'; | ||
code: "hash_empty_error", | ||
desc: "Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash." | ||
desc: "Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. For more visit: aka.ms/msaljs/browser-errors." | ||
}, | ||
@@ -41,3 +41,3 @@ hashDoesNotContainStateError: { | ||
code: "hash_does_not_contain_known_properties", | ||
desc: "Hash does not contain known properites. Please verify that your redirectUri is not changing the hash." | ||
desc: "Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. For more visit: aka.ms/msaljs/browser-errors." | ||
}, | ||
@@ -44,0 +44,0 @@ unableToParseStateError: { |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __extends } from '../_virtual/_tslib.js'; |
@@ -14,3 +14,4 @@ import { AuthError } from "@azure/msal-common"; | ||
TRANSIENT_ERROR = "TRANSIENT_ERROR", | ||
PERSISTENT_ERROR = "PERSISTENT_ERROR" | ||
PERSISTENT_ERROR = "PERSISTENT_ERROR", | ||
DISABLED = "DISABLED" | ||
} | ||
@@ -17,0 +18,0 @@ export declare const NativeAuthErrorMessage: { |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -18,2 +18,3 @@ import { __extends } from '../_virtual/_tslib.js'; | ||
NativeStatusCode["PERSISTENT_ERROR"] = "PERSISTENT_ERROR"; | ||
NativeStatusCode["DISABLED"] = "DISABLED"; | ||
})(NativeStatusCode || (NativeStatusCode = {})); | ||
@@ -42,3 +43,3 @@ var NativeAuthErrorMessage = { | ||
NativeAuthError.prototype.isFatal = function () { | ||
if (this.ext && this.ext.status && this.ext.status === NativeStatusCode.PERSISTENT_ERROR) { | ||
if (this.ext && this.ext.status && (this.ext.status === NativeStatusCode.PERSISTENT_ERROR || this.ext.status === NativeStatusCode.DISABLED)) { | ||
return true; | ||
@@ -45,0 +46,0 @@ } |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { AccountEntity, CacheManager } from '@azure/msal-common'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { EventType } from './EventType.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ /* |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import * as internals from './internals.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __awaiter, __generator, __spread, __assign } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __extends } from '../_virtual/_tslib.js'; |
@@ -1,5 +0,5 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
import { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js'; | ||
import { TimeUtils, PerformanceEvents, AuthenticationScheme, PopTokenGenerator, AccountEntity, Constants, AuthorityType, ScopeSet, AuthToken, PromptValue, UrlString, OIDC_DEFAULT_SCOPES } from '@azure/msal-common'; | ||
import { TimeUtils, PerformanceEvents, AuthenticationScheme, PopTokenGenerator, ClientAuthError, AccountEntity, Constants, AuthorityType, ScopeSet, AuthToken, PromptValue, UrlString, OIDC_DEFAULT_SCOPES } from '@azure/msal-common'; | ||
import { BaseInteractionClient } from './BaseInteractionClient.js'; | ||
@@ -199,3 +199,3 @@ import { TemporaryCacheKeys, NativeExtensionMethod, ApiId } from '../utils/BrowserConstants.js'; | ||
responseTokenType = AuthenticationScheme.BEARER; | ||
_a = request.token_type; | ||
_a = request.tokenType; | ||
switch (_a) { | ||
@@ -221,3 +221,10 @@ case AuthenticationScheme.POP: return [3 /*break*/, 2]; | ||
}; | ||
return [4 /*yield*/, popTokenGenerator.signPopToken(response.access_token, shrParameters)]; | ||
/** | ||
* KeyID must be present in the native request from when the PoP key was generated in order for | ||
* PopTokenGenerator to query the full key for signing | ||
*/ | ||
if (!request.keyId) { | ||
throw ClientAuthError.createKeyIdMissingError(); | ||
} | ||
return [4 /*yield*/, popTokenGenerator.signPopToken(response.access_token, request.keyId, shrParameters)]; | ||
case 3: | ||
@@ -280,5 +287,5 @@ responseAccessToken = _b.sent(); | ||
return __awaiter(this, void 0, void 0, function () { | ||
var authority, canonicalAuthority, scopes, scopeSet, instanceAware, validatedRequest, shrParameters, popTokenGenerator, cnf, _a; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
var authority, canonicalAuthority, scopes, scopeSet, validatedRequest, shrParameters, popTokenGenerator, reqCnfData; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
@@ -303,6 +310,5 @@ this.logger.trace("NativeInteractionClient - initializeNativeRequest called"); | ||
} | ||
instanceAware = !!(request.extraQueryParameters && request.extraQueryParameters.instance_aware); | ||
validatedRequest = __assign(__assign({}, request), { accountId: this.accountId, clientId: this.config.auth.clientId, authority: canonicalAuthority.urlString, scopes: scopeSet.printScopes(), redirectUri: this.getRedirectUri(request.redirectUri), correlationId: this.correlationId, instance_aware: instanceAware, token_type: request.authenticationScheme, windowTitleSubstring: document.title, extraParameters: __assign(__assign({}, request.extraQueryParameters), request.tokenQueryParameters), extendedExpiryToken: false // Make this configurable? | ||
validatedRequest = __assign(__assign({}, request), { accountId: this.accountId, clientId: this.config.auth.clientId, authority: canonicalAuthority.urlString, scopes: scopeSet.printScopes(), redirectUri: this.getRedirectUri(request.redirectUri), correlationId: this.correlationId, tokenType: request.authenticationScheme, windowTitleSubstring: document.title, extraParameters: __assign(__assign({}, request.extraQueryParameters), request.tokenQueryParameters), extendedExpiryToken: false // Make this configurable? | ||
}); | ||
if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 3]; | ||
if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2]; | ||
shrParameters = { | ||
@@ -317,11 +323,8 @@ resourceRequestUri: request.resourceRequestUri, | ||
case 1: | ||
cnf = _b.sent(); | ||
reqCnfData = _a.sent(); | ||
// to reduce the URL length, it is recommended to send the hash of the req_cnf instead of the whole string | ||
_a = validatedRequest; | ||
return [4 /*yield*/, popTokenGenerator.generateCnfHash(cnf)]; | ||
validatedRequest.reqCnf = reqCnfData.reqCnfHash; | ||
validatedRequest.keyId = reqCnfData.kid; | ||
_a.label = 2; | ||
case 2: | ||
// to reduce the URL length, it is recommended to send the hash of the req_cnf instead of the whole string | ||
_a.req_cnf = _b.sent(); | ||
_b.label = 3; | ||
case 3: | ||
if (this.apiId === ApiId.ssoSilent || this.apiId === ApiId.acquireTokenSilent_silentFlow) { | ||
@@ -328,0 +331,0 @@ validatedRequest.prompt = PromptValue.NONE; |
@@ -1,7 +0,20 @@ | ||
import { AuthenticationResult, CommonEndSessionRequest } from "@azure/msal-common"; | ||
import { AuthenticationResult, CommonEndSessionRequest, IPerformanceClient, Logger, ICrypto } from "@azure/msal-common"; | ||
import { StandardInteractionClient } from "./StandardInteractionClient"; | ||
import { PopupWindowAttributes } from "../utils/PopupUtils"; | ||
import { EndSessionPopupRequest } from "../request/EndSessionPopupRequest"; | ||
import { PopupRequest } from "../request/PopupRequest"; | ||
import { NativeMessageHandler } from "../broker/nativeBroker/NativeMessageHandler"; | ||
import { INavigationClient } from "../navigation/INavigationClient"; | ||
import { EventHandler } from "../event/EventHandler"; | ||
import { BrowserCacheManager } from "../cache/BrowserCacheManager"; | ||
import { BrowserConfiguration } from "../config/Configuration"; | ||
import { InteractionParams } from "../interaction_handler/InteractionHandler"; | ||
import { PopupWindowAttributes } from "../request/PopupWindowAttributes"; | ||
export declare type PopupParams = InteractionParams & { | ||
popup?: Window | null; | ||
popupName: string; | ||
popupWindowAttributes: PopupWindowAttributes; | ||
}; | ||
export declare class PopupClient extends StandardInteractionClient { | ||
private currentWindow; | ||
constructor(config: BrowserConfiguration, storageImpl: BrowserCacheManager, browserCrypto: ICrypto, logger: Logger, eventHandler: EventHandler, navigationClient: INavigationClient, performanceClient: IPerformanceClient, nativeMessageHandler?: NativeMessageHandler, correlationId?: string); | ||
/** | ||
@@ -37,3 +50,63 @@ * Acquires tokens by opening a popup window to the /authorize endpoint of the authority | ||
protected logoutPopupAsync(validRequest: CommonEndSessionRequest, popupName: string, popupWindowAttributes: PopupWindowAttributes, requestAuthority?: string, popup?: Window | null, mainWindowRedirectUri?: string): Promise<void>; | ||
/** | ||
* Opens a popup window with given request Url. | ||
* @param requestUrl | ||
*/ | ||
initiateAuthRequest(requestUrl: string, params: PopupParams): Window; | ||
/** | ||
* Monitors a window until it loads a url with the same origin. | ||
* @param popupWindow - window that is being monitored | ||
* @param timeout - timeout for processing hash once popup is redirected back to application | ||
*/ | ||
monitorPopupForHash(popupWindow: Window): Promise<string>; | ||
/** | ||
* Waits for user interaction in logout popup window | ||
* @param popupWindow | ||
* @returns | ||
*/ | ||
waitForLogoutPopup(popupWindow: Window): Promise<void>; | ||
/** | ||
* @hidden | ||
* | ||
* Configures popup window for login. | ||
* | ||
* @param urlNavigate | ||
* @param title | ||
* @param popUpWidth | ||
* @param popUpHeight | ||
* @param popupWindowAttributes | ||
* @ignore | ||
* @hidden | ||
*/ | ||
openPopup(urlNavigate: string, popupParams: PopupParams): Window; | ||
/** | ||
* Helper function to set popup window dimensions and position | ||
* @param urlNavigate | ||
* @param popupName | ||
* @param popupWindowAttributes | ||
* @returns | ||
*/ | ||
openSizedPopup(urlNavigate: string, popupName: string, popupWindowAttributes: PopupWindowAttributes): Window | null; | ||
/** | ||
* Event callback to unload main window. | ||
*/ | ||
unloadWindow(e: Event): void; | ||
/** | ||
* Closes popup, removes any state vars created during popup calls. | ||
* @param popupWindow | ||
*/ | ||
cleanPopup(popupWindow?: Window): void; | ||
/** | ||
* Generates the name for the popup based on the client id and request | ||
* @param clientId | ||
* @param request | ||
*/ | ||
generatePopupName(scopes: Array<string>, authority: string): string; | ||
/** | ||
* Generates the name for the popup based on the client id and request for logouts | ||
* @param clientId | ||
* @param request | ||
*/ | ||
generateLogoutPopupName(request: CommonEndSessionRequest): string; | ||
} | ||
//# sourceMappingURL=PopupClient.d.ts.map |
@@ -1,10 +0,8 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
import { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js'; | ||
import { OIDC_DEFAULT_SCOPES, AuthError, UrlString, ThrottlingUtils, ProtocolUtils, PerformanceEvents, Constants } from '@azure/msal-common'; | ||
import { OIDC_DEFAULT_SCOPES, StringUtils, UrlString, Constants, AuthError, ThrottlingUtils, ProtocolUtils, PerformanceEvents } from '@azure/msal-common'; | ||
import { StandardInteractionClient } from './StandardInteractionClient.js'; | ||
import { PopupUtils } from '../utils/PopupUtils.js'; | ||
import { EventType } from '../event/EventType.js'; | ||
import { InteractionType, ApiId } from '../utils/BrowserConstants.js'; | ||
import { PopupHandler } from '../interaction_handler/PopupHandler.js'; | ||
import { BrowserConstants, InteractionType, ApiId } from '../utils/BrowserConstants.js'; | ||
import { BrowserUtils } from '../utils/BrowserUtils.js'; | ||
@@ -14,2 +12,3 @@ import { NativeInteractionClient } from './NativeInteractionClient.js'; | ||
import { BrowserAuthError } from '../error/BrowserAuthError.js'; | ||
import { InteractionHandler } from '../interaction_handler/InteractionHandler.js'; | ||
@@ -22,4 +21,7 @@ /* | ||
__extends(PopupClient, _super); | ||
function PopupClient() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
function PopupClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) { | ||
var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this; | ||
// Properly sets this reference for the unload event. | ||
_this.unloadWindow = _this.unloadWindow.bind(_this); | ||
return _this; | ||
} | ||
@@ -32,3 +34,3 @@ /** | ||
try { | ||
var popupName = PopupUtils.generatePopupName(this.config.auth.clientId, request.scopes || OIDC_DEFAULT_SCOPES, request.authority || this.config.auth.authority, this.correlationId); | ||
var popupName = this.generatePopupName(request.scopes || OIDC_DEFAULT_SCOPES, request.authority || this.config.auth.authority); | ||
var popupWindowAttributes = request.popupWindowAttributes || {}; | ||
@@ -44,3 +46,3 @@ // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously. | ||
this.logger.verbose("asyncPopup set to false, opening popup before acquiring token"); | ||
var popup = PopupUtils.openSizedPopup("about:blank", popupName, popupWindowAttributes, this.logger); | ||
var popup = this.openSizedPopup("about:blank", popupName, popupWindowAttributes); | ||
return this.acquireTokenPopupAsync(request, popupName, popupWindowAttributes, popup); | ||
@@ -61,3 +63,3 @@ } | ||
var validLogoutRequest = this.initializeLogoutRequest(logoutRequest); | ||
var popupName = PopupUtils.generateLogoutPopupName(this.config.auth.clientId, validLogoutRequest); | ||
var popupName = this.generateLogoutPopupName(validLogoutRequest); | ||
var authority = logoutRequest && logoutRequest.authority; | ||
@@ -75,3 +77,3 @@ var mainWindowRedirectUri = logoutRequest && logoutRequest.mainWindowRedirectUri; | ||
this.logger.verbose("asyncPopup set to false, opening popup"); | ||
var popup = PopupUtils.openSizedPopup("about:blank", popupName, popupWindowAttributes, this.logger); | ||
var popup = this.openSizedPopup("about:blank", popupName, popupWindowAttributes); | ||
return this.logoutPopupAsync(validLogoutRequest, popupName, popupWindowAttributes, authority, popup, mainWindowRedirectUri); | ||
@@ -125,3 +127,3 @@ } | ||
navigateUrl = _a.sent(); | ||
interactionHandler = new PopupHandler(authClient, this.browserStorage, authCodeRequest, this.logger); | ||
interactionHandler = new InteractionHandler(authClient, this.browserStorage, authCodeRequest, this.logger); | ||
popupParameters = { | ||
@@ -132,5 +134,5 @@ popup: popup, | ||
}; | ||
popupWindow = interactionHandler.initiateAuthRequest(navigateUrl, popupParameters); | ||
popupWindow = this.initiateAuthRequest(navigateUrl, popupParameters); | ||
this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null); | ||
return [4 /*yield*/, interactionHandler.monitorPopupForHash(popupWindow)]; | ||
return [4 /*yield*/, this.monitorPopupForHash(popupWindow)]; | ||
case 6: | ||
@@ -193,3 +195,3 @@ hash = _a.sent(); | ||
return __awaiter(this, void 0, void 0, function () { | ||
var serverTelemetryManager, authClient, logoutUri, popupUtils, popupWindow, e_2, navigationOptions, absoluteUrl, e_3; | ||
var serverTelemetryManager, authClient, logoutUri, popupWindow, navigationOptions, absoluteUrl, e_2; | ||
return __generator(this, function (_a) { | ||
@@ -203,3 +205,3 @@ switch (_a.label) { | ||
case 1: | ||
_a.trys.push([1, 8, , 9]); | ||
_a.trys.push([1, 5, , 6]); | ||
// Clear cache on logout | ||
@@ -216,21 +218,7 @@ return [4 /*yield*/, this.clearCacheOnLogout(validRequest.account)]; | ||
this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Popup, validRequest); | ||
popupUtils = new PopupUtils(this.browserStorage, this.logger); | ||
popupWindow = popupUtils.openPopup(logoutUri, { popupName: popupName, popupWindowAttributes: popupWindowAttributes, popup: popup }); | ||
popupWindow = this.openPopup(logoutUri, { popupName: popupName, popupWindowAttributes: popupWindowAttributes, popup: popup }); | ||
this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null); | ||
_a.label = 4; | ||
return [4 /*yield*/, this.waitForLogoutPopup(popupWindow)]; | ||
case 4: | ||
_a.trys.push([4, 6, , 7]); | ||
// Don't care if this throws an error (User Cancelled) | ||
return [4 /*yield*/, popupUtils.monitorPopupForSameOrigin(popupWindow)]; | ||
case 5: | ||
// Don't care if this throws an error (User Cancelled) | ||
_a.sent(); | ||
this.logger.verbose("Popup successfully redirected to postLogoutRedirectUri"); | ||
return [3 /*break*/, 7]; | ||
case 6: | ||
e_2 = _a.sent(); | ||
this.logger.verbose("Error occurred while monitoring popup for same origin. Session on server may remain active. Error: " + e_2); | ||
return [3 /*break*/, 7]; | ||
case 7: | ||
popupUtils.cleanPopup(popupWindow); | ||
if (mainWindowRedirectUri) { | ||
@@ -250,5 +238,5 @@ navigationOptions = { | ||
} | ||
return [3 /*break*/, 9]; | ||
case 8: | ||
e_3 = _a.sent(); | ||
return [3 /*break*/, 6]; | ||
case 5: | ||
e_2 = _a.sent(); | ||
if (popup) { | ||
@@ -258,11 +246,11 @@ // Close the synchronous popup if an error is thrown before the window unload event is registered | ||
} | ||
if (e_3 instanceof AuthError) { | ||
e_3.setCorrelationId(this.correlationId); | ||
if (e_2 instanceof AuthError) { | ||
e_2.setCorrelationId(this.correlationId); | ||
} | ||
this.browserStorage.setInteractionInProgress(false); | ||
this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Popup, null, e_3); | ||
this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Popup, null, e_2); | ||
this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup); | ||
serverTelemetryManager.cacheFailedRequest(e_3); | ||
throw e_3; | ||
case 9: | ||
serverTelemetryManager.cacheFailedRequest(e_2); | ||
throw e_2; | ||
case 6: | ||
this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup); | ||
@@ -274,2 +262,254 @@ return [2 /*return*/]; | ||
}; | ||
/** | ||
* Opens a popup window with given request Url. | ||
* @param requestUrl | ||
*/ | ||
PopupClient.prototype.initiateAuthRequest = function (requestUrl, params) { | ||
// Check that request url is not empty. | ||
if (!StringUtils.isEmpty(requestUrl)) { | ||
this.logger.infoPii("Navigate to: " + requestUrl); | ||
// Open the popup window to requestUrl. | ||
return this.openPopup(requestUrl, params); | ||
} | ||
else { | ||
// Throw error if request URL is empty. | ||
this.logger.error("Navigate url is empty"); | ||
throw BrowserAuthError.createEmptyNavigationUriError(); | ||
} | ||
}; | ||
/** | ||
* Monitors a window until it loads a url with the same origin. | ||
* @param popupWindow - window that is being monitored | ||
* @param timeout - timeout for processing hash once popup is redirected back to application | ||
*/ | ||
PopupClient.prototype.monitorPopupForHash = function (popupWindow) { | ||
var _this = this; | ||
return new Promise(function (resolve, reject) { | ||
/* | ||
* Polling for popups needs to be tick-based, | ||
* since a non-trivial amount of time can be spent on interaction (which should not count against the timeout). | ||
*/ | ||
var maxTicks = _this.config.system.windowHashTimeout / BrowserConstants.POLL_INTERVAL_MS; | ||
var ticks = 0; | ||
_this.logger.verbose("PopupHandler.monitorPopupForHash - polling started"); | ||
var intervalId = setInterval(function () { | ||
// Window is closed | ||
if (popupWindow.closed) { | ||
_this.logger.error("PopupHandler.monitorPopupForHash - window closed"); | ||
_this.cleanPopup(); | ||
clearInterval(intervalId); | ||
reject(BrowserAuthError.createUserCancelledError()); | ||
return; | ||
} | ||
var href = Constants.EMPTY_STRING; | ||
var hash = Constants.EMPTY_STRING; | ||
try { | ||
/* | ||
* Will throw if cross origin, | ||
* which should be caught and ignored | ||
* since we need the interval to keep running while on STS UI. | ||
*/ | ||
href = popupWindow.location.href; | ||
hash = popupWindow.location.hash; | ||
} | ||
catch (e) { } | ||
// Don't process blank pages or cross domain | ||
if (StringUtils.isEmpty(href) || href === "about:blank") { | ||
return; | ||
} | ||
_this.logger.verbose("PopupHandler.monitorPopupForHash - popup window is on same origin as caller"); | ||
/* | ||
* Only run clock when we are on same domain for popups | ||
* as popup operations can take a long time. | ||
*/ | ||
ticks++; | ||
if (hash) { | ||
_this.logger.verbose("PopupHandler.monitorPopupForHash - found hash in url"); | ||
clearInterval(intervalId); | ||
_this.cleanPopup(popupWindow); | ||
if (UrlString.hashContainsKnownProperties(hash)) { | ||
_this.logger.verbose("PopupHandler.monitorPopupForHash - hash contains known properties, returning."); | ||
resolve(hash); | ||
} | ||
else { | ||
_this.logger.error("PopupHandler.monitorPopupForHash - found hash in url but it does not contain known properties. Check that your router is not changing the hash prematurely."); | ||
_this.logger.errorPii("PopupHandler.monitorPopupForHash - hash found: " + hash); | ||
reject(BrowserAuthError.createHashDoesNotContainKnownPropertiesError()); | ||
} | ||
} | ||
else if (ticks > maxTicks) { | ||
_this.logger.error("PopupHandler.monitorPopupForHash - unable to find hash in url, timing out"); | ||
clearInterval(intervalId); | ||
reject(BrowserAuthError.createMonitorPopupTimeoutError()); | ||
} | ||
}, BrowserConstants.POLL_INTERVAL_MS); | ||
}); | ||
}; | ||
/** | ||
* Waits for user interaction in logout popup window | ||
* @param popupWindow | ||
* @returns | ||
*/ | ||
PopupClient.prototype.waitForLogoutPopup = function (popupWindow) { | ||
var _this = this; | ||
return new Promise(function (resolve) { | ||
_this.logger.verbose("PopupHandler.waitForLogoutPopup - polling started"); | ||
var intervalId = setInterval(function () { | ||
// Window is closed | ||
if (popupWindow.closed) { | ||
_this.logger.error("PopupHandler.waitForLogoutPopup - window closed"); | ||
_this.cleanPopup(); | ||
clearInterval(intervalId); | ||
resolve(); | ||
} | ||
var href = Constants.EMPTY_STRING; | ||
try { | ||
/* | ||
* Will throw if cross origin, | ||
* which should be caught and ignored | ||
* since we need the interval to keep running while on STS UI. | ||
*/ | ||
href = popupWindow.location.href; | ||
} | ||
catch (e) { } | ||
// Don't process blank pages or cross domain | ||
if (StringUtils.isEmpty(href) || href === "about:blank") { | ||
return; | ||
} | ||
_this.logger.verbose("PopupHandler.waitForLogoutPopup - popup window is on same origin as caller, closing."); | ||
clearInterval(intervalId); | ||
_this.cleanPopup(popupWindow); | ||
resolve(); | ||
}, BrowserConstants.POLL_INTERVAL_MS); | ||
}); | ||
}; | ||
/** | ||
* @hidden | ||
* | ||
* Configures popup window for login. | ||
* | ||
* @param urlNavigate | ||
* @param title | ||
* @param popUpWidth | ||
* @param popUpHeight | ||
* @param popupWindowAttributes | ||
* @ignore | ||
* @hidden | ||
*/ | ||
PopupClient.prototype.openPopup = function (urlNavigate, popupParams) { | ||
try { | ||
var popupWindow = void 0; | ||
// Popup window passed in, setting url to navigate to | ||
if (popupParams.popup) { | ||
popupWindow = popupParams.popup; | ||
this.logger.verbosePii("Navigating popup window to: " + urlNavigate); | ||
popupWindow.location.assign(urlNavigate); | ||
} | ||
else if (typeof popupParams.popup === "undefined") { | ||
// Popup will be undefined if it was not passed in | ||
this.logger.verbosePii("Opening popup window to: " + urlNavigate); | ||
popupWindow = this.openSizedPopup(urlNavigate, popupParams.popupName, popupParams.popupWindowAttributes); | ||
} | ||
// Popup will be null if popups are blocked | ||
if (!popupWindow) { | ||
throw BrowserAuthError.createEmptyWindowCreatedError(); | ||
} | ||
if (popupWindow.focus) { | ||
popupWindow.focus(); | ||
} | ||
this.currentWindow = popupWindow; | ||
window.addEventListener("beforeunload", this.unloadWindow); | ||
return popupWindow; | ||
} | ||
catch (e) { | ||
this.logger.error("error opening popup " + e.message); | ||
this.browserStorage.setInteractionInProgress(false); | ||
throw BrowserAuthError.createPopupWindowError(e.toString()); | ||
} | ||
}; | ||
/** | ||
* Helper function to set popup window dimensions and position | ||
* @param urlNavigate | ||
* @param popupName | ||
* @param popupWindowAttributes | ||
* @returns | ||
*/ | ||
PopupClient.prototype.openSizedPopup = function (urlNavigate, popupName, popupWindowAttributes) { | ||
var _a, _b, _c, _d; | ||
/** | ||
* adding winLeft and winTop to account for dual monitor | ||
* using screenLeft and screenTop for IE8 and earlier | ||
*/ | ||
var winLeft = window.screenLeft ? window.screenLeft : window.screenX; | ||
var winTop = window.screenTop ? window.screenTop : window.screenY; | ||
/** | ||
* window.innerWidth displays browser window"s height and width excluding toolbars | ||
* using document.documentElement.clientWidth for IE8 and earlier | ||
*/ | ||
var winWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; | ||
var winHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; | ||
var width = (_a = popupWindowAttributes.popupSize) === null || _a === void 0 ? void 0 : _a.width; | ||
var height = (_b = popupWindowAttributes.popupSize) === null || _b === void 0 ? void 0 : _b.height; | ||
var top = (_c = popupWindowAttributes.popupPosition) === null || _c === void 0 ? void 0 : _c.top; | ||
var left = (_d = popupWindowAttributes.popupPosition) === null || _d === void 0 ? void 0 : _d.left; | ||
if (!width || width < 0 || width > winWidth) { | ||
this.logger.verbose("Default popup window width used. Window width not configured or invalid."); | ||
width = BrowserConstants.POPUP_WIDTH; | ||
} | ||
if (!height || height < 0 || height > winHeight) { | ||
this.logger.verbose("Default popup window height used. Window height not configured or invalid."); | ||
height = BrowserConstants.POPUP_HEIGHT; | ||
} | ||
if (!top || top < 0 || top > winHeight) { | ||
this.logger.verbose("Default popup window top position used. Window top not configured or invalid."); | ||
top = Math.max(0, ((winHeight / 2) - (BrowserConstants.POPUP_HEIGHT / 2)) + winTop); | ||
} | ||
if (!left || left < 0 || left > winWidth) { | ||
this.logger.verbose("Default popup window left position used. Window left not configured or invalid."); | ||
left = Math.max(0, ((winWidth / 2) - (BrowserConstants.POPUP_WIDTH / 2)) + winLeft); | ||
} | ||
return window.open(urlNavigate, popupName, "width=" + width + ", height=" + height + ", top=" + top + ", left=" + left + ", scrollbars=yes"); | ||
}; | ||
/** | ||
* Event callback to unload main window. | ||
*/ | ||
PopupClient.prototype.unloadWindow = function (e) { | ||
this.browserStorage.cleanRequestByInteractionType(InteractionType.Popup); | ||
if (this.currentWindow) { | ||
this.currentWindow.close(); | ||
} | ||
// Guarantees browser unload will happen, so no other errors will be thrown. | ||
e.preventDefault(); | ||
}; | ||
/** | ||
* Closes popup, removes any state vars created during popup calls. | ||
* @param popupWindow | ||
*/ | ||
PopupClient.prototype.cleanPopup = function (popupWindow) { | ||
if (popupWindow) { | ||
// Close window. | ||
popupWindow.close(); | ||
} | ||
// Remove window unload function | ||
window.removeEventListener("beforeunload", this.unloadWindow); | ||
// Interaction is completed - remove interaction status. | ||
this.browserStorage.setInteractionInProgress(false); | ||
}; | ||
/** | ||
* Generates the name for the popup based on the client id and request | ||
* @param clientId | ||
* @param request | ||
*/ | ||
PopupClient.prototype.generatePopupName = function (scopes, authority) { | ||
return BrowserConstants.POPUP_NAME_PREFIX + "." + this.config.auth.clientId + "." + scopes.join("-") + "." + authority + "." + this.correlationId; | ||
}; | ||
/** | ||
* Generates the name for the popup based on the client id and request for logouts | ||
* @param clientId | ||
* @param request | ||
*/ | ||
PopupClient.prototype.generateLogoutPopupName = function (request) { | ||
var homeAccountId = request.account && request.account.homeAccountId; | ||
return BrowserConstants.POPUP_NAME_PREFIX + "." + this.config.auth.clientId + "." + homeAccountId + "." + this.correlationId; | ||
}; | ||
return PopupClient; | ||
@@ -276,0 +516,0 @@ }(StandardInteractionClient)); |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js'; |
@@ -7,14 +7,9 @@ import { AuthorizationCodePayload, CommonAuthorizationCodeRequest, AuthenticationResult, AuthorizationCodeClient, Authority, INetworkModule, CcsCredential, Logger } from "@azure/msal-common"; | ||
*/ | ||
export declare abstract class InteractionHandler { | ||
export declare class InteractionHandler { | ||
protected authModule: AuthorizationCodeClient; | ||
protected browserStorage: BrowserCacheManager; | ||
protected authCodeRequest: CommonAuthorizationCodeRequest; | ||
protected browserRequestLogger: Logger; | ||
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger); | ||
protected logger: Logger; | ||
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, logger: Logger); | ||
/** | ||
* Function to enable user interaction. | ||
* @param requestUrl | ||
*/ | ||
abstract initiateAuthRequest(requestUrl: string, params: InteractionParams): Window | Promise<HTMLIFrameElement> | Promise<void>; | ||
/** | ||
* Function to handle response parameters from hash. | ||
@@ -21,0 +16,0 @@ * @param locationHash |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -16,7 +16,7 @@ import { __awaiter, __generator } from '../_virtual/_tslib.js'; | ||
var InteractionHandler = /** @class */ (function () { | ||
function InteractionHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) { | ||
function InteractionHandler(authCodeModule, storageImpl, authCodeRequest, logger) { | ||
this.authModule = authCodeModule; | ||
this.browserStorage = storageImpl; | ||
this.authCodeRequest = authCodeRequest; | ||
this.browserRequestLogger = browserRequestLogger; | ||
this.logger = logger; | ||
} | ||
@@ -31,3 +31,3 @@ /** | ||
return __generator(this, function (_a) { | ||
this.browserRequestLogger.verbose("InteractionHandler.handleCodeResponse called"); | ||
this.logger.verbose("InteractionHandler.handleCodeResponse called"); | ||
// Check that location hash isn't empty. | ||
@@ -73,3 +73,3 @@ if (StringUtils.isEmpty(locationHash)) { | ||
case 0: | ||
this.browserRequestLogger.trace("InteractionHandler.handleCodeResponseFromServer called"); | ||
this.logger.trace("InteractionHandler.handleCodeResponseFromServer called"); | ||
stateKey = this.browserStorage.generateStateKey(state); | ||
@@ -76,0 +76,0 @@ requestState = this.browserStorage.getTemporaryCache(stateKey); |
@@ -13,3 +13,3 @@ import { AuthorizationCodeClient, CommonAuthorizationCodeRequest, ICrypto, AuthenticationResult, Authority, INetworkModule, Logger } from "@azure/msal-common"; | ||
private browserCrypto; | ||
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger, browserCrypto: ICrypto); | ||
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, logger: Logger, browserCrypto: ICrypto); | ||
/** | ||
@@ -16,0 +16,0 @@ * Redirects window to given URL. |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -15,4 +15,4 @@ import { __extends, __awaiter, __generator } from '../_virtual/_tslib.js'; | ||
__extends(RedirectHandler, _super); | ||
function RedirectHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger, browserCrypto) { | ||
var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) || this; | ||
function RedirectHandler(authCodeModule, storageImpl, authCodeRequest, logger, browserCrypto) { | ||
var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, logger) || this; | ||
_this.browserCrypto = browserCrypto; | ||
@@ -31,7 +31,7 @@ return _this; | ||
case 0: | ||
this.browserRequestLogger.verbose("RedirectHandler.initiateAuthRequest called"); | ||
this.logger.verbose("RedirectHandler.initiateAuthRequest called"); | ||
if (!!StringUtils.isEmpty(requestUrl)) return [3 /*break*/, 7]; | ||
// Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true | ||
if (params.redirectStartPage) { | ||
this.browserRequestLogger.verbose("RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page"); | ||
this.logger.verbose("RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page"); | ||
this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true); | ||
@@ -42,3 +42,3 @@ } | ||
this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto); | ||
this.browserRequestLogger.infoPii("RedirectHandler.initiateAuthRequest: Navigate to: " + requestUrl); | ||
this.logger.infoPii("RedirectHandler.initiateAuthRequest: Navigate to: " + requestUrl); | ||
navigationOptions = { | ||
@@ -50,6 +50,6 @@ apiId: ApiId.acquireTokenRedirect, | ||
if (!(typeof params.onRedirectNavigate === "function")) return [3 /*break*/, 4]; | ||
this.browserRequestLogger.verbose("RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback"); | ||
this.logger.verbose("RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback"); | ||
navigate = params.onRedirectNavigate(requestUrl); | ||
if (!(navigate !== false)) return [3 /*break*/, 2]; | ||
this.browserRequestLogger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating"); | ||
this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating"); | ||
return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)]; | ||
@@ -60,3 +60,3 @@ case 1: | ||
case 2: | ||
this.browserRequestLogger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation"); | ||
this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation"); | ||
return [2 /*return*/]; | ||
@@ -66,3 +66,3 @@ case 3: return [3 /*break*/, 6]; | ||
// Navigate window to request URL | ||
this.browserRequestLogger.verbose("RedirectHandler.initiateAuthRequest: Navigating window to navigate url"); | ||
this.logger.verbose("RedirectHandler.initiateAuthRequest: Navigating window to navigate url"); | ||
return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)]; | ||
@@ -75,3 +75,3 @@ case 5: | ||
// Throw error if request URL is empty. | ||
this.browserRequestLogger.info("RedirectHandler.initiateAuthRequest: Navigate url is empty"); | ||
this.logger.info("RedirectHandler.initiateAuthRequest: Navigate url is empty"); | ||
throw BrowserAuthError.createEmptyNavigationUriError(); | ||
@@ -93,3 +93,3 @@ case 8: return [2 /*return*/]; | ||
case 0: | ||
this.browserRequestLogger.verbose("RedirectHandler.handleCodeResponse called"); | ||
this.logger.verbose("RedirectHandler.handleCodeResponse called"); | ||
// Check that location hash isn't empty. | ||
@@ -96,0 +96,0 @@ if (StringUtils.isEmpty(locationHash)) { |
@@ -6,3 +6,3 @@ import { CommonAuthorizationCodeRequest, AuthorizationCodeClient, Logger } from "@azure/msal-common"; | ||
private navigateFrameWait; | ||
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger, navigateFrameWait: number); | ||
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, logger: Logger, navigateFrameWait: number); | ||
/** | ||
@@ -9,0 +9,0 @@ * Creates a hidden iframe to given URL using user-requested scopes as an id. |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -16,4 +16,4 @@ import { __extends, __awaiter, __generator } from '../_virtual/_tslib.js'; | ||
__extends(SilentHandler, _super); | ||
function SilentHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger, navigateFrameWait) { | ||
var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) || this; | ||
function SilentHandler(authCodeModule, storageImpl, authCodeRequest, logger, navigateFrameWait) { | ||
var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, logger) || this; | ||
_this.navigateFrameWait = navigateFrameWait; | ||
@@ -35,3 +35,3 @@ return _this; | ||
// Throw error if request URL is empty. | ||
this.browserRequestLogger.info("Navigate url is empty"); | ||
this.logger.info("Navigate url is empty"); | ||
throw BrowserAuthError.createEmptyNavigationUriError(); | ||
@@ -61,3 +61,3 @@ } | ||
if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) { | ||
_this.browserRequestLogger.warning("system.loadFrameTimeout or system.iframeHashTimeout set to lower (" + timeout + "ms) than the default (" + DEFAULT_IFRAME_TIMEOUT_MS + "ms). This may result in timeouts."); | ||
_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."); | ||
} | ||
@@ -64,0 +64,0 @@ /* |
@@ -17,3 +17,2 @@ /** | ||
export { BrowserConstants, TemporaryCacheKeys } from "./utils/BrowserConstants"; | ||
export { PopupUtils } from "./utils/PopupUtils"; | ||
//# sourceMappingURL=internals.d.ts.map |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -14,3 +14,2 @@ export { BrowserCacheManager } from './cache/BrowserCacheManager.js'; | ||
export { BrowserConstants, TemporaryCacheKeys } from './utils/BrowserConstants.js'; | ||
export { PopupUtils } from './utils/PopupUtils.js'; | ||
@@ -17,0 +16,0 @@ /* |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ /* |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __awaiter, __generator } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __awaiter, __generator } from '../_virtual/_tslib.js'; |
export declare const name = "@azure/msal-browser"; | ||
export declare const version = "2.24.0"; | ||
export declare const version = "2.25.0"; | ||
//# sourceMappingURL=packageMetadata.d.ts.map |
@@ -1,8 +0,8 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
/* eslint-disable header/header */ | ||
var name = "@azure/msal-browser"; | ||
var version = "2.24.0"; | ||
var version = "2.25.0"; | ||
export { name, version }; | ||
//# sourceMappingURL=packageMetadata.js.map |
import { CommonEndSessionRequest } from "@azure/msal-common"; | ||
import { PopupWindowAttributes } from "../utils/PopupUtils"; | ||
import { PopupWindowAttributes } from "./PopupWindowAttributes"; | ||
/** | ||
@@ -4,0 +4,0 @@ * EndSessionPopupRequest |
import { CommonAuthorizationUrlRequest } from "@azure/msal-common"; | ||
import { PopupWindowAttributes } from "../utils/PopupUtils"; | ||
import { PopupWindowAttributes } from "./PopupWindowAttributes"; | ||
/** | ||
@@ -4,0 +4,0 @@ * PopupRequest: Request object passed by user to retrieve a Code from the |
@@ -15,3 +15,3 @@ import { CommonAuthorizationUrlRequest } from "@azure/msal-common"; | ||
* none: will ensure that the user isn't presented with any interactive prompt. if request can't be completed via single-sign on, the endpoint will return an interaction_required error | ||
* consent: will the trigger the OAuth consent dialog after the user signs in, asking the user to grant permissions to the app | ||
* consent: will trigger the OAuth consent dialog after the user signs in, asking the user to grant permissions to the app | ||
* select_account: will interrupt single sign-=on providing account selection experience listing all the accounts in session or any remembered accounts or an option to choose to use a different account | ||
@@ -18,0 +18,0 @@ * create: will direct the user to the account creation experience instead of the log in experience |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { __extends, __assign } from '../_virtual/_tslib.js'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ /* |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { OIDC_DEFAULT_SCOPES } from '@azure/msal-common'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { StringUtils, ProtocolUtils, ClientAuthError, UrlString } from '@azure/msal-common'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { Constants } from '@azure/msal-common'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ import { Constants, UrlString } from '@azure/msal-common'; |
@@ -1,2 +0,2 @@ | ||
/*! @azure/msal-browser v2.24.0 2022-05-02 */ | ||
/*! @azure/msal-browser v2.25.0 2022-06-06 */ | ||
'use strict'; | ||
@@ -3,0 +3,0 @@ /* |
@@ -13,3 +13,3 @@ { | ||
}, | ||
"version": "2.24.0", | ||
"version": "2.25.0", | ||
"description": "Microsoft Authentication Library for js", | ||
@@ -95,4 +95,4 @@ "keywords": [ | ||
"dependencies": { | ||
"@azure/msal-common": "^6.3.0" | ||
"@azure/msal-common": "^6.4.0" | ||
} | ||
} |
@@ -62,3 +62,3 @@ # Microsoft Authentication Library for JavaScript (MSAL.js) 2.0 for Browser-Based Single-Page Applications | ||
```html | ||
<script type="text/javascript" src="https://alcdn.msauth.net/browser/2.24.0/js/msal-browser.min.js"></script> | ||
<script type="text/javascript" src="https://alcdn.msauth.net/browser/2.25.0/js/msal-browser.min.js"></script> | ||
``` | ||
@@ -65,0 +65,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
5541860
44315
242
Updated@azure/msal-common@^6.4.0