@azure/msal-angular 3.0.1 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/package.json +5 -2
- package/IMsalService.d.ts +0 -15
- package/constants.d.ts +0 -5
- package/esm2020/IMsalService.mjs +0 -6
- package/esm2020/azure-msal-angular.mjs +0 -5
- package/esm2020/constants.mjs +0 -10
- package/esm2020/msal.broadcast.config.mjs +0 -6
- package/esm2020/msal.broadcast.service.mjs +0 -57
- package/esm2020/msal.guard.config.mjs +0 -6
- package/esm2020/msal.guard.mjs +0 -218
- package/esm2020/msal.interceptor.config.mjs +0 -6
- package/esm2020/msal.interceptor.mjs +0 -270
- package/esm2020/msal.module.mjs +0 -46
- package/esm2020/msal.navigation.client.mjs +0 -51
- package/esm2020/msal.redirect.component.mjs +0 -31
- package/esm2020/msal.service.mjs +0 -81
- package/esm2020/packageMetadata.mjs +0 -4
- package/esm2020/public-api.mjs +0 -18
- package/fesm2015/azure-msal-angular.mjs +0 -745
- package/fesm2015/azure-msal-angular.mjs.map +0 -1
- package/fesm2020/azure-msal-angular.mjs +0 -741
- package/fesm2020/azure-msal-angular.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/msal.broadcast.config.d.ts +0 -3
- package/msal.broadcast.service.d.ts +0 -17
- package/msal.guard.config.d.ts +0 -9
- package/msal.guard.d.ts +0 -43
- package/msal.interceptor.config.d.ts +0 -17
- package/msal.interceptor.d.ts +0 -63
- package/msal.module.d.ts +0 -13
- package/msal.navigation.client.d.ts +0 -19
- package/msal.redirect.component.d.ts +0 -15
- package/msal.service.d.ts +0 -31
- package/packageMetadata.d.ts +0 -2
- package/public-api.d.ts +0 -17
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
SOFTWARE
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@azure/msal-angular",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "Microsoft",
|
|
6
6
|
"email": "nugetaad@microsoft.com",
|
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
"url": "https://github.com/AzureAD/microsoft-authentication-library-for-js.git"
|
|
13
13
|
},
|
|
14
14
|
"description": "Microsoft Authentication Library for Angular",
|
|
15
|
+
"files": [
|
|
16
|
+
"src"
|
|
17
|
+
],
|
|
15
18
|
"typings": "index.d.ts",
|
|
16
19
|
"beachball": {
|
|
17
20
|
"disallowedChangeTypes": [
|
|
@@ -19,7 +22,7 @@
|
|
|
19
22
|
]
|
|
20
23
|
},
|
|
21
24
|
"peerDependencies": {
|
|
22
|
-
"@azure/msal-browser": "^3.0
|
|
25
|
+
"@azure/msal-browser": "^3.1.0",
|
|
23
26
|
"rxjs": "^7.0.0"
|
|
24
27
|
},
|
|
25
28
|
"module": "fesm2015/azure-msal-angular.mjs",
|
package/IMsalService.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { EndSessionRequest, AuthorizationUrlRequest, AuthenticationResult, PopupRequest, RedirectRequest, SilentRequest, Logger } from '@azure/msal-browser';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
export interface IMsalService {
|
|
4
|
-
initialize(): Observable<void>;
|
|
5
|
-
acquireTokenPopup(request: PopupRequest): Observable<AuthenticationResult>;
|
|
6
|
-
acquireTokenRedirect(request: RedirectRequest): Observable<void>;
|
|
7
|
-
acquireTokenSilent(silentRequest: SilentRequest): Observable<AuthenticationResult>;
|
|
8
|
-
handleRedirectObservable(): Observable<AuthenticationResult | null>;
|
|
9
|
-
loginPopup(request?: PopupRequest): Observable<AuthenticationResult>;
|
|
10
|
-
loginRedirect(request?: RedirectRequest): Observable<void>;
|
|
11
|
-
logout(logoutRequest?: EndSessionRequest): Observable<void>;
|
|
12
|
-
ssoSilent(request: AuthorizationUrlRequest): Observable<AuthenticationResult>;
|
|
13
|
-
getLogger(): Logger;
|
|
14
|
-
setLogger(logger: Logger): void;
|
|
15
|
-
}
|
package/constants.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export declare const MSAL_INSTANCE: InjectionToken<string>;
|
|
3
|
-
export declare const MSAL_GUARD_CONFIG: InjectionToken<string>;
|
|
4
|
-
export declare const MSAL_INTERCEPTOR_CONFIG: InjectionToken<string>;
|
|
5
|
-
export declare const MSAL_BROADCAST_CONFIG: InjectionToken<string>;
|
package/esm2020/IMsalService.mjs
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
export {};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSU1zYWxTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0lNc2FsU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7XHJcbiAgRW5kU2Vzc2lvblJlcXVlc3QsXHJcbiAgQXV0aG9yaXphdGlvblVybFJlcXVlc3QsXHJcbiAgQXV0aGVudGljYXRpb25SZXN1bHQsXHJcbiAgUG9wdXBSZXF1ZXN0LFxyXG4gIFJlZGlyZWN0UmVxdWVzdCxcclxuICBTaWxlbnRSZXF1ZXN0LFxyXG4gIExvZ2dlcixcclxufSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTXNhbFNlcnZpY2Uge1xyXG4gIGluaXRpYWxpemUoKTogT2JzZXJ2YWJsZTx2b2lkPjtcclxuICBhY3F1aXJlVG9rZW5Qb3B1cChyZXF1ZXN0OiBQb3B1cFJlcXVlc3QpOiBPYnNlcnZhYmxlPEF1dGhlbnRpY2F0aW9uUmVzdWx0PjtcclxuICBhY3F1aXJlVG9rZW5SZWRpcmVjdChyZXF1ZXN0OiBSZWRpcmVjdFJlcXVlc3QpOiBPYnNlcnZhYmxlPHZvaWQ+O1xyXG4gIGFjcXVpcmVUb2tlblNpbGVudChcclxuICAgIHNpbGVudFJlcXVlc3Q6IFNpbGVudFJlcXVlc3RcclxuICApOiBPYnNlcnZhYmxlPEF1dGhlbnRpY2F0aW9uUmVzdWx0PjtcclxuICBoYW5kbGVSZWRpcmVjdE9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxBdXRoZW50aWNhdGlvblJlc3VsdCB8IG51bGw+O1xyXG4gIGxvZ2luUG9wdXAocmVxdWVzdD86IFBvcHVwUmVxdWVzdCk6IE9ic2VydmFibGU8QXV0aGVudGljYXRpb25SZXN1bHQ+O1xyXG4gIGxvZ2luUmVkaXJlY3QocmVxdWVzdD86IFJlZGlyZWN0UmVxdWVzdCk6IE9ic2VydmFibGU8dm9pZD47XHJcbiAgbG9nb3V0KGxvZ291dFJlcXVlc3Q/OiBFbmRTZXNzaW9uUmVxdWVzdCk6IE9ic2VydmFibGU8dm9pZD47XHJcbiAgc3NvU2lsZW50KHJlcXVlc3Q6IEF1dGhvcml6YXRpb25VcmxSZXF1ZXN0KTogT2JzZXJ2YWJsZTxBdXRoZW50aWNhdGlvblJlc3VsdD47XHJcbiAgZ2V0TG9nZ2VyKCk6IExvZ2dlcjtcclxuICBzZXRMb2dnZXIobG9nZ2VyOiBMb2dnZXIpOiB2b2lkO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp1cmUtbXNhbC1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F6dXJlLW1zYWwtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
package/esm2020/constants.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { InjectionToken } from '@angular/core';
|
|
6
|
-
export const MSAL_INSTANCE = new InjectionToken('MSAL_INSTANCE');
|
|
7
|
-
export const MSAL_GUARD_CONFIG = new InjectionToken('MSAL_GUARD_CONFIG');
|
|
8
|
-
export const MSAL_INTERCEPTOR_CONFIG = new InjectionToken('MSAL_INTERCEPTOR_CONFIG');
|
|
9
|
-
export const MSAL_BROADCAST_CONFIG = new InjectionToken('MSAL_BROADCAST_CONFIG');
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBUyxlQUFlLENBQUMsQ0FBQztBQUV6RSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FDakQsbUJBQW1CLENBQ3BCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FDdkQseUJBQXlCLENBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDckQsdUJBQXVCLENBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgY29uc3QgTVNBTF9JTlNUQU5DRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdNU0FMX0lOU1RBTkNFJyk7XHJcblxyXG5leHBvcnQgY29uc3QgTVNBTF9HVUFSRF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPihcclxuICAnTVNBTF9HVUFSRF9DT05GSUcnXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3QgTVNBTF9JTlRFUkNFUFRPUl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPihcclxuICAnTVNBTF9JTlRFUkNFUFRPUl9DT05GSUcnXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3QgTVNBTF9CUk9BRENBU1RfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXHJcbiAgJ01TQUxfQlJPQURDQVNUX0NPTkZJRydcclxuKTtcclxuIl19
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
export {};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNhbC5icm9hZGNhc3QuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21zYWwuYnJvYWRjYXN0LmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmV4cG9ydCB0eXBlIE1zYWxCcm9hZGNhc3RDb25maWd1cmF0aW9uID0ge1xyXG4gIGV2ZW50c1RvUmVwbGF5OiBudW1iZXI7XHJcbn07XHJcbiJdfQ==
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
6
|
-
import { EventMessageUtils, InteractionStatus, } from '@azure/msal-browser';
|
|
7
|
-
import { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';
|
|
8
|
-
import { MSAL_BROADCAST_CONFIG, MSAL_INSTANCE } from './constants';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "./msal.service";
|
|
11
|
-
export class MsalBroadcastService {
|
|
12
|
-
constructor(msalInstance, authService, msalBroadcastConfig) {
|
|
13
|
-
this.msalInstance = msalInstance;
|
|
14
|
-
this.authService = authService;
|
|
15
|
-
this.msalBroadcastConfig = msalBroadcastConfig;
|
|
16
|
-
// Make _msalSubject a ReplaySubject if configured to replay past events
|
|
17
|
-
if (this.msalBroadcastConfig &&
|
|
18
|
-
this.msalBroadcastConfig.eventsToReplay > 0) {
|
|
19
|
-
this.authService
|
|
20
|
-
.getLogger()
|
|
21
|
-
.verbose(`BroadcastService - eventsToReplay set on BroadcastConfig, replaying the last ${this.msalBroadcastConfig.eventsToReplay} events`);
|
|
22
|
-
this._msalSubject = new ReplaySubject(this.msalBroadcastConfig.eventsToReplay);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
// Defaults to _msalSubject being a Subject
|
|
26
|
-
this._msalSubject = new Subject();
|
|
27
|
-
}
|
|
28
|
-
this.msalSubject$ = this._msalSubject.asObservable();
|
|
29
|
-
// InProgress as BehaviorSubject so most recent inProgress state will be available upon subscription
|
|
30
|
-
this._inProgress = new BehaviorSubject(InteractionStatus.Startup);
|
|
31
|
-
this.inProgress$ = this._inProgress.asObservable();
|
|
32
|
-
this.msalInstance.addEventCallback((message) => {
|
|
33
|
-
this._msalSubject.next(message);
|
|
34
|
-
const status = EventMessageUtils.getInteractionStatusFromEvent(message, this._inProgress.value);
|
|
35
|
-
if (status !== null) {
|
|
36
|
-
this.authService
|
|
37
|
-
.getLogger()
|
|
38
|
-
.verbose(`BroadcastService - ${message.eventType} results in setting inProgress from ${this._inProgress.value} to ${status}`);
|
|
39
|
-
this._inProgress.next(status);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
MsalBroadcastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MsalBroadcastService, deps: [{ token: MSAL_INSTANCE }, { token: i1.MsalService }, { token: MSAL_BROADCAST_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
45
|
-
MsalBroadcastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MsalBroadcastService });
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MsalBroadcastService, decorators: [{
|
|
47
|
-
type: Injectable
|
|
48
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
49
|
-
type: Inject,
|
|
50
|
-
args: [MSAL_INSTANCE]
|
|
51
|
-
}] }, { type: i1.MsalService }, { type: undefined, decorators: [{
|
|
52
|
-
type: Optional
|
|
53
|
-
}, {
|
|
54
|
-
type: Inject,
|
|
55
|
-
args: [MSAL_BROADCAST_CONFIG]
|
|
56
|
-
}] }]; } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNhbC5icm9hZGNhc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tc2FsLmJyb2FkY2FzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBRUwsaUJBQWlCLEVBRWpCLGlCQUFpQixHQUNsQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUczRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFHbkUsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQixZQUNpQyxZQUFzQyxFQUM3RCxXQUF3QixFQUd4QixtQkFBZ0Q7UUFKekIsaUJBQVksR0FBWixZQUFZLENBQTBCO1FBQzdELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBR3hCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBNkI7UUFFeEQsd0VBQXdFO1FBQ3hFLElBQ0UsSUFBSSxDQUFDLG1CQUFtQjtZQUN4QixJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxHQUFHLENBQUMsRUFDM0M7WUFDQSxJQUFJLENBQUMsV0FBVztpQkFDYixTQUFTLEVBQUU7aUJBQ1gsT0FBTyxDQUNOLGdGQUFnRixJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxTQUFTLENBQ2pJLENBQUM7WUFDSixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksYUFBYSxDQUNuQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUN4QyxDQUFDO1NBQ0g7YUFBTTtZQUNMLDJDQUEyQztZQUMzQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1NBQ2pEO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXJELG9HQUFvRztRQUNwRyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksZUFBZSxDQUNwQyxpQkFBaUIsQ0FBQyxPQUFPLENBQzFCLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFbkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtZQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyw2QkFBNkIsQ0FDNUQsT0FBTyxFQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUN2QixDQUFDO1lBQ0YsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO2dCQUNuQixJQUFJLENBQUMsV0FBVztxQkFDYixTQUFTLEVBQUU7cUJBQ1gsT0FBTyxDQUNOLHNCQUFzQixPQUFPLENBQUMsU0FBUyx1Q0FBdUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLE9BQU8sTUFBTSxFQUFFLENBQ3BILENBQUM7Z0JBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDL0I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2lIQXREVSxvQkFBb0Isa0JBT3JCLGFBQWEsd0NBR2IscUJBQXFCO3FIQVZwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVTs7MEJBUU4sTUFBTTsyQkFBQyxhQUFhOzswQkFFcEIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBFdmVudE1lc3NhZ2UsXHJcbiAgRXZlbnRNZXNzYWdlVXRpbHMsXHJcbiAgSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uLFxyXG4gIEludGVyYWN0aW9uU3RhdHVzLFxyXG59IGZyb20gJ0BhenVyZS9tc2FsLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTXNhbFNlcnZpY2UgfSBmcm9tICcuL21zYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IE1zYWxCcm9hZGNhc3RDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9tc2FsLmJyb2FkY2FzdC5jb25maWcnO1xyXG5pbXBvcnQgeyBNU0FMX0JST0FEQ0FTVF9DT05GSUcsIE1TQUxfSU5TVEFOQ0UgfSBmcm9tICcuL2NvbnN0YW50cyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNc2FsQnJvYWRjYXN0U2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfbXNhbFN1YmplY3Q6IFN1YmplY3Q8RXZlbnRNZXNzYWdlPjtcclxuICBwdWJsaWMgbXNhbFN1YmplY3QkOiBPYnNlcnZhYmxlPEV2ZW50TWVzc2FnZT47XHJcbiAgcHJpdmF0ZSBfaW5Qcm9ncmVzczogQmVoYXZpb3JTdWJqZWN0PEludGVyYWN0aW9uU3RhdHVzPjtcclxuICBwdWJsaWMgaW5Qcm9ncmVzcyQ6IE9ic2VydmFibGU8SW50ZXJhY3Rpb25TdGF0dXM+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTVNBTF9JTlNUQU5DRSkgcHJpdmF0ZSBtc2FsSW5zdGFuY2U6IElQdWJsaWNDbGllbnRBcHBsaWNhdGlvbixcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IE1zYWxTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKClcclxuICAgIEBJbmplY3QoTVNBTF9CUk9BRENBU1RfQ09ORklHKVxyXG4gICAgcHJpdmF0ZSBtc2FsQnJvYWRjYXN0Q29uZmlnPzogTXNhbEJyb2FkY2FzdENvbmZpZ3VyYXRpb25cclxuICApIHtcclxuICAgIC8vIE1ha2UgX21zYWxTdWJqZWN0IGEgUmVwbGF5U3ViamVjdCBpZiBjb25maWd1cmVkIHRvIHJlcGxheSBwYXN0IGV2ZW50c1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLm1zYWxCcm9hZGNhc3RDb25maWcgJiZcclxuICAgICAgdGhpcy5tc2FsQnJvYWRjYXN0Q29uZmlnLmV2ZW50c1RvUmVwbGF5ID4gMFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2VcclxuICAgICAgICAuZ2V0TG9nZ2VyKClcclxuICAgICAgICAudmVyYm9zZShcclxuICAgICAgICAgIGBCcm9hZGNhc3RTZXJ2aWNlIC0gZXZlbnRzVG9SZXBsYXkgc2V0IG9uIEJyb2FkY2FzdENvbmZpZywgcmVwbGF5aW5nIHRoZSBsYXN0ICR7dGhpcy5tc2FsQnJvYWRjYXN0Q29uZmlnLmV2ZW50c1RvUmVwbGF5fSBldmVudHNgXHJcbiAgICAgICAgKTtcclxuICAgICAgdGhpcy5fbXNhbFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxFdmVudE1lc3NhZ2U+KFxyXG4gICAgICAgIHRoaXMubXNhbEJyb2FkY2FzdENvbmZpZy5ldmVudHNUb1JlcGxheVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gRGVmYXVsdHMgdG8gX21zYWxTdWJqZWN0IGJlaW5nIGEgU3ViamVjdFxyXG4gICAgICB0aGlzLl9tc2FsU3ViamVjdCA9IG5ldyBTdWJqZWN0PEV2ZW50TWVzc2FnZT4oKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm1zYWxTdWJqZWN0JCA9IHRoaXMuX21zYWxTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIC8vIEluUHJvZ3Jlc3MgYXMgQmVoYXZpb3JTdWJqZWN0IHNvIG1vc3QgcmVjZW50IGluUHJvZ3Jlc3Mgc3RhdGUgd2lsbCBiZSBhdmFpbGFibGUgdXBvbiBzdWJzY3JpcHRpb25cclxuICAgIHRoaXMuX2luUHJvZ3Jlc3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEludGVyYWN0aW9uU3RhdHVzPihcclxuICAgICAgSW50ZXJhY3Rpb25TdGF0dXMuU3RhcnR1cFxyXG4gICAgKTtcclxuICAgIHRoaXMuaW5Qcm9ncmVzcyQgPSB0aGlzLl9pblByb2dyZXNzLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIHRoaXMubXNhbEluc3RhbmNlLmFkZEV2ZW50Q2FsbGJhY2soKG1lc3NhZ2U6IEV2ZW50TWVzc2FnZSkgPT4ge1xyXG4gICAgICB0aGlzLl9tc2FsU3ViamVjdC5uZXh0KG1lc3NhZ2UpO1xyXG4gICAgICBjb25zdCBzdGF0dXMgPSBFdmVudE1lc3NhZ2VVdGlscy5nZXRJbnRlcmFjdGlvblN0YXR1c0Zyb21FdmVudChcclxuICAgICAgICBtZXNzYWdlLFxyXG4gICAgICAgIHRoaXMuX2luUHJvZ3Jlc3MudmFsdWVcclxuICAgICAgKTtcclxuICAgICAgaWYgKHN0YXR1cyAhPT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcclxuICAgICAgICAgIC5nZXRMb2dnZXIoKVxyXG4gICAgICAgICAgLnZlcmJvc2UoXHJcbiAgICAgICAgICAgIGBCcm9hZGNhc3RTZXJ2aWNlIC0gJHttZXNzYWdlLmV2ZW50VHlwZX0gcmVzdWx0cyBpbiBzZXR0aW5nIGluUHJvZ3Jlc3MgZnJvbSAke3RoaXMuX2luUHJvZ3Jlc3MudmFsdWV9IHRvICR7c3RhdHVzfWBcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5faW5Qcm9ncmVzcy5uZXh0KHN0YXR1cyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
export {};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNhbC5ndWFyZC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbXNhbC5ndWFyZC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQgeyBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtcclxuICBQb3B1cFJlcXVlc3QsXHJcbiAgUmVkaXJlY3RSZXF1ZXN0LFxyXG4gIEludGVyYWN0aW9uVHlwZSxcclxufSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcclxuaW1wb3J0IHsgTXNhbFNlcnZpY2UgfSBmcm9tICcuL21zYWwuc2VydmljZSc7XHJcblxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIE1zYWxHdWFyZEF1dGhSZXF1ZXN0ID1cclxuICB8IFBhcnRpYWw8UG9wdXBSZXF1ZXN0PlxyXG4gIHwgUGFydGlhbDxPbWl0PFJlZGlyZWN0UmVxdWVzdCwgJ3JlZGlyZWN0U3RhcnRQYWdlJz4+O1xyXG5cclxuZXhwb3J0IHR5cGUgTXNhbEd1YXJkQ29uZmlndXJhdGlvbiA9IHtcclxuICBpbnRlcmFjdGlvblR5cGU6IEludGVyYWN0aW9uVHlwZS5Qb3B1cCB8IEludGVyYWN0aW9uVHlwZS5SZWRpcmVjdDtcclxuICBhdXRoUmVxdWVzdD86XHJcbiAgICB8IE1zYWxHdWFyZEF1dGhSZXF1ZXN0XHJcbiAgICB8ICgoXHJcbiAgICAgICAgYXV0aFNlcnZpY2U6IE1zYWxTZXJ2aWNlLFxyXG4gICAgICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90XHJcbiAgICAgICkgPT4gTXNhbEd1YXJkQXV0aFJlcXVlc3QpO1xyXG4gIGxvZ2luRmFpbGVkUm91dGU/OiBzdHJpbmc7XHJcbn07XHJcbiJdfQ==
|
package/esm2020/msal.guard.mjs
DELETED
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { Injectable, Inject } from '@angular/core';
|
|
6
|
-
import { InteractionType, BrowserConfigurationAuthError, BrowserUtils, UrlString, } from '@azure/msal-browser';
|
|
7
|
-
import { of } from 'rxjs';
|
|
8
|
-
import { concatMap, catchError, map } from 'rxjs/operators';
|
|
9
|
-
import { MSAL_GUARD_CONFIG } from './constants';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "./msal.broadcast.service";
|
|
12
|
-
import * as i2 from "./msal.service";
|
|
13
|
-
import * as i3 from "@angular/common";
|
|
14
|
-
import * as i4 from "@angular/router";
|
|
15
|
-
export class MsalGuard {
|
|
16
|
-
constructor(msalGuardConfig, msalBroadcastService, authService, location, router) {
|
|
17
|
-
this.msalGuardConfig = msalGuardConfig;
|
|
18
|
-
this.msalBroadcastService = msalBroadcastService;
|
|
19
|
-
this.authService = authService;
|
|
20
|
-
this.location = location;
|
|
21
|
-
this.router = router;
|
|
22
|
-
// Subscribing so events in MsalGuard will set inProgress$ observable
|
|
23
|
-
this.msalBroadcastService.inProgress$.subscribe();
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Parses url string to UrlTree
|
|
27
|
-
* @param url
|
|
28
|
-
*/
|
|
29
|
-
parseUrl(url) {
|
|
30
|
-
return this.router.parseUrl(url);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Builds the absolute url for the destination page
|
|
34
|
-
* @param path Relative path of requested page
|
|
35
|
-
* @returns Full destination url
|
|
36
|
-
*/
|
|
37
|
-
getDestinationUrl(path) {
|
|
38
|
-
this.authService.getLogger().verbose('Guard - getting destination url');
|
|
39
|
-
// Absolute base url for the application (default to origin if base element not present)
|
|
40
|
-
const baseElements = document.getElementsByTagName('base');
|
|
41
|
-
const baseUrl = this.location.normalize(baseElements.length ? baseElements[0].href : window.location.origin);
|
|
42
|
-
// Path of page (including hash, if using hash routing)
|
|
43
|
-
const pathUrl = this.location.prepareExternalUrl(path);
|
|
44
|
-
// Hash location strategy
|
|
45
|
-
if (pathUrl.startsWith('#')) {
|
|
46
|
-
this.authService
|
|
47
|
-
.getLogger()
|
|
48
|
-
.verbose('Guard - destination by hash routing');
|
|
49
|
-
return `${baseUrl}/${pathUrl}`;
|
|
50
|
-
}
|
|
51
|
-
/*
|
|
52
|
-
* If using path location strategy, pathUrl will include the relative portion of the base path (e.g. /base/page).
|
|
53
|
-
* Since baseUrl also includes /base, can just concatentate baseUrl + path
|
|
54
|
-
*/
|
|
55
|
-
return `${baseUrl}${path}`;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Interactively prompt the user to login
|
|
59
|
-
* @param url Path of the requested page
|
|
60
|
-
*/
|
|
61
|
-
loginInteractively(state) {
|
|
62
|
-
const authRequest = typeof this.msalGuardConfig.authRequest === 'function'
|
|
63
|
-
? this.msalGuardConfig.authRequest(this.authService, state)
|
|
64
|
-
: { ...this.msalGuardConfig.authRequest };
|
|
65
|
-
if (this.msalGuardConfig.interactionType === InteractionType.Popup) {
|
|
66
|
-
this.authService.getLogger().verbose('Guard - logging in by popup');
|
|
67
|
-
return this.authService.loginPopup(authRequest).pipe(map((response) => {
|
|
68
|
-
this.authService
|
|
69
|
-
.getLogger()
|
|
70
|
-
.verbose('Guard - login by popup successful, can activate, setting active account');
|
|
71
|
-
this.authService.instance.setActiveAccount(response.account);
|
|
72
|
-
return true;
|
|
73
|
-
}));
|
|
74
|
-
}
|
|
75
|
-
this.authService.getLogger().verbose('Guard - logging in by redirect');
|
|
76
|
-
const redirectStartPage = this.getDestinationUrl(state.url);
|
|
77
|
-
return this.authService
|
|
78
|
-
.loginRedirect({
|
|
79
|
-
redirectStartPage,
|
|
80
|
-
...authRequest,
|
|
81
|
-
})
|
|
82
|
-
.pipe(map(() => false));
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Helper which checks for the correct interaction type, prevents page with Guard to be set as redirect, and calls handleRedirectObservable
|
|
86
|
-
* @param state
|
|
87
|
-
*/
|
|
88
|
-
activateHelper(state) {
|
|
89
|
-
if (this.msalGuardConfig.interactionType !== InteractionType.Popup &&
|
|
90
|
-
this.msalGuardConfig.interactionType !== InteractionType.Redirect) {
|
|
91
|
-
throw new BrowserConfigurationAuthError('invalid_interaction_type', 'Invalid interaction type provided to MSAL Guard. InteractionType.Popup or InteractionType.Redirect must be provided in the MsalGuardConfiguration');
|
|
92
|
-
}
|
|
93
|
-
this.authService.getLogger().verbose('MSAL Guard activated');
|
|
94
|
-
/*
|
|
95
|
-
* If a page with MSAL Guard is set as the redirect for acquireTokenSilent,
|
|
96
|
-
* short-circuit to prevent redirecting or popups.
|
|
97
|
-
*/
|
|
98
|
-
if (typeof window !== 'undefined') {
|
|
99
|
-
if (UrlString.hashContainsKnownProperties(window.location.hash) &&
|
|
100
|
-
BrowserUtils.isInIframe() &&
|
|
101
|
-
!this.authService.instance.getConfiguration().system
|
|
102
|
-
.allowRedirectInIframe) {
|
|
103
|
-
this.authService
|
|
104
|
-
.getLogger()
|
|
105
|
-
.warning('Guard - redirectUri set to page with MSAL Guard. It is recommended to not set redirectUri to a page that requires authentication.');
|
|
106
|
-
return of(false);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
this.authService
|
|
111
|
-
.getLogger()
|
|
112
|
-
.info('Guard - window is undefined, MSAL does not support server-side token acquisition');
|
|
113
|
-
return of(true);
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* If a loginFailedRoute is set in the config, set this as the loginFailedRoute
|
|
117
|
-
*/
|
|
118
|
-
if (this.msalGuardConfig.loginFailedRoute) {
|
|
119
|
-
this.loginFailedRoute = this.parseUrl(this.msalGuardConfig.loginFailedRoute);
|
|
120
|
-
}
|
|
121
|
-
// Capture current path before it gets changed by handleRedirectObservable
|
|
122
|
-
const currentPath = this.location.path(true);
|
|
123
|
-
return this.authService.initialize().pipe(concatMap(() => {
|
|
124
|
-
return this.authService.handleRedirectObservable();
|
|
125
|
-
}), concatMap(() => {
|
|
126
|
-
if (!this.authService.instance.getAllAccounts().length) {
|
|
127
|
-
if (state) {
|
|
128
|
-
this.authService
|
|
129
|
-
.getLogger()
|
|
130
|
-
.verbose('Guard - no accounts retrieved, log in required to activate');
|
|
131
|
-
return this.loginInteractively(state);
|
|
132
|
-
}
|
|
133
|
-
this.authService
|
|
134
|
-
.getLogger()
|
|
135
|
-
.verbose('Guard - no accounts retrieved, no state, cannot load');
|
|
136
|
-
return of(false);
|
|
137
|
-
}
|
|
138
|
-
this.authService
|
|
139
|
-
.getLogger()
|
|
140
|
-
.verbose('Guard - at least 1 account exists, can activate or load');
|
|
141
|
-
// Prevent navigating the app to /#code= or /code=
|
|
142
|
-
if (state) {
|
|
143
|
-
/*
|
|
144
|
-
* Path routing:
|
|
145
|
-
* state.url: /#code=...
|
|
146
|
-
* state.root.fragment: code=...
|
|
147
|
-
*/
|
|
148
|
-
/*
|
|
149
|
-
* Hash routing:
|
|
150
|
-
* state.url: /code
|
|
151
|
-
* state.root.fragment: null
|
|
152
|
-
*/
|
|
153
|
-
const urlContainsCode = this.includesCode(state.url);
|
|
154
|
-
const fragmentContainsCode = !!state.root &&
|
|
155
|
-
!!state.root.fragment &&
|
|
156
|
-
this.includesCode(`#${state.root.fragment}`);
|
|
157
|
-
const hashRouting = this.location.prepareExternalUrl(state.url).indexOf('#') === 0;
|
|
158
|
-
// Ensure code parameter is in fragment (and not in query parameter), or that hash hash routing is used
|
|
159
|
-
if (urlContainsCode && (fragmentContainsCode || hashRouting)) {
|
|
160
|
-
this.authService
|
|
161
|
-
.getLogger()
|
|
162
|
-
.info('Guard - Hash contains known code response, stopping navigation.');
|
|
163
|
-
// Path routing (navigate to current path without hash)
|
|
164
|
-
if (currentPath.indexOf('#') > -1) {
|
|
165
|
-
return of(this.parseUrl(this.location.path()));
|
|
166
|
-
}
|
|
167
|
-
// Hash routing (navigate to root path)
|
|
168
|
-
return of(this.parseUrl(''));
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
return of(true);
|
|
172
|
-
}), catchError((error) => {
|
|
173
|
-
this.authService
|
|
174
|
-
.getLogger()
|
|
175
|
-
.error('Guard - error while logging in, unable to activate');
|
|
176
|
-
this.authService
|
|
177
|
-
.getLogger()
|
|
178
|
-
.errorPii(`Guard - error: ${error.message}`);
|
|
179
|
-
/**
|
|
180
|
-
* If a loginFailedRoute is set, checks to see if state is passed before returning route
|
|
181
|
-
*/
|
|
182
|
-
if (this.loginFailedRoute && state) {
|
|
183
|
-
this.authService
|
|
184
|
-
.getLogger()
|
|
185
|
-
.verbose('Guard - loginFailedRoute set, redirecting');
|
|
186
|
-
return of(this.loginFailedRoute);
|
|
187
|
-
}
|
|
188
|
-
return of(false);
|
|
189
|
-
}));
|
|
190
|
-
}
|
|
191
|
-
includesCode(path) {
|
|
192
|
-
return ((path.lastIndexOf('/code') > -1 &&
|
|
193
|
-
path.lastIndexOf('/code') === path.length - '/code'.length) || // path.endsWith("/code")
|
|
194
|
-
path.indexOf('#code=') > -1 ||
|
|
195
|
-
path.indexOf('&code=') > -1);
|
|
196
|
-
}
|
|
197
|
-
canActivate(route, state) {
|
|
198
|
-
this.authService.getLogger().verbose('Guard - canActivate');
|
|
199
|
-
return this.activateHelper(state);
|
|
200
|
-
}
|
|
201
|
-
canActivateChild(route, state) {
|
|
202
|
-
this.authService.getLogger().verbose('Guard - canActivateChild');
|
|
203
|
-
return this.activateHelper(state);
|
|
204
|
-
}
|
|
205
|
-
canMatch() {
|
|
206
|
-
this.authService.getLogger().verbose('Guard - canLoad');
|
|
207
|
-
return this.activateHelper();
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
MsalGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MsalGuard, deps: [{ token: MSAL_GUARD_CONFIG }, { token: i1.MsalBroadcastService }, { token: i2.MsalService }, { token: i3.Location }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
211
|
-
MsalGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MsalGuard });
|
|
212
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MsalGuard, decorators: [{
|
|
213
|
-
type: Injectable
|
|
214
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
215
|
-
type: Inject,
|
|
216
|
-
args: [MSAL_GUARD_CONFIG]
|
|
217
|
-
}] }, { type: i1.MsalBroadcastService }, { type: i2.MsalService }, { type: i3.Location }, { type: i4.Router }]; } });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNhbC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tc2FsLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUW5ELE9BQU8sRUFDTCxlQUFlLEVBQ2YsNkJBQTZCLEVBQzdCLFlBQVksRUFDWixTQUFTLEdBSVYsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBR2hELE1BQU0sT0FBTyxTQUFTO0lBR3BCLFlBQ3FDLGVBQXVDLEVBQ2xFLG9CQUEwQyxFQUMxQyxXQUF3QixFQUN4QixRQUFrQixFQUNsQixNQUFjO1FBSmEsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ2xFLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRXRCLHFFQUFxRTtRQUNyRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsR0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCLENBQUMsSUFBWTtRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FB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LHlCQUF5QjtZQUMxRixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FDVCxLQUE2QixFQUM3QixLQUEwQjtRQUUxQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZ0JBQWdCLENBQ2QsS0FBNkIsRUFDN0IsS0FBMEI7UUFFMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQy9CLENBQUM7O3NHQWxRVSxTQUFTLGtCQUlWLGlCQUFpQjswR0FKaEIsU0FBUzsyRkFBVCxTQUFTO2tCQURyQixVQUFVOzswQkFLTixNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxyXG4gIFJvdXRlclN0YXRlU25hcHNob3QsXHJcbiAgVXJsVHJlZSxcclxuICBSb3V0ZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtcclxuICBJbnRlcmFjdGlvblR5cGUsXHJcbiAgQnJvd3NlckNvbmZpZ3VyYXRpb25BdXRoRXJyb3IsXHJcbiAgQnJvd3NlclV0aWxzLFxyXG4gIFVybFN0cmluZyxcclxuICBQb3B1cFJlcXVlc3QsXHJcbiAgUmVkaXJlY3RSZXF1ZXN0LFxyXG4gIEF1dGhlbnRpY2F0aW9uUmVzdWx0LFxyXG59IGZyb20gJ0BhenVyZS9tc2FsLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjb25jYXRNYXAsIGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTXNhbFNlcnZpY2UgfSBmcm9tICcuL21zYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IE1zYWxHdWFyZENvbmZpZ3VyYXRpb24gfSBmcm9tICcuL21zYWwuZ3VhcmQuY29uZmlnJztcclxuaW1wb3J0IHsgTXNhbEJyb2FkY2FzdFNlcnZpY2UgfSBmcm9tICcuL21zYWwuYnJvYWRjYXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNU0FMX0dVQVJEX0NPTkZJRyB9IGZyb20gJy4vY29uc3RhbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE1zYWxHdWFyZCB7XHJcbiAgcHJpdmF0ZSBsb2dpbkZhaWxlZFJvdXRlPzogVXJsVHJlZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KE1TQUxfR1VBUkRfQ09ORklHKSBwcml2YXRlIG1zYWxHdWFyZENvbmZpZzogTXNhbEd1YXJkQ29uZmlndXJhdGlvbixcclxuICAgIHByaXZhdGUgbXNhbEJyb2FkY2FzdFNlcnZpY2U6IE1zYWxCcm9hZGNhc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogTXNhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHtcclxuICAgIC8vIFN1YnNjcmliaW5nIHNvIGV2ZW50cyBpbiBNc2FsR3VhcmQgd2lsbCBzZXQgaW5Qcm9ncmVzcyQgb2JzZXJ2YWJsZVxyXG4gICAgdGhpcy5tc2FsQnJvYWRjYXN0U2VydmljZS5pblByb2dyZXNzJC5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhcnNlcyB1cmwgc3RyaW5nIHRvIFVybFRyZWVcclxuICAgKiBAcGFyYW0gdXJsXHJcbiAgICovXHJcbiAgcGFyc2VVcmwodXJsOiBzdHJpbmcpOiBVcmxUcmVlIHtcclxuICAgIHJldHVybiB0aGlzLnJvdXRlci5wYXJzZVVybCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnVpbGRzIHRoZSBhYnNvbHV0ZSB1cmwgZm9yIHRoZSBkZXN0aW5hdGlvbiBwYWdlXHJcbiAgICogQHBhcmFtIHBhdGggUmVsYXRpdmUgcGF0aCBvZiByZXF1ZXN0ZWQgcGFnZVxyXG4gICAqIEByZXR1cm5zIEZ1bGwgZGVzdGluYXRpb24gdXJsXHJcbiAgICovXHJcbiAgZ2V0RGVzdGluYXRpb25VcmwocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0TG9nZ2VyKCkudmVyYm9zZSgnR3VhcmQgLSBnZXR0aW5nIGRlc3RpbmF0aW9uIHVybCcpO1xyXG4gICAgLy8gQWJzb2x1dGUgYmFzZSB1cmwgZm9yIHRoZSBhcHBsaWNhdGlvbiAoZGVmYXVsdCB0byBvcmlnaW4gaWYgYmFzZSBlbGVtZW50IG5vdCBwcmVzZW50KVxyXG4gICAgY29uc3QgYmFzZUVsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Jhc2UnKTtcclxuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmxvY2F0aW9uLm5vcm1hbGl6ZShcclxuICAgICAgYmFzZUVsZW1lbnRzLmxlbmd0aCA/IGJhc2VFbGVtZW50c1swXS5ocmVmIDogd2luZG93LmxvY2F0aW9uLm9yaWdpblxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBQYXRoIG9mIHBhZ2UgKGluY2x1ZGluZyBoYXNoLCBpZiB1c2luZyBoYXNoIHJvdXRpbmcpXHJcbiAgICBjb25zdCBwYXRoVXJsID0gdGhpcy5sb2NhdGlvbi5wcmVwYXJlRXh0ZXJuYWxVcmwocGF0aCk7XHJcblxyXG4gICAgLy8gSGFzaCBsb2NhdGlvbiBzdHJhdGVneVxyXG4gICAgaWYgKHBhdGhVcmwuc3RhcnRzV2l0aCgnIycpKSB7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2VcclxuICAgICAgICAuZ2V0TG9nZ2VyKClcclxuICAgICAgICAudmVyYm9zZSgnR3VhcmQgLSBkZXN0aW5hdGlvbiBieSBoYXNoIHJvdXRpbmcnKTtcclxuICAgICAgcmV0dXJuIGAke2Jhc2VVcmx9LyR7cGF0aFVybH1gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgKiBJZiB1c2luZyBwYXRoIGxvY2F0aW9uIHN0cmF0ZWd5LCBwYXRoVXJsIHdpbGwgaW5jbHVkZSB0aGUgcmVsYXRpdmUgcG9ydGlvbiBvZiB0aGUgYmFzZSBwYXRoIChlLmcuIC9iYXNlL3BhZ2UpLlxyXG4gICAgICogU2luY2UgYmFzZVVybCBhbHNvIGluY2x1ZGVzIC9iYXNlLCBjYW4ganVzdCBjb25jYXRlbnRhdGUgYmFzZVVybCArIHBhdGhcclxuICAgICAqL1xyXG4gICAgcmV0dXJuIGAke2Jhc2VVcmx9JHtwYXRofWA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnRlcmFjdGl2ZWx5IHByb21wdCB0aGUgdXNlciB0byBsb2dpblxyXG4gICAqIEBwYXJhbSB1cmwgUGF0aCBvZiB0aGUgcmVxdWVzdGVkIHBhZ2VcclxuICAgKi9cclxuICBwcml2YXRlIGxvZ2luSW50ZXJhY3RpdmVseShzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3QgYXV0aFJlcXVlc3QgPVxyXG4gICAgICB0eXBlb2YgdGhpcy5tc2FsR3VhcmRDb25maWcuYXV0aFJlcXVlc3QgPT09ICdmdW5jdGlvbidcclxuICAgICAgICA/IHRoaXMubXNhbEd1YXJkQ29uZmlnLmF1dGhSZXF1ZXN0KHRoaXMuYXV0aFNlcnZpY2UsIHN0YXRlKVxyXG4gICAgICAgIDogeyAuLi50aGlzLm1zYWxHdWFyZENvbmZpZy5hdXRoUmVxdWVzdCB9O1xyXG4gICAgaWYgKHRoaXMubXNhbEd1YXJkQ29uZmlnLmludGVyYWN0aW9uVHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlLlBvcHVwKSB7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0TG9nZ2VyKCkudmVyYm9zZSgnR3VhcmQgLSBsb2dnaW5nIGluIGJ5IHBvcHVwJyk7XHJcbiAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luUG9wdXAoYXV0aFJlcXVlc3QgYXMgUG9wdXBSZXF1ZXN0KS5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IEF1dGhlbnRpY2F0aW9uUmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxyXG4gICAgICAgICAgICAudmVyYm9zZShcclxuICAgICAgICAgICAgICAnR3VhcmQgLSBsb2dpbiBieSBwb3B1cCBzdWNjZXNzZnVsLCBjYW4gYWN0aXZhdGUsIHNldHRpbmcgYWN0aXZlIGFjY291bnQnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmluc3RhbmNlLnNldEFjdGl2ZUFjY291bnQocmVzcG9uc2UuYWNjb3VudCk7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0TG9nZ2VyKCkudmVyYm9zZSgnR3VhcmQgLSBsb2dnaW5nIGluIGJ5IHJlZGlyZWN0Jyk7XHJcbiAgICBjb25zdCByZWRpcmVjdFN0YXJ0UGFnZSA9IHRoaXMuZ2V0RGVzdGluYXRpb25Vcmwoc3RhdGUudXJsKTtcclxuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlXHJcbiAgICAgIC5sb2dpblJlZGlyZWN0KHtcclxuICAgICAgICByZWRpcmVjdFN0YXJ0UGFnZSxcclxuICAgICAgICAuLi5hdXRoUmVxdWVzdCxcclxuICAgICAgfSBhcyBSZWRpcmVjdFJlcXVlc3QpXHJcbiAgICAgIC5waXBlKG1hcCgoKSA9PiBmYWxzZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGVscGVyIHdoaWNoIGNoZWNrcyBmb3IgdGhlIGNvcnJlY3QgaW50ZXJhY3Rpb24gdHlwZSwgcHJldmVudHMgcGFnZSB3aXRoIEd1YXJkIHRvIGJlIHNldCBhcyByZWRpcmVjdCwgYW5kIGNhbGxzIGhhbmRsZVJlZGlyZWN0T2JzZXJ2YWJsZVxyXG4gICAqIEBwYXJhbSBzdGF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWN0aXZhdGVIZWxwZXIoXHJcbiAgICBzdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3RcclxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMubXNhbEd1YXJkQ29uZmlnLmludGVyYWN0aW9uVHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlLlBvcHVwICYmXHJcbiAgICAgIHRoaXMubXNhbEd1YXJkQ29uZmlnLmludGVyYWN0aW9uVHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlLlJlZGlyZWN0XHJcbiAgICApIHtcclxuICAgICAgdGhyb3cgbmV3IEJyb3dzZXJDb25maWd1cmF0aW9uQXV0aEVycm9yKFxyXG4gICAgICAgICdpbnZhbGlkX2ludGVyYWN0aW9uX3R5cGUnLFxyXG4gICAgICAgICdJbnZhbGlkIGludGVyYWN0aW9uIHR5cGUgcHJvdmlkZWQgdG8gTVNBTCBHdWFyZC4gSW50ZXJhY3Rpb25UeXBlLlBvcHVwIG9yIEludGVyYWN0aW9uVHlwZS5SZWRpcmVjdCBtdXN0IGJlIHByb3ZpZGVkIGluIHRoZSBNc2FsR3VhcmRDb25maWd1cmF0aW9uJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hdXRoU2VydmljZS5nZXRMb2dnZXIoKS52ZXJib3NlKCdNU0FMIEd1YXJkIGFjdGl2YXRlZCcpO1xyXG5cclxuICAgIC8qXHJcbiAgICAgKiBJZiBhIHBhZ2Ugd2l0aCBNU0FMIEd1YXJkIGlzIHNldCBhcyB0aGUgcmVkaXJlY3QgZm9yIGFjcXVpcmVUb2tlblNpbGVudCxcclxuICAgICAqIHNob3J0LWNpcmN1aXQgdG8gcHJldmVudCByZWRpcmVjdGluZyBvciBwb3B1cHMuXHJcbiAgICAgKi9cclxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgVXJsU3RyaW5nLmhhc2hDb250YWluc0tub3duUHJvcGVydGllcyh3aW5kb3cubG9jYXRpb24uaGFzaCkgJiZcclxuICAgICAgICBCcm93c2VyVXRpbHMuaXNJbklmcmFtZSgpICYmXHJcbiAgICAgICAgIXRoaXMuYXV0aFNlcnZpY2UuaW5zdGFuY2UuZ2V0Q29uZmlndXJhdGlvbigpLnN5c3RlbVxyXG4gICAgICAgICAgLmFsbG93UmVkaXJlY3RJbklmcmFtZVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlXHJcbiAgICAgICAgICAuZ2V0TG9nZ2VyKClcclxuICAgICAgICAgIC53YXJuaW5nKFxyXG4gICAgICAgICAgICAnR3VhcmQgLSByZWRpcmVjdFVyaSBzZXQgdG8gcGFnZSB3aXRoIE1TQUwgR3VhcmQuIEl0IGlzIHJlY29tbWVuZGVkIHRvIG5vdCBzZXQgcmVkaXJlY3RVcmkgdG8gYSBwYWdlIHRoYXQgcmVxdWlyZXMgYXV0aGVudGljYXRpb24uJ1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlXHJcbiAgICAgICAgLmdldExvZ2dlcigpXHJcbiAgICAgICAgLmluZm8oXHJcbiAgICAgICAgICAnR3VhcmQgLSB3aW5kb3cgaXMgdW5kZWZpbmVkLCBNU0FMIGRvZXMgbm90IHN1cHBvcnQgc2VydmVyLXNpZGUgdG9rZW4gYWNxdWlzaXRpb24nXHJcbiAgICAgICAgKTtcclxuICAgICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWYgYSBsb2dpbkZhaWxlZFJvdXRlIGlzIHNldCBpbiB0aGUgY29uZmlnLCBzZXQgdGhpcyBhcyB0aGUgbG9naW5GYWlsZWRSb3V0ZVxyXG4gICAgICovXHJcbiAgICBpZiAodGhpcy5tc2FsR3VhcmRDb25maWcubG9naW5GYWlsZWRSb3V0ZSkge1xyXG4gICAgICB0aGlzLmxvZ2luRmFpbGVkUm91dGUgPSB0aGlzLnBhcnNlVXJsKFxyXG4gICAgICAgIHRoaXMubXNhbEd1YXJkQ29uZmlnLmxvZ2luRmFpbGVkUm91dGVcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDYXB0dXJlIGN1cnJlbnQgcGF0aCBiZWZvcmUgaXQgZ2V0cyBjaGFuZ2VkIGJ5IGhhbmRsZVJlZGlyZWN0T2JzZXJ2YWJsZVxyXG4gICAgY29uc3QgY3VycmVudFBhdGggPSB0aGlzLmxvY2F0aW9uLnBhdGgodHJ1ZSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuaW5pdGlhbGl6ZSgpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuaGFuZGxlUmVkaXJlY3RPYnNlcnZhYmxlKCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjb25jYXRNYXAoKCkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5hdXRoU2VydmljZS5pbnN0YW5jZS5nZXRBbGxBY2NvdW50cygpLmxlbmd0aCkge1xyXG4gICAgICAgICAgaWYgKHN0YXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcclxuICAgICAgICAgICAgICAuZ2V0TG9nZ2VyKClcclxuICAgICAgICAgICAgICAudmVyYm9zZShcclxuICAgICAgICAgICAgICAgICdHdWFyZCAtIG5vIGFjY291bnRzIHJldHJpZXZlZCwgbG9nIGluIHJlcXVpcmVkIHRvIGFjdGl2YXRlJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvZ2luSW50ZXJhY3RpdmVseShzdGF0ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxyXG4gICAgICAgICAgICAudmVyYm9zZSgnR3VhcmQgLSBubyBhY2NvdW50cyByZXRyaWV2ZWQsIG5vIHN0YXRlLCBjYW5ub3QgbG9hZCcpO1xyXG4gICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcclxuICAgICAgICAgIC5nZXRMb2dnZXIoKVxyXG4gICAgICAgICAgLnZlcmJvc2UoJ0d1YXJkIC0gYXQgbGVhc3QgMSBhY2NvdW50IGV4aXN0cywgY2FuIGFjdGl2YXRlIG9yIGxvYWQnKTtcclxuXHJcbiAgICAgICAgLy8gUHJldmVudCBuYXZpZ2F0aW5nIHRoZSBhcHAgdG8gLyNjb2RlPSBvciAvY29kZT1cclxuICAgICAgICBpZiAoc3RhdGUpIHtcclxuICAgICAgICAgIC8qXHJcbiAgICAgICAgICAgKiBQYXRoIHJvdXRpbmc6XHJcbiAgICAgICAgICAgKiBzdGF0ZS51cmw6IC8jY29kZT0uLi5cclxuICAgICAgICAgICAqIHN0YXRlLnJvb3QuZnJhZ21lbnQ6IGNvZGU9Li4uXHJcbiAgICAgICAgICAgKi9cclxuXHJcbiAgICAgICAgICAvKlxyXG4gICAgICAgICAgICogSGFzaCByb3V0aW5nOlxyXG4gICAgICAgICAgICogc3RhdGUudXJsOiAvY29kZVxyXG4gICAgICAgICAgICogc3RhdGUucm9vdC5mcmFnbWVudDogbnVsbFxyXG4gICAgICAgICAgICovXHJcbiAgICAgICAgICBjb25zdCB1cmxDb250YWluc0NvZGU6IGJvb2xlYW4gPSB0aGlzLmluY2x1ZGVzQ29kZShzdGF0ZS51cmwpO1xyXG4gICAgICAgICAgY29uc3QgZnJhZ21lbnRDb250YWluc0NvZGU6IGJvb2xlYW4gPVxyXG4gICAgICAgICAgICAhIXN0YXRlLnJvb3QgJiZcclxuICAgICAgICAgICAgISFzdGF0ZS5yb290LmZyYWdtZW50ICYmXHJcbiAgICAgICAgICAgIHRoaXMuaW5jbHVkZXNDb2RlKGAjJHtzdGF0ZS5yb290LmZyYWdtZW50fWApO1xyXG4gICAgICAgICAgY29uc3QgaGFzaFJvdXRpbmc6IGJvb2xlYW4gPVxyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnByZXBhcmVFeHRlcm5hbFVybChzdGF0ZS51cmwpLmluZGV4T2YoJyMnKSA9PT0gMDtcclxuXHJcbiAgICAgICAgICAvLyBFbnN1cmUgY29kZSBwYXJhbWV0ZXIgaXMgaW4gZnJhZ21lbnQgKGFuZCBub3QgaW4gcXVlcnkgcGFyYW1ldGVyKSwgb3IgdGhhdCBoYXNoIGhhc2ggcm91dGluZyBpcyB1c2VkXHJcbiAgICAgICAgICBpZiAodXJsQ29udGFpbnNDb2RlICYmIChmcmFnbWVudENvbnRhaW5zQ29kZSB8fCBoYXNoUm91dGluZykpIHtcclxuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZVxyXG4gICAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxyXG4gICAgICAgICAgICAgIC5pbmZvKFxyXG4gICAgICAgICAgICAgICAgJ0d1YXJkIC0gSGFzaCBjb250YWlucyBrbm93biBjb2RlIHJlc3BvbnNlLCBzdG9wcGluZyBuYXZpZ2F0aW9uLidcclxuICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgLy8gUGF0aCByb3V0aW5nIChuYXZpZ2F0ZSB0byBjdXJyZW50IHBhdGggd2l0aG91dCBoYXNoKVxyXG4gICAgICAgICAgICBpZiAoY3VycmVudFBhdGguaW5kZXhPZignIycpID4gLTEpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gb2YodGhpcy5wYXJzZVVybCh0aGlzLmxvY2F0aW9uLnBhdGgoKSkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBIYXNoIHJvdXRpbmcgKG5hdmlnYXRlIHRvIHJvb3QgcGF0aClcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMucGFyc2VVcmwoJycpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvZih0cnVlKTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBFcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcclxuICAgICAgICAgIC5nZXRMb2dnZXIoKVxyXG4gICAgICAgICAgLmVycm9yKCdHdWFyZCAtIGVycm9yIHdoaWxlIGxvZ2dpbmcgaW4sIHVuYWJsZSB0byBhY3RpdmF0ZScpO1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcclxuICAgICAgICAgIC5nZXRMb2dnZXIoKVxyXG4gICAgICAgICAgLmVycm9yUGlpKGBHdWFyZCAtIGVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCk7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSWYgYSBsb2dpbkZhaWxlZFJvdXRlIGlzIHNldCwgY2hlY2tzIHRvIHNlZSBpZiBzdGF0ZSBpcyBwYXNzZWQgYmVmb3JlIHJldHVybmluZyByb3V0ZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGlmICh0aGlzLmxvZ2luRmFpbGVkUm91dGUgJiYgc3RhdGUpIHtcclxuICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcclxuICAgICAgICAgICAgLmdldExvZ2dlcigpXHJcbiAgICAgICAgICAgIC52ZXJib3NlKCdHdWFyZCAtIGxvZ2luRmFpbGVkUm91dGUgc2V0LCByZWRpcmVjdGluZycpO1xyXG4gICAgICAgICAgcmV0dXJuIG9mKHRoaXMubG9naW5GYWlsZWRSb3V0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaW5jbHVkZXNDb2RlKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgKHBhdGgubGFzdEluZGV4T2YoJy9jb2RlJykgPiAtMSAmJlxyXG4gICAgICAgIHBhdGgubGFzdEluZGV4T2YoJy9jb2RlJykgPT09IHBhdGgubGVuZ3RoIC0gJy9jb2RlJy5sZW5ndGgpIHx8IC8vIHBhdGguZW5kc1dpdGgoXCIvY29kZVwiKVxyXG4gICAgICBwYXRoLmluZGV4T2YoJyNjb2RlPScpID4gLTEgfHxcclxuICAgICAgcGF0aC5pbmRleE9mKCcmY29kZT0nKSA+IC0xXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2FuQWN0aXZhdGUoXHJcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90XHJcbiAgKTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4ge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5nZXRMb2dnZXIoKS52ZXJib3NlKCdHdWFyZCAtIGNhbkFjdGl2YXRlJyk7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmF0ZUhlbHBlcihzdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBjYW5BY3RpdmF0ZUNoaWxkKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdFxyXG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0TG9nZ2VyKCkudmVyYm9zZSgnR3VhcmQgLSBjYW5BY3RpdmF0ZUNoaWxkJyk7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmF0ZUhlbHBlcihzdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBjYW5NYXRjaCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldExvZ2dlcigpLnZlcmJvc2UoJ0d1YXJkIC0gY2FuTG9hZCcpO1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZhdGVIZWxwZXIoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
export {};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNhbC5pbnRlcmNlcHRvci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbXNhbC5pbnRlcmNlcHRvci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXHJcblxyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVucmVzb2x2ZWRcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcbiAgUG9wdXBSZXF1ZXN0LFxyXG4gIFJlZGlyZWN0UmVxdWVzdCxcclxuICBJbnRlcmFjdGlvblR5cGUsXHJcbiAgU2lsZW50UmVxdWVzdCxcclxufSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcclxuaW1wb3J0IHsgTXNhbFNlcnZpY2UgfSBmcm9tICcuL21zYWwuc2VydmljZSc7XHJcblxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIE1zYWxJbnRlcmNlcHRvckF1dGhSZXF1ZXN0ID1cclxuICB8IE9taXQ8UG9wdXBSZXF1ZXN0LCAnc2NvcGVzJz5cclxuICB8IE9taXQ8UmVkaXJlY3RSZXF1ZXN0LCAnc2NvcGVzJz5cclxuICB8IE9taXQ8U2lsZW50UmVxdWVzdCwgJ3Njb3Blcyc+O1xyXG5cclxuZXhwb3J0IHR5cGUgTXNhbEludGVyY2VwdG9yQ29uZmlndXJhdGlvbiA9IHtcclxuICBpbnRlcmFjdGlvblR5cGU6IEludGVyYWN0aW9uVHlwZS5Qb3B1cCB8IEludGVyYWN0aW9uVHlwZS5SZWRpcmVjdDtcclxuICBwcm90ZWN0ZWRSZXNvdXJjZU1hcDogTWFwPFxyXG4gICAgc3RyaW5nLFxyXG4gICAgQXJyYXk8c3RyaW5nIHwgUHJvdGVjdGVkUmVzb3VyY2VTY29wZXM+IHwgbnVsbFxyXG4gID47XHJcbiAgYXV0aFJlcXVlc3Q/OlxyXG4gICAgfCBNc2FsSW50ZXJjZXB0b3JBdXRoUmVxdWVzdFxyXG4gICAgfCAoKFxyXG4gICAgICAgIG1zYWxTZXJ2aWNlOiBNc2FsU2VydmljZSxcclxuICAgICAgICByZXE6IEh0dHBSZXF1ZXN0PHVua25vd24+LFxyXG4gICAgICAgIG9yaWdpbmFsQXV0aFJlcXVlc3Q6IE1zYWxJbnRlcmNlcHRvckF1dGhSZXF1ZXN0XHJcbiAgICAgICkgPT4gTXNhbEludGVyY2VwdG9yQXV0aFJlcXVlc3QpO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgUHJvdGVjdGVkUmVzb3VyY2VTY29wZXMgPSB7XHJcbiAgaHR0cE1ldGhvZDogc3RyaW5nO1xyXG4gIHNjb3BlczogQXJyYXk8c3RyaW5nPiB8IG51bGw7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBNYXRjaGluZ1Jlc291cmNlcyA9IHtcclxuICBhYnNvbHV0ZVJlc291cmNlczogQXJyYXk8c3RyaW5nPjtcclxuICByZWxhdGl2ZVJlc291cmNlczogQXJyYXk8c3RyaW5nPjtcclxufTtcclxuIl19
|