Socket
Socket
Sign inDemoInstall

@azure/msal-browser

Package Overview
Dependencies
Maintainers
3
Versions
117
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@azure/msal-browser - npm Package Compare versions

Comparing version 2.14.2 to 2.15.0

dist/event/EventHandler.d.ts

82

CHANGELOG.json

@@ -5,2 +5,84 @@ {

{
"date": "Mon, 28 Jun 2021 23:39:48 GMT",
"tag": "@azure/msal-browser_v2.15.0",
"version": "2.15.0",
"comments": {
"none": [
{
"comment": "Component governance dependency updates #3655",
"author": "joarroyo@microsoft.com",
"commit": "3f74f3bffd88fc0b39a854da090f01aa9c072618",
"package": "@azure/msal-browser"
},
{
"comment": "Remove unused error #3657",
"author": "thomas.norling@microsoft.com",
"commit": "f6f7a7c738706668c869fcc84338d8c212a5ab4f",
"package": "@azure/msal-browser"
},
{
"comment": "Upgrade Jest to v27 #3719",
"author": "thomas.norling@microsoft.com",
"commit": "6c34aa5be3ee9536bd2febd2b7781fcdf0d28786",
"package": "@azure/msal-browser"
},
{
"comment": "fix: update package lock files",
"author": "samuelkamau@microsoft.com",
"commit": "0199e41269b79de70f7d0da0fb12448db534f784",
"package": "@azure/msal-browser"
}
],
"patch": [
{
"comment": "Update monitor_window_timeout error message with link to error docs #3783",
"author": "thomas.norling@microsoft.com",
"commit": "728b63ea69ba0aa57c1a1fa0a0c714dbb168b9a6",
"package": "@azure/msal-browser"
},
{
"comment": "Refactor event APIs into EventHandler class #3770",
"author": "thomas.norling@microsoft.com",
"commit": "f0c574a8c2ffeb3132703e7e9e17d01e1898abaa",
"package": "@azure/msal-browser"
},
{
"comment": "Fix logoutPopup parameter type on IPublicClientApplication #3663",
"author": "thomas.norling@microsoft.com",
"commit": "16200653c5f9d31d890d1d592e8b58ffde7259ed",
"package": "@azure/msal-browser"
}
],
"minor": [
{
"comment": "Add correlationId to log messages #3601",
"author": "joarroyo@microsoft.com",
"commit": "8d58f91c9dd9d65df4a016c7bcdbbd03e9bf573e",
"package": "@azure/msal-browser"
},
{
"comment": "Add CCS parameters to headers or form_data #3636",
"author": "prkanher@microsoft.com",
"commit": "2956380aecde38382a28c7ed15164b8dfd65cfca",
"package": "@azure/msal-browser"
}
]
}
},
{
"date": "Thu, 13 May 2021 18:34:08 GMT",
"tag": "@azure/msal-browser_v2.14.2",
"version": "2.14.2",
"comments": {
"none": [
{
"comment": "Enable no-param-reassign lint rule",
"author": "janutter@microsoft.com",
"commit": "e24f5cff944c05ccaecb180fa68814bc89512095",
"package": "@azure/msal-browser"
}
]
}
},
{
"date": "Wed, 12 May 2021 18:35:03 GMT",

@@ -7,0 +89,0 @@ "tag": "@azure/msal-browser_v2.14.2",

17

changelog.md
# Change Log - @azure/msal-browser
This log was last generated on Wed, 12 May 2021 18:35:03 GMT and should not be manually modified.
This log was last generated on Mon, 28 Jun 2021 23:39:48 GMT and should not be manually modified.
<!-- Start content -->
## 2.15.0
Mon, 28 Jun 2021 23:39:48 GMT
### Minor changes
- Add correlationId to log messages #3601 (joarroyo@microsoft.com)
- Add CCS parameters to headers or form_data #3636 (prkanher@microsoft.com)
### Patches
- Update monitor_window_timeout error message with link to error docs #3783 (thomas.norling@microsoft.com)
- Refactor event APIs into EventHandler class #3770 (thomas.norling@microsoft.com)
- Fix logoutPopup parameter type on IPublicClientApplication #3663 (thomas.norling@microsoft.com)
## 2.14.2

@@ -8,0 +23,0 @@

2

dist/_virtual/_tslib.js

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ /*! *****************************************************************************

@@ -9,7 +9,7 @@ import { Authority, CommonAuthorizationCodeRequest, AuthorizationCodeClient, AccountInfo, ServerTelemetryManager, SilentFlowClient, ClientConfiguration, BaseAuthRequest, INetworkModule, AuthenticationResult, Logger, RefreshTokenClient, CommonSilentFlowRequest, CommonEndSessionRequest, ICrypto } from "@azure/msal-common";

import { SsoSilentRequest } from "../request/SsoSilentRequest";
import { EventError, EventPayload, EventCallbackFunction } from "../event/EventMessage";
import { EventType } from "../event/EventType";
import { EventCallbackFunction } from "../event/EventMessage";
import { EndSessionRequest } from "../request/EndSessionRequest";
import { EndSessionPopupRequest } from "../request/EndSessionPopupRequest";
import { INavigationClient } from "../navigation/INavigationClient";
import { EventHandler } from "../event/EventHandler";
export declare abstract class ClientApplication {

@@ -26,3 +26,3 @@ protected readonly browserCrypto: ICrypto;

private wrapperVer;
private eventCallbacks;
protected eventHandler: EventHandler;
private redirectResponse;

@@ -233,4 +233,5 @@ /**

* @param requestAuthority
* @param requestCorrelationId
*/
getDiscoveredAuthority(requestAuthority?: string): Promise<Authority>;
getDiscoveredAuthority(requestAuthority?: string, requestCorrelationId?: string): Promise<Authority>;
/**

@@ -245,3 +246,3 @@ * Helper to check whether interaction is in progress.

*/
protected createAuthCodeClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string): Promise<AuthorizationCodeClient>;
protected createAuthCodeClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string, correlationId?: string): Promise<AuthorizationCodeClient>;
/**

@@ -252,3 +253,3 @@ * Creates an Silent Flow Client with the given authority, or the default authority.

*/
protected createSilentFlowClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string): Promise<SilentFlowClient>;
protected createSilentFlowClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string, correlationId?: string): Promise<SilentFlowClient>;
/**

@@ -259,3 +260,3 @@ * Creates a Refresh Client with the given authority, or the default authority.

*/
protected createRefreshTokenClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string): Promise<RefreshTokenClient>;
protected createRefreshTokenClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string, correlationId?: string): Promise<RefreshTokenClient>;
/**

@@ -265,4 +266,5 @@ * Creates a Client Configuration object with the given request authority, or the default authority.

* @param requestAuthority
* @param requestCorrelationId
*/
protected getClientConfiguration(serverTelemetryManager: ServerTelemetryManager, requestAuthority?: string): Promise<ClientConfiguration>;
protected getClientConfiguration(serverTelemetryManager: ServerTelemetryManager, requestAuthority?: string, requestCorrelationId?: string): Promise<ClientConfiguration>;
/**

@@ -308,10 +310,2 @@ * Helper to validate app environment before making a request.

/**
* Emits events by calling callback with event message
* @param eventType
* @param interactionType
* @param payload
* @param error
*/
protected emitEvent(eventType: EventType, interactionType?: InteractionType, payload?: EventPayload, error?: EventError): void;
/**
* Adds event callbacks to array

@@ -318,0 +312,0 @@ * @param callback

@@ -9,2 +9,3 @@ import { AuthenticationResult, AccountInfo, Logger } from "@azure/msal-common";

import { INavigationClient } from "../navigation/INavigationClient";
import { EndSessionPopupRequest } from "../request/EndSessionPopupRequest";
export interface IPublicClientApplication {

@@ -25,3 +26,3 @@ acquireTokenPopup(request: PopupRequest): Promise<AuthenticationResult>;

logoutRedirect(logoutRequest?: EndSessionRequest): Promise<void>;
logoutPopup(logoutRequest?: EndSessionRequest): Promise<void>;
logoutPopup(logoutRequest?: EndSessionPopupRequest): Promise<void>;
ssoSilent(request: SsoSilentRequest): Promise<AuthenticationResult>;

@@ -28,0 +29,0 @@ getLogger(): Logger;

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -8,2 +8,3 @@ import { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';

import { BrowserAuthError } from '../error/BrowserAuthError.js';
import { name, version } from '../packageMetadata.js';

@@ -80,3 +81,3 @@ /*

return __awaiter(this, void 0, void 0, function () {
var account, silentRequest, serverTelemetryManager, silentAuthClient, cachedToken, tokenRenewalResult, tokenRenewalError_1;
var account, silentRequest, browserRequestLogger, serverTelemetryManager, silentAuthClient, cachedToken, tokenRenewalResult, tokenRenewalError_1;
return __generator(this, function (_a) {

@@ -86,3 +87,3 @@ switch (_a.label) {

this.preflightBrowserEnvironmentCheck(InteractionType.Silent);
this.logger.verbose("acquireTokenSilent called");
this.logger.verbose("acquireTokenSilent called", request.correlationId);
account = request.account || this.getActiveAccount();

@@ -93,3 +94,4 @@ if (!account) {

silentRequest = __assign(__assign(__assign({}, request), this.initializeBaseRequest(request)), { account: account, forceRefresh: request.forceRefresh || false });
this.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);
browserRequestLogger = this.logger.clone(name, version, silentRequest.correlationId);
this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);
_a.label = 1;

@@ -99,9 +101,10 @@ case 1:

serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow, silentRequest.correlationId);
return [4 /*yield*/, this.createSilentFlowClient(serverTelemetryManager, silentRequest.authority)];
return [4 /*yield*/, this.createSilentFlowClient(serverTelemetryManager, silentRequest.authority, silentRequest.correlationId)];
case 2:
silentAuthClient = _a.sent();
browserRequestLogger.verbose("Silent auth client created");
return [4 /*yield*/, silentAuthClient.acquireCachedToken(silentRequest)];
case 3:
cachedToken = _a.sent();
this.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, cachedToken);
this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, cachedToken);
return [2 /*return*/, cachedToken];

