@azure/msal-angular 4.0.12 → 4.0.13

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.
Files changed (88) hide show
  1. package/.beachballrc +3 -0
  2. package/.editorconfig +16 -0
  3. package/.eslintrc.json +3 -0
  4. package/CHANGELOG.json +2315 -0
  5. package/CHANGELOG.md +869 -0
  6. package/FAQ.md +182 -0
  7. package/angular.json +51 -0
  8. package/docs/angular-universal.md +64 -0
  9. package/docs/configuration.md +609 -0
  10. package/docs/errors.md +89 -0
  11. package/docs/events.md +262 -0
  12. package/docs/initialization.md +206 -0
  13. package/docs/known-issues.md +19 -0
  14. package/docs/logging.md +47 -0
  15. package/docs/msal-guard.md +208 -0
  16. package/docs/msal-interceptor.md +160 -0
  17. package/docs/multi-tenant.md +90 -0
  18. package/docs/performance.md +50 -0
  19. package/docs/public-apis.md +29 -0
  20. package/docs/redirects.md +257 -0
  21. package/docs/security.md +4 -0
  22. package/docs/ssosilent.md +84 -0
  23. package/docs/v0-v1-upgrade-guide.md +61 -0
  24. package/docs/v1-v2-upgrade-guide.md +70 -0
  25. package/docs/v2-v3-upgrade-guide.md +52 -0
  26. package/docs/v3-v4-upgrade-guide.md +36 -0
  27. package/karma.conf.js +44 -0
  28. package/ng-package.json +7 -0
  29. package/package.json +56 -26
  30. package/src/IMsalService.ts +34 -0
  31. package/src/constants.ts +20 -0
  32. package/src/msal.broadcast.config.ts +8 -0
  33. package/src/msal.broadcast.service.spec.ts +471 -0
  34. package/src/msal.broadcast.service.ts +84 -0
  35. package/src/msal.guard.config.ts +27 -0
  36. package/src/msal.guard.spec.ts +525 -0
  37. package/src/msal.guard.ts +290 -0
  38. package/src/msal.interceptor.config.ts +39 -0
  39. package/src/msal.interceptor.spec.ts +1168 -0
  40. package/src/msal.interceptor.ts +388 -0
  41. package/src/msal.module.ts +51 -0
  42. package/src/msal.navigation.client.spec.ts +96 -0
  43. package/src/msal.navigation.client.ts +59 -0
  44. package/src/msal.redirect.component.spec.ts +64 -0
  45. package/src/msal.redirect.component.ts +26 -0
  46. package/src/msal.service.spec.ts +468 -0
  47. package/src/msal.service.ts +104 -0
  48. package/src/packageMetadata.ts +3 -0
  49. package/{public-api.d.ts → src/public-api.ts} +35 -17
  50. package/src/test.ts +19 -0
  51. package/tsconfig.json +25 -0
  52. package/tsconfig.lib.json +27 -0
  53. package/tsconfig.lib.prod.json +10 -0
  54. package/tsconfig.spec.json +17 -0
  55. package/typedoc.json +10 -0
  56. package/IMsalService.d.ts +0 -17
  57. package/constants.d.ts +0 -5
  58. package/esm2020/IMsalService.mjs +0 -6
  59. package/esm2020/azure-msal-angular.mjs +0 -5
  60. package/esm2020/constants.mjs +0 -10
  61. package/esm2020/msal.broadcast.config.mjs +0 -6
  62. package/esm2020/msal.broadcast.service.mjs +0 -66
  63. package/esm2020/msal.guard.config.mjs +0 -6
  64. package/esm2020/msal.guard.mjs +0 -218
  65. package/esm2020/msal.interceptor.config.mjs +0 -6
  66. package/esm2020/msal.interceptor.mjs +0 -270
  67. package/esm2020/msal.module.mjs +0 -46
  68. package/esm2020/msal.navigation.client.mjs +0 -53
  69. package/esm2020/msal.redirect.component.mjs +0 -31
  70. package/esm2020/msal.service.mjs +0 -88
  71. package/esm2020/packageMetadata.mjs +0 -4
  72. package/esm2020/public-api.mjs +0 -18
  73. package/fesm2015/azure-msal-angular.mjs +0 -762
  74. package/fesm2015/azure-msal-angular.mjs.map +0 -1
  75. package/fesm2020/azure-msal-angular.mjs +0 -758
  76. package/fesm2020/azure-msal-angular.mjs.map +0 -1
  77. package/index.d.ts +0 -5
  78. package/msal.broadcast.config.d.ts +0 -3
  79. package/msal.broadcast.service.d.ts +0 -19
  80. package/msal.guard.config.d.ts +0 -9
  81. package/msal.guard.d.ts +0 -43
  82. package/msal.interceptor.config.d.ts +0 -13
  83. package/msal.interceptor.d.ts +0 -70
  84. package/msal.module.d.ts +0 -13
  85. package/msal.navigation.client.d.ts +0 -19
  86. package/msal.redirect.component.d.ts +0 -15
  87. package/msal.service.d.ts +0 -33
  88. package/packageMetadata.d.ts +0 -2
