@azure/msal-angular
Advanced tools
Comparing version 0.1.4 to 1.0.0-alpha.0
# Changelog | ||
## 1.0.0-alpha.0 | ||
Initial upgrade to use `msal@1.2.0`. | ||
* `msal@1.2.0` package is now a peer dependency, and must be installed alongside `@azure/msal-angular`. | ||
* `MsalModule.forRoot` now takes two arguement. | ||
* The first argument is the configuration object, which is the [same `Configuration` object](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-core/src/Configuration.ts) you would pass to `msal`. | ||
* The second argument is a `MsalAngularConfiguration` object, containing the values for `consentScopes`, `popUp`, and `extraQueryParameters`. | ||
* See the [updated sample](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/918830f9750a43567f1dbc01bc6492481d267ed6/samples/MSALAngularDemoApp/src/app/app.module.ts#L41) for an example of how to pass these configuration objects. | ||
* The `acquireToken` and `login` methods now take a single `AuthenticationParameters` object as parameters. | ||
## 0.1.4 | ||
@@ -4,0 +15,0 @@ * Fix msal-angular to transpile for IE11 compatibility: https://github.com/AzureAD/microsoft-authentication-library-for-js/pull/868 |
@@ -1,2 +0,1 @@ | ||
export { MsalConfig } from './msal-config'; | ||
export { BroadcastService } from './broadcast.service'; | ||
@@ -7,1 +6,2 @@ export { MsalService } from './msal.service'; | ||
export { MsalModule } from './msal.module'; | ||
export { MsalAngularConfiguration } from './msal-angular.configuration'; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var msal_config_1 = require("./msal-config"); | ||
exports.MsalConfig = msal_config_1.MsalConfig; | ||
var broadcast_service_1 = require("./broadcast.service"); | ||
@@ -6,0 +4,0 @@ exports.BroadcastService = broadcast_service_1.BroadcastService; |
@@ -1,1 +0,1 @@ | ||
[{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./msal-config","export":["MsalConfig"]},{"from":"./broadcast.service","export":["BroadcastService"]},{"from":"./msal.service","export":["MsalService"]},{"from":"./msal-guard.service","export":["MsalGuard"]},{"from":"./msal.interceptor","export":["MsalInterceptor"]},{"from":"./msal.module","export":["MsalModule"]}]},{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./msal-config","export":["MsalConfig"]},{"from":"./broadcast.service","export":["BroadcastService"]},{"from":"./msal.service","export":["MsalService"]},{"from":"./msal-guard.service","export":["MsalGuard"]},{"from":"./msal.interceptor","export":["MsalInterceptor"]},{"from":"./msal.module","export":["MsalModule"]}]}] | ||
[{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./broadcast.service","export":["BroadcastService"]},{"from":"./msal.service","export":["MsalService"]},{"from":"./msal-guard.service","export":["MsalGuard"]},{"from":"./msal.interceptor","export":["MsalInterceptor"]},{"from":"./msal.module","export":["MsalModule"]},{"from":"./msal-angular.configuration","export":["MsalAngularConfiguration"]}]},{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./broadcast.service","export":["BroadcastService"]},{"from":"./msal.service","export":["MsalService"]},{"from":"./msal-guard.service","export":["MsalGuard"]},{"from":"./msal.interceptor","export":["MsalInterceptor"]},{"from":"./msal.module","export":["MsalModule"]},{"from":"./msal-angular.configuration","export":["MsalAngularConfiguration"]}]}] |
@@ -6,6 +6,8 @@ import { ActivatedRoute, ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from "@angular/router"; | ||
import { Location, PlatformLocation } from "@angular/common"; | ||
import { MsalConfig } from "./msal-config"; | ||
import { BroadcastService } from "./broadcast.service"; | ||
import { Configuration } from "msal"; | ||
import { MsalAngularConfiguration } from "./msal-angular.configuration"; | ||
export declare class MsalGuard implements CanActivate { | ||
private config; | ||
private msalConfig; | ||
private msalAngularConfig; | ||
private authService; | ||
@@ -17,7 +19,4 @@ private router; | ||
private broadcastService; | ||
constructor(config: MsalConfig, authService: MsalService, router: Router, activatedRoute: ActivatedRoute, location: Location, platformLocation: PlatformLocation, broadcastService: BroadcastService); | ||
constructor(msalConfig: Configuration, msalAngularConfig: MsalAngularConfiguration, authService: MsalService, router: Router, activatedRoute: ActivatedRoute, location: Location, platformLocation: PlatformLocation, broadcastService: BroadcastService); | ||
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Promise<boolean>; | ||
private getBaseUrl; | ||
isEmpty: (str: any) => boolean; | ||
isObjectEmpty(obj: Object): boolean; | ||
} |
@@ -9,10 +9,7 @@ "use strict"; | ||
var common_1 = require("@angular/common"); | ||
var msal_config_1 = require("./msal-config"); | ||
var broadcast_service_1 = require("./broadcast.service"); | ||
var msal_1 = require("msal"); | ||
var MSALError_1 = require("./MSALError"); | ||
var AuthenticationResult_1 = require("./AuthenticationResult"); | ||
var MsalGuard = /** @class */ (function () { | ||
function MsalGuard(config, authService, router, activatedRoute, location, platformLocation, broadcastService) { | ||
this.config = config; | ||
function MsalGuard(msalConfig, msalAngularConfig, authService, router, activatedRoute, location, platformLocation, broadcastService) { | ||
this.msalConfig = msalConfig; | ||
this.msalAngularConfig = msalAngularConfig; | ||
this.authService = authService; | ||
@@ -24,5 +21,2 @@ this.router = router; | ||
this.broadcastService = broadcastService; | ||
this.isEmpty = function (str) { | ||
return (typeof str === "undefined" || !str || 0 === str.length); | ||
}; | ||
} | ||
@@ -32,63 +26,30 @@ MsalGuard.prototype.canActivate = function (route, state) { | ||
this.authService.getLogger().verbose("location change event from old url to new url"); | ||
this.authService.updateDataFromCache([this.config.clientID]); | ||
if (!this.authService._oauthData.isAuthenticated && this.isObjectEmpty(this.authService._oauthData.idToken)) { | ||
if (state.url) { | ||
if (!this.authService._renewActive && !this.authService.loginInProgress()) { | ||
var loginStartPage = this.getBaseUrl() + state.url; | ||
if (loginStartPage !== null) { | ||
this.authService.getCacheStorage().setItem(msal_1.Constants.angularLoginRequest, loginStartPage); | ||
} | ||
if (this.config.popUp) { | ||
return this.authService.loginPopup(this.config.consentScopes, this.config.extraQueryParameters) | ||
.then(function (token) { | ||
return true; | ||
}, function (error) { | ||
return false; | ||
}); | ||
} | ||
else { | ||
this.authService.loginRedirect(this.config.consentScopes, this.config.extraQueryParameters); | ||
} | ||
} | ||
if (!this.authService.getAccount()) { | ||
if (this.msalAngularConfig.popUp) { | ||
return this.authService.loginPopup({ | ||
scopes: this.msalConfig.framework.consentScopes, | ||
extraQueryParameters: this.msalConfig.framework.extraQueryParameters | ||
}) | ||
.then(function () { return true; }) | ||
.catch(function () { return false; }); | ||
} | ||
this.authService.loginRedirect({ | ||
scopes: this.msalAngularConfig.consentScopes, | ||
extraQueryParameters: this.msalAngularConfig.extraQueryParameters | ||
}); | ||
} | ||
//token is expired/deleted but userdata still exists in _oauthData object | ||
else if (!this.authService._oauthData.isAuthenticated && !this.isObjectEmpty(this.authService._oauthData.idToken)) { | ||
return this.authService.acquireTokenSilent([this.config.clientID]) | ||
.then(function (token) { | ||
if (token) { | ||
_this.authService._oauthData.isAuthenticated = true; | ||
var authenticationResult = new AuthenticationResult_1.AuthenticationResult(token); | ||
_this.broadcastService.broadcast("msal:loginSuccess", authenticationResult); | ||
return true; | ||
} | ||
}, function (error) { | ||
var errorParts = error.split('|'); | ||
var msalError = new MSALError_1.MSALError(errorParts[0], errorParts[1], ""); | ||
_this.broadcastService.broadcast("msal:loginFailure", msalError); | ||
else { | ||
return this.authService.acquireTokenSilent({ | ||
scopes: [this.msalConfig.auth.clientId] | ||
}) | ||
.then(function (result) { | ||
_this.broadcastService.broadcast("msal:loginSuccess", result); | ||
return true; | ||
}) | ||
.catch(function (error) { | ||
_this.broadcastService.broadcast("msal:loginFailure", error); | ||
return false; | ||
}); | ||
} | ||
else { | ||
return true; | ||
} | ||
}; | ||
MsalGuard.prototype.getBaseUrl = function () { | ||
var currentAbsoluteUrl = window.location.href; | ||
var currentRelativeUrl = this.location.path(); | ||
if (this.isEmpty(currentRelativeUrl)) { | ||
if (currentAbsoluteUrl.endsWith("/")) { | ||
currentAbsoluteUrl = currentAbsoluteUrl.replace(/\/$/, ''); | ||
} | ||
return currentAbsoluteUrl; | ||
} | ||
else { | ||
var index = currentAbsoluteUrl.indexOf(currentRelativeUrl); | ||
return currentAbsoluteUrl.substring(0, index); | ||
} | ||
}; | ||
MsalGuard.prototype.isObjectEmpty = function (obj) { | ||
return Object.keys(obj).length === 0; | ||
}; | ||
; | ||
MsalGuard.decorators = [ | ||
@@ -99,3 +60,4 @@ { type: core_1.Injectable }, | ||
MsalGuard.ctorParameters = function () { return [ | ||
{ type: msal_config_1.MsalConfig, decorators: [{ type: core_1.Inject, args: [msal_service_1.MSAL_CONFIG,] },] }, | ||
{ type: undefined, decorators: [{ type: core_1.Inject, args: [msal_service_1.MSAL_CONFIG,] },] }, | ||
{ type: undefined, decorators: [{ type: core_1.Inject, args: [msal_service_1.MSAL_CONFIG_ANGULAR,] },] }, | ||
{ type: msal_service_1.MsalService, }, | ||
@@ -102,0 +64,0 @@ { type: router_1.Router, }, |
@@ -1,1 +0,1 @@ | ||
[{"__symbolic":"module","version":3,"metadata":{"MsalGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./msal.service","name":"MSAL_CONFIG"}]}],null,null,null,null,null,null],"parameters":[{"__symbolic":"reference","module":"./msal-config","name":"MsalConfig"},{"__symbolic":"reference","module":"./msal.service","name":"MsalService"},{"__symbolic":"reference","module":"@angular/router","name":"Router"},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute"},{"__symbolic":"reference","module":"@angular/common","name":"Location"},{"__symbolic":"reference","module":"@angular/common","name":"PlatformLocation"},{"__symbolic":"reference","module":"./broadcast.service","name":"BroadcastService"}]}],"canActivate":[{"__symbolic":"method"}],"getBaseUrl":[{"__symbolic":"method"}],"isObjectEmpty":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"MsalGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./msal.service","name":"MSAL_CONFIG"}]}],null,null,null,null,null,null],"parameters":[{"__symbolic":"reference","module":"./msal-config","name":"MsalConfig"},{"__symbolic":"reference","module":"./msal.service","name":"MsalService"},{"__symbolic":"reference","module":"@angular/router","name":"Router"},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute"},{"__symbolic":"reference","module":"@angular/common","name":"Location"},{"__symbolic":"reference","module":"@angular/common","name":"PlatformLocation"},{"__symbolic":"reference","module":"./broadcast.service","name":"BroadcastService"}]}],"canActivate":[{"__symbolic":"method"}],"getBaseUrl":[{"__symbolic":"method"}],"isObjectEmpty":[{"__symbolic":"method"}]}}}}] | ||
[{"__symbolic":"module","version":3,"metadata":{"MsalGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./msal.service","name":"MSAL_CONFIG"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./msal.service","name":"MSAL_CONFIG_ANGULAR"}]}],null,null,null,null,null,null],"parameters":[{"__symbolic":"reference","module":"msal","name":"Configuration"},{"__symbolic":"reference","module":"./msal-angular.configuration","name":"MsalAngularConfiguration"},{"__symbolic":"reference","module":"./msal.service","name":"MsalService"},{"__symbolic":"reference","module":"@angular/router","name":"Router"},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute"},{"__symbolic":"reference","module":"@angular/common","name":"Location"},{"__symbolic":"reference","module":"@angular/common","name":"PlatformLocation"},{"__symbolic":"reference","module":"./broadcast.service","name":"BroadcastService"}]}],"canActivate":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"MsalGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./msal.service","name":"MSAL_CONFIG"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./msal.service","name":"MSAL_CONFIG_ANGULAR"}]}],null,null,null,null,null,null],"parameters":[{"__symbolic":"reference","module":"msal","name":"Configuration"},{"__symbolic":"reference","module":"./msal-angular.configuration","name":"MsalAngularConfiguration"},{"__symbolic":"reference","module":"./msal.service","name":"MsalService"},{"__symbolic":"reference","module":"@angular/router","name":"Router"},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute"},{"__symbolic":"reference","module":"@angular/common","name":"Location"},{"__symbolic":"reference","module":"@angular/common","name":"PlatformLocation"},{"__symbolic":"reference","module":"./broadcast.service","name":"BroadcastService"}]}],"canActivate":[{"__symbolic":"method"}]}}}}] |
@@ -10,3 +10,2 @@ "use strict"; | ||
var broadcast_service_1 = require("./broadcast.service"); | ||
var MSALError_1 = require("./MSALError"); | ||
var MsalInterceptor = /** @class */ (function () { | ||
@@ -20,45 +19,27 @@ function MsalInterceptor(auth, broadcastService) { | ||
var scopes = this.auth.getScopesForEndpoint(req.url); | ||
this.auth.verbose('Url: ' + req.url + ' maps to scopes: ' + scopes); | ||
if (scopes === null) { | ||
this.auth.getLogger().verbose('Url: ' + req.url + ' maps to scopes: ' + scopes); | ||
// If there are no scopes set for this request, do nothing. | ||
if (!scopes) { | ||
return next.handle(req); | ||
} | ||
var tokenStored = this.auth.getCachedTokenInternal(scopes); | ||
if (tokenStored && tokenStored.token) { | ||
req = req.clone({ | ||
var accessToken; | ||
// Acquire a token for this request, and attach as proper auth header. | ||
return Observable_1.Observable.fromPromise(this.auth.acquireTokenSilent({ scopes: scopes }) | ||
.then(function (response) { | ||
accessToken = response.accessToken; | ||
var authHeader = "Bearer " + response.accessToken; | ||
return req.clone({ | ||
setHeaders: { | ||
Authorization: "Bearer " + tokenStored.token, | ||
Authorization: authHeader, | ||
} | ||
}); | ||
return next.handle(req).do(function (event) { }, function (err) { | ||
})).mergeMap(function (nextReq) { | ||
// Call next handler, and if that errors, broadcast error | ||
return next.handle(nextReq).do(function (event) { }, function (err) { | ||
if (err instanceof http_1.HttpErrorResponse && err.status == 401) { | ||
var scopes = _this.auth.getScopesForEndpoint(req.url); | ||
var tokenStored = _this.auth.getCachedTokenInternal(scopes); | ||
if (tokenStored && tokenStored.token) { | ||
_this.auth.clearCacheForScope(tokenStored.token); | ||
} | ||
var msalError = new MSALError_1.MSALError(JSON.stringify(err), "", JSON.stringify(scopes)); | ||
_this.broadcastService.broadcast('msal:notAuthorized', msalError); | ||
_this.auth.clearCacheForScope(accessToken); | ||
_this.broadcastService.broadcast('msal:notAuthorized', err.message); | ||
} | ||
}); | ||
} | ||
else { | ||
return Observable_1.Observable.fromPromise(this.auth.acquireTokenSilent(scopes).then(function (token) { | ||
var JWT = "Bearer " + token; | ||
return req.clone({ | ||
setHeaders: { | ||
Authorization: JWT, | ||
}, | ||
}); | ||
})).mergeMap(function (req) { return next.handle(req).do(function (event) { }, function (err) { | ||
if (err instanceof http_1.HttpErrorResponse && err.status == 401) { | ||
var scopes = _this.auth.getScopesForEndpoint(req.url); | ||
var tokenStored = _this.auth.getCachedTokenInternal(scopes); | ||
if (tokenStored && tokenStored.token) { | ||
_this.auth.clearCacheForScope(tokenStored.token); | ||
} | ||
var msalError = new MSALError_1.MSALError(JSON.stringify(err), "", JSON.stringify(scopes)); | ||
_this.broadcastService.broadcast('msal:notAuthorized', msalError); | ||
} | ||
}); }); //calling next.handle means we are passing control to next interceptor in chain | ||
} | ||
}); | ||
}; | ||
@@ -65,0 +46,0 @@ MsalInterceptor.decorators = [ |
@@ -1,7 +0,8 @@ | ||
import { MsalConfig } from "./msal-config"; | ||
import { ModuleWithProviders } from "@angular/core"; | ||
import { Configuration } from "msal"; | ||
import { MsalAngularConfiguration } from "./msal-angular.configuration"; | ||
export declare class WindowWrapper extends Window { | ||
} | ||
export declare class MsalModule { | ||
static forRoot(config: MsalConfig): ModuleWithProviders; | ||
static forRoot(config: Configuration, angularConfig?: MsalAngularConfiguration): ModuleWithProviders; | ||
} |
@@ -18,2 +18,3 @@ "use strict"; | ||
var broadcast_service_1 = require("./broadcast.service"); | ||
var msal_angular_configuration_1 = require("./msal-angular.configuration"); | ||
core_1.Injectable(); | ||
@@ -31,7 +32,20 @@ var WindowWrapper = /** @class */ (function (_super) { | ||
} | ||
MsalModule.forRoot = function (config) { | ||
MsalModule.forRoot = function (config, angularConfig) { | ||
if (angularConfig === void 0) { angularConfig = msal_angular_configuration_1.defaultMsalAngularConfiguration; } | ||
return { | ||
ngModule: MsalModule, | ||
providers: [ | ||
{ provide: msal_service_1.MSAL_CONFIG, useValue: config }, msal_service_1.MsalService, { provide: WindowWrapper, useValue: window } | ||
{ | ||
provide: msal_service_1.MSAL_CONFIG, | ||
useValue: config | ||
}, | ||
{ | ||
provide: msal_service_1.MSAL_CONFIG_ANGULAR, | ||
useValue: angularConfig | ||
}, | ||
msal_service_1.MsalService, | ||
{ | ||
provide: WindowWrapper, | ||
useValue: window | ||
} | ||
] | ||
@@ -38,0 +52,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
[{"__symbolic":"module","version":3,"metadata":{"WindowWrapper":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Window"}},"MsalModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"}],"declarations":[],"providers":[{"__symbolic":"reference","module":"./msal-guard.service","name":"MsalGuard"},{"__symbolic":"reference","module":"./broadcast.service","name":"BroadcastService"}]}]}],"statics":{"forRoot":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"MsalModule"},"providers":[{"provide":{"__symbolic":"reference","module":"./msal.service","name":"MSAL_CONFIG"},"useValue":{"__symbolic":"reference","name":"config"}},{"__symbolic":"reference","module":"./msal.service","name":"MsalService"},{"provide":{"__symbolic":"reference","name":"WindowWrapper"},"useValue":{"__symbolic":"reference","name":"window"}}]}}}}}},{"__symbolic":"module","version":1,"metadata":{"WindowWrapper":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Window"}},"MsalModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"}],"declarations":[],"providers":[{"__symbolic":"reference","module":"./msal-guard.service","name":"MsalGuard"},{"__symbolic":"reference","module":"./broadcast.service","name":"BroadcastService"}]}]}],"statics":{"forRoot":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"MsalModule"},"providers":[{"provide":{"__symbolic":"reference","module":"./msal.service","name":"MSAL_CONFIG"},"useValue":{"__symbolic":"reference","name":"config"}},{"__symbolic":"reference","module":"./msal.service","name":"MsalService"},{"provide":{"__symbolic":"reference","name":"WindowWrapper"},"useValue":{"__symbolic":"reference","name":"window"}}]}}}}}}] | ||
[{"__symbolic":"module","version":3,"metadata":{"WindowWrapper":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Window"}},"MsalModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"}],"declarations":[],"providers":[{"__symbolic":"reference","module":"./msal-guard.service","name":"MsalGuard"},{"__symbolic":"reference","module":"./broadcast.service","name":"BroadcastService"}]}]}],"statics":{"forRoot":{"__symbolic":"function","parameters":["config","angularConfig"],"value":{"ngModule":{"__symbolic":"reference","name":"MsalModule"},"providers":[{"provide":{"__symbolic":"reference","module":"./msal.service","name":"MSAL_CONFIG"},"useValue":{"__symbolic":"reference","name":"config"}},{"provide":{"__symbolic":"reference","module":"./msal.service","name":"MSAL_CONFIG_ANGULAR"},"useValue":{"__symbolic":"reference","name":"angularConfig"}},{"__symbolic":"reference","module":"./msal.service","name":"MsalService"},{"provide":{"__symbolic":"reference","name":"WindowWrapper"},"useValue":{"__symbolic":"reference","name":"window"}}]},"defaults":[null,{"__symbolic":"reference","module":"./msal-angular.configuration","name":"defaultMsalAngularConfiguration"}]}}}}},{"__symbolic":"module","version":1,"metadata":{"WindowWrapper":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Window"}},"MsalModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"}],"declarations":[],"providers":[{"__symbolic":"reference","module":"./msal-guard.service","name":"MsalGuard"},{"__symbolic":"reference","module":"./broadcast.service","name":"BroadcastService"}]}]}],"statics":{"forRoot":{"__symbolic":"function","parameters":["config","angularConfig"],"value":{"ngModule":{"__symbolic":"reference","name":"MsalModule"},"providers":[{"provide":{"__symbolic":"reference","module":"./msal.service","name":"MSAL_CONFIG"},"useValue":{"__symbolic":"reference","name":"config"}},{"provide":{"__symbolic":"reference","module":"./msal.service","name":"MSAL_CONFIG_ANGULAR"},"useValue":{"__symbolic":"reference","name":"angularConfig"}},{"__symbolic":"reference","module":"./msal.service","name":"MsalService"},{"provide":{"__symbolic":"reference","name":"WindowWrapper"},"useValue":{"__symbolic":"reference","name":"window"}}]},"defaults":[null,{"__symbolic":"reference","module":"./msal-angular.configuration","name":"defaultMsalAngularConfiguration"}]}}}}}] |
import { InjectionToken } from "@angular/core"; | ||
import { MsalConfig } from "./msal-config"; | ||
import "rxjs/add/observable/of"; | ||
import "rxjs/add/operator/do"; | ||
import "rxjs/add/operator/delay"; | ||
import { UserAgentApplication, CacheResult, User, Logger } from "msal"; | ||
import { UserAgentApplication, Configuration, AuthenticationParameters, AuthResponse, Logger } from "msal"; | ||
import { Router } from "@angular/router"; | ||
import { BroadcastService } from "./broadcast.service"; | ||
import { AuthCache } from "msal/lib-commonjs/cache/AuthCache"; | ||
import { MsalAngularConfiguration } from "./msal-angular.configuration"; | ||
export declare const MSAL_CONFIG: InjectionToken<string>; | ||
export declare const MSAL_CONFIG_ANGULAR: InjectionToken<string>; | ||
export declare class MsalService extends UserAgentApplication { | ||
private config; | ||
private msalConfig; | ||
private msalAngularConfig; | ||
private router; | ||
private broadcastService; | ||
user: any; | ||
_oauthData: { | ||
isAuthenticated: boolean; | ||
userName: string; | ||
loginError: string; | ||
idToken: {}; | ||
}; | ||
private loginScopes; | ||
_renewActive: boolean; | ||
constructor(config: MsalConfig, router: Router, broadcastService: BroadcastService); | ||
updateDataFromCache(scopes: string[]): void; | ||
private processHash; | ||
private processRedirectCallBack; | ||
constructor(msalConfig: Configuration, msalAngularConfig: MsalAngularConfiguration, router: Router, broadcastService: BroadcastService); | ||
private isUnprotectedResource; | ||
private isEmpty; | ||
private authCallback; | ||
protected clearCache(): void; | ||
getCacheStorage(): AuthCache; | ||
loginPopup(request?: AuthenticationParameters): Promise<any>; | ||
acquireTokenSilent(request: AuthenticationParameters): Promise<AuthResponse>; | ||
acquireTokenPopup(request: AuthenticationParameters): Promise<AuthResponse>; | ||
getLogger(): Logger; | ||
getCacheStorage(): any; | ||
isCallback(hash: string): boolean; | ||
loginRedirect(consentScopes?: string[], extraQueryParameters?: string): void; | ||
loginPopup(consentScopes?: string[], extraQueryParameters?: string): Promise<any>; | ||
logout(): void; | ||
getCachedTokenInternal(scopes: any): CacheResult; | ||
acquireTokenSilent(scopes: Array<string>, authority?: string, user?: User, extraQueryParameters?: string): Promise<any>; | ||
acquireTokenPopup(scopes: Array<string>, authority?: string, user?: User, extraQueryParameters?: string): Promise<any>; | ||
acquireTokenRedirect(scopes: Array<string>, authority?: string, user?: User, extraQueryParameters?: string): void; | ||
loginInProgress(): boolean; | ||
getUser(): User; | ||
getScopesForEndpoint(endpoint: string): string[]; | ||
clearCacheForScope(accessToken: string): void; | ||
info(message: string): void; | ||
verbose(message: string): void; | ||
removeItem(key: string): void; | ||
} |
@@ -12,5 +12,12 @@ "use strict"; | ||
})(); | ||
var __assign = (this && this.__assign) || Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var core_1 = require("@angular/core"); | ||
var msal_config_1 = require("./msal-config"); | ||
require("rxjs/add/observable/of"); | ||
@@ -22,32 +29,18 @@ require("rxjs/add/operator/do"); | ||
var broadcast_service_1 = require("./broadcast.service"); | ||
var AuthenticationResult_1 = require("./AuthenticationResult"); | ||
var MSALError_1 = require("./MSALError"); | ||
exports.MSAL_CONFIG = new core_1.InjectionToken("MSAL_CONFIG"); | ||
exports.MSAL_CONFIG_ANGULAR = new core_1.InjectionToken("MSAL_CONFIG_ANGULAR"); | ||
var buildMsalConfig = function (config) { | ||
return __assign({}, config, { framework: __assign({}, config.framework, { isAngular: true }) }); | ||
}; | ||
var MsalService = /** @class */ (function (_super) { | ||
__extends(MsalService, _super); | ||
function MsalService(config, router, broadcastService) { | ||
var _this = _super.call(this, config.clientID, config.authority, null, { | ||
validateAuthority: config.validateAuthority, | ||
cacheLocation: config.cacheLocation, | ||
storeAuthStateInCookie: config.storeAuthStateInCookie, | ||
redirectUri: config.redirectUri, | ||
postLogoutRedirectUri: config.postLogoutRedirectUri, | ||
logger: new msal_1.Logger(config.logger, { correlationId: config.correlationId, level: config.level, piiLoggingEnabled: config.piiLoggingEnabled }), | ||
loadFrameTimeout: config.loadFrameTimeout, | ||
navigateToLoginRequestUrl: config.navigateToLoginRequestUrl, | ||
isAngular: true, | ||
unprotectedResources: config.unprotectedResources, | ||
protectedResourceMap: new Map(config.protectedResourceMap) | ||
}) || this; | ||
_this.config = config; | ||
function MsalService(msalConfig, msalAngularConfig, router, broadcastService) { | ||
var _this = _super.call(this, buildMsalConfig(msalConfig)) || this; | ||
_this.msalConfig = msalConfig; | ||
_this.msalAngularConfig = msalAngularConfig; | ||
_this.router = router; | ||
_this.broadcastService = broadcastService; | ||
_this._oauthData = { isAuthenticated: false, userName: "", loginError: "", idToken: {} }; | ||
_this.loginScopes = [_this.clientId, "openid", "profile", "user.read"]; | ||
_this.updateDataFromCache(_this.loginScopes); | ||
var urlHash = window.location.hash; | ||
_this.processHash(urlHash); | ||
window.addEventListener("msal:popUpHashChanged", function (e) { | ||
_this._logger.verbose("popUpHashChanged "); | ||
_this.processHash(e.detail); | ||
_this.getLogger().verbose("popUpHashChanged "); | ||
}); | ||
@@ -57,3 +50,3 @@ window.addEventListener('msal:popUpClosed', function (e) { | ||
var msalError = new MSALError_1.MSALError(errorParts[0], errorParts[1]); | ||
if (_this.loginInProgress()) { | ||
if (_this.getLoginInProgress()) { | ||
broadcastService.broadcast('msal:loginFailure', msalError); | ||
@@ -70,5 +63,5 @@ _this.setloginInProgress(false); | ||
if (!router.config[i].canActivate) { | ||
if (_this.config && _this.config.unprotectedResources) { | ||
if (_this.msalConfig.framework.unprotectedResources) { | ||
if (!_this.isUnprotectedResource(router.config[i].path) && !_this.isEmpty(router.config[i].path)) { | ||
_this.config.unprotectedResources.push(router.config[i].path); | ||
_this.msalConfig.framework.unprotectedResources.push(router.config[i].path); | ||
} | ||
@@ -81,163 +74,6 @@ } | ||
} | ||
MsalService.prototype.updateDataFromCache = function (scopes) { | ||
// only cache lookup here to not interrupt with events | ||
var cacheResult; | ||
cacheResult = _super.prototype.getCachedTokenInternal.call(this, scopes, this.getUser()); | ||
this._oauthData.isAuthenticated = cacheResult != null && cacheResult.token !== null && cacheResult.token.length > 0; | ||
var user = this.getUser(); | ||
if (user) { | ||
this._oauthData.userName = user.name; | ||
this._oauthData.idToken = user.idToken; | ||
} | ||
if (cacheResult && cacheResult.error) { | ||
this._oauthData.loginError = cacheResult == null ? "" : cacheResult.error; | ||
} | ||
}; | ||
MsalService.prototype.processHash = function (hash) { | ||
var _this = this; | ||
if (this.isCallback(hash)) { | ||
var isPopup = false; | ||
var requestInfo = null; | ||
var callback = null; | ||
var msal; | ||
// callback can come from popupWindow, iframe or mainWindow | ||
if (window.openedWindows.length > 0 && window.openedWindows[window.openedWindows.length - 1].opener | ||
&& window.openedWindows[window.openedWindows.length - 1].opener.msal) { | ||
var mainWindow = window.openedWindows[window.openedWindows.length - 1].opener; | ||
msal = mainWindow.msal; | ||
isPopup = true; | ||
requestInfo = msal.getRequestInfo(hash); | ||
if (mainWindow.callBackMappedToRenewStates[requestInfo.stateResponse]) { | ||
callback = mainWindow.callBackMappedToRenewStates[requestInfo.stateResponse]; | ||
} | ||
} | ||
//redirect flow | ||
else if (window.parent && window.parent.msal) { | ||
msal = window.parent.msal; | ||
requestInfo = msal.getRequestInfo(hash); | ||
if (window.parent !== window && window.parent.callBackMappedToRenewStates[requestInfo.stateResponse]) { | ||
callback = window.parent.callBackMappedToRenewStates[requestInfo.stateResponse]; | ||
} | ||
else { | ||
callback = msal._tokenReceivedCallback; | ||
} | ||
} | ||
this.getLogger().verbose("Processing the hash: " + hash); | ||
this.saveTokenFromHash(requestInfo); | ||
// Return to callback if it is sent from iframe | ||
var token = requestInfo.parameters["access_token"] || requestInfo.parameters["id_token"]; | ||
var error = requestInfo.parameters["error"]; | ||
var errorDescription = requestInfo.parameters["error_description"]; | ||
var tokenType = null; | ||
var msalError = new MSALError_1.MSALError(error, errorDescription); | ||
var authenticationResult = new AuthenticationResult_1.AuthenticationResult(token); | ||
if (requestInfo.stateMatch) { | ||
if (requestInfo.requestType === "RENEW_TOKEN") { | ||
tokenType = msal_1.Constants.accessToken; | ||
authenticationResult.tokenType = tokenType; | ||
this._renewActive = false; | ||
// Call within the same context without full page redirect keeps the callback | ||
// id_token or access_token can be renewed | ||
if (window.parent === window && !window.parent.callBackMappedToRenewStates[requestInfo.stateResponse]) { | ||
if (token) { | ||
this.broadcastService.broadcast("msal:acquireTokenSuccess", authenticationResult); | ||
} | ||
else if (error && errorDescription) { | ||
this.broadcastService.broadcast("msal:acquireTokenFailure", msalError); | ||
} | ||
} | ||
} | ||
else if (requestInfo.requestType === "LOGIN") { | ||
tokenType = msal_1.Constants.idToken; | ||
authenticationResult.tokenType = tokenType; | ||
this.updateDataFromCache(this.loginScopes); | ||
if (this._oauthData.userName) { | ||
setTimeout(function () { | ||
// id_token is added as token for the app | ||
_this.updateDataFromCache(_this.loginScopes); | ||
//todo temp commented | ||
// this.userInfo = this._oauthData; | ||
}, 1); | ||
this.broadcastService.broadcast("msal:loginSuccess", authenticationResult); | ||
} | ||
else { | ||
this.broadcastService.broadcast("msal:loginFailure", msalError); | ||
} | ||
} | ||
if (callback && typeof callback === "function") { | ||
callback(errorDescription, token, error, tokenType); | ||
} | ||
// since this is a token renewal request in iFrame, we don't need to proceed with the location change. | ||
if (window.parent !== window) { //in iframe | ||
if (event && event.preventDefault) { | ||
event.preventDefault(); | ||
} | ||
return; | ||
} | ||
// redirect to login start page | ||
if (window.parent === window && !isPopup) { | ||
if (this._navigateToLoginRequestUrl) { | ||
var loginStartPage = this._cacheStorage.getItem(msal_1.Constants.loginRequest); | ||
this._cacheStorage.setItem(msal_1.Constants.urlHash, hash); | ||
if (typeof loginStartPage !== "undefined" && loginStartPage && loginStartPage.length !== 0) { | ||
// prevent the current location change and redirect the user back to the login start page | ||
this._logger.verbose("Redirecting to start page: " + loginStartPage); | ||
window.location.href = loginStartPage; | ||
} | ||
} | ||
//redirect to redirect uri. No page reload here since we are only removing the url after the hash | ||
else { | ||
window.location.hash = ''; | ||
} | ||
} | ||
} | ||
else { | ||
// state did not match, broadcast an error | ||
this.broadcastService.broadcast("msal:stateMismatch", msalError); | ||
} | ||
} | ||
else { | ||
var pendingCallback = this._cacheStorage.getItem(msal_1.Constants.urlHash); | ||
if (pendingCallback) { | ||
this.processRedirectCallBack(pendingCallback); | ||
} | ||
} | ||
}; | ||
; | ||
MsalService.prototype.processRedirectCallBack = function (hash) { | ||
this._logger.info('Processing the callback from redirect response'); | ||
var requestInfo = this.getRequestInfo(hash); | ||
var token = requestInfo.parameters[msal_1.Constants.accessToken] || requestInfo.parameters[msal_1.Constants.idToken]; | ||
var errorDesc = requestInfo.parameters[msal_1.Constants.errorDescription]; | ||
var error = requestInfo.parameters[msal_1.Constants.error]; | ||
var tokenType; | ||
this._cacheStorage.removeItem(msal_1.Constants.urlHash); | ||
var msalError = new MSALError_1.MSALError(error, errorDesc); | ||
var authenticationResult = new AuthenticationResult_1.AuthenticationResult(token); | ||
if (requestInfo.parameters[msal_1.Constants.accessToken]) { | ||
tokenType = msal_1.Constants.accessToken; | ||
if (token) { | ||
authenticationResult.tokenType = tokenType; | ||
this.broadcastService.broadcast("msal:acquireTokenSuccess", authenticationResult); | ||
} | ||
else if (error && errorDesc) { | ||
//TODO this should also send back the scopes | ||
this.broadcastService.broadcast("msal:acquireTokenFailure", msalError); | ||
} | ||
} | ||
else { | ||
tokenType = msal_1.Constants.idToken; | ||
if (token) { | ||
authenticationResult.tokenType = tokenType; | ||
this.broadcastService.broadcast("msal:loginSuccess", authenticationResult); | ||
} | ||
else if (error && errorDesc) { | ||
this.broadcastService.broadcast("msal:loginFailure", msalError); | ||
} | ||
} | ||
}; | ||
MsalService.prototype.isUnprotectedResource = function (url) { | ||
if (this.config && this.config.unprotectedResources) { | ||
for (var i = 0; i < this.config.unprotectedResources.length; i++) { | ||
if (url.indexOf(this.config.unprotectedResources[i]) > -1) { | ||
if (this.msalConfig && this.msalConfig.framework.unprotectedResources) { | ||
for (var i = 0; i < this.msalConfig.framework.unprotectedResources.length; i++) { | ||
if (url.indexOf(this.msalConfig.framework.unprotectedResources[i]) > -1) { | ||
return true; | ||
@@ -252,89 +88,47 @@ } | ||
}; | ||
//dummy method for future use | ||
MsalService.prototype.authCallback = function (errorDesc, _token, error, _tokenType) { | ||
}; | ||
MsalService.prototype.clearCache = function () { | ||
_super.prototype.clearCache.call(this); | ||
}; | ||
/*This is a private api and not supposed to be use by customers */ | ||
MsalService.prototype.getLogger = function () { | ||
return _super.prototype.getLogger.call(this); | ||
}; | ||
MsalService.prototype.getCacheStorage = function () { | ||
return this._cacheStorage; | ||
return this.cacheStorage; | ||
}; | ||
MsalService.prototype.isCallback = function (hash) { | ||
return _super.prototype.isCallback.call(this, hash); | ||
}; | ||
MsalService.prototype.loginRedirect = function (consentScopes, extraQueryParameters) { | ||
this._logger.verbose("login redirect flow"); | ||
_super.prototype.loginRedirect.call(this, consentScopes, extraQueryParameters); | ||
}; | ||
MsalService.prototype.loginPopup = function (consentScopes, extraQueryParameters) { | ||
MsalService.prototype.loginPopup = function (request) { | ||
var _this = this; | ||
this._logger.verbose("login popup flow"); | ||
return _super.prototype.loginPopup.call(this, consentScopes, extraQueryParameters) | ||
.then(function (idToken) { | ||
var authenticationResult = new AuthenticationResult_1.AuthenticationResult(idToken, "idToken"); | ||
_this.broadcastService.broadcast("msal:loginSuccess", authenticationResult); | ||
return idToken; | ||
}, function (error) { | ||
var errorParts = error.split('|'); | ||
var msalError = new MSALError_1.MSALError(errorParts[0], errorParts[1]); | ||
_this._logger.error("Error during login:\n" + error); | ||
_this.broadcastService.broadcast("msal:loginFailure", msalError); | ||
return _super.prototype.loginPopup.call(this, request) | ||
.then(function (authResponse) { | ||
_this.broadcastService.broadcast("msal:loginSuccess", authResponse); | ||
return authResponse; | ||
}) | ||
.catch(function (error) { | ||
_this.broadcastService.broadcast("msal:loginFailure", error); | ||
_this.getLogger().error("Error during login:\n" + error.errorMessage); | ||
throw error; | ||
}); | ||
}; | ||
MsalService.prototype.logout = function () { | ||
this.user = null; | ||
_super.prototype.logout.call(this); | ||
}; | ||
MsalService.prototype.getCachedTokenInternal = function (scopes) { | ||
return _super.prototype.getCachedTokenInternal.call(this, scopes, this.getUser()); | ||
}; | ||
MsalService.prototype.acquireTokenSilent = function (scopes, authority, user, extraQueryParameters) { | ||
MsalService.prototype.acquireTokenSilent = function (request) { | ||
var _this = this; | ||
return _super.prototype.acquireTokenSilent.call(this, scopes, authority, user, extraQueryParameters).then(function (token) { | ||
_this._renewActive = false; | ||
var authenticationResult = new AuthenticationResult_1.AuthenticationResult(token); | ||
_this.broadcastService.broadcast('msal:acquireTokenSuccess', authenticationResult); | ||
return token; | ||
}, function (error) { | ||
var errorParts = error.split('|'); | ||
var msalError = new MSALError_1.MSALError(errorParts[0], errorParts[1]); | ||
_this._renewActive = false; | ||
_this.broadcastService.broadcast('msal:acquireTokenFailure', msalError); | ||
_this._logger.error('Error when acquiring token for scopes: ' + scopes + " " + error); | ||
return _super.prototype.acquireTokenSilent.call(this, request) | ||
.then(function (authResponse) { | ||
_this.broadcastService.broadcast('msal:acquireTokenSuccess', authResponse); | ||
return authResponse; | ||
}) | ||
.catch(function (error) { | ||
_this.broadcastService.broadcast('msal:acquireTokenFailure', error.errorMessage); | ||
_this.getLogger().error('Error when acquiring token for scopes: ' + request.scopes + " " + error); | ||
throw error; | ||
}); | ||
}; | ||
MsalService.prototype.acquireTokenPopup = function (scopes, authority, user, extraQueryParameters) { | ||
MsalService.prototype.acquireTokenPopup = function (request) { | ||
var _this = this; | ||
return _super.prototype.acquireTokenPopup.call(this, scopes, authority, user, extraQueryParameters).then(function (token) { | ||
_this._renewActive = false; | ||
var authenticationResult = new AuthenticationResult_1.AuthenticationResult(token); | ||
_this.broadcastService.broadcast('msal:acquireTokenSuccess', authenticationResult); | ||
return token; | ||
}, function (error) { | ||
var errorParts = error.split('|'); | ||
var msalError = new MSALError_1.MSALError(errorParts[0], errorParts[1]); | ||
_this._renewActive = false; | ||
_this.broadcastService.broadcast('msal:acquireTokenFailure', msalError); | ||
_this._logger.error('Error when acquiring token for scopes : ' + scopes + " " + error); | ||
return _super.prototype.acquireTokenPopup.call(this, request) | ||
.then(function (authResponse) { | ||
_this.broadcastService.broadcast('msal:acquireTokenSuccess', authResponse); | ||
return authResponse; | ||
}) | ||
.catch(function (error) { | ||
_this.broadcastService.broadcast('msal:acquireTokenFailure', error); | ||
_this.getLogger().error('Error when acquiring token for scopes : ' + request.scopes + " " + error); | ||
throw error; | ||
}); | ||
}; | ||
MsalService.prototype.acquireTokenRedirect = function (scopes, authority, user, extraQueryParameters) { | ||
var acquireTokenStartPage = this._cacheStorage.getItem(msal_1.Constants.loginRequest); | ||
if (window.location.href !== acquireTokenStartPage) | ||
this._cacheStorage.setItem(msal_1.Constants.loginRequest, window.location.href); | ||
_super.prototype.acquireTokenRedirect.call(this, scopes, authority, user, extraQueryParameters); | ||
MsalService.prototype.getLogger = function () { | ||
return _super.prototype.getLogger.call(this); | ||
}; | ||
MsalService.prototype.loginInProgress = function () { | ||
return _super.prototype.loginInProgress.call(this); | ||
}; | ||
MsalService.prototype.getUser = function () { | ||
return _super.prototype.getUser.call(this); | ||
}; | ||
MsalService.prototype.getScopesForEndpoint = function (endpoint) { | ||
@@ -344,13 +138,4 @@ return _super.prototype.getScopesForEndpoint.call(this, endpoint); | ||
MsalService.prototype.clearCacheForScope = function (accessToken) { | ||
_super.prototype.clearCacheForScope.call(this, accessToken); | ||
return _super.prototype.clearCacheForScope.call(this, accessToken); | ||
}; | ||
MsalService.prototype.info = function (message) { | ||
this._logger.info(message); | ||
}; | ||
MsalService.prototype.verbose = function (message) { | ||
this._logger.verbose(message); | ||
}; | ||
MsalService.prototype.removeItem = function (key) { | ||
this._cacheStorage.removeItem(key); | ||
}; | ||
MsalService.decorators = [ | ||
@@ -361,3 +146,4 @@ { type: core_1.Injectable }, | ||
MsalService.ctorParameters = function () { return [ | ||
{ type: msal_config_1.MsalConfig, decorators: [{ type: core_1.Inject, args: [exports.MSAL_CONFIG,] },] }, | ||
{ type: undefined, decorators: [{ type: core_1.Inject, args: [exports.MSAL_CONFIG,] },] }, | ||
{ type: undefined, decorators: [{ type: core_1.Inject, args: [exports.MSAL_CONFIG_ANGULAR,] },] }, | ||
{ type: router_1.Router, }, | ||
@@ -364,0 +150,0 @@ { type: broadcast_service_1.BroadcastService, }, |
@@ -1,1 +0,1 @@ | ||
[{"__symbolic":"module","version":3,"metadata":{"MSAL_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken"},"arguments":["MSAL_CONFIG"]},"MsalService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"msal","name":"UserAgentApplication"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"MSAL_CONFIG"}]}],null,null],"parameters":[{"__symbolic":"reference","module":"./msal-config","name":"MsalConfig"},{"__symbolic":"reference","module":"@angular/router","name":"Router"},{"__symbolic":"reference","module":"./broadcast.service","name":"BroadcastService"}]}],"updateDataFromCache":[{"__symbolic":"method"}],"processHash":[{"__symbolic":"method"}],"processRedirectCallBack":[{"__symbolic":"method"}],"isUnprotectedResource":[{"__symbolic":"method"}],"isEmpty":[{"__symbolic":"method"}],"authCallback":[{"__symbolic":"method"}],"clearCache":[{"__symbolic":"method"}],"getLogger":[{"__symbolic":"method"}],"getCacheStorage":[{"__symbolic":"method"}],"isCallback":[{"__symbolic":"method"}],"loginRedirect":[{"__symbolic":"method"}],"loginPopup":[{"__symbolic":"method"}],"logout":[{"__symbolic":"method"}],"getCachedTokenInternal":[{"__symbolic":"method"}],"acquireTokenSilent":[{"__symbolic":"method"}],"acquireTokenPopup":[{"__symbolic":"method"}],"acquireTokenRedirect":[{"__symbolic":"method"}],"loginInProgress":[{"__symbolic":"method"}],"getUser":[{"__symbolic":"method"}],"getScopesForEndpoint":[{"__symbolic":"method"}],"clearCacheForScope":[{"__symbolic":"method"}],"info":[{"__symbolic":"method"}],"verbose":[{"__symbolic":"method"}],"removeItem":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"MSAL_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken"},"arguments":["MSAL_CONFIG"]},"MsalService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"msal","name":"UserAgentApplication"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"MSAL_CONFIG"}]}],null,null],"parameters":[{"__symbolic":"reference","module":"./msal-config","name":"MsalConfig"},{"__symbolic":"reference","module":"@angular/router","name":"Router"},{"__symbolic":"reference","module":"./broadcast.service","name":"BroadcastService"}]}],"updateDataFromCache":[{"__symbolic":"method"}],"processHash":[{"__symbolic":"method"}],"processRedirectCallBack":[{"__symbolic":"method"}],"isUnprotectedResource":[{"__symbolic":"method"}],"isEmpty":[{"__symbolic":"method"}],"authCallback":[{"__symbolic":"method"}],"clearCache":[{"__symbolic":"method"}],"getLogger":[{"__symbolic":"method"}],"getCacheStorage":[{"__symbolic":"method"}],"isCallback":[{"__symbolic":"method"}],"loginRedirect":[{"__symbolic":"method"}],"loginPopup":[{"__symbolic":"method"}],"logout":[{"__symbolic":"method"}],"getCachedTokenInternal":[{"__symbolic":"method"}],"acquireTokenSilent":[{"__symbolic":"method"}],"acquireTokenPopup":[{"__symbolic":"method"}],"acquireTokenRedirect":[{"__symbolic":"method"}],"loginInProgress":[{"__symbolic":"method"}],"getUser":[{"__symbolic":"method"}],"getScopesForEndpoint":[{"__symbolic":"method"}],"clearCacheForScope":[{"__symbolic":"method"}],"info":[{"__symbolic":"method"}],"verbose":[{"__symbolic":"method"}],"removeItem":[{"__symbolic":"method"}]}}}}] | ||
[{"__symbolic":"module","version":3,"metadata":{"MSAL_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken"},"arguments":["MSAL_CONFIG"]},"MSAL_CONFIG_ANGULAR":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken"},"arguments":["MSAL_CONFIG_ANGULAR"]},"MsalService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"msal","name":"UserAgentApplication"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"MSAL_CONFIG"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"MSAL_CONFIG_ANGULAR"}]}],null,null],"parameters":[{"__symbolic":"reference","module":"msal","name":"Configuration"},{"__symbolic":"reference","module":"./msal-angular.configuration","name":"MsalAngularConfiguration"},{"__symbolic":"reference","module":"@angular/router","name":"Router"},{"__symbolic":"reference","module":"./broadcast.service","name":"BroadcastService"}]}],"isUnprotectedResource":[{"__symbolic":"method"}],"isEmpty":[{"__symbolic":"method"}],"getCacheStorage":[{"__symbolic":"method"}],"loginPopup":[{"__symbolic":"method"}],"acquireTokenSilent":[{"__symbolic":"method"}],"acquireTokenPopup":[{"__symbolic":"method"}],"getLogger":[{"__symbolic":"method"}],"getScopesForEndpoint":[{"__symbolic":"method"}],"clearCacheForScope":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"MSAL_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken"},"arguments":["MSAL_CONFIG"]},"MSAL_CONFIG_ANGULAR":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken"},"arguments":["MSAL_CONFIG_ANGULAR"]},"MsalService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"msal","name":"UserAgentApplication"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"MSAL_CONFIG"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"MSAL_CONFIG_ANGULAR"}]}],null,null],"parameters":[{"__symbolic":"reference","module":"msal","name":"Configuration"},{"__symbolic":"reference","module":"./msal-angular.configuration","name":"MsalAngularConfiguration"},{"__symbolic":"reference","module":"@angular/router","name":"Router"},{"__symbolic":"reference","module":"./broadcast.service","name":"BroadcastService"}]}],"isUnprotectedResource":[{"__symbolic":"method"}],"isEmpty":[{"__symbolic":"method"}],"getCacheStorage":[{"__symbolic":"method"}],"loginPopup":[{"__symbolic":"method"}],"acquireTokenSilent":[{"__symbolic":"method"}],"acquireTokenPopup":[{"__symbolic":"method"}],"getLogger":[{"__symbolic":"method"}],"getScopesForEndpoint":[{"__symbolic":"method"}],"clearCacheForScope":[{"__symbolic":"method"}]}}}}] |
@@ -13,3 +13,3 @@ { | ||
}, | ||
"version": "0.1.4", | ||
"version": "1.0.0-alpha.0", | ||
"keywords": [ | ||
@@ -28,5 +28,10 @@ "implicit", | ||
"dependencies": { | ||
"msal": "0.2.2", | ||
"tslib": "1.7.1" | ||
}, | ||
"peerDependencies": { | ||
"@angular/common": "^4.3.0", | ||
"@angular/core": "^4.3.0", | ||
"msal": "^1.2.0", | ||
"rxjs": "^5.0.1" | ||
}, | ||
"devDependencies": { | ||
@@ -71,2 +76,3 @@ "@angular/common": "^4.3.0", | ||
"karma-webpack": "^3.0.0", | ||
"msal": "^1.2.0", | ||
"phantomjs-polyfill": "0.0.2", | ||
@@ -86,7 +92,2 @@ "reflect-metadata": "^0.1.3", | ||
}, | ||
"peerDependencies": { | ||
"@angular/common": "^4.3.0", | ||
"@angular/core": "^4.3.0", | ||
"rxjs": "^5.0.1" | ||
}, | ||
"directories": { | ||
@@ -98,6 +99,6 @@ "test": "tests" | ||
"doc": "typedoc --out ./docs ./src/ --gitRevision dev", | ||
"build:ngc": "ngc -p tsconfig.json", | ||
"build": "npm run clean && npm run doc && npm run build:ngc", | ||
"build:modules": "ngc -p tsconfig.json", | ||
"build": "npm run clean && npm run doc && npm run build:modules", | ||
"test": "typings install && npm run test:verify-build && karma start karma.conf.js", | ||
"test:verify-build": "npm run build:ngc", | ||
"test:verify-build": "npm run build:modules", | ||
"ngcompile": "npm run build", | ||
@@ -104,0 +105,0 @@ "endToEnd": "cd tests/endToEndTests && npm install && node testRunner.js", |
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
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
Deprecated
MaintenanceThe maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed.
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
83379
52
42
854
1
+ Addedmsal@1.4.18(transitive)
+ Addedtslib@1.14.1(transitive)
- Removedmsal@0.2.2
- Removedmsal@0.2.2(transitive)