@dangl/angular-dangl-identity-client 4.1.3-beta0001 → 4.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,19 +1,29 @@
1
- import { NgModule } from '@angular/core';
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: [{ provide: HTTP_INTERCEPTORS, useClass: JwtInterceptorService, multi: true }], imports: [HttpClientModule] });
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
- HttpClientModule
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFuZ2wtaWRlbnRpdHkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1kYW5nbC1pZGVudGl0eS1jbGllbnQvc3JjL2RhbmdsLWlkZW50aXR5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQVEvRSxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsWUFKNUIsZ0JBQWdCO2lIQUlQLG1CQUFtQixhQUZuQixDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsWUFGdkYsZ0JBQWdCOzJGQUlQLG1CQUFtQjtrQkFOL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsZ0JBQWdCO3FCQUNqQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUMxRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUsIEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBKd3RJbnRlcmNlcHRvclNlcnZpY2UgfSBmcm9tICcuL2ludGVyY2VwdG9ycy9qd3QtaW50ZXJjZXB0b3Iuc2VydmljZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIEh0dHBDbGllbnRNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBKd3RJbnRlcmNlcHRvclNlcnZpY2UsIG11bHRpOiB0cnVlIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYW5nbElkZW50aXR5TW9kdWxlIHsgfVxyXG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFuZ2wtaWRlbnRpdHkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1kYW5nbC1pZGVudGl0eS1jbGllbnQvc3JjL2RhbmdsLWlkZW50aXR5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVl6QyxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsWUFUcEIsZ0JBQWdCO2lIQVNmLG1CQUFtQixhQVJuQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixRQUFRLEVBQUUscUJBQXFCO1lBQy9CLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixZQVBTLGdCQUFnQjsyRkFTZixtQkFBbUI7a0JBVi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixRQUFRLEVBQUUscUJBQXFCOzRCQUMvQixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTLCBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgSnd0SW50ZXJjZXB0b3JTZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMvand0LWludGVyY2VwdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbSHR0cENsaWVudE1vZHVsZV0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxyXG4gICAgICB1c2VDbGFzczogSnd0SW50ZXJjZXB0b3JTZXJ2aWNlLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhbmdsSWRlbnRpdHlNb2R1bGUge31cclxuIl19
@@ -1,15 +1,15 @@
1
- import { Inject, Injectable, InjectionToken, Optional } from "@angular/core";
2
- import { mergeMap } from "rxjs/operators";
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("Validator to decide whether to include JWT tokens in requests");
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("/identity")) {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LWludGVyY2VwdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWRhbmdsLWlkZW50aXR5LWNsaWVudC9zcmMvaW50ZXJjZXB0b3JzL2p3dC1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHMUMsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQzNDLElBQUksY0FBYyxDQUNoQiwrREFBK0QsQ0FDaEUsQ0FBQztBQUVKLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFDUyxlQUFnQyxFQUcvQixnQkFBZ0Q7UUFIakQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRy9CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBZ0M7SUFDdkQsQ0FBQztJQUNKLFNBQVMsQ0FDUCxPQUF5QixFQUN6QixJQUFpQjtRQUVqQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3ZDLG9FQUFvRTtZQUNwRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDckM7UUFFRCxJQUNFLElBQUksQ0FBQyxnQkFBZ0I7WUFDckIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUMvQztZQUNBLDBFQUEwRTtZQUMxRSwrQ0FBK0M7WUFDL0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdCO1FBRUQsT0FBTyxJQUFJLENBQUMsZUFBZTthQUN4QixRQUFRLEVBQUU7YUFDVixJQUFJLENBQ0gsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDYixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUN2RSxDQUNGLENBQUM7SUFDTixDQUFDO0lBRU8sdUJBQXVCLENBQzdCLE9BQXlCLEVBQ3pCLEtBQWM7UUFFZCxJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDbkIsVUFBVSxFQUFFO29CQUNWLGFBQWEsRUFBRSxVQUFVLEtBQUssRUFBRTtpQkFDakM7YUFDRixDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7O2tIQTlDVSxxQkFBcUIsaURBSXRCLGdDQUFnQztzSEFKL0IscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQUlOLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBIdHRwRXZlbnQsXHJcbiAgSHR0cEhhbmRsZXIsXHJcbiAgSHR0cEludGVyY2VwdG9yLFxyXG4gIEh0dHBSZXF1ZXN0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBKd3RUb2tlblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvand0LXRva2VuLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IG1lcmdlTWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IElEYW5nbElkZW50aXR5UmVxdWVzdFZhbGlkYXRvciB9IGZyb20gXCIuL2RhbmdsLWlkZW50aXR5LXJlcXVlc3QtdmFsaWRhdG9yXCI7XHJcblxyXG5leHBvcnQgY29uc3QgREFOR0xfSURFTlRJVFlfUkVRVUVTVF9WQUxJREFUT1IgPVxyXG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxJRGFuZ2xJZGVudGl0eVJlcXVlc3RWYWxpZGF0b3I+KFxyXG4gICAgXCJWYWxpZGF0b3IgdG8gZGVjaWRlIHdoZXRoZXIgdG8gaW5jbHVkZSBKV1QgdG9rZW5zIGluIHJlcXVlc3RzXCJcclxuICApO1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBKd3RJbnRlcmNlcHRvclNlcnZpY2UgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGp3dFRva2VuU2VydmljZTogSnd0VG9rZW5TZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKClcclxuICAgIEBJbmplY3QoREFOR0xfSURFTlRJVFlfUkVRVUVTVF9WQUxJREFUT1IpXHJcbiAgICBwcml2YXRlIHJlcXVlc3RWYWxpZGF0b3I6IElEYW5nbElkZW50aXR5UmVxdWVzdFZhbGlkYXRvclxyXG4gICkge31cclxuICBpbnRlcmNlcHQoXHJcbiAgICByZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LFxyXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICBpZiAocmVxdWVzdC51cmwuc3RhcnRzV2l0aChcIi9pZGVudGl0eVwiKSkge1xyXG4gICAgICAvLyBSZXF1ZXN0cyB0byB0aGUgYXV0aGVudGljYXRpb24gZW5kcG9pbnQgc2hvdWxkIG5vdCBiZSBpbnRlcmNlcHRlZFxyXG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdC5jbG9uZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucmVxdWVzdFZhbGlkYXRvciAmJlxyXG4gICAgICAhdGhpcy5yZXF1ZXN0VmFsaWRhdG9yLnZhbGlkYXRlUmVxdWVzdChyZXF1ZXN0KVxyXG4gICAgKSB7XHJcbiAgICAgIC8vIEluIGNhc2UgYSByZXF1ZXN0IHZhbGlkYXRvciBpcyBwcm92aWRlZCBidXQgZG9lc24ndCByZXR1cm4gdHJ1ZSBmb3IgdGhlXHJcbiAgICAgIC8vIGN1cnJlbnQgcmVxdWVzdCwgd2UncmUgbm90IGFwcGVuZGluZyBhIHRva2VuXHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5qd3RUb2tlblNlcnZpY2VcclxuICAgICAgLmdldFRva2VuKClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAoKGYpID0+XHJcbiAgICAgICAgICBuZXh0LmhhbmRsZSh0aGlzLmdldEh0dHBSZXF1ZXN0V2l0aFRva2VuKHJlcXVlc3QsIGYgJiYgZi5hY2Nlc3NUb2tlbikpXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRIdHRwUmVxdWVzdFdpdGhUb2tlbihcclxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sXHJcbiAgICB0b2tlbj86IHN0cmluZ1xyXG4gICk6IEh0dHBSZXF1ZXN0PGFueT4ge1xyXG4gICAgaWYgKHRva2VuKSB7XHJcbiAgICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcclxuICAgICAgICBzZXRIZWFkZXJzOiB7XHJcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCxcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXF1ZXN0LmNsb25lKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
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.subscribe(() => this.tokenRefreshStarted.next());
18
- jwtTokenService.tokenRefreshFinished.subscribe(successfulRefresh => this.tokenRefreshFinished.next(successfulRefresh));
19
- jwtTokenService.tokenStored.subscribe(jwtToken => this.refreshAuthenticationStatus(jwtToken));
20
- jwtTokenService.getToken()
21
- .subscribe(token => this.refreshAuthenticationStatus(token));
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 > (new Date().getTime() / 1000);
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 { map, catchError } from 'rxjs/operators';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZGFuZ2wtaWRlbnRpdHktY2xpZW50L3NyYy9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTWpELE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsWUFBb0IsbUJBQXdDLEVBQ2xELGVBQWdDO1FBRHRCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDbEQsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUksQ0FBQztJQUUvQyxjQUFjLENBQUMsVUFBa0IsRUFBRSxRQUFnQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxtQkFBbUI7YUFDNUIsbUJBQW1CLENBQUM7WUFDbkIsVUFBVSxFQUFFLFVBQVU7WUFDdEIsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDMUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBdUI7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO2VBQ2pCLENBQUMsS0FBSyxDQUFDLFlBQVk7ZUFDbkIsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ3JCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDOztrSEEzQlUscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYW5nbElkZW50aXR5Q2xpZW50LCBUb2tlblJlc3BvbnNlR2V0IH0gZnJvbSAnLi4vYXBpLWNsaWVudCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSnd0VG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi9qd3QtdG9rZW4uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvblNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhbmdsSWRlbnRpdHlDbGllbnQ6IERhbmdsSWRlbnRpdHlDbGllbnQsXHJcbiAgICBwcml2YXRlIGp3dFRva2VuU2VydmljZTogSnd0VG9rZW5TZXJ2aWNlKSB7IH1cclxuXHJcbiAgbG9naW5XaXRoVG9rZW4oaWRlbnRpZmllcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYW5nbElkZW50aXR5Q2xpZW50XHJcbiAgICAgIC5sb2dpbkFuZFJldHVyblRva2VuKHtcclxuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxyXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShtYXAociA9PiB0aGlzLnN0b3JlSnd0VG9rZW5JZlZhbGlkKHIpKSxcclxuICAgICAgICBjYXRjaEVycm9yKGUgPT4gb2YoZmFsc2UpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0b3JlSnd0VG9rZW5JZlZhbGlkKHRva2VuOiBUb2tlblJlc3BvbnNlR2V0KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRva2VuLmFjY2Vzc1Rva2VuXHJcbiAgICAgIHx8ICF0b2tlbi5yZWZyZXNoVG9rZW5cclxuICAgICAgfHwgIXRva2VuLmV4cGlyZXNJbikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmp3dFRva2VuU2VydmljZS5zdG9yZVRva2VuKHRva2VuKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCkge1xyXG4gICAgdGhpcy5qd3RUb2tlblNlcnZpY2UuZGVsZXRlVG9rZW4oKTtcclxuICB9XHJcbn1cclxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZGFuZ2wtaWRlbnRpdHktY2xpZW50L3NyYy9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTTNDLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFDVSxtQkFBd0MsRUFDeEMsZUFBZ0M7UUFEaEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFDdkMsQ0FBQztJQUVKLGNBQWMsQ0FBQyxVQUFrQixFQUFFLFFBQWdCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLG1CQUFtQjthQUM1QixtQkFBbUIsQ0FBQztZQUNuQixVQUFVLEVBQUUsVUFBVTtZQUN0QixRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDO2FBQ0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3hDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzdCLENBQUM7SUFDTixDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBdUI7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUNqRSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQzs7a0hBNUJVLHFCQUFxQjtzSEFBckIscUJBQXFCLGNBRnBCLE1BQU07MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhbmdsSWRlbnRpdHlDbGllbnQsIFRva2VuUmVzcG9uc2VHZXQgfSBmcm9tICcuLi9hcGktY2xpZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBKd3RUb2tlblNlcnZpY2UgfSBmcm9tICcuL2p3dC10b2tlbi5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvblNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYW5nbElkZW50aXR5Q2xpZW50OiBEYW5nbElkZW50aXR5Q2xpZW50LFxyXG4gICAgcHJpdmF0ZSBqd3RUb2tlblNlcnZpY2U6IEp3dFRva2VuU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbG9naW5XaXRoVG9rZW4oaWRlbnRpZmllcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYW5nbElkZW50aXR5Q2xpZW50XHJcbiAgICAgIC5sb2dpbkFuZFJldHVyblRva2VuKHtcclxuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxyXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyKSA9PiB0aGlzLnN0b3JlSnd0VG9rZW5JZlZhbGlkKHIpKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlKSA9PiBvZihmYWxzZSkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0b3JlSnd0VG9rZW5JZlZhbGlkKHRva2VuOiBUb2tlblJlc3BvbnNlR2V0KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRva2VuLmFjY2Vzc1Rva2VuIHx8ICF0b2tlbi5yZWZyZXNoVG9rZW4gfHwgIXRva2VuLmV4cGlyZXNJbikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmp3dFRva2VuU2VydmljZS5zdG9yZVRva2VuKHRva2VuKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCkge1xyXG4gICAgdGhpcy5qd3RUb2tlblNlcnZpY2UuZGVsZXRlVG9rZW4oKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,12 +1,12 @@
1
- import { Injectable } from "@angular/core";
2
- import { Subject, of, ReplaySubject } from "rxjs";
3
- import { map, tap, first } from "rxjs/operators";
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 = "dangl_identity_integration_jwt_token";
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("Internal error while refreshing Dangl.Identity token", 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: "root" });
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: "root",
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LXRva2VuLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWRhbmdsLWlkZW50aXR5LWNsaWVudC9zcmMvc2VydmljZXMvand0LXRva2VuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUd0RCxPQUFPLEVBQUUsT0FBTyxFQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBYyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU03RCxNQUFNLE9BQU8sZUFBZTtJQVcxQixZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQVYzQyx1QkFBa0IsR0FBRyxzQ0FBc0MsQ0FBQztRQUNyRSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQix1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO1FBQy9DLHNCQUFpQixHQUFHLElBQUksYUFBYSxDQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzdELGdCQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVDLDhCQUF5QixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDbEQsd0JBQW1CLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVELCtCQUEwQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDNUQseUJBQW9CLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRVAsQ0FBQztJQUVoRSxXQUFXO1FBQ1QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVB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QyxPQUFPLENBQUMsS0FBSyxDQUNYLHNEQUFzRCxFQUN0RCxLQUFLLENBQ04sQ0FBQztRQUNKLENBQUMsQ0FDRixDQUFDO1FBRUosT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQWEsSUFBSSxDQUFDLENBQUM7U0FDN0I7UUFDRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ25FLElBQUksWUFBWSxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQXVCO1FBQ3BELE9BQU87WUFDTCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsU0FBUztTQUN6RCxDQUFDO0lBQ0osQ0FBQzs7NEdBeEdVLGVBQWU7Z0hBQWYsZUFBZSxjQUZkLE1BQU07MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGFuZ2xJZGVudGl0eUNsaWVudCwgVG9rZW5SZXNwb25zZUdldCB9IGZyb20gJy4uL2FwaS1jbGllbnQnO1xyXG5pbXBvcnQgeyBKd3RTdG9yYWdlIH0gZnJvbSAnLi4vbW9kZWxzL2p3dC1zdG9yYWdlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yLCB0YXAsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbk1lc3NlbmdlciB9IGZyb20gJy4uL21lc3NlbmdlcnMvYXV0aGVudGljYXRpb24ubWVzc2VuZ2VyJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBKd3RUb2tlblNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZV9pZGVudGlmaWVyID0gJ2RhbmdsX2lkZW50aXR5X2ludGVncmF0aW9uX2p3dF90b2tlbic7XHJcbiAgcHJpdmF0ZSBpc1JlZnJlc2hpbmcgPSBmYWxzZTtcclxuICBwcml2YXRlIHJlZnJlc2hUb2tlblNvdXJjZSA9IG5ldyBTdWJqZWN0PEp3dFN0b3JhZ2U+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 { mergeMap, catchError, first, tap, map } from 'rxjs/operators';
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 = "dangl_identity_integration_jwt_token";
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("Internal error while refreshing Dangl.Identity token", 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: "root" });
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: "root",
572
+ providedIn: 'root',
567
573
  }]
568
574
  }], ctorParameters: function () { return [{ type: DanglIdentityClient }]; } });
569
575
 
570
- const DANGL_IDENTITY_REQUEST_VALIDATOR = new InjectionToken("Validator to decide whether to include JWT tokens in requests");
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("/identity")) {
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: [{ provide: HTTP_INTERCEPTORS, useClass: JwtInterceptorService, multi: true }], imports: [HttpClientModule] });
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
- HttpClientModule
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.subscribe(() => this.tokenRefreshStarted.next());
677
- jwtTokenService.tokenRefreshFinished.subscribe(successfulRefresh => this.tokenRefreshFinished.next(successfulRefresh));
678
- jwtTokenService.tokenStored.subscribe(jwtToken => this.refreshAuthenticationStatus(jwtToken));
679
- jwtTokenService.getToken()
680
- .subscribe(token => this.refreshAuthenticationStatus(token));
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 > (new Date().getTime() / 1000);
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