ngx-oauth 2.0.0 → 2.1.0

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ## Angular OAuth
2
2
 
3
- > Ngx-oauth is an angular library for OAuth 2.0 login, the library supports all the 4 flows:
3
+ > `Ngx-oauth` is a fully **OAuth 2.1** angular library compliant. The library supports all the 4 flows:
4
4
  > * **resource**
5
5
  > * **implicit**
6
6
  > * **authorization code**
@@ -17,7 +17,7 @@ To start using the `ngx-oauth` you need to import and configure the `OAuthModule
17
17
  Example for **resource owner** flow:
18
18
 
19
19
  ```typescript
20
- const resourceConfig = {
20
+ const oauthConfig = {
21
21
  type: OAuthType.RESOURCE,
22
22
  config: {
23
23
  tokenPath: '/authorizationserver/oauth/token',
@@ -32,7 +32,7 @@ const resourceConfig = {
32
32
 
33
33
  @NgModule({
34
34
  imports: [
35
- OAuthModule.forRoot(resourceConfig),
35
+ OAuthModule.forRoot(oauthConfig),
36
36
  ],
37
37
  providers: [],
38
38
  bootstrap: [AppComponent]
@@ -44,8 +44,8 @@ export class AppModule {
44
44
  Example for **authorization code** flow with `OIDC` and `PKCE`
45
45
  For public oauth clients `clientSecret` can be removed since is not used
46
46
 
47
- ```shell
48
- const resourceConfig = {
47
+ ```typescript
48
+ const oauthConfig = {
49
49
  type: OAuthType.AUTHORIZATION_CODE,
50
50
  config: {
51
51
  clientId: 'client_application',
@@ -53,12 +53,36 @@ const resourceConfig = {
53
53
  authorizePath: '/o/authorize/',
54
54
  tokenPath: '/o/token/',
55
55
  revokePath: '/o/revoke/',
56
- scope: 'openid',
57
- pkce: true'
56
+ scope: 'openid email profile',
57
+ pkce: true
58
58
  },
59
59
  }
60
60
  ```
61
61
 
62
+ ***Keycloak*** example for **oidc** implicit flow
63
+
64
+ ```typescript
65
+ const keycloakOpenIDConfig = {
66
+ type: OAuthType.IMPLICIT,
67
+ config: {
68
+ issuerPath: 'http://localhost:8080/auth/realms/commerce',
69
+ clientId: 'spartacus',
70
+ }
71
+ };
72
+ ```
73
+
74
+ ***Keycloak*** example for **oidc** with issuer url
75
+
76
+ ```typescript
77
+ const keycloakOpenIDConfig = {
78
+ type: OAuthType.AUTHORIZATION_CODE,
79
+ config: {
80
+ issuerPath: 'http://localhost:8080/auth/realms/commerce',
81
+ clientId: 'spartacus',
82
+ }
83
+ };
84
+ ```
85
+
62
86
  You can use the `oauth-login` component
63
87
 
64
88
  ```angular2html
@@ -123,11 +147,11 @@ or create your custom login template using OAuthService
123
147
  </h2>
124
148
  </div>
125
149
  <div class="card-body">
126
- <div class="form-group">
150
+ <div class="mb-3">
127
151
  <input type="text" class="form-control" name="username" required [(ngModel)]="oauthService.username"
128
152
  placeholder="username">
129
153
  </div>
130
- <div class="form-group">
154
+ <div class="mb-3">
131
155
  <input type="password" class="form-control" name="password" required [(ngModel)]="oauthService.password"
132
156
  placeholder="password">
133
157
  </div>
@@ -1,5 +1,5 @@
1
- import { Component, ContentChild, EventEmitter, HostListener, Inject, Input, Output } from '@angular/core';
2
- import { Subscription } from 'rxjs';
1
+ import { Component, ContentChild, EventEmitter, HostListener, Inject, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import { Subscription, take } from 'rxjs';
3
3
  import { LOCATION, OAuthStatus, OAuthType } from '../../models';
4
4
  import { tap } from 'rxjs/operators';
5
5
  import * as i0 from "@angular/core";
@@ -7,8 +7,9 @@ import * as i1 from "../../services/oauth.service";
7
7
  import * as i2 from "@angular/common";
8
8
  import * as i3 from "@angular/forms";
9
9
  export class OAuthLoginComponent {
10
- constructor(oauthService, location) {
10
+ constructor(oauthService, locationService, location) {
11
11
  this.oauthService = oauthService;
12
+ this.locationService = locationService;
12
13
  this.location = location;
13
14
  this.subscription = new Subscription();
14
15
  this._i18n = {
@@ -27,14 +28,15 @@ export class OAuthLoginComponent {
27
28
  this.OAuthType = OAuthType;
28
29
  this.collapse = false;
29
30
  this.type = this.oauthService.type;
30
- this.redirectUri = this.location.href;
31
31
  this.state$ = this.oauthService.state$.pipe(tap(s => this.stateChange.emit(s)));
32
32
  this.status$ = this.oauthService.status$.pipe(tap(s => {
33
33
  if (s === OAuthStatus.AUTHORIZED && this.profileName$) {
34
- this.subscription.add(this.profileName$.subscribe(n => this.profileName = n));
34
+ this.subscription.add(this.profileName$.pipe(take(1)).subscribe(n => this.profileName = n));
35
35
  }
36
36
  else {
37
- this.profileName = '';
37
+ const { token } = this.oauthService;
38
+ const userInfo = token && token.id_token && JSON.parse(atob(token.id_token.split('.')[1])) || {};
39
+ this.profileName = userInfo.name || userInfo.username || userInfo.email || userInfo.sub || '';
38
40
  }
39
41
  }));
40
42
  this.loginFunction = (p) => this.login(p);
@@ -49,14 +51,22 @@ export class OAuthLoginComponent {
49
51
  ...i18n
50
52
  };
51
53
  }
54
+ set redirectUri(redirectUri) {
55
+ if (redirectUri) {
56
+ this._redirectUri = redirectUri;
57
+ }
58
+ }
59
+ get redirectUri() {
60
+ return this._redirectUri || `${this.location.origin}${this.locationService.path(true) || '/'}`;
61
+ }
52
62
  ngOnDestroy() {
53
63
  this.subscription.unsubscribe();
54
64
  }
55
65
  logout() {
56
66
  this.oauthService.logout();
57
67
  }
58
- login(parameters) {
59
- this.oauthService.login(parameters);
68
+ async login(parameters) {
69
+ await this.oauthService.login(parameters);
60
70
  this.collapse = false;
61
71
  }
62
72
  toggleCollapse() {
@@ -66,16 +76,18 @@ export class OAuthLoginComponent {
66
76
  this.collapse = false;
67
77
  }
68
78
  }
69
- OAuthLoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: OAuthLoginComponent, deps: [{ token: i1.OAuthService }, { token: LOCATION }], target: i0.ɵɵFactoryTarget.Component });
70
- OAuthLoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: OAuthLoginComponent, selector: "oauth-login", inputs: { i18n: "i18n", state: "state", profileName$: "profileName$" }, outputs: { stateChange: "stateChange" }, host: { listeners: { "window:keydown.escape": "keyboardEvent()" } }, queries: [{ propertyName: "loginTemplate", first: true, predicate: ["login"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"state$ | async\"></ng-container>\r\n<ng-container *ngIf=\"loginTemplate; else defaultLogin\"\r\n [ngTemplateOutlet]=\"loginTemplate\"\r\n [ngTemplateOutletContext]=\"{login: loginFunction, logout: logoutFunction, status: status$ | async}\">\r\n</ng-container>\r\n<ng-template #defaultLogin>\r\n <ng-container *ngIf=\"status$ | async as status\">\r\n <ng-container *ngIf=\"type === OAuthType.RESOURCE; else noResource\">\r\n <div class=\"oauth dropdown text-right p-3 {{collapse ? 'show': ''}}\">\r\n <button class=\"btn btn-link p-0 dropdown-toggle\"\r\n (click)=\"status === OAuthStatus.AUTHORIZED ? logout() : toggleCollapse()\">\r\n <ng-container *ngTemplateOutlet=\"message\"></ng-container>\r\n </button>\r\n <div class=\"dropdown-menu mr-3 {{collapse ? 'show': ''}}\">\r\n <form class=\"p-3\" #form=\"ngForm\"\r\n *ngIf=\"status === OAuthStatus.NOT_AUTHORIZED || status === OAuthStatus.DENIED\"\r\n (submit)=\"login({username: username, password: password})\">\r\n <div class=\"form-group\">\r\n <input type=\"text\"\r\n class=\"form-control\"\r\n name=\"username\"\r\n required\r\n [(ngModel)]=\"username\"\r\n [placeholder]=\"i18n.username\">\r\n </div>\r\n <div class=\"form-group\">\r\n <input type=\"password\"\r\n class=\"form-control\"\r\n name=\"password\"\r\n required\r\n [(ngModel)]=\"password\"\r\n [placeholder]=\"i18n.password\">\r\n </div>\r\n <div class=\"text-right\">\r\n <button type=\"submit\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid\">{{i18n.submit}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #noResource>\r\n <a role=\"button\" class=\"oauth\"\r\n (click)=\"status === OAuthStatus.AUTHORIZED ? logout() : login({redirectUri: redirectUri, state:state})\">\r\n <ng-container *ngTemplateOutlet=\"message\"></ng-container>\r\n </a>\r\n </ng-template>\r\n\r\n <ng-template #message>\r\n <span *ngIf=\"status === OAuthStatus.NOT_AUTHORIZED\">{{i18n.notAuthorized}}</span>\r\n <span *ngIf=\"status === OAuthStatus.AUTHORIZED\">\r\n {{i18n.authorized}}<strong>&nbsp;{{profileName}}</strong>\r\n </span>\r\n <span *ngIf=\"status === OAuthStatus.DENIED\">{{i18n.denied}}</span>\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>\r\n\r\n", styles: [".oauth .dropdown-menu{left:auto;right:0;box-shadow:0 5px 10px #0003;min-width:250px}.oauth .dropdown-menu:before{content:\"\";display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:#0003;position:absolute;top:-7px;left:auto;right:15px}.oauth .dropdown-menu:after{content:\"\";display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:auto;right:16px}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i2.AsyncPipe } });
79
+ OAuthLoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: OAuthLoginComponent, deps: [{ token: i1.OAuthService }, { token: i2.Location }, { token: LOCATION }], target: i0.ɵɵFactoryTarget.Component });
80
+ OAuthLoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: OAuthLoginComponent, selector: "oauth-login", inputs: { i18n: "i18n", redirectUri: "redirectUri", state: "state", profileName$: "profileName$" }, outputs: { stateChange: "stateChange" }, host: { listeners: { "window:keydown.escape": "keyboardEvent()" } }, queries: [{ propertyName: "loginTemplate", first: true, predicate: ["login"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"state$ | async\"></ng-container>\r\n<ng-container *ngIf=\"loginTemplate; else defaultLogin\"\r\n [ngTemplateOutlet]=\"loginTemplate\"\r\n [ngTemplateOutletContext]=\"{login: loginFunction, logout: logoutFunction, status: status$ | async}\">\r\n</ng-container>\r\n<ng-template #defaultLogin>\r\n <ng-container *ngIf=\"status$ | async as status\">\r\n <ng-container *ngIf=\"type === OAuthType.RESOURCE; else noResource\">\r\n <div class=\"oauth dropdown text-end p-3 {{collapse ? 'show': ''}}\">\r\n <button class=\"btn btn-link p-0 dropdown-toggle\"\r\n (click)=\"status === OAuthStatus.AUTHORIZED ? logout() : toggleCollapse()\">\r\n <ng-container *ngTemplateOutlet=\"message\"></ng-container>\r\n </button>\r\n <div class=\"dropdown-menu mr-3 {{collapse ? 'show': ''}}\">\r\n <form class=\"p-3\" #form=\"ngForm\"\r\n *ngIf=\"status === OAuthStatus.NOT_AUTHORIZED || status === OAuthStatus.DENIED\"\r\n (submit)=\"login({username: username, password: password})\">\r\n <div class=\"mb-3\">\r\n <input type=\"text\"\r\n class=\"form-control\"\r\n name=\"username\"\r\n required\r\n [(ngModel)]=\"username\"\r\n [placeholder]=\"i18n.username\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <input type=\"password\"\r\n class=\"form-control\"\r\n name=\"password\"\r\n required\r\n [(ngModel)]=\"password\"\r\n [placeholder]=\"i18n.password\">\r\n </div>\r\n <div class=\"text-end\">\r\n <button type=\"submit\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid\">{{i18n.submit}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #noResource>\r\n <a role=\"button\" class=\"oauth\"\r\n (click)=\"status === OAuthStatus.AUTHORIZED ? logout() : login({redirectUri: redirectUri, state:state})\">\r\n <ng-container *ngTemplateOutlet=\"message\"></ng-container>\r\n </a>\r\n </ng-template>\r\n\r\n <ng-template #message>\r\n <span *ngIf=\"status === OAuthStatus.NOT_AUTHORIZED\">{{i18n.notAuthorized}}</span>\r\n <span *ngIf=\"status === OAuthStatus.AUTHORIZED\">\r\n {{i18n.authorized}}<strong>&nbsp;{{profileName}}</strong>\r\n </span>\r\n <span *ngIf=\"status === OAuthStatus.DENIED\">{{i18n.denied}}</span>\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>\r\n\r\n", styles: [".oauth .dropdown-menu{left:auto;right:0;box-shadow:0 5px 10px #0003;min-width:250px}.oauth .dropdown-menu:before{content:\"\";display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:#0003;position:absolute;top:-7px;left:auto;right:15px}.oauth .dropdown-menu:after{content:\"\";display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:auto;right:16px}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i2.AsyncPipe }, encapsulation: i0.ViewEncapsulation.None });
71
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: OAuthLoginComponent, decorators: [{
72
82
  type: Component,
73
- args: [{ selector: 'oauth-login', template: "<ng-container *ngIf=\"state$ | async\"></ng-container>\r\n<ng-container *ngIf=\"loginTemplate; else defaultLogin\"\r\n [ngTemplateOutlet]=\"loginTemplate\"\r\n [ngTemplateOutletContext]=\"{login: loginFunction, logout: logoutFunction, status: status$ | async}\">\r\n</ng-container>\r\n<ng-template #defaultLogin>\r\n <ng-container *ngIf=\"status$ | async as status\">\r\n <ng-container *ngIf=\"type === OAuthType.RESOURCE; else noResource\">\r\n <div class=\"oauth dropdown text-right p-3 {{collapse ? 'show': ''}}\">\r\n <button class=\"btn btn-link p-0 dropdown-toggle\"\r\n (click)=\"status === OAuthStatus.AUTHORIZED ? logout() : toggleCollapse()\">\r\n <ng-container *ngTemplateOutlet=\"message\"></ng-container>\r\n </button>\r\n <div class=\"dropdown-menu mr-3 {{collapse ? 'show': ''}}\">\r\n <form class=\"p-3\" #form=\"ngForm\"\r\n *ngIf=\"status === OAuthStatus.NOT_AUTHORIZED || status === OAuthStatus.DENIED\"\r\n (submit)=\"login({username: username, password: password})\">\r\n <div class=\"form-group\">\r\n <input type=\"text\"\r\n class=\"form-control\"\r\n name=\"username\"\r\n required\r\n [(ngModel)]=\"username\"\r\n [placeholder]=\"i18n.username\">\r\n </div>\r\n <div class=\"form-group\">\r\n <input type=\"password\"\r\n class=\"form-control\"\r\n name=\"password\"\r\n required\r\n [(ngModel)]=\"password\"\r\n [placeholder]=\"i18n.password\">\r\n </div>\r\n <div class=\"text-right\">\r\n <button type=\"submit\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid\">{{i18n.submit}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #noResource>\r\n <a role=\"button\" class=\"oauth\"\r\n (click)=\"status === OAuthStatus.AUTHORIZED ? logout() : login({redirectUri: redirectUri, state:state})\">\r\n <ng-container *ngTemplateOutlet=\"message\"></ng-container>\r\n </a>\r\n </ng-template>\r\n\r\n <ng-template #message>\r\n <span *ngIf=\"status === OAuthStatus.NOT_AUTHORIZED\">{{i18n.notAuthorized}}</span>\r\n <span *ngIf=\"status === OAuthStatus.AUTHORIZED\">\r\n {{i18n.authorized}}<strong>&nbsp;{{profileName}}</strong>\r\n </span>\r\n <span *ngIf=\"status === OAuthStatus.DENIED\">{{i18n.denied}}</span>\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>\r\n\r\n", styles: [".oauth .dropdown-menu{left:auto;right:0;box-shadow:0 5px 10px #0003;min-width:250px}.oauth .dropdown-menu:before{content:\"\";display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:#0003;position:absolute;top:-7px;left:auto;right:15px}.oauth .dropdown-menu:after{content:\"\";display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:auto;right:16px}\n"] }]
74
- }], ctorParameters: function () { return [{ type: i1.OAuthService }, { type: Location, decorators: [{
83
+ args: [{ selector: 'oauth-login', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"state$ | async\"></ng-container>\r\n<ng-container *ngIf=\"loginTemplate; else defaultLogin\"\r\n [ngTemplateOutlet]=\"loginTemplate\"\r\n [ngTemplateOutletContext]=\"{login: loginFunction, logout: logoutFunction, status: status$ | async}\">\r\n</ng-container>\r\n<ng-template #defaultLogin>\r\n <ng-container *ngIf=\"status$ | async as status\">\r\n <ng-container *ngIf=\"type === OAuthType.RESOURCE; else noResource\">\r\n <div class=\"oauth dropdown text-end p-3 {{collapse ? 'show': ''}}\">\r\n <button class=\"btn btn-link p-0 dropdown-toggle\"\r\n (click)=\"status === OAuthStatus.AUTHORIZED ? logout() : toggleCollapse()\">\r\n <ng-container *ngTemplateOutlet=\"message\"></ng-container>\r\n </button>\r\n <div class=\"dropdown-menu mr-3 {{collapse ? 'show': ''}}\">\r\n <form class=\"p-3\" #form=\"ngForm\"\r\n *ngIf=\"status === OAuthStatus.NOT_AUTHORIZED || status === OAuthStatus.DENIED\"\r\n (submit)=\"login({username: username, password: password})\">\r\n <div class=\"mb-3\">\r\n <input type=\"text\"\r\n class=\"form-control\"\r\n name=\"username\"\r\n required\r\n [(ngModel)]=\"username\"\r\n [placeholder]=\"i18n.username\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <input type=\"password\"\r\n class=\"form-control\"\r\n name=\"password\"\r\n required\r\n [(ngModel)]=\"password\"\r\n [placeholder]=\"i18n.password\">\r\n </div>\r\n <div class=\"text-end\">\r\n <button type=\"submit\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid\">{{i18n.submit}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #noResource>\r\n <a role=\"button\" class=\"oauth\"\r\n (click)=\"status === OAuthStatus.AUTHORIZED ? logout() : login({redirectUri: redirectUri, state:state})\">\r\n <ng-container *ngTemplateOutlet=\"message\"></ng-container>\r\n </a>\r\n </ng-template>\r\n\r\n <ng-template #message>\r\n <span *ngIf=\"status === OAuthStatus.NOT_AUTHORIZED\">{{i18n.notAuthorized}}</span>\r\n <span *ngIf=\"status === OAuthStatus.AUTHORIZED\">\r\n {{i18n.authorized}}<strong>&nbsp;{{profileName}}</strong>\r\n </span>\r\n <span *ngIf=\"status === OAuthStatus.DENIED\">{{i18n.denied}}</span>\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>\r\n\r\n", styles: [".oauth .dropdown-menu{left:auto;right:0;box-shadow:0 5px 10px #0003;min-width:250px}.oauth .dropdown-menu:before{content:\"\";display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:#0003;position:absolute;top:-7px;left:auto;right:15px}.oauth .dropdown-menu:after{content:\"\";display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:auto;right:16px}\n"] }]
84
+ }], ctorParameters: function () { return [{ type: i1.OAuthService }, { type: i2.Location }, { type: Location, decorators: [{
75
85
  type: Inject,
76
86
  args: [LOCATION]
77
87
  }] }]; }, propDecorators: { i18n: [{
78
88
  type: Input
89
+ }], redirectUri: [{
90
+ type: Input
79
91
  }], state: [{
80
92
  type: Input
81
93
  }], stateChange: [{
@@ -89,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
89
101
  type: HostListener,
90
102
  args: ['window:keydown.escape']
91
103
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtbG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9hdXRoL3NyYy9saWIvY29tcG9uZW50cy9sb2dpbi9vYXV0aC1sb2dpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2F1dGgvc3JjL2xpYi9jb21wb25lbnRzL2xvZ2luL29hdXRoLWxvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUFhLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsUUFBUSxFQUFtQixXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFpQm5DLE1BQU0sT0FBTyxtQkFBbUI7SUF1RDlCLFlBQW9CLFlBQTBCLEVBQ1IsUUFBa0I7UUFEcEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDUixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBdERoRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsVUFBSyxHQUFtQjtZQUM5QixRQUFRLEVBQUUsVUFBVTtZQUNwQixRQUFRLEVBQUUsVUFBVTtZQUNwQixNQUFNLEVBQUUsU0FBUztZQUNqQixhQUFhLEVBQUUsU0FBUztZQUN4QixVQUFVLEVBQUUsU0FBUztZQUNyQixNQUFNLEVBQUUsMkJBQTJCO1NBQ3BDLENBQUM7UUFlRixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUt2RCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUVkLGdCQUFXLEdBQUcsV0FBVyxDQUFDO1FBQzFCLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFDdEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixTQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNqQyxXQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNwQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNuQyxDQUFDO1FBQ0YsWUFBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDdEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ04sSUFBSSxDQUFDLEtBQUssV0FBVyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNyRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvRTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQzthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixrQkFBYSxHQUFHLENBQUMsQ0FBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RCxtQkFBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUlyQyxDQUFDO0lBN0NELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFDSSxJQUFJLENBQUMsSUFBSTtRQUNYLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsR0FBRyxJQUFJO1NBQ1IsQ0FBQztJQUNKLENBQUM7SUFxQ0QsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBMkI7UUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBR0QsYUFBYTtRQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7O2dIQS9FVSxtQkFBbUIsOENBd0RWLFFBQVE7b0dBeERqQixtQkFBbUIsNlVDcEJoQyw0dkZBNERBOzJGRHhDYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTtxRkE0RHlCLFFBQVE7MEJBQTNDLE1BQU07MkJBQUMsUUFBUTs0Q0F2Q3hCLElBQUk7c0JBRFAsS0FBSztnQkFTTixLQUFLO3NCQURKLEtBQUs7Z0JBR04sV0FBVztzQkFEVixNQUFNO2dCQUdQLFlBQVk7c0JBRFgsS0FBSztnQkFHTixhQUFhO3NCQURaLFlBQVk7dUJBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkErQ3RDLGFBQWE7c0JBRFosWUFBWTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0xPQ0FUSU9OLCBPQXV0aFBhcmFtZXRlcnMsIE9BdXRoU3RhdHVzLCBPQXV0aFR5cGV9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7dGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7T0F1dGhTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vYXV0aC5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGhMb2dpbkkxOG4ge1xyXG4gIHVzZXJuYW1lPzogc3RyaW5nO1xyXG4gIHBhc3N3b3JkPzogc3RyaW5nO1xyXG4gIHN1Ym1pdD86IHN0cmluZztcclxuICBub3RBdXRob3JpemVkPzogc3RyaW5nO1xyXG4gIGF1dGhvcml6ZWQ/OiBzdHJpbmc7XHJcbiAgZGVuaWVkPzogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ29hdXRoLWxvZ2luJyxcclxuICB0ZW1wbGF0ZVVybDogJ29hdXRoLWxvZ2luLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnb2F1dGgtbG9naW4uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgT0F1dGhMb2dpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIHByaXZhdGUgX2kxOG46IE9BdXRoTG9naW5JMThuID0ge1xyXG4gICAgdXNlcm5hbWU6ICdVc2VybmFtZScsXHJcbiAgICBwYXNzd29yZDogJ1Bhc3N3b3JkJyxcclxuICAgIHN1Ym1pdDogJ1NpZ24gaW4nLFxyXG4gICAgbm90QXV0aG9yaXplZDogJ1NpZ24gaW4nLFxyXG4gICAgYXV0aG9yaXplZDogJ1dlbGNvbWUnLFxyXG4gICAgZGVuaWVkOiAnQWNjZXNzIERlbmllZC4gVHJ5IGFnYWluISdcclxuICB9O1xyXG5cclxuICBnZXQgaTE4bigpIHtcclxuICAgIHJldHVybiB0aGlzLl9pMThuO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgaTE4bihpMThuKSB7XHJcbiAgICB0aGlzLl9pMThuID0ge1xyXG4gICAgICAuLi50aGlzLl9pMThuLFxyXG4gICAgICAuLi5pMThuXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzdGF0ZSA9ICcnO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHN0YXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKVxyXG4gIHByb2ZpbGVOYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+IHwgdW5kZWZpbmVkO1xyXG4gIEBDb250ZW50Q2hpbGQoJ2xvZ2luJywge3N0YXRpYzogZmFsc2V9KVxyXG4gIGxvZ2luVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XHJcbiAgdXNlcm5hbWUgPSAnJztcclxuICBwYXNzd29yZCA9ICcnO1xyXG4gIHByb2ZpbGVOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgT0F1dGhTdGF0dXMgPSBPQXV0aFN0YXR1cztcclxuICBPQXV0aFR5cGUgPSBPQXV0aFR5cGU7XHJcbiAgY29sbGFwc2UgPSBmYWxzZTtcclxuICB0eXBlID0gdGhpcy5vYXV0aFNlcnZpY2UudHlwZTtcclxuICByZWRpcmVjdFVyaSA9IHRoaXMubG9jYXRpb24uaHJlZjtcclxuICBzdGF0ZSQgPSB0aGlzLm9hdXRoU2VydmljZS5zdGF0ZSQucGlwZShcclxuICAgIHRhcChzID0+IHRoaXMuc3RhdGVDaGFuZ2UuZW1pdChzKSlcclxuICApO1xyXG4gIHN0YXR1cyQgPSB0aGlzLm9hdXRoU2VydmljZS5zdGF0dXMkLnBpcGUoXHJcbiAgICB0YXAocyA9PiB7XHJcbiAgICAgIGlmIChzID09PSBPQXV0aFN0YXR1cy5BVVRIT1JJWkVEICYmIHRoaXMucHJvZmlsZU5hbWUkKSB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMucHJvZmlsZU5hbWUkLnN1YnNjcmliZShuID0+IHRoaXMucHJvZmlsZU5hbWUgPSBuKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wcm9maWxlTmFtZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICk7XHJcbiAgbG9naW5GdW5jdGlvbiA9IChwOiBPQXV0aFBhcmFtZXRlcnMpID0+IHRoaXMubG9naW4ocCk7XHJcbiAgbG9nb3V0RnVuY3Rpb24gPSAoKSA9PiB0aGlzLmxvZ291dCgpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9hdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIEBJbmplY3QoTE9DQVRJT04pIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICB0aGlzLm9hdXRoU2VydmljZS5sb2dvdXQoKTtcclxuICB9XHJcblxyXG4gIGxvZ2luKHBhcmFtZXRlcnM6IE9BdXRoUGFyYW1ldGVycykge1xyXG4gICAgdGhpcy5vYXV0aFNlcnZpY2UubG9naW4ocGFyYW1ldGVycyk7XHJcbiAgICB0aGlzLmNvbGxhcHNlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVDb2xsYXBzZSgpIHtcclxuICAgIHRoaXMuY29sbGFwc2UgPSAhdGhpcy5jb2xsYXBzZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duLmVzY2FwZScpXHJcbiAga2V5Ym9hcmRFdmVudCgpIHtcclxuICAgIHRoaXMuY29sbGFwc2UgPSBmYWxzZTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXRlJCB8IGFzeW5jXCI+PC9uZy1jb250YWluZXI+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJsb2dpblRlbXBsYXRlOyBlbHNlIGRlZmF1bHRMb2dpblwiXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwibG9naW5UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntsb2dpbjogbG9naW5GdW5jdGlvbiwgbG9nb3V0OiBsb2dvdXRGdW5jdGlvbiwgc3RhdHVzOiBzdGF0dXMkIHwgYXN5bmN9XCI+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRMb2dpbj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RhdHVzJCB8IGFzeW5jIGFzIHN0YXR1c1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09IE9BdXRoVHlwZS5SRVNPVVJDRTsgZWxzZSBub1Jlc291cmNlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJvYXV0aCBkcm9wZG93biB0ZXh0LXJpZ2h0IHAtMyB7e2NvbGxhcHNlID8gJ3Nob3cnOiAnJ319XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGluayBwLTAgZHJvcGRvd24tdG9nZ2xlXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzdGF0dXMgPT09IE9BdXRoU3RhdHVzLkFVVEhPUklaRUQgPyBsb2dvdXQoKSA6IHRvZ2dsZUNvbGxhcHNlKClcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZXNzYWdlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUgbXItMyB7e2NvbGxhcHNlID8gJ3Nob3cnOiAnJ319XCI+XHJcbiAgICAgICAgICA8Zm9ybSBjbGFzcz1cInAtM1wiICNmb3JtPVwibmdGb3JtXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwic3RhdHVzID09PSBPQXV0aFN0YXR1cy5OT1RfQVVUSE9SSVpFRCB8fCBzdGF0dXMgPT09IE9BdXRoU3RhdHVzLkRFTklFRFwiXHJcbiAgICAgICAgICAgICAgICAoc3VibWl0KT1cImxvZ2luKHt1c2VybmFtZTogdXNlcm5hbWUsIHBhc3N3b3JkOiBwYXNzd29yZH0pXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICBuYW1lPVwidXNlcm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInVzZXJuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImkxOG4udXNlcm5hbWVcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJpMThuLnBhc3N3b3JkXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCI+e3tpMThuLnN1Ym1pdH19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjbm9SZXNvdXJjZT5cclxuICAgICAgPGEgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwib2F1dGhcIlxyXG4gICAgICAgICAoY2xpY2spPVwic3RhdHVzID09PSBPQXV0aFN0YXR1cy5BVVRIT1JJWkVEID8gbG9nb3V0KCkgOiBsb2dpbih7cmVkaXJlY3RVcmk6IHJlZGlyZWN0VXJpLCBzdGF0ZTpzdGF0ZX0pXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1lc3NhZ2VcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9hPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI21lc3NhZ2U+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwic3RhdHVzID09PSBPQXV0aFN0YXR1cy5OT1RfQVVUSE9SSVpFRFwiPnt7aTE4bi5ub3RBdXRob3JpemVkfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwic3RhdHVzID09PSBPQXV0aFN0YXR1cy5BVVRIT1JJWkVEXCI+XHJcbiAgICAgICAge3tpMThuLmF1dGhvcml6ZWR9fTxzdHJvbmc+Jm5ic3A7e3twcm9maWxlTmFtZX19PC9zdHJvbmc+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJzdGF0dXMgPT09IE9BdXRoU3RhdHVzLkRFTklFRFwiPnt7aTE4bi5kZW5pZWR9fTwvc3Bhbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtbG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9hdXRoL3NyYy9saWIvY29tcG9uZW50cy9sb2dpbi9vYXV0aC1sb2dpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2F1dGgvc3JjL2xpYi9jb21wb25lbnRzL2xvZ2luL29hdXRoLWxvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYSxZQUFZLEVBQUUsSUFBSSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxRQUFRLEVBQW1CLFdBQVcsRUFBRSxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDL0UsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7OztBQW1CbkMsTUFBTSxPQUFPLG1CQUFtQjtJQW9FOUIsWUFBb0IsWUFBMEIsRUFDMUIsZUFBMEIsRUFDUixRQUFrQjtRQUZwQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixvQkFBZSxHQUFmLGVBQWUsQ0FBVztRQUNSLGFBQVEsR0FBUixRQUFRLENBQVU7UUFuRWhELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxVQUFLLEdBQW1CO1lBQzlCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLGFBQWEsRUFBRSxTQUFTO1lBQ3hCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLE1BQU0sRUFBRSwyQkFBMkI7U0FDcEMsQ0FBQztRQTBCRixVQUFL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QUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFHRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQzs7Z0hBN0ZVLG1CQUFtQixzRUFzRVYsUUFBUTtvR0F0RWpCLG1CQUFtQix5V0NqQ2hDLDR1RkE0REE7MkZEM0JhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxhQUFhLGlCQUdSLGlCQUFpQixDQUFDLElBQUk7NEdBd0VXLFFBQVE7MEJBQTNDLE1BQU07MkJBQUMsUUFBUTs0Q0FwRHhCLElBQUk7c0JBRFAsS0FBSztnQkFTRixXQUFXO3NCQURkLEtBQUs7Z0JBWU4sS0FBSztzQkFESixLQUFLO2dCQUdOLFdBQVc7c0JBRFYsTUFBTTtnQkFHUCxZQUFZO3NCQURYLEtBQUs7Z0JBR04sYUFBYTtzQkFEWixZQUFZO3VCQUFDLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBaUR0QyxhQUFhO3NCQURaLFlBQVk7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIHRha2V9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0xPQ0FUSU9OLCBPQXV0aFBhcmFtZXRlcnMsIE9BdXRoU3RhdHVzLCBPQXV0aFR5cGV9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7dGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7T0F1dGhTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHtMb2NhdGlvbiBhcyBMb2NhdGlvbjJ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9BdXRoTG9naW5JMThuIHtcclxuICB1c2VybmFtZT86IHN0cmluZztcclxuICBwYXNzd29yZD86IHN0cmluZztcclxuICBzdWJtaXQ/OiBzdHJpbmc7XHJcbiAgbm90QXV0aG9yaXplZD86IHN0cmluZztcclxuICBhdXRob3JpemVkPzogc3RyaW5nO1xyXG4gIGRlbmllZD86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdvYXV0aC1sb2dpbicsXHJcbiAgdGVtcGxhdGVVcmw6ICdvYXV0aC1sb2dpbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ29hdXRoLWxvZ2luLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE9BdXRoTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIF9yZWRpcmVjdFVyaTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIHByaXZhdGUgX2kxOG46IE9BdXRoTG9naW5JMThuID0ge1xyXG4gICAgdXNlcm5hbWU6ICdVc2VybmFtZScsXHJcbiAgICBwYXNzd29yZDogJ1Bhc3N3b3JkJyxcclxuICAgIHN1Ym1pdDogJ1NpZ24gaW4nLFxyXG4gICAgbm90QXV0aG9yaXplZDogJ1NpZ24gaW4nLFxyXG4gICAgYXV0aG9yaXplZDogJ1dlbGNvbWUnLFxyXG4gICAgZGVuaWVkOiAnQWNjZXNzIERlbmllZC4gVHJ5IGFnYWluISdcclxuICB9O1xyXG5cclxuICBnZXQgaTE4bigpIHtcclxuICAgIHJldHVybiB0aGlzLl9pMThuO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgaTE4bihpMThuKSB7XHJcbiAgICB0aGlzLl9pMThuID0ge1xyXG4gICAgICAuLi50aGlzLl9pMThuLFxyXG4gICAgICAuLi5pMThuXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgcmVkaXJlY3RVcmkocmVkaXJlY3RVcmk6IHN0cmluZykge1xyXG4gICAgaWYgKHJlZGlyZWN0VXJpKSB7XHJcbiAgICAgIHRoaXMuX3JlZGlyZWN0VXJpID0gcmVkaXJlY3RVcmk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgcmVkaXJlY3RVcmkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVkaXJlY3RVcmkgfHwgYCR7dGhpcy5sb2NhdGlvbi5vcmlnaW59JHt0aGlzLmxvY2F0aW9uU2VydmljZS5wYXRoKHRydWUpIHx8ICcvJ31gO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzdGF0ZSA9ICcnO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHN0YXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKVxyXG4gIHByb2ZpbGVOYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkO1xyXG4gIEBDb250ZW50Q2hpbGQoJ2xvZ2luJywge3N0YXRpYzogZmFsc2V9KVxyXG4gIGxvZ2luVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XHJcbiAgdXNlcm5hbWUgPSAnJztcclxuICBwYXNzd29yZCA9ICcnO1xyXG4gIHByb2ZpbGVOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgT0F1dGhTdGF0dXMgPSBPQXV0aFN0YXR1cztcclxuICBPQXV0aFR5cGUgPSBPQXV0aFR5cGU7XHJcbiAgY29sbGFwc2UgPSBmYWxzZTtcclxuICB0eXBlID0gdGhpcy5vYXV0aFNlcnZpY2UudHlwZTtcclxuICBzdGF0ZSQgPSB0aGlzLm9hdXRoU2VydmljZS5zdGF0ZSQucGlwZShcclxuICAgIHRhcChzID0+IHRoaXMuc3RhdGVDaGFuZ2UuZW1pdChzKSlcclxuICApO1xyXG4gIHN0YXR1cyQgPSB0aGlzLm9hdXRoU2VydmljZS5zdGF0dXMkLnBpcGUoXHJcbiAgICB0YXAocyA9PiB7XHJcbiAgICAgIGlmIChzID09PSBPQXV0aFN0YXR1cy5BVVRIT1JJWkVEICYmIHRoaXMucHJvZmlsZU5hbWUkKSB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMucHJvZmlsZU5hbWUkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKG4gPT4gdGhpcy5wcm9maWxlTmFtZSA9IG4pKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCB7dG9rZW59ID0gdGhpcy5vYXV0aFNlcnZpY2U7XHJcbiAgICAgICAgY29uc3QgdXNlckluZm8gPSB0b2tlbiAmJiB0b2tlbi5pZF90b2tlbiAmJiBKU09OLnBhcnNlKGF0b2IodG9rZW4uaWRfdG9rZW4uc3BsaXQoJy4nKVsxXSkpIHx8IHt9O1xyXG4gICAgICAgIHRoaXMucHJvZmlsZU5hbWUgPSB1c2VySW5mby5uYW1lIHx8IHVzZXJJbmZvLnVzZXJuYW1lIHx8IHVzZXJJbmZvLmVtYWlsIHx8IHVzZXJJbmZvLnN1YiB8fCAnJztcclxuICAgICAgfVxyXG4gICAgfSlcclxuICApO1xyXG4gIGxvZ2luRnVuY3Rpb24gPSAocDogT0F1dGhQYXJhbWV0ZXJzKSA9PiB0aGlzLmxvZ2luKHApO1xyXG4gIGxvZ291dEZ1bmN0aW9uID0gKCkgPT4gdGhpcy5sb2dvdXQoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGxvY2F0aW9uU2VydmljZTogTG9jYXRpb24yLFxyXG4gICAgICAgICAgICAgIEBJbmplY3QoTE9DQVRJT04pIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICB0aGlzLm9hdXRoU2VydmljZS5sb2dvdXQoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGxvZ2luKHBhcmFtZXRlcnM6IE9BdXRoUGFyYW1ldGVycykge1xyXG4gICAgYXdhaXQgdGhpcy5vYXV0aFNlcnZpY2UubG9naW4ocGFyYW1ldGVycyk7XHJcbiAgICB0aGlzLmNvbGxhcHNlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVDb2xsYXBzZSgpIHtcclxuICAgIHRoaXMuY29sbGFwc2UgPSAhdGhpcy5jb2xsYXBzZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duLmVzY2FwZScpXHJcbiAga2V5Ym9hcmRFdmVudCgpIHtcclxuICAgIHRoaXMuY29sbGFwc2UgPSBmYWxzZTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXRlJCB8IGFzeW5jXCI+PC9uZy1jb250YWluZXI+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJsb2dpblRlbXBsYXRlOyBlbHNlIGRlZmF1bHRMb2dpblwiXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwibG9naW5UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntsb2dpbjogbG9naW5GdW5jdGlvbiwgbG9nb3V0OiBsb2dvdXRGdW5jdGlvbiwgc3RhdHVzOiBzdGF0dXMkIHwgYXN5bmN9XCI+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRMb2dpbj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RhdHVzJCB8IGFzeW5jIGFzIHN0YXR1c1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09IE9BdXRoVHlwZS5SRVNPVVJDRTsgZWxzZSBub1Jlc291cmNlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJvYXV0aCBkcm9wZG93biB0ZXh0LWVuZCBwLTMge3tjb2xsYXBzZSA/ICdzaG93JzogJyd9fVwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpbmsgcC0wIGRyb3Bkb3duLXRvZ2dsZVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic3RhdHVzID09PSBPQXV0aFN0YXR1cy5BVVRIT1JJWkVEID8gbG9nb3V0KCkgOiB0b2dnbGVDb2xsYXBzZSgpXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWVzc2FnZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51IG1yLTMge3tjb2xsYXBzZSA/ICdzaG93JzogJyd9fVwiPlxyXG4gICAgICAgICAgPGZvcm0gY2xhc3M9XCJwLTNcIiAjZm9ybT1cIm5nRm9ybVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInN0YXR1cyA9PT0gT0F1dGhTdGF0dXMuTk9UX0FVVEhPUklaRUQgfHwgc3RhdHVzID09PSBPQXV0aFN0YXR1cy5ERU5JRURcIlxyXG4gICAgICAgICAgICAgICAgKHN1Ym1pdCk9XCJsb2dpbih7dXNlcm5hbWU6IHVzZXJuYW1lLCBwYXNzd29yZDogcGFzc3dvcmR9KVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInVzZXJuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ1c2VybmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJpMThuLnVzZXJuYW1lXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaTE4bi5wYXNzd29yZFwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIj57e2kxOG4uc3VibWl0fX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNub1Jlc291cmNlPlxyXG4gICAgICA8YSByb2xlPVwiYnV0dG9uXCIgY2xhc3M9XCJvYXV0aFwiXHJcbiAgICAgICAgIChjbGljayk9XCJzdGF0dXMgPT09IE9BdXRoU3RhdHVzLkFVVEhPUklaRUQgPyBsb2dvdXQoKSA6IGxvZ2luKHtyZWRpcmVjdFVyaTogcmVkaXJlY3RVcmksIHN0YXRlOnN0YXRlfSlcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWVzc2FnZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2E+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjbWVzc2FnZT5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJzdGF0dXMgPT09IE9BdXRoU3RhdHVzLk5PVF9BVVRIT1JJWkVEXCI+e3tpMThuLm5vdEF1dGhvcml6ZWR9fTwvc3Bhbj5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJzdGF0dXMgPT09IE9BdXRoU3RhdHVzLkFVVEhPUklaRURcIj5cclxuICAgICAgICB7e2kxOG4uYXV0aG9yaXplZH19PHN0cm9uZz4mbmJzcDt7e3Byb2ZpbGVOYW1lfX08L3N0cm9uZz5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cInN0YXR1cyA9PT0gT0F1dGhTdGF0dXMuREVOSUVEXCI+e3tpMThuLmRlbmllZH19PC9zcGFuPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiJdfQ==
@@ -4,6 +4,7 @@ export const SERVER_PATH = new InjectionToken('SERVER_PATH');
4
4
  export const LOCATION = new InjectionToken('Location');
5
5
  export const STORAGE = new InjectionToken('Storage');
6
6
  export const OAUTH_CONFIG = new InjectionToken('OAuthConfig');
7
+ export const OAUTH_TOKEN = new InjectionToken('OAuthToken');
7
8
  export var OAuthType;
8
9
  (function (OAuthType) {
9
10
  OAuthType["RESOURCE"] = "password";
@@ -17,4 +18,4 @@ export var OAuthStatus;
17
18
  OAuthStatus["AUTHORIZED"] = "AUTHORIZED";
18
19
  OAuthStatus["DENIED"] = "DENIED";
19
20
  })(OAuthStatus || (OAuthStatus = {}));
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2F1dGgvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQVMsYUFBYSxDQUFDLENBQUM7QUFDckUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFTLGFBQWEsQ0FBQyxDQUFDO0FBQ3JFLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBVyxVQUFVLENBQUMsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQVUsU0FBUyxDQUFDLENBQUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFjLGFBQWEsQ0FBQyxDQUFDO0FBRTNFLE1BQU0sQ0FBTixJQUFZLFNBS1g7QUFMRCxXQUFZLFNBQVM7SUFDbkIsa0NBQXFCLENBQUE7SUFDckIsd0NBQTJCLENBQUE7SUFDM0IsK0JBQWtCLENBQUE7SUFDbEIscURBQXdDLENBQUE7QUFDMUMsQ0FBQyxFQUxXLFNBQVMsS0FBVCxTQUFTLFFBS3BCO0FBd0VELE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZLFdBQVc7SUFDckIsZ0RBQWlDLENBQUE7SUFDakMsd0NBQXlCLENBQUE7SUFDekIsZ0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLFdBQVcsS0FBWCxXQUFXLFFBSXRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBTRVJWRVJfSE9TVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdTRVJWRVJfSE9TVCcpO1xuZXhwb3J0IGNvbnN0IFNFUlZFUl9QQVRIID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ1NFUlZFUl9QQVRIJyk7XG5leHBvcnQgY29uc3QgTE9DQVRJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48TG9jYXRpb24+KCdMb2NhdGlvbicpO1xuZXhwb3J0IGNvbnN0IFNUT1JBR0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48U3RvcmFnZT4oJ1N0b3JhZ2UnKTtcbmV4cG9ydCBjb25zdCBPQVVUSF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48T0F1dGhDb25maWc+KCdPQXV0aENvbmZpZycpO1xuXG5leHBvcnQgZW51bSBPQXV0aFR5cGUge1xuICBSRVNPVVJDRSA9ICdwYXNzd29yZCcsXG4gIEFVVEhPUklaQVRJT05fQ09ERSA9ICdjb2RlJyxcbiAgSU1QTElDSVQgPSAndG9rZW4nLFxuICBDTElFTlRfQ1JFREVOVElBTCA9ICdjbGllbnRfY3JlZGVudGlhbHMnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGhDb25maWcge1xuICB0eXBlOiBPQXV0aFR5cGU7XG4gIGNvbmZpZzogT0F1dGhUeXBlQ29uZmlnO1xuICBzdG9yYWdlS2V5Pzogc3RyaW5nO1xuICBzdG9yYWdlPzogU3RvcmFnZTtcbiAgaWdub3JlUGF0aHM/OiBSZWdFeHBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGllbnRDcmVkZW50aWFsQ29uZmlnIHtcbiAgdG9rZW5QYXRoOiBzdHJpbmc7XG4gIHJldm9rZVBhdGg/OiBzdHJpbmc7XG4gIGNsaWVudElkOiBzdHJpbmc7XG4gIGNsaWVudFNlY3JldD86IHN0cmluZztcbiAgc2NvcGU/OiBzdHJpbmc7XG59XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VDb25maWcgZXh0ZW5kcyBDbGllbnRDcmVkZW50aWFsQ29uZmlnIHtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbXBsaWNpdENvbmZpZyB7XG4gIGF1dGhvcml6ZVBhdGg6IHN0cmluZztcbiAgcmV2b2tlUGF0aD86IHN0cmluZztcbiAgY2xpZW50SWQ6IHN0cmluZztcbiAgc2NvcGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXphdGlvbkNvZGVDb25maWcgZXh0ZW5kcyBSZXNvdXJjZUNvbmZpZyB7XG4gIGF1dGhvcml6ZVBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uQ29kZVBLQ0VDb25maWcgZXh0ZW5kcyBBdXRob3JpemF0aW9uQ29kZUNvbmZpZyB7XG4gIHBrY2U6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VQYXJhbWV0ZXJzIHtcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbXBsaWNpdFBhcmFtZXRlcnMge1xuICByZWRpcmVjdFVyaTogc3RyaW5nO1xuICBzdGF0ZT86IHN0cmluZztcbn1cblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uQ29kZVBhcmFtZXRlcnMgZXh0ZW5kcyBJbXBsaWNpdFBhcmFtZXRlcnMge1xufVxuXG5leHBvcnQgdHlwZSBPQXV0aFBhcmFtZXRlcnMgPSBSZXNvdXJjZVBhcmFtZXRlcnMgfCBBdXRob3JpemF0aW9uQ29kZVBhcmFtZXRlcnMgfCBJbXBsaWNpdFBhcmFtZXRlcnM7XG5leHBvcnQgdHlwZSBPQXV0aFR5cGVDb25maWcgPVxuICBBdXRob3JpemF0aW9uQ29kZVBLQ0VDb25maWdcbiAgfCBBdXRob3JpemF0aW9uQ29kZUNvbmZpZ1xuICB8IEltcGxpY2l0Q29uZmlnXG4gIHwgUmVzb3VyY2VDb25maWdcbiAgfCBDbGllbnRDcmVkZW50aWFsQ29uZmlnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9BdXRoVG9rZW4ge1xuICBpZF90b2tlbj86IHN0cmluZztcbiAgYWNjZXNzX3Rva2VuPzogc3RyaW5nO1xuICByZWZyZXNoX3Rva2VuPzogc3RyaW5nO1xuICB0b2tlbl90eXBlPzogc3RyaW5nO1xuICBzdGF0ZT86IHN0cmluZztcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIGV4cGlyZXNfaW4/OiBudW1iZXIgfCBzdHJpbmc7XG4gIHJlZnJlc2hfZXhwaXJlc19pbj86IG51bWJlcjtcbiAgc2NvcGU/OiBzdHJpbmc7XG4gIGNvZGVWZXJpZmllcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gT0F1dGhTdGF0dXMge1xuICBOT1RfQVVUSE9SSVpFRCA9ICdOT1RfQVVUSE9SSVpFRCcsXG4gIEFVVEhPUklaRUQgPSAnQVVUSE9SSVpFRCcsXG4gIERFTklFRCA9ICdERU5JRUQnXG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2F1dGgvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQVMsYUFBYSxDQUFDLENBQUM7QUFDckUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFTLGFBQWEsQ0FBQyxDQUFDO0FBQ3JFLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBVyxVQUFVLENBQUMsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQVUsU0FBUyxDQUFDLENBQUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFjLGFBQWEsQ0FBQyxDQUFDO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBYSxZQUFZLENBQUMsQ0FBQztBQUV4RSxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLGtDQUFxQixDQUFBO0lBQ3JCLHdDQUEyQixDQUFBO0lBQzNCLCtCQUFrQixDQUFBO0lBQ2xCLHFEQUF3QyxDQUFBO0FBQzFDLENBQUMsRUFMVyxTQUFTLEtBQVQsU0FBUyxRQUtwQjtBQWlGRCxNQUFNLENBQU4sSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ3JCLGdEQUFpQyxDQUFBO0lBQ2pDLHdDQUF5QixDQUFBO0lBQ3pCLGdDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKVyxXQUFXLEtBQVgsV0FBVyxRQUl0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgU0VSVkVSX0hPU1QgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignU0VSVkVSX0hPU1QnKTtcbmV4cG9ydCBjb25zdCBTRVJWRVJfUEFUSCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdTRVJWRVJfUEFUSCcpO1xuZXhwb3J0IGNvbnN0IExPQ0FUSU9OID0gbmV3IEluamVjdGlvblRva2VuPExvY2F0aW9uPignTG9jYXRpb24nKTtcbmV4cG9ydCBjb25zdCBTVE9SQUdFID0gbmV3IEluamVjdGlvblRva2VuPFN0b3JhZ2U+KCdTdG9yYWdlJyk7XG5leHBvcnQgY29uc3QgT0FVVEhfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPE9BdXRoQ29uZmlnPignT0F1dGhDb25maWcnKTtcbmV4cG9ydCBjb25zdCBPQVVUSF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPQXV0aFRva2VuPignT0F1dGhUb2tlbicpO1xuXG5leHBvcnQgZW51bSBPQXV0aFR5cGUge1xuICBSRVNPVVJDRSA9ICdwYXNzd29yZCcsXG4gIEFVVEhPUklaQVRJT05fQ09ERSA9ICdjb2RlJyxcbiAgSU1QTElDSVQgPSAndG9rZW4nLFxuICBDTElFTlRfQ1JFREVOVElBTCA9ICdjbGllbnRfY3JlZGVudGlhbHMnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGhDb25maWcge1xuICB0eXBlOiBPQXV0aFR5cGU7XG4gIGNvbmZpZzogT0F1dGhUeXBlQ29uZmlnO1xuICBzdG9yYWdlS2V5Pzogc3RyaW5nO1xuICBzdG9yYWdlPzogU3RvcmFnZTtcbiAgaWdub3JlUGF0aHM/OiBSZWdFeHBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGllbnRDcmVkZW50aWFsQ29uZmlnIHtcbiAgdG9rZW5QYXRoOiBzdHJpbmc7XG4gIHJldm9rZVBhdGg/OiBzdHJpbmc7XG4gIGNsaWVudElkOiBzdHJpbmc7XG4gIGNsaWVudFNlY3JldD86IHN0cmluZztcbiAgc2NvcGU/OiBzdHJpbmc7XG59XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VDb25maWcgZXh0ZW5kcyBDbGllbnRDcmVkZW50aWFsQ29uZmlnIHtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbXBsaWNpdENvbmZpZyB7XG4gIGF1dGhvcml6ZVBhdGg6IHN0cmluZztcbiAgcmV2b2tlUGF0aD86IHN0cmluZztcbiAgY2xpZW50SWQ6IHN0cmluZztcbiAgc2NvcGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXphdGlvbkNvZGVDb25maWcgZXh0ZW5kcyBSZXNvdXJjZUNvbmZpZyB7XG4gIGF1dGhvcml6ZVBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uQ29kZVBLQ0VDb25maWcgZXh0ZW5kcyBBdXRob3JpemF0aW9uQ29kZUNvbmZpZyB7XG4gIHBrY2U6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbklkQ29uZmlnIHtcbiAgaXNzdWVyUGF0aDogc3RyaW5nO1xuICBjbGllbnRJZDogc3RyaW5nO1xuICBjbGllbnRTZWNyZXQ/OiBzdHJpbmc7XG4gIHNjb3BlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlUGFyYW1ldGVycyB7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wbGljaXRQYXJhbWV0ZXJzIHtcbiAgcmVkaXJlY3RVcmk6IHN0cmluZztcbiAgc3RhdGU/OiBzdHJpbmc7XG59XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXphdGlvbkNvZGVQYXJhbWV0ZXJzIGV4dGVuZHMgSW1wbGljaXRQYXJhbWV0ZXJzIHtcbn1cblxuZXhwb3J0IHR5cGUgT0F1dGhQYXJhbWV0ZXJzID0gUmVzb3VyY2VQYXJhbWV0ZXJzIHwgQXV0aG9yaXphdGlvbkNvZGVQYXJhbWV0ZXJzIHwgSW1wbGljaXRQYXJhbWV0ZXJzO1xuZXhwb3J0IHR5cGUgT0F1dGhUeXBlQ29uZmlnID0gT3BlbklkQ29uZmlnXG4gIHwgQXV0aG9yaXphdGlvbkNvZGVQS0NFQ29uZmlnXG4gIHwgQXV0aG9yaXphdGlvbkNvZGVDb25maWdcbiAgfCBJbXBsaWNpdENvbmZpZ1xuICB8IFJlc291cmNlQ29uZmlnXG4gIHwgQ2xpZW50Q3JlZGVudGlhbENvbmZpZztcblxuZXhwb3J0IGludGVyZmFjZSBPQXV0aFRva2VuIHtcbiAgaWRfdG9rZW4/OiBzdHJpbmc7XG4gIGFjY2Vzc190b2tlbj86IHN0cmluZztcbiAgcmVmcmVzaF90b2tlbj86IHN0cmluZztcbiAgdG9rZW5fdHlwZT86IHN0cmluZztcbiAgc3RhdGU/OiBzdHJpbmc7XG4gIGVycm9yPzogc3RyaW5nO1xuICBlcnJvcl9kZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZXhwaXJlc19pbj86IG51bWJlciB8IHN0cmluZztcbiAgcmVmcmVzaF9leHBpcmVzX2luPzogbnVtYmVyO1xuICBzY29wZT86IHN0cmluZztcbiAgY29kZVZlcmlmaWVyPzogc3RyaW5nO1xuICBub25jZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gT0F1dGhTdGF0dXMge1xuICBOT1RfQVVUSE9SSVpFRCA9ICdOT1RfQVVUSE9SSVpFRCcsXG4gIEFVVEhPUklaRUQgPSAnQVVUSE9SSVpFRCcsXG4gIERFTklFRCA9ICdERU5JRUQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbklkQ29uZmlndXJhdGlvbiB7XG4gIGlzc3Vlcj86IHN0cmluZztcbiAgYXV0aG9yaXphdGlvbl9lbmRwb2ludD86IHN0cmluZztcbiAgaW50cm9zcGVjdGlvbl9lbmRwb2ludD86IHN0cmluZztcbiAgdG9rZW5fZW5kcG9pbnQ/OiBzdHJpbmc7XG4gIHVzZXJpbmZvX2VuZHBvaW50Pzogc3RyaW5nO1xuICBlbmRfc2Vzc2lvbl9lbmRwb2ludD86IHN0cmluZztcbiAgcmV2b2NhdGlvbl9lbmRwb2ludD86IHN0cmluZztcbiAgc2NvcGVzX3N1cHBvcnRlZD86IHN0cmluZ1tdO1xuICBjb2RlX2NoYWxsZW5nZV9tZXRob2RzX3N1cHBvcnRlZD86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJJbmZvIHtcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGVtYWlsX3ZlcmlmaWVkPzogYm9vbGVhbjtcbiAgZmFtaWx5X25hbWU/OiBzdHJpbmc7XG4gIGdpdmVuX25hbWU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHByZWZlcnJlZF91c2VybmFtZT86IHN0cmluZztcbiAgc3ViPzogc3RyaW5nO1xuICBhZGRyZXNzPzogb2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludHJvc3BlY3RJbmZvIGV4dGVuZHMgVXNlckluZm8ge1xuICBhY3RpdmU6IGJvb2xlYW47XG4gIHNjb3BlOiBzdHJpbmc7XG4gIGNsaWVudF9pZD86IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgZXhwOiBudW1iZXI7XG59XG4iXX0=
@@ -64,8 +64,7 @@ const defaultConfig = (storage) => {
64
64
  return {
65
65
  storage,
66
66
  storageKey: 'token',
67
- ignorePaths: [],
68
- pkce: false
67
+ ignorePaths: []
69
68
  };
70
69
  };
71
70
  export class OAuthModule {
@@ -128,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
128
127
  ]
129
128
  }]
130
129
  }] });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9hdXRoL3NyYy9saWIvb2F1dGgubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQWMsWUFBWSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNoRyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDOztBQUU5RCxNQUFNLFlBQVksR0FBRyxDQUFDLFVBQWtCLEVBQUUsVUFBa0IsRUFBWSxFQUFFO0lBQ3hFLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2xHLE1BQU0sRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyxHQUFHLEdBQUcsQ0FBQztJQUNuRixPQUFPO1FBQ0wsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJO1FBQ3BFLE1BQU07UUFDTixDQUFDO1FBQ0QsTUFBTSxDQUFDLENBQVM7UUFDaEIsQ0FBQztRQUNELGVBQWUsRUFBRSxFQUFTO1FBQzFCLE9BQU8sQ0FBQyxDQUFTO1FBQ2pCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUc7SUFDdEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsVUFBVSxDQUFDLFVBQWtCLEVBQUUsVUFBa0IsRUFBRSxVQUFrQjtRQUNuRSxPQUFPLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUNELElBQUksRUFBRTtRQUNKLFdBQVc7UUFDWCxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsV0FBVyxDQUFDO1FBQzdCLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxXQUFXLENBQUM7S0FDOUI7Q0FDRixDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQVk7SUFDM0IsS0FBSztJQUNMLENBQUM7SUFDRCxPQUFPLENBQUMsR0FBVztRQUNqQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxHQUFHLENBQUMsS0FBYTtRQUNmLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELFVBQVUsQ0FBQyxHQUFXO0lBQ3RCLENBQUM7SUFDRCxPQUFPLENBQUMsR0FBVyxFQUFFLEtBQWE7SUFDbEMsQ0FBQztJQUNELE1BQU0sRUFBRSxDQUFDO0NBQ1YsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHO0lBQ3JCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFVBQVUsQ0FBQyxVQUFrQjtRQUMzQixPQUFPLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNwRSxDQUFDO0lBQ0QsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDO0NBQ3BCLENBQUM7QUFFRixNQUFNLHVCQUF1QixHQUFHO0lBQzlCLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQixLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtJQUN6QyxPQUFPO1FBQ0wsT0FBTztRQUNQLFVBQVUsRUFBRSxPQUFPO1FBQ25CLFdBQVcsRUFBRSxFQUFFO1FBQ2YsSUFBSSxFQUFFLEtBQUs7S0FDWixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBa0JGLE1BQU0sT0FBTyxXQUFXO0lBRXRCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBbUI7UUFDaEMsT0FBTztZQUNMLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFNBQVMsRUFBRTtnQkFDVCxlQUFlO2dCQUNmLGNBQWM7Z0JBQ2QsWUFBWTtnQkFDWix1QkFBdUI7Z0JBQ3ZCO29CQUNFLE9BQU8sRUFBRSxZQUFZO29CQUNyQixVQUFVLENBQUMsT0FBZ0I7d0JBQ3pCLE9BQU87NEJBQ0wsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDOzRCQUN6QixHQUFHLE1BQU07eUJBQ1YsQ0FBQztvQkFDSixDQUFDO29CQUNELElBQUksRUFBRTt3QkFDSixPQUFPO3FCQUNSO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7d0dBeEJVLFdBQVc7eUdBQVgsV0FBVyxpQkFUUCxtQkFBbUIsYUFMaEMsWUFBWTtRQUNaLFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsWUFBWSxhQUdKLG1CQUFtQjt5R0FRbEIsV0FBVyxhQVBYO1FBQ1QsZUFBZTtRQUNmLGNBQWM7UUFDZCxZQUFZO1FBQ1osdUJBQXVCO0tBQ3hCLFlBYlE7WUFDUCxZQUFZO1lBQ1osV0FBVztZQUNYLGdCQUFnQjtZQUNoQixZQUFZO1NBQ2I7MkZBVVUsV0FBVztrQkFoQnZCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLFlBQVk7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUM5QixTQUFTLEVBQUU7d0JBQ1QsZUFBZTt3QkFDZixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osdUJBQXVCO3FCQUN4QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBQTEFURk9STV9JRH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0hUVFBfSU5URVJDRVBUT1JTLCBIdHRwQ2xpZW50TW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7T0F1dGhDb25maWcsIE9BVVRIX0NPTkZJRywgTE9DQVRJT04sIFNFUlZFUl9IT1NULCBTRVJWRVJfUEFUSCwgU1RPUkFHRX0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHtPQXV0aFNlcnZpY2V9IGZyb20gJy4vc2VydmljZXMvb2F1dGguc2VydmljZSc7XG5pbXBvcnQge09BdXRoTG9naW5Db21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9sb2dpbi9vYXV0aC1sb2dpbi5jb21wb25lbnQnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtPQXV0aEludGVyY2VwdG9yfSBmcm9tICcuL3NlcnZpY2VzL29hdXRoLmludGVyY2VwdG9yJztcblxuY29uc3QgbW9ja0xvY2F0aW9uID0gKHNlcnZlckhvc3Q6IHN0cmluZywgc2VydmVyUGF0aDogc3RyaW5nKTogTG9jYXRpb24gPT4ge1xuICBjb25zdCB1cmwgPSBuZXcgVVJMKHNlcnZlckhvc3QgJiYgc2VydmVyUGF0aCA/IGAke3NlcnZlckhvc3R9JHtzZXJ2ZXJQYXRofWAgOiAnaHR0cDovL2xvY2FsaG9zdCcpO1xuICBjb25zdCB7aHJlZiwgb3JpZ2luLCBwcm90b2NvbCwgaG9zdCwgaG9zdG5hbWUsIHBvcnQsIHBhdGhuYW1lLCBzZWFyY2gsIGhhc2h9ID0gdXJsO1xuICByZXR1cm4ge1xuICAgIGhyZWYsIG9yaWdpbiwgcHJvdG9jb2wsIGhvc3QsIGhvc3RuYW1lLCBwb3J0LCBwYXRobmFtZSwgc2VhcmNoLCBoYXNoLFxuICAgIHJlbG9hZCgpIHtcbiAgICB9LFxuICAgIGFzc2lnbih1OiBzdHJpbmcpIHtcbiAgICB9LFxuICAgIGFuY2VzdG9yT3JpZ2luczoge30gYXMgYW55LFxuICAgIHJlcGxhY2UodTogc3RyaW5nKSB7XG4gICAgfVxuICB9O1xufTtcblxuY29uc3QgTG9jYXRpb25TZXJ2aWNlID0ge1xuICBwcm92aWRlOiBMT0NBVElPTixcbiAgdXNlRmFjdG9yeShwbGF0Zm9ybUlkOiBPYmplY3QsIHNlcnZlckhvc3Q6IHN0cmluZywgc2VydmVyUGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpID8gbG9jYXRpb24gOiBtb2NrTG9jYXRpb24oc2VydmVySG9zdCwgc2VydmVyUGF0aCk7XG4gIH0sXG4gIGRlcHM6IFtcbiAgICBQTEFURk9STV9JRCxcbiAgICBbbmV3IE9wdGlvbmFsKCksIFNFUlZFUl9IT1NUXSxcbiAgICBbbmV3IE9wdGlvbmFsKCksIFNFUlZFUl9QQVRIXVxuICBdXG59O1xuXG5jb25zdCBtb2NrU3RvcmFnZTogU3RvcmFnZSA9IHtcbiAgY2xlYXIoKSB7XG4gIH0sXG4gIGdldEl0ZW0oa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSxcbiAga2V5KGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSxcbiAgcmVtb3ZlSXRlbShrZXk6IHN0cmluZykge1xuICB9LFxuICBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gIH0sXG4gIGxlbmd0aDogMFxufTtcblxuY29uc3QgU3RvcmFnZVNlcnZpY2UgPSB7XG4gIHByb3ZpZGU6IFNUT1JBR0UsXG4gIHVzZUZhY3RvcnkocGxhdGZvcm1JZDogT2JqZWN0KSB7XG4gICAgcmV0dXJuIGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpID8gbG9jYWxTdG9yYWdlIDogbW9ja1N0b3JhZ2U7XG4gIH0sXG4gIGRlcHM6IFtQTEFURk9STV9JRF1cbn07XG5cbmNvbnN0IE9BdXRoSW50ZXJjZXB0b3JTZXJ2aWNlID0ge1xuICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgdXNlQ2xhc3M6IE9BdXRoSW50ZXJjZXB0b3IsXG4gIG11bHRpOiB0cnVlLFxufTtcblxuY29uc3QgZGVmYXVsdENvbmZpZyA9IChzdG9yYWdlOiBTdG9yYWdlKSA9PiB7XG4gIHJldHVybiB7XG4gICAgc3RvcmFnZSxcbiAgICBzdG9yYWdlS2V5OiAndG9rZW4nLFxuICAgIGlnbm9yZVBhdGhzOiBbXSxcbiAgICBwa2NlOiBmYWxzZVxuICB9O1xufTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbT0F1dGhMb2dpbkNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtPQXV0aExvZ2luQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgTG9jYXRpb25TZXJ2aWNlLFxuICAgIFN0b3JhZ2VTZXJ2aWNlLFxuICAgIE9BdXRoU2VydmljZSxcbiAgICBPQXV0aEludGVyY2VwdG9yU2VydmljZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBPQXV0aE1vZHVsZSB7XG5cbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBPQXV0aENvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8T0F1dGhNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE9BdXRoTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIExvY2F0aW9uU2VydmljZSxcbiAgICAgICAgU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgIE9BdXRoU2VydmljZSxcbiAgICAgICAgT0F1dGhJbnRlcmNlcHRvclNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBPQVVUSF9DT05GSUcsXG4gICAgICAgICAgdXNlRmFjdG9yeShzdG9yYWdlOiBTdG9yYWdlKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5kZWZhdWx0Q29uZmlnKHN0b3JhZ2UpLFxuICAgICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogW1xuICAgICAgICAgICAgU1RPUkFHRVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9hdXRoL3NyYy9saWIvb2F1dGgubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQWMsWUFBWSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNoRyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDOztBQUU5RCxNQUFNLFlBQVksR0FBRyxDQUFDLFVBQWtCLEVBQUUsVUFBa0IsRUFBWSxFQUFFO0lBQ3hFLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2xHLE1BQU0sRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFB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QWhCdkIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsWUFBWTtxQkFDYjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQzlCLFNBQVMsRUFBRTt3QkFDVCxlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWix1QkFBdUI7cUJBQ3hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgT3B0aW9uYWwsIFBMQVRGT1JNX0lEfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7SFRUUF9JTlRFUkNFUFRPUlMsIEh0dHBDbGllbnRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPQXV0aENvbmZpZywgT0FVVEhfQ09ORklHLCBMT0NBVElPTiwgU0VSVkVSX0hPU1QsIFNFUlZFUl9QQVRILCBTVE9SQUdFfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQge09BdXRoU2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlcy9vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7T0F1dGhMb2dpbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2xvZ2luL29hdXRoLWxvZ2luLmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge09BdXRoSW50ZXJjZXB0b3J9IGZyb20gJy4vc2VydmljZXMvb2F1dGguaW50ZXJjZXB0b3InO1xuXG5jb25zdCBtb2NrTG9jYXRpb24gPSAoc2VydmVySG9zdDogc3RyaW5nLCBzZXJ2ZXJQYXRoOiBzdHJpbmcpOiBMb2NhdGlvbiA9PiB7XG4gIGNvbnN0IHVybCA9IG5ldyBVUkwoc2VydmVySG9zdCAmJiBzZXJ2ZXJQYXRoID8gYCR7c2VydmVySG9zdH0ke3NlcnZlclBhdGh9YCA6ICdodHRwOi8vbG9jYWxob3N0Jyk7XG4gIGNvbnN0IHtocmVmLCBvcmlnaW4sIHByb3RvY29sLCBob3N0LCBob3N0bmFtZSwgcG9ydCwgcGF0aG5hbWUsIHNlYXJjaCwgaGFzaH0gPSB1cmw7XG4gIHJldHVybiB7XG4gICAgaHJlZiwgb3JpZ2luLCBwcm90b2NvbCwgaG9zdCwgaG9zdG5hbWUsIHBvcnQsIHBhdGhuYW1lLCBzZWFyY2gsIGhhc2gsXG4gICAgcmVsb2FkKCkge1xuICAgIH0sXG4gICAgYXNzaWduKHU6IHN0cmluZykge1xuICAgIH0sXG4gICAgYW5jZXN0b3JPcmlnaW5zOiB7fSBhcyBhbnksXG4gICAgcmVwbGFjZSh1OiBzdHJpbmcpIHtcbiAgICB9XG4gIH07XG59O1xuXG5jb25zdCBMb2NhdGlvblNlcnZpY2UgPSB7XG4gIHByb3ZpZGU6IExPQ0FUSU9OLFxuICB1c2VGYWN0b3J5KHBsYXRmb3JtSWQ6IE9iamVjdCwgc2VydmVySG9zdDogc3RyaW5nLCBzZXJ2ZXJQYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCkgPyBsb2NhdGlvbiA6IG1vY2tMb2NhdGlvbihzZXJ2ZXJIb3N0LCBzZXJ2ZXJQYXRoKTtcbiAgfSxcbiAgZGVwczogW1xuICAgIFBMQVRGT1JNX0lELFxuICAgIFtuZXcgT3B0aW9uYWwoKSwgU0VSVkVSX0hPU1RdLFxuICAgIFtuZXcgT3B0aW9uYWwoKSwgU0VSVkVSX1BBVEhdXG4gIF1cbn07XG5cbmNvbnN0IG1vY2tTdG9yYWdlOiBTdG9yYWdlID0ge1xuICBjbGVhcigpIHtcbiAgfSxcbiAgZ2V0SXRlbShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiBudWxsO1xuICB9LFxuICBrZXkoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBudWxsO1xuICB9LFxuICByZW1vdmVJdGVtKGtleTogc3RyaW5nKSB7XG4gIH0sXG4gIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgfSxcbiAgbGVuZ3RoOiAwXG59O1xuXG5jb25zdCBTdG9yYWdlU2VydmljZSA9IHtcbiAgcHJvdmlkZTogU1RPUkFHRSxcbiAgdXNlRmFjdG9yeShwbGF0Zm9ybUlkOiBPYmplY3QpIHtcbiAgICByZXR1cm4gaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCkgPyBsb2NhbFN0b3JhZ2UgOiBtb2NrU3RvcmFnZTtcbiAgfSxcbiAgZGVwczogW1BMQVRGT1JNX0lEXVxufTtcblxuY29uc3QgT0F1dGhJbnRlcmNlcHRvclNlcnZpY2UgPSB7XG4gIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICB1c2VDbGFzczogT0F1dGhJbnRlcmNlcHRvcixcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5jb25zdCBkZWZhdWx0Q29uZmlnID0gKHN0b3JhZ2U6IFN0b3JhZ2UpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBzdG9yYWdlLFxuICAgIHN0b3JhZ2VLZXk6ICd0b2tlbicsXG4gICAgaWdub3JlUGF0aHM6IFtdXG4gIH07XG59O1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtPQXV0aExvZ2luQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW09BdXRoTG9naW5Db21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtcbiAgICBMb2NhdGlvblNlcnZpY2UsXG4gICAgU3RvcmFnZVNlcnZpY2UsXG4gICAgT0F1dGhTZXJ2aWNlLFxuICAgIE9BdXRoSW50ZXJjZXB0b3JTZXJ2aWNlLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE9BdXRoTW9kdWxlIHtcblxuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IE9BdXRoQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxPQXV0aE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogT0F1dGhNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTG9jYXRpb25TZXJ2aWNlLFxuICAgICAgICBTdG9yYWdlU2VydmljZSxcbiAgICAgICAgT0F1dGhTZXJ2aWNlLFxuICAgICAgICBPQXV0aEludGVyY2VwdG9yU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE9BVVRIX0NPTkZJRyxcbiAgICAgICAgICB1c2VGYWN0b3J5KHN0b3JhZ2U6IFN0b3JhZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmRlZmF1bHRDb25maWcoc3RvcmFnZSksXG4gICAgICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZXBzOiBbXG4gICAgICAgICAgICBTVE9SQUdFXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -11,7 +11,7 @@ export class OAuthInterceptor {
11
11
  intercept(req, next) {
12
12
  if (this.oauthService) {
13
13
  if (!this.isPathExcepted(req)) {
14
- const token = this.oauthService.token;
14
+ const { token } = this.oauthService;
15
15
  if (token && token.access_token) {
16
16
  req = req.clone({
17
17
  setHeaders: {
@@ -34,13 +34,16 @@ export class OAuthInterceptor {
34
34
  }
35
35
  }
36
36
  isPathExcepted(req) {
37
- for (const ignorePath of this.oauthService.ignorePaths) {
38
- try {
39
- if (req.url.match(ignorePath)) {
40
- return true;
37
+ const { ignorePaths } = this.oauthService;
38
+ if (ignorePaths) {
39
+ for (const ignorePath of this.oauthService.ignorePaths) {
40
+ try {
41
+ if (req.url.match(ignorePath)) {
42
+ return true;
43
+ }
44
+ }
45
+ catch (err) {
41
46
  }
42
- }
43
- catch (err) {
44
47
  }
45
48
  }
46
49
  return false;
@@ -51,4 +54,4 @@ OAuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ver
51
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: OAuthInterceptor, decorators: [{
52
55
  type: Injectable
53
56
  }], ctorParameters: function () { return [{ type: i1.OAuthService }]; } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGguaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2F1dGgvc3JjL2xpYi9zZXJ2aWNlcy9vYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxLQUFLLEVBQWMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sV0FBVyxDQUFDOzs7QUFHdEMsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUM5QyxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFDaEQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztnQkFDdEMsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtvQkFDL0IsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7d0JBQ2QsVUFBVSxFQUFFOzRCQUNWLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTt5QkFDM0Q7cUJBQ0YsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUMxQixVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO29CQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO29CQUM5QyxPQUFPLEtBQUssQ0FBQztpQkFDZDtnQkFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFDLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFxQjtRQUMxQyxLQUFLLE1BQU0sVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFO1lBQ3RELElBQUk7Z0JBQ0YsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtvQkFDN0IsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtZQUFDLE9BQU8sR0FBRyxFQUFFO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7NkdBMUNVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0VNUFRZLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtPQXV0aFNlcnZpY2V9IGZyb20gJy4vb2F1dGguc2VydmljZSc7XG5pbXBvcnQge09BdXRoU3RhdHVzfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT0F1dGhJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSkge1xuICB9XG5cbiAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgaWYgKHRoaXMub2F1dGhTZXJ2aWNlKSB7XG4gICAgICBpZiAoIXRoaXMuaXNQYXRoRXhjZXB0ZWQocmVxKSkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMub2F1dGhTZXJ2aWNlLnRva2VuO1xuICAgICAgICBpZiAodG9rZW4gJiYgdG9rZW4uYWNjZXNzX3Rva2VuKSB7XG4gICAgICAgICAgcmVxID0gcmVxLmNsb25lKHtcbiAgICAgICAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYCR7dG9rZW4udG9rZW5fdHlwZX0gJHt0b2tlbi5hY2Nlc3NfdG9rZW59YFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICBpZiAoZXJyLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgICB0aGlzLm9hdXRoU2VydmljZS50b2tlbiA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLm9hdXRoU2VydmljZS5zdGF0dXMgPSBPQXV0aFN0YXR1cy5ERU5JRUQ7XG4gICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihlcnIpKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNQYXRoRXhjZXB0ZWQocmVxOiBIdHRwUmVxdWVzdDxhbnk+KSB7XG4gICAgZm9yIChjb25zdCBpZ25vcmVQYXRoIG9mIHRoaXMub2F1dGhTZXJ2aWNlLmlnbm9yZVBhdGhzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAocmVxLnVybC5tYXRjaChpZ25vcmVQYXRoKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGguaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2F1dGgvc3JjL2xpYi9zZXJ2aWNlcy9vYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxLQUFLLEVBQWMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sV0FBVyxDQUFDOzs7QUFHdEMsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUM5QyxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFDaEQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QixNQUFNLEVBQUMsS0FBSyxFQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztnQkFDbEMsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtvQkFDL0IsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7d0JBQ2QsVUFBVSxFQUFFOzRCQUNWLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTt5QkFDM0Q7cUJBQ0YsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUMxQixVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO29CQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO29CQUM5QyxPQUFPLEtBQUssQ0FBQztpQkFDZDtnQkFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFDLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFxQjtRQUMxQyxNQUFNLEVBQUMsV0FBVyxFQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN4QyxJQUFJLFdBQVcsRUFBRTtZQUNmLEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3RELElBQUk7b0JBQ0YsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTt3QkFDN0IsT0FBTyxJQUFJLENBQUM7cUJBQ2I7aUJBQ0Y7Z0JBQUMsT0FBTyxHQUFHLEVBQUU7aUJBQ2I7YUFDRjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs2R0E3Q1UsZ0JBQWdCO2lIQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7RU1QVFksIE9ic2VydmFibGUsIHRocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge09BdXRoU2VydmljZX0gZnJvbSAnLi9vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7T0F1dGhTdGF0dXN9IGZyb20gJy4uL21vZGVscyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPQXV0aEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9hdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlKSB7XG4gIH1cblxuICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICBpZiAodGhpcy5vYXV0aFNlcnZpY2UpIHtcbiAgICAgIGlmICghdGhpcy5pc1BhdGhFeGNlcHRlZChyZXEpKSB7XG4gICAgICAgIGNvbnN0IHt0b2tlbn0gPSB0aGlzLm9hdXRoU2VydmljZTtcbiAgICAgICAgaWYgKHRva2VuICYmIHRva2VuLmFjY2Vzc190b2tlbikge1xuICAgICAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgICAgICBzZXRIZWFkZXJzOiB7XG4gICAgICAgICAgICAgIEF1dGhvcml6YXRpb246IGAke3Rva2VuLnRva2VuX3R5cGV9ICR7dG9rZW4uYWNjZXNzX3Rva2VufWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgaWYgKGVyci5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgdGhpcy5vYXV0aFNlcnZpY2UudG9rZW4gPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5vYXV0aFNlcnZpY2Uuc3RhdHVzID0gT0F1dGhTdGF0dXMuREVOSUVEO1xuICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoZXJyKSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzUGF0aEV4Y2VwdGVkKHJlcTogSHR0cFJlcXVlc3Q8YW55Pikge1xuICAgIGNvbnN0IHtpZ25vcmVQYXRoc30gPSB0aGlzLm9hdXRoU2VydmljZTtcbiAgICBpZiAoaWdub3JlUGF0aHMpIHtcbiAgICAgIGZvciAoY29uc3QgaWdub3JlUGF0aCBvZiB0aGlzLm9hdXRoU2VydmljZS5pZ25vcmVQYXRocykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmIChyZXEudXJsLm1hdGNoKGlnbm9yZVBhdGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19