@@ -116,7 +119,7 @@ case 4:

tokenRenewalResult = _a.sent();
this.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, tokenRenewalResult);
this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, tokenRenewalResult);
return [2 /*return*/, tokenRenewalResult];
case 7:
tokenRenewalError_1 = _a.sent();
this.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Silent, null, tokenRenewalError_1);
this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Silent, null, tokenRenewalError_1);
throw tokenRenewalError_1;

@@ -123,0 +126,0 @@ case 8: return [3 /*break*/, 9];

@@ -1,2 +0,2 @@

import { CommonAuthorizationCodeRequest, ICrypto, AccountEntity, IdTokenEntity, AccessTokenEntity, RefreshTokenEntity, AppMetadataEntity, CacheManager, ServerTelemetryEntity, ThrottlingEntity, Logger, AuthorityMetadataEntity } from "@azure/msal-common";
import { CommonAuthorizationCodeRequest, ICrypto, AccountEntity, IdTokenEntity, AccessTokenEntity, RefreshTokenEntity, AppMetadataEntity, CacheManager, ServerTelemetryEntity, ThrottlingEntity, Logger, AuthorityMetadataEntity, AccountInfo } from "@azure/msal-common";
import { CacheOptions } from "../config/Configuration";

@@ -238,3 +238,3 @@ import { InteractionType } from "../utils/BrowserConstants";

