@dangl/angular-dangl-identity-client 4.1.2 → 4.1.3-beta0008
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/esm2020/dangl-identity.module.mjs +17 -7
- package/esm2020/interceptors/jwt-interceptor.service.mjs +5 -5
- package/esm2020/messengers/authentication.messenger.mjs +30 -12
- package/esm2020/services/authentication.service.mjs +7 -9
- package/esm2020/services/jwt-token.service.mjs +14 -8
- package/fesm2015/dangl-angular-dangl-identity-client.mjs +61 -30
- package/fesm2015/dangl-angular-dangl-identity-client.mjs.map +1 -1
- package/fesm2020/dangl-angular-dangl-identity-client.mjs +61 -30
- package/fesm2020/dangl-angular-dangl-identity-client.mjs.map +1 -1
- package/interceptors/jwt-interceptor.service.d.ts +5 -5
- package/messengers/authentication.messenger.d.ts +5 -2
- package/package.json +1 -1
- package/services/jwt-token.service.d.ts +6 -4
|
@@ -1,19 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
1
|
+
import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
|
|
3
2
|
import { JwtInterceptorService } from './interceptors/jwt-interceptor.service';
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class DanglIdentityModule {
|
|
6
6
|
}
|
|
7
7
|
DanglIdentityModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: DanglIdentityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
8
|
DanglIdentityModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.4", ngImport: i0, type: DanglIdentityModule, imports: [HttpClientModule] });
|
|
9
|
-
DanglIdentityModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: DanglIdentityModule, providers: [
|
|
9
|
+
DanglIdentityModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: DanglIdentityModule, providers: [
|
|
10
|
+
{
|
|
11
|
+
provide: HTTP_INTERCEPTORS,
|
|
12
|
+
useClass: JwtInterceptorService,
|
|
13
|
+
multi: true,
|
|
14
|
+
},
|
|
15
|
+
], imports: [HttpClientModule] });
|
|
10
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: DanglIdentityModule, decorators: [{
|
|
11
17
|
type: NgModule,
|
|
12
18
|
args: [{
|
|
13
|
-
imports: [
|
|
14
|
-
|
|
19
|
+
imports: [HttpClientModule],
|
|
20
|
+
providers: [
|
|
21
|
+
{
|
|
22
|
+
provide: HTTP_INTERCEPTORS,
|
|
23
|
+
useClass: JwtInterceptorService,
|
|
24
|
+
multi: true,
|
|
25
|
+
},
|
|
15
26
|
],
|
|
16
|
-
providers: [{ provide: HTTP_INTERCEPTORS, useClass: JwtInterceptorService, multi: true }]
|
|
17
27
|
}]
|
|
18
28
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFuZ2wtaWRlbnRpdHkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1kYW5nbC1pZGVudGl0eS1jbGllbnQvc3JjL2RhbmdsLWlkZW50aXR5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVl6QyxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsWUFUcEIsZ0JBQWdCO2lIQVNmLG1CQUFtQixhQVJuQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixRQUFRLEVBQUUscUJBQXFCO1lBQy9CLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixZQVBTLGdCQUFnQjsyRkFTZixtQkFBbUI7a0JBVi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixRQUFRLEVBQUUscUJBQXFCOzRCQUMvQixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTLCBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgSnd0SW50ZXJjZXB0b3JTZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMvand0LWludGVyY2VwdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbSHR0cENsaWVudE1vZHVsZV0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxyXG4gICAgICB1c2VDbGFzczogSnd0SW50ZXJjZXB0b3JTZXJ2aWNlLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhbmdsSWRlbnRpdHlNb2R1bGUge31cclxuIl19
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { Inject, Injectable, InjectionToken, Optional } from
|
|
2
|
-
import { mergeMap } from
|
|
1
|
+
import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
|
|
2
|
+
import { mergeMap } from 'rxjs/operators';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../services/jwt-token.service";
|
|
5
|
-
export const DANGL_IDENTITY_REQUEST_VALIDATOR = new InjectionToken(
|
|
5
|
+
export const DANGL_IDENTITY_REQUEST_VALIDATOR = new InjectionToken('Validator to decide whether to include JWT tokens in requests');
|
|
6
6
|
export class JwtInterceptorService {
|
|
7
7
|
constructor(jwtTokenService, requestValidator) {
|
|
8
8
|
this.jwtTokenService = jwtTokenService;
|
|
9
9
|
this.requestValidator = requestValidator;
|
|
10
10
|
}
|
|
11
11
|
intercept(request, next) {
|
|
12
|
-
if (request.url.startsWith(
|
|
12
|
+
if (request.url.startsWith('/identity')) {
|
|
13
13
|
// Requests to the authentication endpoint should not be intercepted
|
|
14
14
|
return next.handle(request.clone());
|
|
15
15
|
}
|
|
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImpor
|
|
|
44
44
|
type: Inject,
|
|
45
45
|
args: [DANGL_IDENTITY_REQUEST_VALIDATOR]
|
|
46
46
|
}] }]; } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LWludGVyY2VwdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWRhbmdsLWlkZW50aXR5LWNsaWVudC9zcmMvaW50ZXJjZXB0b3JzL2p3dC1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHMUMsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQzNDLElBQUksY0FBYyxDQUNoQiwrREFBK0QsQ0FDaEUsQ0FBQztBQUVKLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFDUyxlQUFnQyxFQUcvQixnQkFBZ0Q7UUFIakQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRy9CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBZ0M7SUFDdkQsQ0FBQztJQUNKLFNBQVMsQ0FDUCxPQUF5QixFQUN6QixJQUFpQjtRQUVqQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3ZDLG9FQUFvRTtZQUNwRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDckM7UUFFRCxJQUNFLElBQUksQ0FBQyxnQkFBZ0I7WUFDckIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUMvQztZQUNBLDBFQUEwRTtZQUMxRSwrQ0FBK0M7WUFDL0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdCO1FBRUQsT0FBTyxJQUFJLENBQUMsZUFBZTthQUN4QixRQUFRLEVBQUU7YUFDVixJQUFJLENBQ0gsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDYixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUN2RSxDQUNGLENBQUM7SUFDTixDQUFDO0lBRU8sdUJBQXVCLENBQzdCLE9BQXlCLEVBQ3pCLEtBQWM7UUFFZCxJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDbkIsVUFBVSxFQUFFO29CQUNWLGFBQWEsRUFBRSxVQUFVLEtBQUssRUFBRTtpQkFDakM7YUFDRixDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7O2tIQTlDVSxxQkFBcUIsaURBSXRCLGdDQUFnQztzSEFKL0IscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQUlOLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBIdHRwRXZlbnQsXHJcbiAgSHR0cEhhbmRsZXIsXHJcbiAgSHR0cEludGVyY2VwdG9yLFxyXG4gIEh0dHBSZXF1ZXN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEp3dFRva2VuU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2p3dC10b2tlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSURhbmdsSWRlbnRpdHlSZXF1ZXN0VmFsaWRhdG9yIH0gZnJvbSAnLi9kYW5nbC1pZGVudGl0eS1yZXF1ZXN0LXZhbGlkYXRvcic7XHJcblxyXG5leHBvcnQgY29uc3QgREFOR0xfSURFTlRJVFlfUkVRVUVTVF9WQUxJREFUT1IgPVxyXG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxJRGFuZ2xJZGVudGl0eVJlcXVlc3RWYWxpZGF0b3I+KFxyXG4gICAgJ1ZhbGlkYXRvciB0byBkZWNpZGUgd2hldGhlciB0byBpbmNsdWRlIEpXVCB0b2tlbnMgaW4gcmVxdWVzdHMnXHJcbiAgKTtcclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSnd0SW50ZXJjZXB0b3JTZXJ2aWNlIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBqd3RUb2tlblNlcnZpY2U6IEp3dFRva2VuU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpXHJcbiAgICBASW5qZWN0KERBTkdMX0lERU5USVRZX1JFUVVFU1RfVkFMSURBVE9SKVxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0VmFsaWRhdG9yOiBJRGFuZ2xJZGVudGl0eVJlcXVlc3RWYWxpZGF0b3JcclxuICApIHt9XHJcbiAgaW50ZXJjZXB0KFxyXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PixcclxuICAgIG5leHQ6IEh0dHBIYW5kbGVyXHJcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgaWYgKHJlcXVlc3QudXJsLnN0YXJ0c1dpdGgoJy9pZGVudGl0eScpKSB7XHJcbiAgICAgIC8vIFJlcXVlc3RzIHRvIHRoZSBhdXRoZW50aWNhdGlvbiBlbmRwb2ludCBzaG91bGQgbm90IGJlIGludGVyY2VwdGVkXHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0LmNsb25lKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5yZXF1ZXN0VmFsaWRhdG9yICYmXHJcbiAgICAgICF0aGlzLnJlcXVlc3RWYWxpZGF0b3IudmFsaWRhdGVSZXF1ZXN0KHJlcXVlc3QpXHJcbiAgICApIHtcclxuICAgICAgLy8gSW4gY2FzZSBhIHJlcXVlc3QgdmFsaWRhdG9yIGlzIHByb3ZpZGVkIGJ1dCBkb2Vzbid0IHJldHVybiB0cnVlIGZvciB0aGVcclxuICAgICAgLy8gY3VycmVudCByZXF1ZXN0LCB3ZSdyZSBub3QgYXBwZW5kaW5nIGEgdG9rZW5cclxuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmp3dFRva2VuU2VydmljZVxyXG4gICAgICAuZ2V0VG9rZW4oKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtZXJnZU1hcCgoZikgPT5cclxuICAgICAgICAgIG5leHQuaGFuZGxlKHRoaXMuZ2V0SHR0cFJlcXVlc3RXaXRoVG9rZW4ocmVxdWVzdCwgZiAmJiBmLmFjY2Vzc1Rva2VuKSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEh0dHBSZXF1ZXN0V2l0aFRva2VuKFxyXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PixcclxuICAgIHRva2VuPzogc3RyaW5nXHJcbiAgKTogSHR0cFJlcXVlc3Q8YW55PiB7XHJcbiAgICBpZiAodG9rZW4pIHtcclxuICAgICAgcmV0dXJuIHJlcXVlc3QuY2xvbmUoe1xyXG4gICAgICAgIHNldEhlYWRlcnM6IHtcclxuICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVlc3QuY2xvbmUoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { ReplaySubject, Subject } from 'rxjs';
|
|
3
3
|
import { JwtHelperService } from '@auth0/angular-jwt';
|
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "../services/jwt-token.service";
|
|
6
7
|
export class AuthenticationMessenger {
|
|
7
8
|
constructor(jwtTokenService) {
|
|
8
9
|
this.jwtTokenService = jwtTokenService;
|
|
9
10
|
this.jwtHelperService = new JwtHelperService();
|
|
11
|
+
this.$destroyed = new Subject();
|
|
10
12
|
this.isAuthenticated = new ReplaySubject(1);
|
|
11
13
|
this.username = new ReplaySubject(1);
|
|
12
14
|
this.email = new ReplaySubject(1);
|
|
@@ -14,15 +16,33 @@ export class AuthenticationMessenger {
|
|
|
14
16
|
this.userInfo = new ReplaySubject(1);
|
|
15
17
|
this.tokenRefreshStarted = new Subject();
|
|
16
18
|
this.tokenRefreshFinished = new Subject();
|
|
17
|
-
jwtTokenService.tokenRefreshStarted
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
jwtTokenService.
|
|
21
|
-
.
|
|
19
|
+
jwtTokenService.tokenRefreshStarted
|
|
20
|
+
.pipe(takeUntil(this.$destroyed))
|
|
21
|
+
.subscribe(() => this.tokenRefreshStarted.next());
|
|
22
|
+
jwtTokenService.tokenRefreshFinished
|
|
23
|
+
.pipe(takeUntil(this.$destroyed))
|
|
24
|
+
.subscribe((successfulRefresh) => this.tokenRefreshFinished.next(successfulRefresh));
|
|
25
|
+
jwtTokenService.tokenStored
|
|
26
|
+
.pipe(takeUntil(this.$destroyed))
|
|
27
|
+
.subscribe((jwtToken) => this.refreshAuthenticationStatus(jwtToken));
|
|
28
|
+
jwtTokenService
|
|
29
|
+
.getToken()
|
|
30
|
+
.subscribe((token) => this.refreshAuthenticationStatus(token));
|
|
31
|
+
}
|
|
32
|
+
ngOnDestroy() {
|
|
33
|
+
this.isAuthenticated.complete();
|
|
34
|
+
this.username.complete();
|
|
35
|
+
this.email.complete();
|
|
36
|
+
this.identiconId.complete();
|
|
37
|
+
this.userInfo.complete();
|
|
38
|
+
this.tokenRefreshStarted.complete();
|
|
39
|
+
this.tokenRefreshFinished.complete();
|
|
40
|
+
this.$destroyed.next();
|
|
41
|
+
this.$destroyed.complete();
|
|
22
42
|
}
|
|
23
43
|
refreshAuthenticationStatus(jwtToken) {
|
|
24
44
|
if (jwtToken) {
|
|
25
|
-
const isValidToken = jwtToken.expiresAt >
|
|
45
|
+
const isValidToken = jwtToken.expiresAt > new Date().getTime() / 1000;
|
|
26
46
|
if (this.lastBroadcastAccessToken === jwtToken.accessToken) {
|
|
27
47
|
return;
|
|
28
48
|
}
|
|
@@ -49,14 +69,12 @@ export class AuthenticationMessenger {
|
|
|
49
69
|
email: decodedToken['email'],
|
|
50
70
|
identiconId: decodedToken['identicon_id'],
|
|
51
71
|
username: decodedToken['name'],
|
|
52
|
-
roles: decodedToken['role']
|
|
72
|
+
roles: decodedToken['role'],
|
|
53
73
|
});
|
|
54
74
|
}
|
|
55
75
|
else {
|
|
56
76
|
this.isAuthenticated.next(false);
|
|
57
|
-
this.jwtTokenService
|
|
58
|
-
.refreshToken()
|
|
59
|
-
.subscribe(() => { });
|
|
77
|
+
this.jwtTokenService.refreshToken().subscribe(() => { });
|
|
60
78
|
}
|
|
61
79
|
}
|
|
62
80
|
else {
|
|
@@ -77,7 +95,7 @@ AuthenticationMessenger.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.
|
|
|
77
95
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: AuthenticationMessenger, decorators: [{
|
|
78
96
|
type: Injectable,
|
|
79
97
|
args: [{
|
|
80
|
-
providedIn: 'root'
|
|
98
|
+
providedIn: 'root',
|
|
81
99
|
}]
|
|
82
100
|
}], ctorParameters: function () { return [{ type: i1.JwtTokenService }]; } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24ubWVzc2VuZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1kYW5nbC1pZGVudGl0eS1jbGllbnQvc3JjL21lc3NlbmdlcnMvYXV0aGVudGljYXRpb24ubWVzc2VuZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQU10RCxNQUFNLE9BQU8sdUJBQXVCO0lBYWxDLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQVg1QyxxQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFHekMsb0JBQWUsR0FBRyxJQUFJLGFBQWEsQ0FBVSxDQUFDLENBQUMsQ0FBQztRQUNoRCxhQUFRLEdBQUcsSUFBSSxhQUFhLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsVUFBSyxHQUFHLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLGdCQUFXLEdBQUcsSUFBSSxhQUFhLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsYUFBUSxHQUFHLElBQUksYUFBYSxDQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzFDLHdCQUFtQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDcEMseUJBQW9CLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUdyRCxlQUFlLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsRUFB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LENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7O29IQXZFVSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuLi9tb2RlbHMvdXNlci1pbmZvJztcclxuaW1wb3J0IHsgSnd0VG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvand0LXRva2VuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBKd3RIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQGF1dGgwL2FuZ3VsYXItand0JztcclxuaW1wb3J0IHsgSnd0U3RvcmFnZSB9IGZyb20gJy4uL21vZGVscy9qd3Qtc3RvcmFnZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvbk1lc3NlbmdlciB7XHJcblxyXG4gIHByaXZhdGUgand0SGVscGVyU2VydmljZSA9IG5ldyBKd3RIZWxwZXJTZXJ2aWNlKCk7XHJcbiAgcHJpdmF0ZSBsYXN0QnJvYWRjYXN0QWNjZXNzVG9rZW46IHN0cmluZztcclxuXHJcbiAgcmVhZG9ubHkgaXNBdXRoZW50aWNhdGVkID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XHJcbiAgcmVhZG9ubHkgdXNlcm5hbWUgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xyXG4gIHJlYWRvbmx5IGVtYWlsID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcclxuICByZWFkb25seSBpZGVudGljb25JZCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZz4oMSk7XHJcbiAgcmVhZG9ubHkgdXNlckluZm8gPSBuZXcgUmVwbGF5U3ViamVjdDxVc2VySW5mbz4oMSk7XHJcbiAgcmVhZG9ubHkgdG9rZW5SZWZyZXNoU3RhcnRlZCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcmVhZG9ubHkgdG9rZW5SZWZyZXNoRmluaXNoZWQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGp3dFRva2VuU2VydmljZTogSnd0VG9rZW5TZXJ2aWNlKSB7XHJcbiAgICBqd3RUb2tlblNlcnZpY2UudG9rZW5SZWZyZXNoU3RhcnRlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy50b2tlblJlZnJlc2hTdGFydGVkLm5leHQoKSk7XHJcbiAgICBqd3RUb2tlblNlcnZpY2UudG9rZW5SZWZyZXNoRmluaXNoZWQuc3Vic2NyaWJlKHN1Y2Nlc3NmdWxSZWZyZXNoID0+IHRoaXMudG9rZW5SZWZyZXNoRmluaXNoZWQubmV4dChzdWNjZXNzZnVsUmVmcmVzaCkpO1xyXG4gICAgand0VG9rZW5TZXJ2aWNlLnRva2VuU3RvcmVkLnN1YnNjcmliZShqd3RUb2tlbiA9PiB0aGlzLnJlZnJlc2hBdXRoZW50aWNhdGlvblN0YXR1cyhqd3RUb2tlbikpO1xyXG4gICAgand0VG9rZW5TZXJ2aWNlLmdldFRva2VuKClcclxuICAgICAgLnN1YnNjcmliZSh0b2tlbiA9PiB0aGlzLnJlZnJlc2hBdXRoZW50aWNhdGlvblN0YXR1cyh0b2tlbikpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoQXV0aGVudGljYXRpb25TdGF0dXMoand0VG9rZW4/OiBKd3RTdG9yYWdlKSB7XHJcbiAgICBpZiAoand0VG9rZW4pIHtcclxuICAgICAgY29uc3QgaXNWYWxpZFRva2VuID0gand0VG9rZW4uZXhwaXJlc0F0ID4gKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCk7XHJcbiAgICAgIGlmICh0aGlzLmxhc3RCcm9hZGNhc3RBY2Nlc3NUb2tlbiA9PT0gand0VG9rZW4uYWNjZXNzVG9rZW4pIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sYXN0QnJvYWRjYXN0QWNjZXNzVG9rZW4gPSBqd3RUb2tlbi5hY2Nlc3NUb2tlbjtcclxuICAgICAgaWYgKGlzVmFsaWRUb2tlbikge1xyXG4gICAgICAgIHRoaXMuaXNBdXRoZW50aWNhdGVkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgY29uc3QgZGVjb2RlZFRva2VuID0gdGhpcy5qd3RIZWxwZXJTZXJ2aWNlLmRlY29kZVRva2VuKGp3dFRva2VuLmFjY2Vzc1Rva2VuKTtcclxuICAgICAgICB0aGlzLnVzZXJuYW1lLm5leHQoZGVjb2RlZFRva2VuWyduYW1lJ10pO1xyXG4gICAgICAgIHRoaXMuZW1haWwubmV4dChkZWNvZGVkVG9rZW5bJ2VtYWlsJ10pO1xyXG4gICAgICAgIHRoaXMuaWRlbnRpY29uSWQubmV4dChkZWNvZGVkVG9rZW5bJ2lkZW50aWNvbl9pZCddKTtcclxuXHJcbiAgICAgICAgY29uc3QgdG9rZW5DbGFpbXM6IHsgW2NsYWltOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gICAgICAgIGZvciAoY29uc3QgdG9rZW5Qcm9wIGluIGRlY29kZWRUb2tlbikge1xyXG4gICAgICAgICAgaWYgKGRlY29kZWRUb2tlbi5oYXNPd25Qcm9wZXJ0eSh0b2tlblByb3ApKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5ID0gZGVjb2RlZFRva2VuW3Rva2VuUHJvcF07XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcGVydHkgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICAgdG9rZW5DbGFpbXNbdG9rZW5Qcm9wXSA9IHByb3BlcnR5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnVzZXJJbmZvLm5leHQoe1xyXG4gICAgICAgICAgaWQ6IGRlY29kZWRUb2tlblsnc3ViJ10sXHJcbiAgICAgICAgICBjbGFpbXM6IHRva2VuQ2xhaW1zLFxyXG4gICAgICAgICAgZGVzZXJpYWxpemVkVG9rZW46IGRlY29kZWRUb2tlbixcclxuICAgICAgICAgIGVtYWlsOiBkZWNvZGVkVG9rZW5bJ2VtYWlsJ10sXHJcbiAgICAgICAgICBpZGVudGljb25JZDogZGVjb2RlZFRva2VuWydpZGVudGljb25faWQnXSxcclxuICAgICAgICAgIHVzZXJuYW1lOiBkZWNvZGVkVG9rZW5bJ25hbWUnXSxcclxuICAgICAgICAgIHJvbGVzOiBkZWNvZGVkVG9rZW5bJ3JvbGUnXVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaXNBdXRoZW50aWNhdGVkLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuand0VG9rZW5TZXJ2aWNlXHJcbiAgICAgICAgICAucmVmcmVzaFRva2VuKClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4geyB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubGFzdEJyb2FkY2FzdEFjY2Vzc1Rva2VuID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubGFzdEJyb2FkY2FzdEFjY2Vzc1Rva2VuID0gbnVsbDtcclxuICAgICAgdGhpcy5pc0F1dGhlbnRpY2F0ZWQubmV4dChmYWxzZSk7XHJcbiAgICAgIHRoaXMudXNlcm5hbWUubmV4dChudWxsKTtcclxuICAgICAgdGhpcy5lbWFpbC5uZXh0KG51bGwpO1xyXG4gICAgICB0aGlzLmlkZW50aWNvbklkLm5leHQobnVsbCk7XHJcbiAgICAgIHRoaXMudXNlckluZm8ubmV4dChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24ubWVzc2VuZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1kYW5nbC1pZGVudGl0eS1jbGllbnQvc3JjL21lc3NlbmdlcnMvYXV0aGVudGljYXRpb24ubWVzc2VuZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLHVCQUF1QjtJQWFsQyxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFaNUMscUJBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBRTFDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTFCLG9CQUFlLEdBQUcsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFDaEQsYUFBUSxHQUFHLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLFVBQUssR0FBRyxJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNyQyxnQkFBVyxHQUFHLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzNDLGFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBVyxDQUFDLENBQUMsQ0FBQztRQUMxQyx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFHckQsZUFBZSxDQUFDLG1CQUFtQjthQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMs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bnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEp3dEhlbHBlclNlcnZpY2UgfSBmcm9tICdAYXV0aDAvYW5ndWxhci1qd3QnO1xyXG5pbXBvcnQgeyBKd3RTdG9yYWdlIH0gZnJvbSAnLi4vbW9kZWxzL2p3dC1zdG9yYWdlJztcclxuaW1wb3J0IHsgSnd0VG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvand0LXRva2VuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VySW5mbyB9IGZyb20gJy4uL21vZGVscy91c2VyLWluZm8nO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRpb25NZXNzZW5nZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgand0SGVscGVyU2VydmljZSA9IG5ldyBKd3RIZWxwZXJTZXJ2aWNlKCk7XHJcbiAgcHJpdmF0ZSBsYXN0QnJvYWRjYXN0QWNjZXNzVG9rZW46IHN0cmluZztcclxuICBwcml2YXRlICRkZXN0cm95ZWQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICByZWFkb25seSBpc0F1dGhlbnRpY2F0ZWQgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcclxuICByZWFkb25seSB1c2VybmFtZSA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZz4oMSk7XHJcbiAgcmVhZG9ubHkgZW1haWwgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xyXG4gIHJlYWRvbmx5IGlkZW50aWNvbklkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcclxuICByZWFkb25seSB1c2VySW5mbyA9IG5ldyBSZXBsYXlTdWJqZWN0PFVzZXJJbmZvPigxKTtcclxuICByZWFkb25seSB0b2tlblJlZnJlc2hTdGFydGVkID0gbmV3IFN1YmplY3QoKTtcclxuICByZWFkb25seSB0b2tlblJlZnJlc2hGaW5pc2hlZCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgand0VG9rZW5TZXJ2aWNlOiBKd3RUb2tlblNlcnZpY2UpIHtcclxuICAgIGp3dFRva2VuU2VydmljZS50b2tlblJlZnJlc2hTdGFydGVkXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiRkZXN0cm95ZWQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudG9rZW5SZWZyZXNoU3RhcnRlZC5uZXh0KCkpO1xyXG5cclxuICAgIGp3dFRva2VuU2VydmljZS50b2tlblJlZnJlc2hGaW5pc2hlZFxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4kZGVzdHJveWVkKSlcclxuICAgICAgLnN1YnNjcmliZSgoc3VjY2Vzc2Z1bFJlZnJlc2gpID0+XHJcbiAgICAgICAgdGhpcy50b2tlblJlZnJlc2hGaW5pc2hlZC5uZXh0KHN1Y2Nlc3NmdWxSZWZyZXNoKVxyXG4gICAgICApO1xyXG5cclxuICAgIGp3dFRva2VuU2VydmljZS50b2tlblN0b3JlZFxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4kZGVzdHJveWVkKSlcclxuICAgICAgLnN1YnNjcmliZSgoand0VG9rZW4pID0+IHRoaXMucmVmcmVzaEF1dGhlbnRpY2F0aW9uU3RhdHVzKGp3dFRva2VuKSk7XHJcblxyXG4gICAgand0VG9rZW5TZXJ2aWNlXHJcbiAgICAgIC5nZXRUb2tlbigpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHRva2VuKSA9PiB0aGlzLnJlZnJlc2hBdXRoZW50aWNhdGlvblN0YXR1cyh0b2tlbikpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzQXV0aGVudGljYXRlZC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy51c2VybmFtZS5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5lbWFpbC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5pZGVudGljb25JZC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy51c2VySW5mby5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy50b2tlblJlZnJlc2hTdGFydGVkLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnRva2VuUmVmcmVzaEZpbmlzaGVkLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLiRkZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy4kZGVzdHJveWVkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlZnJlc2hBdXRoZW50aWNhdGlvblN0YXR1cyhqd3RUb2tlbj86IEp3dFN0b3JhZ2UpIHtcclxuICAgIGlmIChqd3RUb2tlbikge1xyXG4gICAgICBjb25zdCBpc1ZhbGlkVG9rZW4gPSBqd3RUb2tlbi5leHBpcmVzQXQgPiBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDA7XHJcbiAgICAgIGlmICh0aGlzLmxhc3RCcm9hZGNhc3RBY2Nlc3NUb2tlbiA9PT0gand0VG9rZW4uYWNjZXNzVG9rZW4pIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sYXN0QnJvYWRjYXN0QWNjZXNzVG9rZW4gPSBqd3RUb2tlbi5hY2Nlc3NUb2tlbjtcclxuICAgICAgaWYgKGlzVmFsaWRUb2tlbikge1xyXG4gICAgICAgIHRoaXMuaXNBdXRoZW50aWNhdGVkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgY29uc3QgZGVjb2RlZFRva2VuID0gdGhpcy5qd3RIZWxwZXJTZXJ2aWNlLmRlY29kZVRva2VuKFxyXG4gICAgICAgICAgand0VG9rZW4uYWNjZXNzVG9rZW5cclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMudXNlcm5hbWUubmV4dChkZWNvZGVkVG9rZW5bJ25hbWUnXSk7XHJcbiAgICAgICAgdGhpcy5lbWFpbC5uZXh0KGRlY29kZWRUb2tlblsnZW1haWwnXSk7XHJcbiAgICAgICAgdGhpcy5pZGVudGljb25JZC5uZXh0KGRlY29kZWRUb2tlblsnaWRlbnRpY29uX2lkJ10pO1xyXG5cclxuICAgICAgICBjb25zdCB0b2tlbkNsYWltczogeyBbY2xhaW06IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcbiAgICAgICAgZm9yIChjb25zdCB0b2tlblByb3AgaW4gZGVjb2RlZFRva2VuKSB7XHJcbiAgICAgICAgICBpZiAoZGVjb2RlZFRva2VuLmhhc093blByb3BlcnR5KHRva2VuUHJvcCkpIHtcclxuICAgICAgICAgICAgY29uc3QgcHJvcGVydHkgPSBkZWNvZGVkVG9rZW5bdG9rZW5Qcm9wXTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wZXJ0eSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICB0b2tlbkNsYWltc1t0b2tlblByb3BdID0gcHJvcGVydHk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudXNlckluZm8ubmV4dCh7XHJcbiAgICAgICAgICBpZDogZGVjb2RlZFRva2VuWydzdWInXSxcclxuICAgICAgICAgIGNsYWltczogdG9rZW5DbGFpbXMsXHJcbiAgICAgICAgICBkZXNlcmlhbGl6ZWRUb2tlbjogZGVjb2RlZFRva2VuLFxyXG4gICAgICAgICAgZW1haWw6IGRlY29kZWRUb2tlblsnZW1haWwnXSxcclxuICAgICAgICAgIGlkZW50aWNvbklkOiBkZWNvZGVkVG9rZW5bJ2lkZW50aWNvbl9pZCddLFxyXG4gICAgICAgICAgdXNlcm5hbWU6IGRlY29kZWRUb2tlblsnbmFtZSddLFxyXG4gICAgICAgICAgcm9sZXM6IGRlY29kZWRUb2tlblsncm9sZSddLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaXNBdXRoZW50aWNhdGVkLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuand0VG9rZW5TZXJ2aWNlLnJlZnJlc2hUb2tlbigpLnN1YnNjcmliZSgoKSA9PiB7fSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmxhc3RCcm9hZGNhc3RBY2Nlc3NUb2tlbiA9PT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxhc3RCcm9hZGNhc3RBY2Nlc3NUb2tlbiA9IG51bGw7XHJcbiAgICAgIHRoaXMuaXNBdXRoZW50aWNhdGVkLm5leHQoZmFsc2UpO1xyXG4gICAgICB0aGlzLnVzZXJuYW1lLm5leHQobnVsbCk7XHJcbiAgICAgIHRoaXMuZW1haWwubmV4dChudWxsKTtcclxuICAgICAgdGhpcy5pZGVudGljb25JZC5uZXh0KG51bGwpO1xyXG4gICAgICB0aGlzLnVzZXJJbmZvLm5leHQobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
1
|
import { of } from 'rxjs';
|
|
3
|
-
import {
|
|
2
|
+
import { catchError, map } from 'rxjs/operators';
|
|
3
|
+
import { Injectable } from '@angular/core';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "../api-client";
|
|
6
6
|
import * as i2 from "./jwt-token.service";
|
|
@@ -13,14 +13,12 @@ export class AuthenticationService {
|
|
|
13
13
|
return this.danglIdentityClient
|
|
14
14
|
.loginAndReturnToken({
|
|
15
15
|
identifier: identifier,
|
|
16
|
-
password: password
|
|
16
|
+
password: password,
|
|
17
17
|
})
|
|
18
|
-
.pipe(map(r => this.storeJwtTokenIfValid(r)), catchError(e => of(false)));
|
|
18
|
+
.pipe(map((r) => this.storeJwtTokenIfValid(r)), catchError((e) => of(false)));
|
|
19
19
|
}
|
|
20
20
|
storeJwtTokenIfValid(token) {
|
|
21
|
-
if (!token.accessToken
|
|
22
|
-
|| !token.refreshToken
|
|
23
|
-
|| !token.expiresIn) {
|
|
21
|
+
if (!token.accessToken || !token.refreshToken || !token.expiresIn) {
|
|
24
22
|
return false;
|
|
25
23
|
}
|
|
26
24
|
this.jwtTokenService.storeToken(token);
|
|
@@ -35,7 +33,7 @@ AuthenticationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0"
|
|
|
35
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: AuthenticationService, decorators: [{
|
|
36
34
|
type: Injectable,
|
|
37
35
|
args: [{
|
|
38
|
-
providedIn: 'root'
|
|
36
|
+
providedIn: 'root',
|
|
39
37
|
}]
|
|
40
38
|
}], ctorParameters: function () { return [{ type: i1.DanglIdentityClient }, { type: i2.JwtTokenService }]; } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZGFuZ2wtaWRlbnRpdHktY2xpZW50L3NyYy9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTTNDLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFDVSxtQkFBd0MsRUFDeEMsZUFBZ0M7UUFEaEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFDdkMsQ0FBQztJQUVKLGNBQWMsQ0FBQyxVQUFrQixFQUFFLFFBQWdCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLG1CQUFtQjthQUM1QixtQkFBbUIsQ0FBQztZQUNuQixVQUFVLEVBQUUsVUFBVTtZQUN0QixRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDO2FBQ0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3hDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzdCLENBQUM7SUFDTixDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBdUI7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUNqRSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQzs7a0hBNUJVLHFCQUFxQjtzSEFBckIscUJBQXFCLGNBRnBCLE1BQU07MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhbmdsSWRlbnRpdHlDbGllbnQsIFRva2VuUmVzcG9uc2VHZXQgfSBmcm9tICcuLi9hcGktY2xpZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBKd3RUb2tlblNlcnZpY2UgfSBmcm9tICcuL2p3dC10b2tlbi5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvblNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYW5nbElkZW50aXR5Q2xpZW50OiBEYW5nbElkZW50aXR5Q2xpZW50LFxyXG4gICAgcHJpdmF0ZSBqd3RUb2tlblNlcnZpY2U6IEp3dFRva2VuU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbG9naW5XaXRoVG9rZW4oaWRlbnRpZmllcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYW5nbElkZW50aXR5Q2xpZW50XHJcbiAgICAgIC5sb2dpbkFuZFJldHVyblRva2VuKHtcclxuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxyXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyKSA9PiB0aGlzLnN0b3JlSnd0VG9rZW5JZlZhbGlkKHIpKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlKSA9PiBvZihmYWxzZSkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0b3JlSnd0VG9rZW5JZlZhbGlkKHRva2VuOiBUb2tlblJlc3BvbnNlR2V0KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRva2VuLmFjY2Vzc1Rva2VuIHx8ICF0b2tlbi5yZWZyZXNoVG9rZW4gfHwgIXRva2VuLmV4cGlyZXNJbikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmp3dFRva2VuU2VydmljZS5zdG9yZVRva2VuKHRva2VuKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCkge1xyXG4gICAgdGhpcy5qd3RUb2tlblNlcnZpY2UuZGVsZXRlVG9rZW4oKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Injectable } from
|
|
2
|
-
import { Subject, of, ReplaySubject } from
|
|
3
|
-
import { map, tap, first } from
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject, of, ReplaySubject } from 'rxjs';
|
|
3
|
+
import { map, tap, first } from 'rxjs/operators';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "../api-client";
|
|
6
6
|
export class JwtTokenService {
|
|
7
7
|
constructor(danglIdentityClient) {
|
|
8
8
|
this.danglIdentityClient = danglIdentityClient;
|
|
9
|
-
this.storage_identifier =
|
|
9
|
+
this.storage_identifier = 'dangl_identity_integration_jwt_token';
|
|
10
10
|
this.isRefreshing = false;
|
|
11
11
|
this.refreshTokenSource = new Subject();
|
|
12
12
|
this.tokenStoredSource = new ReplaySubject(1);
|
|
@@ -16,6 +16,12 @@ export class JwtTokenService {
|
|
|
16
16
|
this.tokenRefreshFinishedSource = new Subject();
|
|
17
17
|
this.tokenRefreshFinished = this.tokenRefreshFinishedSource.asObservable();
|
|
18
18
|
}
|
|
19
|
+
ngOnDestroy() {
|
|
20
|
+
this.tokenRefreshStartedSource.complete();
|
|
21
|
+
this.tokenRefreshFinishedSource.complete();
|
|
22
|
+
this.tokenStoredSource.complete();
|
|
23
|
+
this.refreshTokenSource.complete();
|
|
24
|
+
}
|
|
19
25
|
deleteToken() {
|
|
20
26
|
localStorage.removeItem(this.storage_identifier);
|
|
21
27
|
this.tokenStoredSource.next(null);
|
|
@@ -61,7 +67,7 @@ export class JwtTokenService {
|
|
|
61
67
|
this.isRefreshing = false;
|
|
62
68
|
this.tokenRefreshFinishedSource.next(false);
|
|
63
69
|
this.refreshTokenSource.next(null);
|
|
64
|
-
console.error(
|
|
70
|
+
console.error('Internal error while refreshing Dangl.Identity token', error);
|
|
65
71
|
});
|
|
66
72
|
return this.refreshTokenSource.pipe(first());
|
|
67
73
|
}
|
|
@@ -85,11 +91,11 @@ export class JwtTokenService {
|
|
|
85
91
|
}
|
|
86
92
|
}
|
|
87
93
|
JwtTokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: JwtTokenService, deps: [{ token: i1.DanglIdentityClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
88
|
-
JwtTokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: JwtTokenService, providedIn:
|
|
94
|
+
JwtTokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: JwtTokenService, providedIn: 'root' });
|
|
89
95
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: JwtTokenService, decorators: [{
|
|
90
96
|
type: Injectable,
|
|
91
97
|
args: [{
|
|
92
|
-
providedIn:
|
|
98
|
+
providedIn: 'root',
|
|
93
99
|
}]
|
|
94
100
|
}], ctorParameters: function () { return [{ type: i1.DanglIdentityClient }]; } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LXRva2VuLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWRhbmdsLWlkZW50aXR5LWNsaWVudC9zcmMvc2VydmljZXMvand0LXRva2VuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsT0FBTyxFQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBYyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU03RCxNQUFNLE9BQU8sZUFBZTtJQVcxQixZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQVYzQyx1QkFBa0IsR0FBRyxzQ0FBc0MsQ0FBQztRQUNyRSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQix1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO1FBQy9DLHNCQUFpQixHQUFHLElBQUksYUFBYSxDQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzdELGdCQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVDLDhCQUF5QixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDbEQsd0JBQW1CLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVELCtCQUEwQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDNUQseUJBQW9CLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRVAsQ0FBQztJQUVoRSxXQUFXO1FBQ1QsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLENB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QUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQWEsSUFBSSxDQUFDLENBQUM7U0FDN0I7UUFDRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ25FLElBQUksWUFBWSxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQXVCO1FBQ3BELE9BQU87WUFDTCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsU0FBUztTQUN6RCxDQUFDO0lBQ0osQ0FBQzs7NEdBakdVLGVBQWU7Z0hBQWYsZUFBZSxjQUZkLE1BQU07MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGFuZ2xJZGVudGl0eUNsaWVudCwgVG9rZW5SZXNwb25zZUdldCB9IGZyb20gXCIuLi9hcGktY2xpZW50XCI7XHJcbmltcG9ydCB7IEp3dFN0b3JhZ2UgfSBmcm9tIFwiLi4vbW9kZWxzL2p3dC1zdG9yYWdlXCI7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yLCB0YXAsIGZpcnN0IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uTWVzc2VuZ2VyIH0gZnJvbSBcIi4uL21lc3NlbmdlcnMvYXV0aGVudGljYXRpb24ubWVzc2VuZ2VyXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBKd3RUb2tlblNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZV9pZGVudGlmaWVyID0gXCJkYW5nbF9pZGVudGl0eV9pbnRlZ3JhdGlvbl9qd3RfdG9rZW5cIjtcclxuICBwcml2YXRlIGlzUmVmcmVzaGluZyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcmVmcmVzaFRva2VuU291cmNlID0gbmV3IFN1YmplY3Q8Snd0U3RvcmFnZT4oKTtcclxuICBwcml2YXRlIHRva2VuU3RvcmVkU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8Snd0U3RvcmFnZT4oMSk7XHJcbiAgdG9rZW5TdG9yZWQgPSB0aGlzLnRva2VuU3RvcmVkU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHByaXZhdGUgdG9rZW5SZWZyZXNoU3RhcnRlZFNvdXJjZSA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgdG9rZW5SZWZyZXNoU3RhcnRlZCA9IHRoaXMudG9rZW5SZWZyZXNoU3RhcnRlZFNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICBwcml2YXRlIHRva2VuUmVmcmVzaEZpbmlzaGVkU291cmNlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICB0b2tlblJlZnJlc2hGaW5pc2hlZCA9IHRoaXMudG9rZW5SZWZyZXNoRmluaXNoZWRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGFuZ2xJZGVudGl0eUNsaWVudDogRGFuZ2xJZGVudGl0eUNsaWVudCkge31cclxuXHJcbiAgZGVsZXRlVG9rZW4oKSB7XHJcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLnN0b3JhZ2VfaWRlbnRpZmllcik7XHJcbiAgICB0aGlzLnRva2VuU3RvcmVkU291cmNlLm5leHQobnVsbCk7XHJcbiAgfVxyXG5cclxuICBzdG9yZUN1c3RvbVRva2VuKHRva2VuVG9TdG9yZTogSnd0U3RvcmFnZSkge1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlX2lkZW50aWZpZXIsIEpTT04uc3RyaW5naWZ5KHRva2VuVG9TdG9yZSkpO1xyXG4gICAgdGhpcy50b2tlblN0b3JlZFNvdXJjZS5uZXh0KHRva2VuVG9TdG9yZSk7XHJcbiAgfVxyXG5cclxuICBzdG9yZVRva2VuKHRva2VuOiBUb2tlblJlc3BvbnNlR2V0KSB7XHJcbiAgICBjb25zdCB0b2tlblRvU3RvcmUgPSB0aGlzLnRyYW5zZm9ybVRva2VuUmVzcG9uc2UodG9rZW4pO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlX2lkZW50aWZpZXIsIEpTT04uc3RyaW5naWZ5KHRva2VuVG9TdG9yZSkpO1xyXG4gICAgdGhpcy50b2tlblN0b3JlZFNvdXJjZS5uZXh0KHRva2VuVG9TdG9yZSk7XHJcbiAgfVxyXG5cclxuICBnZXRUb2tlbkZyb21TdG9yYWdlKCk6IEp3dFN0b3JhZ2Uge1xyXG4gICAgY29uc3Qgc3RvcmVkU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlX2lkZW50aWZpZXIpO1xyXG4gICAgaWYgKHN0b3JlZFN0cmluZykge1xyXG4gICAgICBjb25zdCBzdG9yZWRUb2tlbiA9IDxKd3RTdG9yYWdlPkpTT04ucGFyc2Uoc3RvcmVkU3RyaW5nKTtcclxuICAgICAgcmV0dXJuIHN0b3JlZFRva2VuO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoVG9rZW4oKTogT2JzZXJ2YWJsZTxKd3RTdG9yYWdlPiB7XHJcbiAgICBpZiAodGhpcy5pc1JlZnJlc2hpbmcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuU291cmNlLnBpcGUoZmlyc3QoKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzUmVmcmVzaGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnRva2VuUmVmcmVzaFN0YXJ0ZWRTb3VyY2UubmV4dCgpO1xyXG4gICAgY29uc3QgcmVmcmVzaFRva2VuID0gdGhpcy5nZXRUb2tlbkZyb21TdG9yYWdlKCkucmVmcmVzaFRva2VuO1xyXG5cclxuICAgIGlmICghcmVmcmVzaFRva2VuKSB7XHJcbiAgICAgIHRoaXMuaXNSZWZyZXNoaW5nID0gZmFsc2U7XHJcbiAgICAgIHJldHVybiBvZjxKd3RTdG9yYWdlPihudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhbmdsSWRlbnRpdHlDbGllbnRcclxuICAgICAgLnJlZnJlc2hUb2tlbih7XHJcbiAgICAgICAgcmVmcmVzaFRva2VuOiByZWZyZXNoVG9rZW4sXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcCgocikgPT4gdGhpcy5zdG9yZVRva2VuKHIpKSxcclxuICAgICAgICBtYXAoKHIpID0+IHRoaXMudHJhbnNmb3JtVG9rZW5SZXNwb25zZShyKSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZWZyZXNoVG9rZW5SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc1JlZnJlc2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudG9rZW5SZWZyZXNoRmluaXNoZWRTb3VyY2UubmV4dCh0cnVlKTtcclxuICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuU291cmNlLm5leHQocmVmcmVzaFRva2VuUmVzcG9uc2UpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50b2tlblJlZnJlc2hGaW5pc2hlZFNvdXJjZS5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuU291cmNlLm5leHQobnVsbCk7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgICAgICBcIkludGVybmFsIGVycm9yIHdoaWxlIHJlZnJlc2hpbmcgRGFuZ2wuSWRlbnRpdHkgdG9rZW5cIixcclxuICAgICAgICAgICAgZXJyb3JcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnJlZnJlc2hUb2tlblNvdXJjZS5waXBlKGZpcnN0KCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG9rZW4oKTogT2JzZXJ2YWJsZTxKd3RTdG9yYWdlPiB7XHJcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuZ2V0VG9rZW5Gcm9tU3RvcmFnZSgpO1xyXG4gICAgaWYgKCF0b2tlbikge1xyXG4gICAgICByZXR1cm4gb2Y8Snd0U3RvcmFnZT4obnVsbCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpc1ZhbGlkVG9rZW4gPSB0b2tlbi5leHBpcmVzQXQgPiBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDA7XHJcbiAgICBpZiAoaXNWYWxpZFRva2VuKSB7XHJcbiAgICAgIHJldHVybiBvZih0b2tlbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoVG9rZW4oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNmb3JtVG9rZW5SZXNwb25zZSh0b2tlbjogVG9rZW5SZXNwb25zZUdldCk6IEp3dFN0b3JhZ2Uge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYWNjZXNzVG9rZW46IHRva2VuLmFjY2Vzc1Rva2VuLFxyXG4gICAgICByZWZyZXNoVG9rZW46IHRva2VuLnJlZnJlc2hUb2tlbixcclxuICAgICAgZXhwaXJlc0F0OiBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgKyB0b2tlbi5leHBpcmVzSW4sXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LXRva2VuLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWRhbmdsLWlkZW50aXR5LWNsaWVudC9zcmMvc2VydmljZXMvand0LXRva2VuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUd0RCxPQUFPLEVBQUUsT0FBTyxFQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBYyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU03RCxNQUFNLE9BQU8sZUFBZTtJQVcxQixZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQVYzQyx1QkFBa0IsR0FBRyxzQ0FBc0MsQ0FBQztRQUNyRSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQix1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO1FBQy9DLHNCQUFpQixHQUFHLElBQUksYUFBYSxDQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzdELGdCQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVDLDhCQUF5QixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDbEQsd0JBQW1CLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVELCtCQUEwQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDNUQseUJBQW9CLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRVAsQ0FBQztJQUVoRSxXQUFXO1FBQ1QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXO1FBQ1QsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxZQUF3QjtRQUN2QyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQXVCO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDbkUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxXQUFXLEdBQWUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN6RCxPQUFPLFdBQVcsQ0FBQztTQUNwQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDOUM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsWUFBWSxDQUFDO1FBRTdELElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDMUIsT0FBTyxFQUFFLENBQWEsSUFBSSxDQUFDLENBQUM7U0FDN0I7UUFFRCxJQUFJLENBQUMsbUJBQW1CO2FBQ3JCLFlBQVksQ0FBQztZQUNaLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzNDO2FBQ0EsU0FBUyxDQUNSLENBQUMsb0JBQW9CLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNyRCxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQyxPQUFPLENBQUMsS0FBSyxDQUNYLHNEQUFzRCxFQUN0RCxLQUFLLENBQ04sQ0FBQztRQUNKLENBQUMsQ0FDRixDQUFDO1FBRUosT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQWEsSUFBSSxDQUFDLENBQUM7U0FDN0I7UUFDRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ25FLElBQUksWUFBWSxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQXVCO1FBQ3BELE9BQU87WUFDTCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsU0FBUztTQUN6RCxDQUFDO0lBQ0osQ0FBQzs7NEdBeEdVLGVBQWU7Z0hBQWYsZUFBZSxjQUZkLE1BQU07MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGFuZ2xJZGVudGl0eUNsaWVudCwgVG9rZW5SZXNwb25zZUdldCB9IGZyb20gJy4uL2FwaS1jbGllbnQnO1xyXG5pbXBvcnQgeyBKd3RTdG9yYWdlIH0gZnJvbSAnLi4vbW9kZWxzL2p3dC1zdG9yYWdlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yLCB0YXAsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbk1lc3NlbmdlciB9IGZyb20gJy4uL21lc3NlbmdlcnMvYXV0aGVudGljYXRpb24ubWVzc2VuZ2VyJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBKd3RUb2tlblNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZV9pZGVudGlmaWVyID0gJ2RhbmdsX2lkZW50aXR5X2ludGVncmF0aW9uX2p3dF90b2tlbic7XHJcbiAgcHJpdmF0ZSBpc1JlZnJlc2hpbmcgPSBmYWxzZTtcclxuICBwcml2YXRlIHJlZnJlc2hUb2tlblNvdXJjZSA9IG5ldyBTdWJqZWN0PEp3dFN0b3JhZ2U+KCk7XHJcbiAgcHJpdmF0ZSB0b2tlblN0b3JlZFNvdXJjZSA9IG5ldyBSZXBsYXlTdWJqZWN0PEp3dFN0b3JhZ2U+KDEpO1xyXG4gIHRva2VuU3RvcmVkID0gdGhpcy50b2tlblN0b3JlZFNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICBwcml2YXRlIHRva2VuUmVmcmVzaFN0YXJ0ZWRTb3VyY2UgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHRva2VuUmVmcmVzaFN0YXJ0ZWQgPSB0aGlzLnRva2VuUmVmcmVzaFN0YXJ0ZWRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcHJpdmF0ZSB0b2tlblJlZnJlc2hGaW5pc2hlZFNvdXJjZSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgdG9rZW5SZWZyZXNoRmluaXNoZWQgPSB0aGlzLnRva2VuUmVmcmVzaEZpbmlzaGVkU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhbmdsSWRlbnRpdHlDbGllbnQ6IERhbmdsSWRlbnRpdHlDbGllbnQpIHt9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy50b2tlblJlZnJlc2hTdGFydGVkU291cmNlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnRva2VuUmVmcmVzaEZpbmlzaGVkU291cmNlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnRva2VuU3RvcmVkU291cmNlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnJlZnJlc2hUb2tlblNvdXJjZS5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlVG9rZW4oKSB7XHJcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLnN0b3JhZ2VfaWRlbnRpZmllcik7XHJcbiAgICB0aGlzLnRva2VuU3RvcmVkU291cmNlLm5leHQobnVsbCk7XHJcbiAgfVxyXG5cclxuICBzdG9yZUN1c3RvbVRva2VuKHRva2VuVG9TdG9yZTogSnd0U3RvcmFnZSkge1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlX2lkZW50aWZpZXIsIEpTT04uc3RyaW5naWZ5KHRva2VuVG9TdG9yZSkpO1xyXG4gICAgdGhpcy50b2tlblN0b3JlZFNvdXJjZS5uZXh0KHRva2VuVG9TdG9yZSk7XHJcbiAgfVxyXG5cclxuICBzdG9yZVRva2VuKHRva2VuOiBUb2tlblJlc3BvbnNlR2V0KSB7XHJcbiAgICBjb25zdCB0b2tlblRvU3RvcmUgPSB0aGlzLnRyYW5zZm9ybVRva2VuUmVzcG9uc2UodG9rZW4pO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlX2lkZW50aWZpZXIsIEpTT04uc3RyaW5naWZ5KHRva2VuVG9TdG9yZSkpO1xyXG4gICAgdGhpcy50b2tlblN0b3JlZFNvdXJjZS5uZXh0KHRva2VuVG9TdG9yZSk7XHJcbiAgfVxyXG5cclxuICBnZXRUb2tlbkZyb21TdG9yYWdlKCk6IEp3dFN0b3JhZ2Uge1xyXG4gICAgY29uc3Qgc3RvcmVkU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlX2lkZW50aWZpZXIpO1xyXG4gICAgaWYgKHN0b3JlZFN0cmluZykge1xyXG4gICAgICBjb25zdCBzdG9yZWRUb2tlbiA9IDxKd3RTdG9yYWdlPkpTT04ucGFyc2Uoc3RvcmVkU3RyaW5nKTtcclxuICAgICAgcmV0dXJuIHN0b3JlZFRva2VuO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoVG9rZW4oKTogT2JzZXJ2YWJsZTxKd3RTdG9yYWdlPiB7XHJcbiAgICBpZiAodGhpcy5pc1JlZnJlc2hpbmcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuU291cmNlLnBpcGUoZmlyc3QoKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzUmVmcmVzaGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnRva2VuUmVmcmVzaFN0YXJ0ZWRTb3VyY2UubmV4dCgpO1xyXG4gICAgY29uc3QgcmVmcmVzaFRva2VuID0gdGhpcy5nZXRUb2tlbkZyb21TdG9yYWdlKCkucmVmcmVzaFRva2VuO1xyXG5cclxuICAgIGlmICghcmVmcmVzaFRva2VuKSB7XHJcbiAgICAgIHRoaXMuaXNSZWZyZXNoaW5nID0gZmFsc2U7XHJcbiAgICAgIHJldHVybiBvZjxKd3RTdG9yYWdlPihudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhbmdsSWRlbnRpdHlDbGllbnRcclxuICAgICAgLnJlZnJlc2hUb2tlbih7XHJcbiAgICAgICAgcmVmcmVzaFRva2VuOiByZWZyZXNoVG9rZW4sXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcCgocikgPT4gdGhpcy5zdG9yZVRva2VuKHIpKSxcclxuICAgICAgICBtYXAoKHIpID0+IHRoaXMudHJhbnNmb3JtVG9rZW5SZXNwb25zZShyKSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZWZyZXNoVG9rZW5SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc1JlZnJlc2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudG9rZW5SZWZyZXNoRmluaXNoZWRTb3VyY2UubmV4dCh0cnVlKTtcclxuICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuU291cmNlLm5leHQocmVmcmVzaFRva2VuUmVzcG9uc2UpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50b2tlblJlZnJlc2hGaW5pc2hlZFNvdXJjZS5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuU291cmNlLm5leHQobnVsbCk7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgICAgICAnSW50ZXJuYWwgZXJyb3Igd2hpbGUgcmVmcmVzaGluZyBEYW5nbC5JZGVudGl0eSB0b2tlbicsXHJcbiAgICAgICAgICAgIGVycm9yXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoVG9rZW5Tb3VyY2UucGlwZShmaXJzdCgpKTtcclxuICB9XHJcblxyXG4gIGdldFRva2VuKCk6IE9ic2VydmFibGU8Snd0U3RvcmFnZT4ge1xyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmdldFRva2VuRnJvbVN0b3JhZ2UoKTtcclxuICAgIGlmICghdG9rZW4pIHtcclxuICAgICAgcmV0dXJuIG9mPEp3dFN0b3JhZ2U+KG51bGwpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaXNWYWxpZFRva2VuID0gdG9rZW4uZXhwaXJlc0F0ID4gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwO1xyXG4gICAgaWYgKGlzVmFsaWRUb2tlbikge1xyXG4gICAgICByZXR1cm4gb2YodG9rZW4pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRyYW5zZm9ybVRva2VuUmVzcG9uc2UodG9rZW46IFRva2VuUmVzcG9uc2VHZXQpOiBKd3RTdG9yYWdlIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFjY2Vzc1Rva2VuOiB0b2tlbi5hY2Nlc3NUb2tlbixcclxuICAgICAgcmVmcmVzaFRva2VuOiB0b2tlbi5yZWZyZXNoVG9rZW4sXHJcbiAgICAgIGV4cGlyZXNBdDogbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwICsgdG9rZW4uZXhwaXJlc0luLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Injectable, Inject, Optional, NgModule } from '@angular/core';
|
|
3
1
|
import * as i1 from '@angular/common/http';
|
|
4
2
|
import { HttpHeaders, HttpResponseBase, HttpResponse, HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
5
|
-
import
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { InjectionToken, Injectable, Inject, Optional, NgModule } from '@angular/core';
|
|
5
|
+
import { mergeMap, catchError, first, tap, map, takeUntil } from 'rxjs/operators';
|
|
6
6
|
import { throwError, Observable, of, Subject, ReplaySubject } from 'rxjs';
|
|
7
7
|
import { JwtHelperService } from '@auth0/angular-jwt';
|
|
8
8
|
|
|
@@ -480,7 +480,7 @@ function blobToText(blob) {
|
|
|
480
480
|
class JwtTokenService {
|
|
481
481
|
constructor(danglIdentityClient) {
|
|
482
482
|
this.danglIdentityClient = danglIdentityClient;
|
|
483
|
-
this.storage_identifier =
|
|
483
|
+
this.storage_identifier = 'dangl_identity_integration_jwt_token';
|
|
484
484
|
this.isRefreshing = false;
|
|
485
485
|
this.refreshTokenSource = new Subject();
|
|
486
486
|
this.tokenStoredSource = new ReplaySubject(1);
|
|
@@ -490,6 +490,12 @@ class JwtTokenService {
|
|
|
490
490
|
this.tokenRefreshFinishedSource = new Subject();
|
|
491
491
|
this.tokenRefreshFinished = this.tokenRefreshFinishedSource.asObservable();
|
|
492
492
|
}
|
|
493
|
+
ngOnDestroy() {
|
|
494
|
+
this.tokenRefreshStartedSource.complete();
|
|
495
|
+
this.tokenRefreshFinishedSource.complete();
|
|
496
|
+
this.tokenStoredSource.complete();
|
|
497
|
+
this.refreshTokenSource.complete();
|
|
498
|
+
}
|
|
493
499
|
deleteToken() {
|
|
494
500
|
localStorage.removeItem(this.storage_identifier);
|
|
495
501
|
this.tokenStoredSource.next(null);
|
|
@@ -535,7 +541,7 @@ class JwtTokenService {
|
|
|
535
541
|
this.isRefreshing = false;
|
|
536
542
|
this.tokenRefreshFinishedSource.next(false);
|
|
537
543
|
this.refreshTokenSource.next(null);
|
|
538
|
-
console.error(
|
|
544
|
+
console.error('Internal error while refreshing Dangl.Identity token', error);
|
|
539
545
|
});
|
|
540
546
|
return this.refreshTokenSource.pipe(first());
|
|
541
547
|
}
|
|
@@ -559,22 +565,22 @@ class JwtTokenService {
|
|
|
559
565
|
}
|
|
560
566
|
}
|
|
561
567
|
JwtTokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: JwtTokenService, deps: [{ token: DanglIdentityClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
562
|
-
JwtTokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: JwtTokenService, providedIn:
|
|
568
|
+
JwtTokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: JwtTokenService, providedIn: 'root' });
|
|
563
569
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: JwtTokenService, decorators: [{
|
|
564
570
|
type: Injectable,
|
|
565
571
|
args: [{
|
|
566
|
-
providedIn:
|
|
572
|
+
providedIn: 'root',
|
|
567
573
|
}]
|
|
568
574
|
}], ctorParameters: function () { return [{ type: DanglIdentityClient }]; } });
|
|
569
575
|
|
|
570
|
-
const DANGL_IDENTITY_REQUEST_VALIDATOR = new InjectionToken(
|
|
576
|
+
const DANGL_IDENTITY_REQUEST_VALIDATOR = new InjectionToken('Validator to decide whether to include JWT tokens in requests');
|
|
571
577
|
class JwtInterceptorService {
|
|
572
578
|
constructor(jwtTokenService, requestValidator) {
|
|
573
579
|
this.jwtTokenService = jwtTokenService;
|
|
574
580
|
this.requestValidator = requestValidator;
|
|
575
581
|
}
|
|
576
582
|
intercept(request, next) {
|
|
577
|
-
if (request.url.startsWith(
|
|
583
|
+
if (request.url.startsWith('/identity')) {
|
|
578
584
|
// Requests to the authentication endpoint should not be intercepted
|
|
579
585
|
return next.handle(request.clone());
|
|
580
586
|
}
|
|
@@ -616,14 +622,24 @@ class DanglIdentityModule {
|
|
|
616
622
|
}
|
|
617
623
|
DanglIdentityModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: DanglIdentityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
618
624
|
DanglIdentityModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.4", ngImport: i0, type: DanglIdentityModule, imports: [HttpClientModule] });
|
|
619
|
-
DanglIdentityModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: DanglIdentityModule, providers: [
|
|
625
|
+
DanglIdentityModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: DanglIdentityModule, providers: [
|
|
626
|
+
{
|
|
627
|
+
provide: HTTP_INTERCEPTORS,
|
|
628
|
+
useClass: JwtInterceptorService,
|
|
629
|
+
multi: true,
|
|
630
|
+
},
|
|
631
|
+
], imports: [HttpClientModule] });
|
|
620
632
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: DanglIdentityModule, decorators: [{
|
|
621
633
|
type: NgModule,
|
|
622
634
|
args: [{
|
|
623
|
-
imports: [
|
|
624
|
-
|
|
635
|
+
imports: [HttpClientModule],
|
|
636
|
+
providers: [
|
|
637
|
+
{
|
|
638
|
+
provide: HTTP_INTERCEPTORS,
|
|
639
|
+
useClass: JwtInterceptorService,
|
|
640
|
+
multi: true,
|
|
641
|
+
},
|
|
625
642
|
],
|
|
626
|
-
providers: [{ provide: HTTP_INTERCEPTORS, useClass: JwtInterceptorService, multi: true }]
|
|
627
643
|
}]
|
|
628
644
|
}] });
|
|
629
645
|
|
|
@@ -636,14 +652,12 @@ class AuthenticationService {
|
|
|
636
652
|
return this.danglIdentityClient
|
|
637
653
|
.loginAndReturnToken({
|
|
638
654
|
identifier: identifier,
|
|
639
|
-
password: password
|
|
655
|
+
password: password,
|
|
640
656
|
})
|
|
641
|
-
.pipe(map(r => this.storeJwtTokenIfValid(r)), catchError(e => of(false)));
|
|
657
|
+
.pipe(map((r) => this.storeJwtTokenIfValid(r)), catchError((e) => of(false)));
|
|
642
658
|
}
|
|
643
659
|
storeJwtTokenIfValid(token) {
|
|
644
|
-
if (!token.accessToken
|
|
645
|
-
|| !token.refreshToken
|
|
646
|
-
|| !token.expiresIn) {
|
|
660
|
+
if (!token.accessToken || !token.refreshToken || !token.expiresIn) {
|
|
647
661
|
return false;
|
|
648
662
|
}
|
|
649
663
|
this.jwtTokenService.storeToken(token);
|
|
@@ -658,7 +672,7 @@ AuthenticationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0"
|
|
|
658
672
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: AuthenticationService, decorators: [{
|
|
659
673
|
type: Injectable,
|
|
660
674
|
args: [{
|
|
661
|
-
providedIn: 'root'
|
|
675
|
+
providedIn: 'root',
|
|
662
676
|
}]
|
|
663
677
|
}], ctorParameters: function () { return [{ type: DanglIdentityClient }, { type: JwtTokenService }]; } });
|
|
664
678
|
|
|
@@ -666,6 +680,7 @@ class AuthenticationMessenger {
|
|
|
666
680
|
constructor(jwtTokenService) {
|
|
667
681
|
this.jwtTokenService = jwtTokenService;
|
|
668
682
|
this.jwtHelperService = new JwtHelperService();
|
|
683
|
+
this.$destroyed = new Subject();
|
|
669
684
|
this.isAuthenticated = new ReplaySubject(1);
|
|
670
685
|
this.username = new ReplaySubject(1);
|
|
671
686
|
this.email = new ReplaySubject(1);
|
|
@@ -673,15 +688,33 @@ class AuthenticationMessenger {
|
|
|
673
688
|
this.userInfo = new ReplaySubject(1);
|
|
674
689
|
this.tokenRefreshStarted = new Subject();
|
|
675
690
|
this.tokenRefreshFinished = new Subject();
|
|
676
|
-
jwtTokenService.tokenRefreshStarted
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
jwtTokenService.
|
|
680
|
-
.
|
|
691
|
+
jwtTokenService.tokenRefreshStarted
|
|
692
|
+
.pipe(takeUntil(this.$destroyed))
|
|
693
|
+
.subscribe(() => this.tokenRefreshStarted.next());
|
|
694
|
+
jwtTokenService.tokenRefreshFinished
|
|
695
|
+
.pipe(takeUntil(this.$destroyed))
|
|
696
|
+
.subscribe((successfulRefresh) => this.tokenRefreshFinished.next(successfulRefresh));
|
|
697
|
+
jwtTokenService.tokenStored
|
|
698
|
+
.pipe(takeUntil(this.$destroyed))
|
|
699
|
+
.subscribe((jwtToken) => this.refreshAuthenticationStatus(jwtToken));
|
|
700
|
+
jwtTokenService
|
|
701
|
+
.getToken()
|
|
702
|
+
.subscribe((token) => this.refreshAuthenticationStatus(token));
|
|
703
|
+
}
|
|
704
|
+
ngOnDestroy() {
|
|
705
|
+
this.isAuthenticated.complete();
|
|
706
|
+
this.username.complete();
|
|
707
|
+
this.email.complete();
|
|
708
|
+
this.identiconId.complete();
|
|
709
|
+
this.userInfo.complete();
|
|
710
|
+
this.tokenRefreshStarted.complete();
|
|
711
|
+
this.tokenRefreshFinished.complete();
|
|
712
|
+
this.$destroyed.next();
|
|
713
|
+
this.$destroyed.complete();
|
|
681
714
|
}
|
|
682
715
|
refreshAuthenticationStatus(jwtToken) {
|
|
683
716
|
if (jwtToken) {
|
|
684
|
-
const isValidToken = jwtToken.expiresAt >
|
|
717
|
+
const isValidToken = jwtToken.expiresAt > new Date().getTime() / 1000;
|
|
685
718
|
if (this.lastBroadcastAccessToken === jwtToken.accessToken) {
|
|
686
719
|
return;
|
|
687
720
|
}
|
|
@@ -708,14 +741,12 @@ class AuthenticationMessenger {
|
|
|
708
741
|
email: decodedToken['email'],
|
|
709
742
|
identiconId: decodedToken['identicon_id'],
|
|
710
743
|
username: decodedToken['name'],
|
|
711
|
-
roles: decodedToken['role']
|
|
744
|
+
roles: decodedToken['role'],
|
|
712
745
|
});
|
|
713
746
|
}
|
|
714
747
|
else {
|
|
715
748
|
this.isAuthenticated.next(false);
|
|
716
|
-
this.jwtTokenService
|
|
717
|
-
.refreshToken()
|
|
718
|
-
.subscribe(() => { });
|
|
749
|
+
this.jwtTokenService.refreshToken().subscribe(() => { });
|
|
719
750
|
}
|
|
720
751
|
}
|
|
721
752
|
else {
|
|
@@ -736,7 +767,7 @@ AuthenticationMessenger.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.
|
|
|
736
767
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: AuthenticationMessenger, decorators: [{
|
|
737
768
|
type: Injectable,
|
|
738
769
|
args: [{
|
|
739
|
-
providedIn: 'root'
|
|
770
|
+
providedIn: 'root',
|
|
740
771
|
}]
|
|
741
772
|
}], ctorParameters: function () { return [{ type: JwtTokenService }]; } });
|
|
742
773
|
|