@@ -0,0 +1,10 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "./tsconfig.lib.json",
4
+ "compilerOptions": {
5
+ "declarationMap": false,
6
+ },
7
+ "angularCompilerOptions": {
8
+ "compilationMode": "partial"
9
+ }
10
+ }
@@ -0,0 +1,17 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "./tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "./out-tsc/spec",
6
+ "types": [
7
+ "jasmine"
8
+ ]
9
+ },
10
+ "files": [
11
+ "src/test.ts"
12
+ ],
13
+ "include": [
14
+ "**/*.spec.ts",
15
+ "**/*.d.ts"
16
+ ]
17
+ }
package/typedoc.json ADDED
@@ -0,0 +1,10 @@
1
+ {
2
+ "extends": [
3
+ "../../typedoc.base.json"
4
+ ],
5
+ "entryPoints": [
6
+ "src/public-api.ts"
7
+ ],
8
+ "tsconfig": "tsconfig.lib.prod.json",
9
+ "readme": "./README.md"
10
+ }
package/IMsalService.d.ts DELETED
@@ -1,17 +0,0 @@
1
- import { EndSessionRequest, AuthenticationResult, PopupRequest, RedirectRequest, SilentRequest, Logger, SsoSilentRequest } 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
- logoutRedirect(logoutRequest?: EndSessionRequest): Observable<void>;
13
- logoutPopup(logoutRequest?: EndSessionRequest): Observable<void>;
14
- ssoSilent(request: SsoSilentRequest): Observable<AuthenticationResult>;
15
- getLogger(): Logger;
16
- setLogger(logger: Logger): void;
17
- }
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>;
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSU1zYWxTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0lNc2FsU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgRW5kU2Vzc2lvblJlcXVlc3QsXG4gIEF1dGhlbnRpY2F0aW9uUmVzdWx0LFxuICBQb3B1cFJlcXVlc3QsXG4gIFJlZGlyZWN0UmVxdWVzdCxcbiAgU2lsZW50UmVxdWVzdCxcbiAgTG9nZ2VyLFxuICBTc29TaWxlbnRSZXF1ZXN0LFxufSBmcm9tIFwiQGF6dXJlL21zYWwtYnJvd3NlclwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1zYWxTZXJ2aWNlIHtcbiAgaW5pdGlhbGl6ZSgpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICBhY3F1aXJlVG9rZW5Qb3B1cChyZXF1ZXN0OiBQb3B1cFJlcXVlc3QpOiBPYnNlcnZhYmxlPEF1dGhlbnRpY2F0aW9uUmVzdWx0PjtcbiAgYWNxdWlyZVRva2VuUmVkaXJlY3QocmVxdWVzdDogUmVkaXJlY3RSZXF1ZXN0KTogT2JzZXJ2YWJsZTx2b2lkPjtcbiAgYWNxdWlyZVRva2VuU2lsZW50KFxuICAgIHNpbGVudFJlcXVlc3Q6IFNpbGVudFJlcXVlc3RcbiAgKTogT2JzZXJ2YWJsZTxBdXRoZW50aWNhdGlvblJlc3VsdD47XG4gIGhhbmRsZVJlZGlyZWN0T2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPEF1dGhlbnRpY2F0aW9uUmVzdWx0IHwgbnVsbD47XG4gIGxvZ2luUG9wdXAocmVxdWVzdD86IFBvcHVwUmVxdWVzdCk6IE9ic2VydmFibGU8QXV0aGVudGljYXRpb25SZXN1bHQ+O1xuICBsb2dpblJlZGlyZWN0KHJlcXVlc3Q/OiBSZWRpcmVjdFJlcXVlc3QpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICAvLyBAZGVwcmVjYXRlZDogVXNlIGxvZ291dFJlZGlyZWN0IG9yIGxvZ291dFBvcHVwXG4gIGxvZ291dChsb2dvdXRSZXF1ZXN0PzogRW5kU2Vzc2lvblJlcXVlc3QpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICBsb2dvdXRSZWRpcmVjdChsb2dvdXRSZXF1ZXN0PzogRW5kU2Vzc2lvblJlcXVlc3QpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICBsb2dvdXRQb3B1cChsb2dvdXRSZXF1ZXN0PzogRW5kU2Vzc2lvblJlcXVlc3QpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICBzc29TaWxlbnQocmVxdWVzdDogU3NvU2lsZW50UmVxdWVzdCk6IE9ic2VydmFibGU8QXV0aGVudGljYXRpb25SZXN1bHQ+O1xuICBnZXRMb2dnZXIoKTogTG9nZ2VyO1xuICBzZXRMb2dnZXIobG9nZ2VyOiBMb2dnZXIpOiB2b2lkO1xufVxuIl19
@@ -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
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBUyxlQUFlLENBQUMsQ0FBQztBQUV6RSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FDakQsbUJBQW1CLENBQ3BCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FDdkQseUJBQXlCLENBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDckQsdUJBQXVCLENBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgY29uc3QgTVNBTF9JTlNUQU5DRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFwiTVNBTF9JTlNUQU5DRVwiKTtcblxuZXhwb3J0IGNvbnN0IE1TQUxfR1VBUkRfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXG4gIFwiTVNBTF9HVUFSRF9DT05GSUdcIlxuKTtcblxuZXhwb3J0IGNvbnN0IE1TQUxfSU5URVJDRVBUT1JfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXG4gIFwiTVNBTF9JTlRFUkNFUFRPUl9DT05GSUdcIlxuKTtcblxuZXhwb3J0IGNvbnN0IE1TQUxfQlJPQURDQVNUX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFxuICBcIk1TQUxfQlJPQURDQVNUX0NPTkZJR1wiXG4pO1xuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNhbC5icm9hZGNhc3QuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21zYWwuYnJvYWRjYXN0LmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0IHR5cGUgTXNhbEJyb2FkY2FzdENvbmZpZ3VyYXRpb24gPSB7XG4gIGV2ZW50c1RvUmVwbGF5OiBudW1iZXI7XG59O1xuIl19
@@ -1,66 +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 { name, version } from "./packageMetadata";
10
- import * as i0 from "@angular/core";
11
- export class MsalBroadcastService {
12
- constructor(msalInstance, msalBroadcastConfig) {
13
- this.msalInstance = msalInstance;
14
- this.msalBroadcastConfig = msalBroadcastConfig;
15
- // Make _msalSubject a ReplaySubject if configured to replay past events
16
- if (this.msalBroadcastConfig &&
17
- this.msalBroadcastConfig.eventsToReplay > 0) {
18
- this.msalInstance
19
- .getLogger()
20
- .clone(name, version)
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.msalInstance
37
- .getLogger()
38
- .clone(name, version)
39
- .verbose(`BroadcastService - ${message.eventType} results in setting inProgress from ${this._inProgress.value} to ${status}`);
40
- this._inProgress.next(status);
41
- }
42
- });
43
- }
44
- /**
45
- * Resets inProgress state to None
46
- */
47
- resetInProgressEvent() {
48
- if (this._inProgress.value === InteractionStatus.Startup) {
49
- this._inProgress.next(InteractionStatus.None);
50
- }
51
- }
52
- }
53
- MsalBroadcastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MsalBroadcastService, deps: [{ token: MSAL_INSTANCE }, { token: MSAL_BROADCAST_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
54
- MsalBroadcastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MsalBroadcastService });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MsalBroadcastService, decorators: [{
56
- type: Injectable
57
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
58
- type: Inject,
59
- args: [MSAL_INSTANCE]
60
- }] }, { type: undefined, decorators: [{
61
- type: Optional
62
- }, {
63
- type: Inject,
64
- args: [MSAL_BROADCAST_CONFIG]
65
- }] }]; } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNhbC5icm9hZGNhc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tc2FsLmJyb2FkY2FzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBRUwsaUJBQWlCLEVBRWpCLGlCQUFpQixHQUNsQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBR2xELE1BQU0sT0FBTyxvQkFBb0I7SUFNL0IsWUFDaUMsWUFBc0MsRUFHN0QsbUJBQWdEO1FBSHpCLGlCQUFZLEdBQVosWUFBWSxDQUEwQjtRQUc3RCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTZCO1FBRXhELHdFQUF3RTtRQUN4RSxJQUNFLElBQUksQ0FBQyxtQkFBbUI7WUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsR0FBRyxDQUFDLEVBQzNDO1lBQ0EsSUFBSSxDQUFDLFlBQVk7aUJBQ2QsU0FBUyxFQUFFO2lCQUNYLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO2lCQUNwQixPQUFPLENBQ04sZ0ZBQWdGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLFNBQVMsQ0FDakksQ0FBQztZQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxhQUFhLENBQ25DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQ3hDLENBQUM7U0FDSDthQUFNO1lBQ0wsMkNBQTJDO1lBQzNDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWdCLENBQUM7U0FDakQ7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFckQsb0dBQW9HO1FBQ3BHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxlQUFlLENBQ3BDLGlCQUFpQixDQUFDLE9BQU8sQ0FDMUIsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVuRCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBcUIsRUFBRSxFQUFFO1lBQzNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLDZCQUE2QixDQUM1RCxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQ3ZCLENBQUM7WUFDRixJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxZQUFZO3FCQUNkLFNBQVMsRUFBRTtxQkFDWCxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQztxQkFDcEIsT0FBTyxDQUNOLHNCQUFzQixPQUFPLENBQUMsU0FBUyx1Q0FBdUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLE9BQU8sTUFBTSxFQUFFLENBQ3BILENBQUM7Z0JBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDL0I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQjtRQUNsQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLGlCQUFpQixDQUFDLE9BQU8sRUFBRTtZQUN4RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQztJQUNILENBQUM7O2tIQWhFVSxvQkFBb0Isa0JBT3JCLGFBQWEsYUFFYixxQkFBcUI7c0hBVHBCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVOzswQkFRTixNQUFNOzJCQUFDLGFBQWE7OzBCQUNwQixRQUFROzswQkFDUixNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIEV2ZW50TWVzc2FnZSxcbiAgRXZlbnRNZXNzYWdlVXRpbHMsXG4gIElQdWJsaWNDbGllbnRBcHBsaWNhdGlvbixcbiAgSW50ZXJhY3Rpb25TdGF0dXMsXG59IGZyb20gXCJAYXp1cmUvbXNhbC1icm93c2VyXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgTXNhbEJyb2FkY2FzdENvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi9tc2FsLmJyb2FkY2FzdC5jb25maWdcIjtcbmltcG9ydCB7IE1TQUxfQlJPQURDQVNUX0NPTkZJRywgTVNBTF9JTlNUQU5DRSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgbmFtZSwgdmVyc2lvbiB9IGZyb20gXCIuL3BhY2thZ2VNZXRhZGF0YVwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTXNhbEJyb2FkY2FzdFNlcnZpY2Uge1xuICBwcml2YXRlIF9tc2FsU3ViamVjdDogU3ViamVjdDxFdmVudE1lc3NhZ2U+O1xuICBwdWJsaWMgbXNhbFN1YmplY3QkOiBPYnNlcnZhYmxlPEV2ZW50TWVzc2FnZT47XG4gIHByaXZhdGUgX2luUHJvZ3Jlc3M6IEJlaGF2aW9yU3ViamVjdDxJbnRlcmFjdGlvblN0YXR1cz47XG4gIHB1YmxpYyBpblByb2dyZXNzJDogT2JzZXJ2YWJsZTxJbnRlcmFjdGlvblN0YXR1cz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChNU0FMX0lOU1RBTkNFKSBwcml2YXRlIG1zYWxJbnN0YW5jZTogSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChNU0FMX0JST0FEQ0FTVF9DT05GSUcpXG4gICAgcHJpdmF0ZSBtc2FsQnJvYWRjYXN0Q29uZmlnPzogTXNhbEJyb2FkY2FzdENvbmZpZ3VyYXRpb25cbiAgKSB7XG4gICAgLy8gTWFrZSBfbXNhbFN1YmplY3QgYSBSZXBsYXlTdWJqZWN0IGlmIGNvbmZpZ3VyZWQgdG8gcmVwbGF5IHBhc3QgZXZlbnRzXG4gICAgaWYgKFxuICAgICAgdGhpcy5tc2FsQnJvYWRjYXN0Q29uZmlnICYmXG4gICAgICB0aGlzLm1zYWxCcm9hZGNhc3RDb25maWcuZXZlbnRzVG9SZXBsYXkgPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLm1zYWxJbnN0YW5jZVxuICAgICAgICAuZ2V0TG9nZ2VyKClcbiAgICAgICAgLmNsb25lKG5hbWUsIHZlcnNpb24pXG4gICAgICAgIC52ZXJib3NlKFxuICAgICAgICAgIGBCcm9hZGNhc3RTZXJ2aWNlIC0gZXZlbnRzVG9SZXBsYXkgc2V0IG9uIEJyb2FkY2FzdENvbmZpZywgcmVwbGF5aW5nIHRoZSBsYXN0ICR7dGhpcy5tc2FsQnJvYWRjYXN0Q29uZmlnLmV2ZW50c1RvUmVwbGF5fSBldmVudHNgXG4gICAgICAgICk7XG4gICAgICB0aGlzLl9tc2FsU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PEV2ZW50TWVzc2FnZT4oXG4gICAgICAgIHRoaXMubXNhbEJyb2FkY2FzdENvbmZpZy5ldmVudHNUb1JlcGxheVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRGVmYXVsdHMgdG8gX21zYWxTdWJqZWN0IGJlaW5nIGEgU3ViamVjdFxuICAgICAgdGhpcy5fbXNhbFN1YmplY3QgPSBuZXcgU3ViamVjdDxFdmVudE1lc3NhZ2U+KCk7XG4gICAgfVxuXG4gICAgdGhpcy5tc2FsU3ViamVjdCQgPSB0aGlzLl9tc2FsU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIC8vIEluUHJvZ3Jlc3MgYXMgQmVoYXZpb3JTdWJqZWN0IHNvIG1vc3QgcmVjZW50IGluUHJvZ3Jlc3Mgc3RhdGUgd2lsbCBiZSBhdmFpbGFibGUgdXBvbiBzdWJzY3JpcHRpb25cbiAgICB0aGlzLl9pblByb2dyZXNzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJbnRlcmFjdGlvblN0YXR1cz4oXG4gICAgICBJbnRlcmFjdGlvblN0YXR1cy5TdGFydHVwXG4gICAgKTtcbiAgICB0aGlzLmluUHJvZ3Jlc3MkID0gdGhpcy5faW5Qcm9ncmVzcy5hc09ic2VydmFibGUoKTtcblxuICAgIHRoaXMubXNhbEluc3RhbmNlLmFkZEV2ZW50Q2FsbGJhY2soKG1lc3NhZ2U6IEV2ZW50TWVzc2FnZSkgPT4ge1xuICAgICAgdGhpcy5fbXNhbFN1YmplY3QubmV4dChtZXNzYWdlKTtcbiAgICAgIGNvbnN0IHN0YXR1cyA9IEV2ZW50TWVzc2FnZVV0aWxzLmdldEludGVyYWN0aW9uU3RhdHVzRnJvbUV2ZW50KFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICB0aGlzLl9pblByb2dyZXNzLnZhbHVlXG4gICAgICApO1xuICAgICAgaWYgKHN0YXR1cyAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLm1zYWxJbnN0YW5jZVxuICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgIC5jbG9uZShuYW1lLCB2ZXJzaW9uKVxuICAgICAgICAgIC52ZXJib3NlKFxuICAgICAgICAgICAgYEJyb2FkY2FzdFNlcnZpY2UgLSAke21lc3NhZ2UuZXZlbnRUeXBlfSByZXN1bHRzIGluIHNldHRpbmcgaW5Qcm9ncmVzcyBmcm9tICR7dGhpcy5faW5Qcm9ncmVzcy52YWx1ZX0gdG8gJHtzdGF0dXN9YFxuICAgICAgICAgICk7XG4gICAgICAgIHRoaXMuX2luUHJvZ3Jlc3MubmV4dChzdGF0dXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyBpblByb2dyZXNzIHN0YXRlIHRvIE5vbmVcbiAgICovXG4gIHJlc2V0SW5Qcm9ncmVzc0V2ZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pblByb2dyZXNzLnZhbHVlID09PSBJbnRlcmFjdGlvblN0YXR1cy5TdGFydHVwKSB7XG4gICAgICB0aGlzLl9pblByb2dyZXNzLm5leHQoSW50ZXJhY3Rpb25TdGF0dXMuTm9uZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNhbC5ndWFyZC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbXNhbC5ndWFyZC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQge1xuICBQb3B1cFJlcXVlc3QsXG4gIFJlZGlyZWN0UmVxdWVzdCxcbiAgSW50ZXJhY3Rpb25UeXBlLFxufSBmcm9tIFwiQGF6dXJlL21zYWwtYnJvd3NlclwiO1xuaW1wb3J0IHsgTXNhbFNlcnZpY2UgfSBmcm9tIFwiLi9tc2FsLnNlcnZpY2VcIjtcblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBNc2FsR3VhcmRBdXRoUmVxdWVzdCA9XG4gIHwgUGFydGlhbDxQb3B1cFJlcXVlc3Q+XG4gIHwgUGFydGlhbDxPbWl0PFJlZGlyZWN0UmVxdWVzdCwgXCJyZWRpcmVjdFN0YXJ0UGFnZVwiPj47XG5cbmV4cG9ydCB0eXBlIE1zYWxHdWFyZENvbmZpZ3VyYXRpb24gPSB7XG4gIGludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlLlBvcHVwIHwgSW50ZXJhY3Rpb25UeXBlLlJlZGlyZWN0O1xuICBhdXRoUmVxdWVzdD86XG4gICAgfCBNc2FsR3VhcmRBdXRoUmVxdWVzdFxuICAgIHwgKChcbiAgICAgICAgYXV0aFNlcnZpY2U6IE1zYWxTZXJ2aWNlLFxuICAgICAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdFxuICAgICAgKSA9PiBNc2FsR3VhcmRBdXRoUmVxdWVzdCk7XG4gIGxvZ2luRmFpbGVkUm91dGU/OiBzdHJpbmc7XG59O1xuIl19
@@ -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.10", 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.10", ngImport: i0, type: MsalGuard });
212
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", 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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LHlCQUF5QjtZQUMxRixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FDVCxLQUE2QixFQUM3QixLQUEwQjtRQUUxQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZ0JBQWdCLENBQ2QsS0FBNkIsRUFDN0IsS0FBMEI7UUFFMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQy9CLENBQUM7O3VHQWxRVSxTQUFTLGtCQUlWLGlCQUFpQjsyR0FKaEIsU0FBUzs0RkFBVCxTQUFTO2tCQURyQixVQUFVOzswQkFLTixNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBVcmxUcmVlLFxuICBSb3V0ZXIsXG59IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7XG4gIEludGVyYWN0aW9uVHlwZSxcbiAgQnJvd3NlckNvbmZpZ3VyYXRpb25BdXRoRXJyb3IsXG4gIEJyb3dzZXJVdGlscyxcbiAgVXJsU3RyaW5nLFxuICBQb3B1cFJlcXVlc3QsXG4gIFJlZGlyZWN0UmVxdWVzdCxcbiAgQXV0aGVudGljYXRpb25SZXN1bHQsXG59IGZyb20gXCJAYXp1cmUvbXNhbC1icm93c2VyXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBjb25jYXRNYXAsIGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgTXNhbFNlcnZpY2UgfSBmcm9tIFwiLi9tc2FsLnNlcnZpY2VcIjtcbmltcG9ydCB7IE1zYWxHdWFyZENvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi9tc2FsLmd1YXJkLmNvbmZpZ1wiO1xuaW1wb3J0IHsgTXNhbEJyb2FkY2FzdFNlcnZpY2UgfSBmcm9tIFwiLi9tc2FsLmJyb2FkY2FzdC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBNU0FMX0dVQVJEX0NPTkZJRyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTXNhbEd1YXJkIHtcbiAgcHJpdmF0ZSBsb2dpbkZhaWxlZFJvdXRlPzogVXJsVHJlZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1TQUxfR1VBUkRfQ09ORklHKSBwcml2YXRlIG1zYWxHdWFyZENvbmZpZzogTXNhbEd1YXJkQ29uZmlndXJhdGlvbixcbiAgICBwcml2YXRlIG1zYWxCcm9hZGNhc3RTZXJ2aWNlOiBNc2FsQnJvYWRjYXN0U2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBNc2FsU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge1xuICAgIC8vIFN1YnNjcmliaW5nIHNvIGV2ZW50cyBpbiBNc2FsR3VhcmQgd2lsbCBzZXQgaW5Qcm9ncmVzcyQgb2JzZXJ2YWJsZVxuICAgIHRoaXMubXNhbEJyb2FkY2FzdFNlcnZpY2UuaW5Qcm9ncmVzcyQuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2VzIHVybCBzdHJpbmcgdG8gVXJsVHJlZVxuICAgKiBAcGFyYW0gdXJsXG4gICAqL1xuICBwYXJzZVVybCh1cmw6IHN0cmluZyk6IFVybFRyZWUge1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5wYXJzZVVybCh1cmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgYWJzb2x1dGUgdXJsIGZvciB0aGUgZGVzdGluYXRpb24gcGFnZVxuICAgKiBAcGFyYW0gcGF0aCBSZWxhdGl2ZSBwYXRoIG9mIHJlcXVlc3RlZCBwYWdlXG4gICAqIEByZXR1cm5zIEZ1bGwgZGVzdGluYXRpb24gdXJsXG4gICAqL1xuICBnZXREZXN0aW5hdGlvblVybChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0TG9nZ2VyKCkudmVyYm9zZShcIkd1YXJkIC0gZ2V0dGluZyBkZXN0aW5hdGlvbiB1cmxcIik7XG4gICAgLy8gQWJzb2x1dGUgYmFzZSB1cmwgZm9yIHRoZSBhcHBsaWNhdGlvbiAoZGVmYXVsdCB0byBvcmlnaW4gaWYgYmFzZSBlbGVtZW50IG5vdCBwcmVzZW50KVxuICAgIGNvbnN0IGJhc2VFbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiYmFzZVwiKTtcbiAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5sb2NhdGlvbi5ub3JtYWxpemUoXG4gICAgICBiYXNlRWxlbWVudHMubGVuZ3RoID8gYmFzZUVsZW1lbnRzWzBdLmhyZWYgOiB3aW5kb3cubG9jYXRpb24ub3JpZ2luXG4gICAgKTtcblxuICAgIC8vIFBhdGggb2YgcGFnZSAoaW5jbHVkaW5nIGhhc2gsIGlmIHVzaW5nIGhhc2ggcm91dGluZylcbiAgICBjb25zdCBwYXRoVXJsID0gdGhpcy5sb2NhdGlvbi5wcmVwYXJlRXh0ZXJuYWxVcmwocGF0aCk7XG5cbiAgICAvLyBIYXNoIGxvY2F0aW9uIHN0cmF0ZWd5XG4gICAgaWYgKHBhdGhVcmwuc3RhcnRzV2l0aChcIiNcIikpIHtcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2VcbiAgICAgICAgLmdldExvZ2dlcigpXG4gICAgICAgIC52ZXJib3NlKFwiR3VhcmQgLSBkZXN0aW5hdGlvbiBieSBoYXNoIHJvdXRpbmdcIik7XG4gICAgICByZXR1cm4gYCR7YmFzZVVybH0vJHtwYXRoVXJsfWA7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBJZiB1c2luZyBwYXRoIGxvY2F0aW9uIHN0cmF0ZWd5LCBwYXRoVXJsIHdpbGwgaW5jbHVkZSB0aGUgcmVsYXRpdmUgcG9ydGlvbiBvZiB0aGUgYmFzZSBwYXRoIChlLmcuIC9iYXNlL3BhZ2UpLlxuICAgICAqIFNpbmNlIGJhc2VVcmwgYWxzbyBpbmNsdWRlcyAvYmFzZSwgY2FuIGp1c3QgY29uY2F0ZW50YXRlIGJhc2VVcmwgKyBwYXRoXG4gICAgICovXG4gICAgcmV0dXJuIGAke2Jhc2VVcmx9JHtwYXRofWA7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJhY3RpdmVseSBwcm9tcHQgdGhlIHVzZXIgdG8gbG9naW5cbiAgICogQHBhcmFtIHVybCBQYXRoIG9mIHRoZSByZXF1ZXN0ZWQgcGFnZVxuICAgKi9cbiAgcHJpdmF0ZSBsb2dpbkludGVyYWN0aXZlbHkoc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBhdXRoUmVxdWVzdCA9XG4gICAgICB0eXBlb2YgdGhpcy5tc2FsR3VhcmRDb25maWcuYXV0aFJlcXVlc3QgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICA/IHRoaXMubXNhbEd1YXJkQ29uZmlnLmF1dGhSZXF1ZXN0KHRoaXMuYXV0aFNlcnZpY2UsIHN0YXRlKVxuICAgICAgICA6IHsgLi4udGhpcy5tc2FsR3VhcmRDb25maWcuYXV0aFJlcXVlc3QgfTtcbiAgICBpZiAodGhpcy5tc2FsR3VhcmRDb25maWcuaW50ZXJhY3Rpb25UeXBlID09PSBJbnRlcmFjdGlvblR5cGUuUG9wdXApIHtcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0TG9nZ2VyKCkudmVyYm9zZShcIkd1YXJkIC0gbG9nZ2luZyBpbiBieSBwb3B1cFwiKTtcbiAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luUG9wdXAoYXV0aFJlcXVlc3QgYXMgUG9wdXBSZXF1ZXN0KS5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBBdXRoZW50aWNhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgLnZlcmJvc2UoXG4gICAgICAgICAgICAgIFwiR3VhcmQgLSBsb2dpbiBieSBwb3B1cCBzdWNjZXNzZnVsLCBjYW4gYWN0aXZhdGUsIHNldHRpbmcgYWN0aXZlIGFjY291bnRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmluc3RhbmNlLnNldEFjdGl2ZUFjY291bnQocmVzcG9uc2UuYWNjb3VudCk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0TG9nZ2VyKCkudmVyYm9zZShcIkd1YXJkIC0gbG9nZ2luZyBpbiBieSByZWRpcmVjdFwiKTtcbiAgICBjb25zdCByZWRpcmVjdFN0YXJ0UGFnZSA9IHRoaXMuZ2V0RGVzdGluYXRpb25Vcmwoc3RhdGUudXJsKTtcbiAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZVxuICAgICAgLmxvZ2luUmVkaXJlY3Qoe1xuICAgICAgICByZWRpcmVjdFN0YXJ0UGFnZSxcbiAgICAgICAgLi4uYXV0aFJlcXVlc3QsXG4gICAgICB9IGFzIFJlZGlyZWN0UmVxdWVzdClcbiAgICAgIC5waXBlKG1hcCgoKSA9PiBmYWxzZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciB3aGljaCBjaGVja3MgZm9yIHRoZSBjb3JyZWN0IGludGVyYWN0aW9uIHR5cGUsIHByZXZlbnRzIHBhZ2Ugd2l0aCBHdWFyZCB0byBiZSBzZXQgYXMgcmVkaXJlY3QsIGFuZCBjYWxscyBoYW5kbGVSZWRpcmVjdE9ic2VydmFibGVcbiAgICogQHBhcmFtIHN0YXRlXG4gICAqL1xuICBwcml2YXRlIGFjdGl2YXRlSGVscGVyKFxuICAgIHN0YXRlPzogUm91dGVyU3RhdGVTbmFwc2hvdFxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5tc2FsR3VhcmRDb25maWcuaW50ZXJhY3Rpb25UeXBlICE9PSBJbnRlcmFjdGlvblR5cGUuUG9wdXAgJiZcbiAgICAgIHRoaXMubXNhbEd1YXJkQ29uZmlnLmludGVyYWN0aW9uVHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlLlJlZGlyZWN0XG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgQnJvd3NlckNvbmZpZ3VyYXRpb25BdXRoRXJyb3IoXG4gICAgICAgIFwiaW52YWxpZF9pbnRlcmFjdGlvbl90eXBlXCIsXG4gICAgICAgIFwiSW52YWxpZCBpbnRlcmFjdGlvbiB0eXBlIHByb3ZpZGVkIHRvIE1TQUwgR3VhcmQuIEludGVyYWN0aW9uVHlwZS5Qb3B1cCBvciBJbnRlcmFjdGlvblR5cGUuUmVkaXJlY3QgbXVzdCBiZSBwcm92aWRlZCBpbiB0aGUgTXNhbEd1YXJkQ29uZmlndXJhdGlvblwiXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldExvZ2dlcigpLnZlcmJvc2UoXCJNU0FMIEd1YXJkIGFjdGl2YXRlZFwiKTtcblxuICAgIC8qXG4gICAgICogSWYgYSBwYWdlIHdpdGggTVNBTCBHdWFyZCBpcyBzZXQgYXMgdGhlIHJlZGlyZWN0IGZvciBhY3F1aXJlVG9rZW5TaWxlbnQsXG4gICAgICogc2hvcnQtY2lyY3VpdCB0byBwcmV2ZW50IHJlZGlyZWN0aW5nIG9yIHBvcHVwcy5cbiAgICAgKi9cbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgaWYgKFxuICAgICAgICBVcmxTdHJpbmcuaGFzaENvbnRhaW5zS25vd25Qcm9wZXJ0aWVzKHdpbmRvdy5sb2NhdGlvbi5oYXNoKSAmJlxuICAgICAgICBCcm93c2VyVXRpbHMuaXNJbklmcmFtZSgpICYmXG4gICAgICAgICF0aGlzLmF1dGhTZXJ2aWNlLmluc3RhbmNlLmdldENvbmZpZ3VyYXRpb24oKS5zeXN0ZW1cbiAgICAgICAgICAuYWxsb3dSZWRpcmVjdEluSWZyYW1lXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZVxuICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgIC53YXJuaW5nKFxuICAgICAgICAgICAgXCJHdWFyZCAtIHJlZGlyZWN0VXJpIHNldCB0byBwYWdlIHdpdGggTVNBTCBHdWFyZC4gSXQgaXMgcmVjb21tZW5kZWQgdG8gbm90IHNldCByZWRpcmVjdFVyaSB0byBhIHBhZ2UgdGhhdCByZXF1aXJlcyBhdXRoZW50aWNhdGlvbi5cIlxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2VcbiAgICAgICAgLmdldExvZ2dlcigpXG4gICAgICAgIC5pbmZvKFxuICAgICAgICAgIFwiR3VhcmQgLSB3aW5kb3cgaXMgdW5kZWZpbmVkLCBNU0FMIGRvZXMgbm90IHN1cHBvcnQgc2VydmVyLXNpZGUgdG9rZW4gYWNxdWlzaXRpb25cIlxuICAgICAgICApO1xuICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIGEgbG9naW5GYWlsZWRSb3V0ZSBpcyBzZXQgaW4gdGhlIGNvbmZpZywgc2V0IHRoaXMgYXMgdGhlIGxvZ2luRmFpbGVkUm91dGVcbiAgICAgKi9cbiAgICBpZiAodGhpcy5tc2FsR3VhcmRDb25maWcubG9naW5GYWlsZWRSb3V0ZSkge1xuICAgICAgdGhpcy5sb2dpbkZhaWxlZFJvdXRlID0gdGhpcy5wYXJzZVVybChcbiAgICAgICAgdGhpcy5tc2FsR3VhcmRDb25maWcubG9naW5GYWlsZWRSb3V0ZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBDYXB0dXJlIGN1cnJlbnQgcGF0aCBiZWZvcmUgaXQgZ2V0cyBjaGFuZ2VkIGJ5IGhhbmRsZVJlZGlyZWN0T2JzZXJ2YWJsZVxuICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gdGhpcy5sb2NhdGlvbi5wYXRoKHRydWUpO1xuXG4gICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuaW5pdGlhbGl6ZSgpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5oYW5kbGVSZWRpcmVjdE9ic2VydmFibGUoKTtcbiAgICAgIH0pLFxuICAgICAgY29uY2F0TWFwKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmF1dGhTZXJ2aWNlLmluc3RhbmNlLmdldEFsbEFjY291bnRzKCkubGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlXG4gICAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgICAudmVyYm9zZShcbiAgICAgICAgICAgICAgICBcIkd1YXJkIC0gbm8gYWNjb3VudHMgcmV0cmlldmVkLCBsb2cgaW4gcmVxdWlyZWQgdG8gYWN0aXZhdGVcIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9naW5JbnRlcmFjdGl2ZWx5KHN0YXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5hdXRoU2VydmljZVxuICAgICAgICAgICAgLmdldExvZ2dlcigpXG4gICAgICAgICAgICAudmVyYm9zZShcIkd1YXJkIC0gbm8gYWNjb3VudHMgcmV0cmlldmVkLCBubyBzdGF0ZSwgY2Fubm90IGxvYWRcIik7XG4gICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcbiAgICAgICAgICAuZ2V0TG9nZ2VyKClcbiAgICAgICAgICAudmVyYm9zZShcIkd1YXJkIC0gYXQgbGVhc3QgMSBhY2NvdW50IGV4aXN0cywgY2FuIGFjdGl2YXRlIG9yIGxvYWRcIik7XG5cbiAgICAgICAgLy8gUHJldmVudCBuYXZpZ2F0aW5nIHRoZSBhcHAgdG8gLyNjb2RlPSBvciAvY29kZT1cbiAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgLypcbiAgICAgICAgICAgKiBQYXRoIHJvdXRpbmc6XG4gICAgICAgICAgICogc3RhdGUudXJsOiAvI2NvZGU9Li4uXG4gICAgICAgICAgICogc3RhdGUucm9vdC5mcmFnbWVudDogY29kZT0uLi5cbiAgICAgICAgICAgKi9cblxuICAgICAgICAgIC8qXG4gICAgICAgICAgICogSGFzaCByb3V0aW5nOlxuICAgICAgICAgICAqIHN0YXRlLnVybDogL2NvZGVcbiAgICAgICAgICAgKiBzdGF0ZS5yb290LmZyYWdtZW50OiBudWxsXG4gICAgICAgICAgICovXG4gICAgICAgICAgY29uc3QgdXJsQ29udGFpbnNDb2RlOiBib29sZWFuID0gdGhpcy5pbmNsdWRlc0NvZGUoc3RhdGUudXJsKTtcbiAgICAgICAgICBjb25zdCBmcmFnbWVudENvbnRhaW5zQ29kZTogYm9vbGVhbiA9XG4gICAgICAgICAgICAhIXN0YXRlLnJvb3QgJiZcbiAgICAgICAgICAgICEhc3RhdGUucm9vdC5mcmFnbWVudCAmJlxuICAgICAgICAgICAgdGhpcy5pbmNsdWRlc0NvZGUoYCMke3N0YXRlLnJvb3QuZnJhZ21lbnR9YCk7XG4gICAgICAgICAgY29uc3QgaGFzaFJvdXRpbmc6IGJvb2xlYW4gPVxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5wcmVwYXJlRXh0ZXJuYWxVcmwoc3RhdGUudXJsKS5pbmRleE9mKFwiI1wiKSA9PT0gMDtcblxuICAgICAgICAgIC8vIEVuc3VyZSBjb2RlIHBhcmFtZXRlciBpcyBpbiBmcmFnbWVudCAoYW5kIG5vdCBpbiBxdWVyeSBwYXJhbWV0ZXIpLCBvciB0aGF0IGhhc2ggaGFzaCByb3V0aW5nIGlzIHVzZWRcbiAgICAgICAgICBpZiAodXJsQ29udGFpbnNDb2RlICYmIChmcmFnbWVudENvbnRhaW5zQ29kZSB8fCBoYXNoUm91dGluZykpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcbiAgICAgICAgICAgICAgLmdldExvZ2dlcigpXG4gICAgICAgICAgICAgIC5pbmZvKFxuICAgICAgICAgICAgICAgIFwiR3VhcmQgLSBIYXNoIGNvbnRhaW5zIGtub3duIGNvZGUgcmVzcG9uc2UsIHN0b3BwaW5nIG5hdmlnYXRpb24uXCJcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gUGF0aCByb3V0aW5nIChuYXZpZ2F0ZSB0byBjdXJyZW50IHBhdGggd2l0aG91dCBoYXNoKVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRQYXRoLmluZGV4T2YoXCIjXCIpID4gLTEpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMucGFyc2VVcmwodGhpcy5sb2NhdGlvbi5wYXRoKCkpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSGFzaCByb3V0aW5nIChuYXZpZ2F0ZSB0byByb290IHBhdGgpXG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5wYXJzZVVybChcIlwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZVxuICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgIC5lcnJvcihcIkd1YXJkIC0gZXJyb3Igd2hpbGUgbG9nZ2luZyBpbiwgdW5hYmxlIHRvIGFjdGl2YXRlXCIpO1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlXG4gICAgICAgICAgLmdldExvZ2dlcigpXG4gICAgICAgICAgLmVycm9yUGlpKGBHdWFyZCAtIGVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBhIGxvZ2luRmFpbGVkUm91dGUgaXMgc2V0LCBjaGVja3MgdG8gc2VlIGlmIHN0YXRlIGlzIHBhc3NlZCBiZWZvcmUgcmV0dXJuaW5nIHJvdXRlXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5sb2dpbkZhaWxlZFJvdXRlICYmIHN0YXRlKSB7XG4gICAgICAgICAgdGhpcy5hdXRoU2VydmljZVxuICAgICAgICAgICAgLmdldExvZ2dlcigpXG4gICAgICAgICAgICAudmVyYm9zZShcIkd1YXJkIC0gbG9naW5GYWlsZWRSb3V0ZSBzZXQsIHJlZGlyZWN0aW5nXCIpO1xuICAgICAgICAgIHJldHVybiBvZih0aGlzLmxvZ2luRmFpbGVkUm91dGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBpbmNsdWRlc0NvZGUocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIChwYXRoLmxhc3RJbmRleE9mKFwiL2NvZGVcIikgPiAtMSAmJlxuICAgICAgICBwYXRoLmxhc3RJbmRleE9mKFwiL2NvZGVcIikgPT09IHBhdGgubGVuZ3RoIC0gXCIvY29kZVwiLmxlbmd0aCkgfHwgLy8gcGF0aC5lbmRzV2l0aChcIi9jb2RlXCIpXG4gICAgICBwYXRoLmluZGV4T2YoXCIjY29kZT1cIikgPiAtMSB8fFxuICAgICAgcGF0aC5pbmRleE9mKFwiJmNvZGU9XCIpID4gLTFcbiAgICApO1xuICB9XG5cbiAgY2FuQWN0aXZhdGUoXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3RcbiAgKTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4ge1xuICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0TG9nZ2VyKCkudmVyYm9zZShcIkd1YXJkIC0gY2FuQWN0aXZhdGVcIik7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZhdGVIZWxwZXIoc3RhdGUpO1xuICB9XG5cbiAgY2FuQWN0aXZhdGVDaGlsZChcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdFxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB7XG4gICAgdGhpcy5hdXRoU2VydmljZS5nZXRMb2dnZXIoKS52ZXJib3NlKFwiR3VhcmQgLSBjYW5BY3RpdmF0ZUNoaWxkXCIpO1xuICAgIHJldHVybiB0aGlzLmFjdGl2YXRlSGVscGVyKHN0YXRlKTtcbiAgfVxuXG4gIGNhbk1hdGNoKCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldExvZ2dlcigpLnZlcmJvc2UoXCJHdWFyZCAtIGNhbkxvYWRcIik7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZhdGVIZWxwZXIoKTtcbiAgfVxufVxuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNhbC5pbnRlcmNlcHRvci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbXNhbC5pbnRlcmNlcHRvci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICovXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW5yZXNvbHZlZFxuaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7XG4gIFBvcHVwUmVxdWVzdCxcbiAgUmVkaXJlY3RSZXF1ZXN0LFxuICBJbnRlcmFjdGlvblR5cGUsXG4gIFNpbGVudFJlcXVlc3QsXG59IGZyb20gXCJAYXp1cmUvbXNhbC1icm93c2VyXCI7XG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gXCIuL21zYWwuc2VydmljZVwiO1xuXG5leHBvcnQgZGVjbGFyZSB0eXBlIE1zYWxJbnRlcmNlcHRvckF1dGhSZXF1ZXN0ID1cbiAgfCBPbWl0PFBvcHVwUmVxdWVzdCwgXCJzY29wZXNcIj5cbiAgfCBPbWl0PFJlZGlyZWN0UmVxdWVzdCwgXCJzY29wZXNcIj5cbiAgfCBPbWl0PFNpbGVudFJlcXVlc3QsIFwic2NvcGVzXCI+O1xuXG5leHBvcnQgdHlwZSBNc2FsSW50ZXJjZXB0b3JDb25maWd1cmF0aW9uID0ge1xuICBpbnRlcmFjdGlvblR5cGU6IEludGVyYWN0aW9uVHlwZS5Qb3B1cCB8IEludGVyYWN0aW9uVHlwZS5SZWRpcmVjdDtcbiAgcHJvdGVjdGVkUmVzb3VyY2VNYXA6IE1hcDxcbiAgICBzdHJpbmcsXG4gICAgQXJyYXk8c3RyaW5nIHwgUHJvdGVjdGVkUmVzb3VyY2VTY29wZXM+IHwgbnVsbFxuICA+O1xuICBhdXRoUmVxdWVzdD86XG4gICAgfCBNc2FsSW50ZXJjZXB0b3JBdXRoUmVxdWVzdFxuICAgIHwgKChcbiAgICAgICAgbXNhbFNlcnZpY2U6IE1zYWxTZXJ2aWNlLFxuICAgICAgICByZXE6IEh0dHBSZXF1ZXN0PHVua25vd24+LFxuICAgICAgICBvcmlnaW5hbEF1dGhSZXF1ZXN0OiBNc2FsSW50ZXJjZXB0b3JBdXRoUmVxdWVzdFxuICAgICAgKSA9PiBNc2FsSW50ZXJjZXB0b3JBdXRoUmVxdWVzdCk7XG59O1xuXG5leHBvcnQgdHlwZSBQcm90ZWN0ZWRSZXNvdXJjZVNjb3BlcyA9IHtcbiAgaHR0cE1ldGhvZDogc3RyaW5nO1xuICBzY29wZXM6IEFycmF5PHN0cmluZz4gfCBudWxsO1xufTtcbiJdfQ==