*/
updateCacheEntries(state: string, nonce: string, authorityInstance: string): void;
updateCacheEntries(state: string, nonce: string, authorityInstance: string, loginHint: string, account: AccountInfo | null): void;
/**

@@ -241,0 +241,0 @@ * Reset all temporary cache items

@@ -1,5 +0,5 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';
import { __extends, __spread } from '../_virtual/_tslib.js';
import { DEFAULT_CRYPTO_IMPLEMENTATION, AccountEntity, CacheManager, IdTokenEntity, AccessTokenEntity, RefreshTokenEntity, AppMetadataEntity, ServerTelemetryEntity, AuthorityMetadataEntity, ThrottlingEntity, Constants, StringUtils, PersistentCacheKeys, ProtocolUtils } from '@azure/msal-common';
import { DEFAULT_CRYPTO_IMPLEMENTATION, AccountEntity, CacheManager, IdTokenEntity, AccessTokenEntity, RefreshTokenEntity, AppMetadataEntity, ServerTelemetryEntity, AuthorityMetadataEntity, ThrottlingEntity, Constants, StringUtils, PersistentCacheKeys, ProtocolUtils, CcsCredentialType } from '@azure/msal-common';
import { BrowserAuthError } from '../error/BrowserAuthError.js';

@@ -491,2 +491,3 @@ import { BrowserCacheLocation, TemporaryCacheKeys } from '../utils/BrowserConstants.js';

while (cookie.charAt(0) === " ") {
// eslint-disable-next-line no-param-reassign
cookie = cookie.substring(1);

@@ -585,3 +586,3 @@ }

*/
BrowserCacheManager.prototype.updateCacheEntries = function (state, nonce, authorityInstance) {
BrowserCacheManager.prototype.updateCacheEntries = function (state, nonce, authorityInstance, loginHint, account) {
this.logger.trace("BrowserCacheManager.updateCacheEntries called");

@@ -597,2 +598,16 @@ // Cache the request state

this.setTemporaryCache(authorityCacheKey, authorityInstance, false);
if (account) {
var ccsCredential = {
credential: account.homeAccountId,
type: CcsCredentialType.HOME_ACCOUNT_ID
};
this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);
}
else if (!StringUtils.isEmpty(loginHint)) {
var ccsCredential = {
credential: loginHint,
type: CcsCredentialType.UPN
};
this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);
}
};

@@ -624,2 +639,3 @@ /**

this.removeItem(this.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));
this.removeItem(this.generateCacheKey(TemporaryCacheKeys.CCS_CREDENTIAL));
};

@@ -626,0 +642,0 @@ /**

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { __awaiter, __generator } from '../_virtual/_tslib.js';

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ /*

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { __assign } from '../_virtual/_tslib.js';

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { __awaiter, __generator } from '../_virtual/_tslib.js';

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { __awaiter, __generator } from '../_virtual/_tslib.js';

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { MathUtils } from '../utils/MathUtils.js';

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { __awaiter, __generator } from '../_virtual/_tslib.js';

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { BrowserStringUtils } from '../utils/BrowserStringUtils.js';

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { BrowserStringUtils } from '../utils/BrowserStringUtils.js';

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -68,7 +68,7 @@ import { __extends } from '../_virtual/_tslib.js';

code: "monitor_window_timeout",
desc: "Token acquisition in popup failed due to timeout."
desc: "Token acquisition in popup failed due to timeout. For more visit: aka.ms/msaljs/browser-errors."
},
monitorIframeTimeoutError: {
code: "monitor_window_timeout",
desc: "Token acquisition in iframe failed due to timeout."
desc: "Token acquisition in iframe failed due to timeout. For more visit: aka.ms/msaljs/browser-errors."
},

@@ -75,0 +75,0 @@ redirectInIframeError: {

@@ -54,7 +54,2 @@ import { AuthError } from "@azure/msal-common";

/**
* Creates error thrown when callback object is invalid.
* @param callbackObject
*/
static createInvalidCallbackObjectError(callbackObject: object): BrowserConfigurationAuthError;
/**
* Creates error thrown when redirect callbacks are not set before calling loginRedirect() or acquireTokenRedirect().

@@ -61,0 +56,0 @@ */

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -76,9 +76,2 @@ import { __extends } from '../_virtual/_tslib.js';

/**
* Creates error thrown when callback object is invalid.
* @param callbackObject
*/
BrowserConfigurationAuthError.createInvalidCallbackObjectError = function (callbackObject) {
return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.invalidCallbackObject.code, BrowserConfigurationAuthErrorMessage.invalidCallbackObject.desc + " Given value for callback function: " + callbackObject);
};
/**
* Creates error thrown when redirect callbacks are not set before calling loginRedirect() or acquireTokenRedirect().

@@ -85,0 +78,0 @@ */

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { EventType } from './EventType.js';

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ /*

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ export { PublicClientApplication } from './app/PublicClientApplication.js';

@@ -1,2 +0,2 @@

import { CommonAuthorizationCodeRequest, AuthenticationResult, AuthorizationCodeClient, Authority, INetworkModule } from "@azure/msal-common";
import { CommonAuthorizationCodeRequest, AuthenticationResult, AuthorizationCodeClient, Authority, INetworkModule, CcsCredential, Logger } from "@azure/msal-common";
import { BrowserCacheManager } from "../cache/BrowserCacheManager";

@@ -11,3 +11,4 @@ export declare type InteractionParams = {};

protected authCodeRequest: CommonAuthorizationCodeRequest;
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest);
protected browserRequestLogger: Logger;
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger);
/**

@@ -23,4 +24,14 @@ * Function to enable user interaction.

handleCodeResponse(locationHash: string, state: string, authority: Authority, networkModule: INetworkModule): Promise<AuthenticationResult>;
/**
* Updates authority based on cloudInstanceHostname
* @param cloudInstanceHostname
* @param authority
* @param networkModule
*/
protected updateTokenEndpointAuthority(cloudInstanceHostname: string, authority: Authority, networkModule: INetworkModule): Promise<void>;
/**
* Looks up ccs creds in the cache
*/
protected checkCcsCredentials(): CcsCredential | null;
}
//# sourceMappingURL=InteractionHandler.d.ts.map

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -6,2 +6,3 @@ import { __awaiter, __generator } from '../_virtual/_tslib.js';

import { BrowserAuthError } from '../error/BrowserAuthError.js';
import { TemporaryCacheKeys } from '../utils/BrowserConstants.js';

@@ -16,6 +17,7 @@ /*

var InteractionHandler = /** @class */ (function () {
function InteractionHandler(authCodeModule, storageImpl, authCodeRequest) {
function InteractionHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) {
this.authModule = authCodeModule;
this.browserStorage = storageImpl;
this.authCodeRequest = authCodeRequest;
this.browserRequestLogger = browserRequestLogger;
}

@@ -28,6 +30,7 @@ /**

return __awaiter(this, void 0, void 0, function () {
var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, tokenResponse;
var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this.browserRequestLogger.verbose("InteractionHandler.handleCodeResponse called");
// Check that location hash isn't empty.

@@ -55,2 +58,12 @@ if (StringUtils.isEmpty(locationHash)) {

authCodeResponse.state = requestState;
// Add CCS parameters if available
if (authCodeResponse.client_info) {
this.authCodeRequest.clientInfo = authCodeResponse.client_info;
}
else {
cachedCcsCred = this.checkCcsCredentials();
if (cachedCcsCred) {
this.authCodeRequest.ccsCredential = cachedCcsCred;
}
}
return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];

@@ -65,2 +78,8 @@ case 3:

};
/**
* Updates authority based on cloudInstanceHostname
* @param cloudInstanceHostname
* @param authority
* @param networkModule
*/
InteractionHandler.prototype.updateTokenEndpointAuthority = function (cloudInstanceHostname, authority, networkModule) {

@@ -82,2 +101,19 @@ return __awaiter(this, void 0, void 0, function () {

};
/**
* Looks up ccs creds in the cache
*/
InteractionHandler.prototype.checkCcsCredentials = function () {
// Look up ccs credential in temp cache
var cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);
if (cachedCcsCred) {
try {
return JSON.parse(cachedCcsCred);
}
catch (e) {
this.authModule.logger.error("Cache credential could not be parsed");
this.authModule.logger.errorPii("Cache credential could not be parsed: " + cachedCcsCred);
}
}
return null;
};
return InteractionHandler;

@@ -84,0 +120,0 @@ }());

@@ -1,2 +0,2 @@

import { CommonAuthorizationCodeRequest, AuthorizationCodeClient } from "@azure/msal-common";
import { CommonAuthorizationCodeRequest, AuthorizationCodeClient, Logger } from "@azure/msal-common";
import { InteractionHandler, InteractionParams } from "./InteractionHandler";

@@ -14,3 +14,3 @@ import { BrowserCacheManager } from "../cache/BrowserCacheManager";

private popupUtils;
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest);
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger);
/**

@@ -17,0 +17,0 @@ * Opens a popup window with given request Url.

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -21,6 +21,6 @@ import { __extends } from '../_virtual/_tslib.js';

__extends(PopupHandler, _super);
function PopupHandler(authCodeModule, storageImpl, authCodeRequest) {
var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest) || this;
function PopupHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) {
var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) || this;
// Properly sets this reference for the unload event.
_this.popupUtils = new PopupUtils(storageImpl, authCodeModule.logger);
_this.popupUtils = new PopupUtils(storageImpl, browserRequestLogger);
return _this;

@@ -37,3 +37,3 @@ }

this.browserStorage.setTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, BrowserConstants.INTERACTION_IN_PROGRESS_VALUE, true);
this.authModule.logger.infoPii("Navigate to:" + requestUrl);
this.browserRequestLogger.infoPii("Navigate to: " + requestUrl);
// Open the popup window to requestUrl.

@@ -44,3 +44,3 @@ return this.popupUtils.openPopup(requestUrl, params.popupName, params.popup);

// Throw error if request URL is empty.
this.authModule.logger.error("Navigate url is empty");
this.browserRequestLogger.error("Navigate url is empty");
throw BrowserAuthError.createEmptyNavigationUriError();

@@ -47,0 +47,0 @@ }

@@ -1,2 +0,2 @@

import { AuthorizationCodeClient, CommonAuthorizationCodeRequest, ICrypto, AuthenticationResult, Authority, INetworkModule } from "@azure/msal-common";
import { AuthorizationCodeClient, CommonAuthorizationCodeRequest, ICrypto, AuthenticationResult, Authority, INetworkModule, Logger } from "@azure/msal-common";
import { BrowserCacheManager } from "../cache/BrowserCacheManager";

@@ -13,3 +13,3 @@ import { InteractionHandler, InteractionParams } from "./InteractionHandler";

private browserCrypto;
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserCrypto: ICrypto);
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger, browserCrypto: ICrypto);
/**

@@ -16,0 +16,0 @@ * Redirects window to given URL.

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -15,4 +15,4 @@ import { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';

__extends(RedirectHandler, _super);
function RedirectHandler(authCodeModule, storageImpl, authCodeRequest, browserCrypto) {
var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest) || this;
function RedirectHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger, browserCrypto) {
var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) || this;
_this.browserCrypto = browserCrypto;

@@ -31,7 +31,7 @@ return _this;

case 0:
this.authModule.logger.verbose("RedirectHandler.initiateAuthRequest called");
this.browserRequestLogger.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.authModule.logger.verbose("RedirectHandler.initiateAuthRequest: redirectStartPage set to true, caching start page");
this.browserRequestLogger.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.authModule.logger.infoPii("RedirectHandler.initiateAuthRequest: Navigate to:" + requestUrl);
this.browserRequestLogger.infoPii("RedirectHandler.initiateAuthRequest: Navigate to: " + requestUrl);
navigationOptions = {

@@ -50,6 +50,6 @@ apiId: ApiId.acquireTokenRedirect,

if (!(typeof params.onRedirectNavigate === "function")) return [3 /*break*/, 4];
this.authModule.logger.verbose("RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback");
this.browserRequestLogger.verbose("RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback");
navigate = params.onRedirectNavigate(requestUrl);
if (!(navigate !== false)) return [3 /*break*/, 2];
this.authModule.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating");
this.browserRequestLogger.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.authModule.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation");
this.browserRequestLogger.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.authModule.logger.verbose("RedirectHandler.initiateAuthRequest: Navigating window to navigate url");
this.browserRequestLogger.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.authModule.logger.info("RedirectHandler.initiateAuthRequest: Navigate url is empty");
this.browserRequestLogger.info("RedirectHandler.initiateAuthRequest: Navigate url is empty");
throw BrowserAuthError.createEmptyNavigationUriError();

@@ -89,7 +89,7 @@ case 8: return [2 /*return*/];

return __awaiter(this, void 0, void 0, function () {
var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, tokenResponse;
var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this.authModule.logger.verbose("RedirectHandler.handleCodeResponse called");
this.browserRequestLogger.verbose("RedirectHandler.handleCodeResponse called");
// Check that location hash isn't empty.

@@ -119,2 +119,12 @@ if (StringUtils.isEmpty(locationHash)) {

authCodeResponse.state = requestState;
// Add CCS parameters if available
if (authCodeResponse.client_info) {
this.authCodeRequest.clientInfo = authCodeResponse.client_info;
}
else {
cachedCcsCred = this.checkCcsCredentials();
if (cachedCcsCred) {
this.authCodeRequest.ccsCredential = cachedCcsCred;
}
}
// Remove throttle if it exists

@@ -121,0 +131,0 @@ if (clientId) {

@@ -1,2 +0,2 @@

import { CommonAuthorizationCodeRequest, AuthorizationCodeClient } from "@azure/msal-common";
import { CommonAuthorizationCodeRequest, AuthorizationCodeClient, Logger } from "@azure/msal-common";
import { InteractionHandler } from "./InteractionHandler";

@@ -6,3 +6,3 @@ import { BrowserCacheManager } from "../cache/BrowserCacheManager";

private navigateFrameWait;
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, navigateFrameWait: number);
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: 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.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -16,4 +16,4 @@ import { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';

__extends(SilentHandler, _super);
function SilentHandler(authCodeModule, storageImpl, authCodeRequest, navigateFrameWait) {
var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest) || this;
function SilentHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger, navigateFrameWait) {
var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) || this;
_this.navigateFrameWait = navigateFrameWait;

@@ -35,3 +35,3 @@ return _this;

// Throw error if request URL is empty.
this.authModule.logger.info("Navigate url is empty");
this.browserRequestLogger.info("Navigate url is empty");
throw BrowserAuthError.createEmptyNavigationUriError();

@@ -61,3 +61,3 @@ }

if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {
_this.authModule.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.");
_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.");
}

@@ -64,0 +64,0 @@ /*

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ /*

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { __awaiter, __generator } from '../_virtual/_tslib.js';

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'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.14.2";
export declare const version = "2.15.0";
//# sourceMappingURL=packageMetadata.d.ts.map

@@ -1,8 +0,8 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';
/* eslint-disable header/header */
var name = "@azure/msal-browser";
var version = "2.14.2";
var version = "2.15.0";
export { name, version };
//# sourceMappingURL=packageMetadata.js.map

@@ -62,3 +62,4 @@ import { PopupRequest } from "../request/PopupRequest";

SCOPES = "scopes",
INTERACTION_STATUS_KEY = "interaction.status"
INTERACTION_STATUS_KEY = "interaction.status",
CCS_CREDENTIAL = "ccs.credential"
}

@@ -65,0 +66,0 @@ /**

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -72,2 +72,3 @@ import { OIDC_DEFAULT_SCOPES } from '@azure/msal-common';

TemporaryCacheKeys["INTERACTION_STATUS_KEY"] = "interaction.status";
TemporaryCacheKeys["CCS_CREDENTIAL"] = "ccs.credential";
})(TemporaryCacheKeys || (TemporaryCacheKeys = {}));

@@ -74,0 +75,0 @@ /**

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { StringUtils, ProtocolUtils, ClientAuthError, UrlString } from '@azure/msal-common';

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ /*

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { Constants, UrlString } from '@azure/msal-common';

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ /*

@@ -1,2 +0,2 @@

/*! @azure/msal-browser v2.14.2 2021-05-12 */
/*! @azure/msal-browser v2.15.0 2021-06-29 */
'use strict';

@@ -3,0 +3,0 @@ import { StringUtils, Constants } from '@azure/msal-common';

@@ -13,3 +13,3 @@ {

},
"version": "2.14.2",
"version": "2.15.0",
"description": "Microsoft Authentication Library for js",

@@ -49,4 +49,4 @@ "keywords": [

"lint:fix": "npm run lint -- -- --fix",
"test": "mocha",
"test:coverage": "nyc mocha",
"test": "jest",
"test:coverage": "jest --coverage",
"test:coverage:only": "npm run clean:coverage && npm run test:coverage",

@@ -65,22 +65,13 @@ "build:all": "npm run build:common && npm run build",

"@babel/plugin-proposal-object-rest-spread": "^7.6.2",
"@babel/polyfill": "^7.7.0",
"@babel/preset-env": "^7.7.1",
"@babel/preset-typescript": "^7.7.2",
"@babel/register": "^7.7.0",
"@istanbuljs/nyc-config-babel": "^2.1.1",
"@rollup/plugin-node-resolve": "^11.2.1",
"@types/chai": "^4.2.5",
"@types/chai-as-promised": "^7.1.2",
"@types/mocha": "^7.0.2",
"@types/jest": "^26.0.23",
"@types/sinon": "^7.5.0",
"babel-plugin-istanbul": "^5.2.0",
"beachball": "^1.32.2",
"chai": "^4.2.0",
"chai-as-promised": "^7.1.1",
"dotenv": "^8.2.0",
"husky": "^3.0.9",
"jest": "^27.0.4",
"jsdom": "^15.2.1",
"jsdom-global": "^3.0.2",
"mocha": "^7.1.2",
"nyc": "^15.0.0",
"rimraf": "^3.0.0",

@@ -92,3 +83,4 @@ "rollup": "^2.46.0",

"sinon": "^7.5.0",
"ssri": "^8.0.0",
"ssri": "^8.0.1",
"ts-jest": "^27.0.2",
"tslib": "^1.10.0",

@@ -99,4 +91,4 @@ "tslint": "^5.20.0",

"dependencies": {
"@azure/msal-common": "^4.3.0"
"@azure/msal-common": "^4.4.0"
}
}
# Microsoft Authentication Library for JavaScript (MSAL.js) 2.0 for Browser-Based Single-Page Applications
[![npm version](https://img.shields.io/npm/v/@azure/msal-browser.svg?style=flat)](https://www.npmjs.com/package/@azure/msal-browser/)[![npm version](https://img.shields.io/npm/dm/@azure/msal-browser.svg)](https://nodei.co/npm/@azure/msal-browser/)[![Coverage Status](https://coveralls.io/repos/github/AzureAD/microsoft-authentication-library-for-js/badge.svg?branch=dev)](https://coveralls.io/github/AzureAD/microsoft-authentication-library-for-js?branch=dev)
[![npm version](https://img.shields.io/npm/v/@azure/msal-browser.svg?style=flat)](https://www.npmjs.com/package/@azure/msal-browser/)
[![npm version](https://img.shields.io/npm/dm/@azure/msal-browser.svg)](https://nodei.co/npm/@azure/msal-browser/)
[![codecov](https://codecov.io/gh/AzureAD/microsoft-authentication-library-for-js/branch/dev/graph/badge.svg?flag=msal-browser)](https://codecov.io/gh/AzureAD/microsoft-authentication-library-for-js)

@@ -60,3 +62,3 @@ | <a href="https://docs.microsoft.com/azure/active-directory/develop/guidedsetups/active-directory-javascriptspa" target="_blank">Getting Started</a> | <a href="https://aka.ms/aaddevv2" target="_blank">AAD Docs</a> | <a href="https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_browser.html" target="_blank">Library Reference</a> |

```html
<script type="text/javascript" src="https://alcdn.msauth.net/browser/2.14.2/js/msal-browser.min.js"></script>
<script type="text/javascript" src="https://alcdn.msauth.net/browser/2.15.0/js/msal-browser.min.js"></script>
```

@@ -109,3 +111,3 @@

| [ssoSilent() Sample](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/samples/msal-browser-samples/VanillaJSTestApp2.0/app/ssoSilent) | A vanilla JS sample showing usage of the ssoSilent API, allowing you to sign in a user silently if a context exists on the authentication server. | `npm start -- -s ssoSilent` |
| [Internet Explorer 11 Sample]() | A vanilla JS sample showing usage of `@azure/msal-browser` in an application designed to run in Internet Explorer 11. | `npm start -- -s ie11-sample` |
| [Internet Explorer 11 Sample](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/samples/msal-browser-samples/VanillaJSTestApp2.0/app/ie11-sample) | A vanilla JS sample showing usage of `@azure/msal-browser` in an application designed to run in Internet Explorer 11. | `npm start -- -s ie11-sample` |
| [Angular 10 Sample](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/samples/msal-angular-v2-samples/angular10-browser-sample) | An Angular 10 sample showing usage of MSAL 2.0 with the Microsoft Graph API. | `npm start` |

@@ -115,2 +117,9 @@

More advanced samples backed with a tutorial can be found in the [Azure Samples](https://github.com/Azure-Samples) space on GitHub:
- [JavaScript SPA calling Express.js web API](https://github.com/Azure-Samples/ms-identity-javascript-tutorial/tree/main/3-Authorization-II/1-call-api)
- [JavaScript SPA calling Microsoft Graph via Express.js web API using on-behalf-of flow](https://github.com/Azure-Samples/ms-identity-javascript-tutorial/tree/main/4-AdvancedGrants/1-call-api-graph)
- [React & Redux SPA calling Microsoft Graph via ASP.NET Core web API using on-behalf-of flow](https://github.com/Azure-Samples/ms-identity-javascript-react-spa-dotnetcore-webapi-obo)
- [Deployment tutorial for Azure App Service and Azure Storage](https://github.com/Azure-Samples/ms-identity-javascript-tutorial/tree/main/5-Deployment)
## Build and Test

@@ -117,0 +126,0 @@

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 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 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

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc