imng-oidc-client 9.218.2 → 9.220.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.
@@ -4,7 +4,6 @@ import { CommonModule } from '@angular/common';
4
4
  import { of } from 'rxjs';
5
5
  import { OidcFacade } from 'imng-oidc-client';
6
6
 
7
- /* eslint-disable @typescript-eslint/no-explicit-any */
8
7
  class OidcMockFacade {
9
8
  constructor() {
10
9
  this.loggedIn$ = of(true);
@@ -15,10 +14,10 @@ class OidcMockFacade {
15
14
  waitForAuthenticationLoaded() {
16
15
  return of(true);
17
16
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcMockFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
19
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcMockFacade, providedIn: 'root' }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcMockFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
18
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcMockFacade, providedIn: 'root' }); }
20
19
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcMockFacade, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcMockFacade, decorators: [{
22
21
  type: Injectable,
23
22
  args: [{
24
23
  providedIn: 'root',
@@ -26,11 +25,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
26
25
  }] });
27
26
 
28
27
  class TestingModule {
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: TestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
30
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: TestingModule, imports: [CommonModule] }); }
31
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: TestingModule, providers: [OidcMockFacade], imports: [CommonModule] }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
29
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: TestingModule, imports: [CommonModule] }); }
30
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TestingModule, providers: [OidcMockFacade], imports: [CommonModule] }); }
32
31
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: TestingModule, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TestingModule, decorators: [{
34
33
  type: NgModule,
35
34
  args: [{
36
35
  imports: [CommonModule],
@@ -1 +1 @@
1
- {"version":3,"file":"imng-oidc-client-testing.mjs","sources":["../../../../libs/imng-oidc-client/testing/src/lib/oidc-mock.facade.ts","../../../../libs/imng-oidc-client/testing/src/lib/testing.module.ts","../../../../libs/imng-oidc-client/testing/src/lib/provide-oidc-mock-facade.ts","../../../../libs/imng-oidc-client/testing/src/imng-oidc-client-testing.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcMockFacade {\n\n loggedIn$: Observable<boolean> = of(true);\n /**\n * Convenient function to wait for OIDC dependencies to be loaded.\n */\n public waitForAuthenticationLoaded(): Observable<boolean> {\n return of(true);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OidcMockFacade } from './oidc-mock.facade';\n\n@NgModule({\n imports: [CommonModule],\n providers: [OidcMockFacade],\n})\nexport class TestingModule {}\n","import { OidcFacade } from 'imng-oidc-client';\nimport { OidcMockFacade } from './oidc-mock.facade';\n\nexport function provideOidcMockFacade() {\n return {\n provide: OidcFacade,\n useValue: new OidcMockFacade(),\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA;MAOa,cAAc,CAAA;AAH3B,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,SAAS,GAAwB,EAAE,CAAC,IAAI,CAAC;AAO1C,IAAA;AANC;;AAEG;IACI,2BAA2B,GAAA;AAChC,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC;IACjB;+GARW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCEY,aAAa,CAAA;+GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAHd,YAAY,CAAA,EAAA,CAAA,CAAA;AAGX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAAA,SAAA,EAFb,CAAC,cAAc,CAAC,YADjB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,SAAS,EAAE,CAAC,cAAc,CAAC;AAC5B,iBAAA;;;SCJe,qBAAqB,GAAA;IACnC,OAAO;AACL,QAAA,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,IAAI,cAAc,EAAE;KAC/B;AACH;;ACRA;;AAEG;;;;"}
1
+ {"version":3,"file":"imng-oidc-client-testing.mjs","sources":["../../../../libs/imng-oidc-client/testing/src/lib/oidc-mock.facade.ts","../../../../libs/imng-oidc-client/testing/src/lib/testing.module.ts","../../../../libs/imng-oidc-client/testing/src/lib/provide-oidc-mock-facade.ts","../../../../libs/imng-oidc-client/testing/src/imng-oidc-client-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcMockFacade {\n loggedIn$: Observable<boolean> = of(true);\n /**\n * Convenient function to wait for OIDC dependencies to be loaded.\n */\n public waitForAuthenticationLoaded(): Observable<boolean> {\n return of(true);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OidcMockFacade } from './oidc-mock.facade';\n\n@NgModule({\n imports: [CommonModule],\n providers: [OidcMockFacade],\n})\nexport class TestingModule {}\n","import { OidcFacade } from 'imng-oidc-client';\nimport { OidcMockFacade } from './oidc-mock.facade';\n\nexport function provideOidcMockFacade() {\n return {\n provide: OidcFacade,\n useValue: new OidcMockFacade(),\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAMa,cAAc,CAAA;AAH3B,IAAA,WAAA,GAAA;AAIE,QAAA,IAAA,CAAA,SAAS,GAAwB,EAAE,CAAC,IAAI,CAAC;AAO1C,IAAA;AANC;;AAEG;IACI,2BAA2B,GAAA;AAChC,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC;IACjB;8GAPW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCGY,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAHd,YAAY,CAAA,EAAA,CAAA,CAAA;AAGX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAAA,SAAA,EAFb,CAAC,cAAc,CAAC,YADjB,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAGX,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,SAAS,EAAE,CAAC,cAAc,CAAC;AAC5B,iBAAA;;;SCJe,qBAAqB,GAAA;IACnC,OAAO;AACL,QAAA,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,IAAI,cAAc,EAAE;KAC/B;AACH;;ACRA;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { isPlatformBrowser, AsyncPipe, DOCUMENT, CommonModule } from '@angular/common';
2
- import { HttpClient, HttpErrorResponse, HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
2
+ import { HttpClient, HttpErrorResponse, HTTP_INTERCEPTORS, provideHttpClient, withXhr, withInterceptorsFromDi } from '@angular/common/http';
3
3
  import * as i0 from '@angular/core';
4
4
  import { inject, Injectable, InjectionToken, PLATFORM_ID, Component, NgModule, DOCUMENT as DOCUMENT$1 } from '@angular/core';
5
5
  import * as i2 from '@ngrx/effects';
@@ -249,10 +249,10 @@ class OidcUserFacade {
249
249
  return this.permissions$.pipe(map((t) => -1 <
250
250
  requiredPermissions.findIndex((f) => -1 < (t?.findIndex((i) => i === f) ?? -1))));
251
251
  }
252
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcUserFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
253
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcUserFacade, providedIn: 'root' }); }
252
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcUserFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
253
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcUserFacade, providedIn: 'root' }); }
254
254
  }
255
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcUserFacade, decorators: [{
255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcUserFacade, decorators: [{
256
256
  type: Injectable,
257
257
  args: [{
258
258
  providedIn: 'root',
@@ -425,17 +425,16 @@ class OidcService {
425
425
  localStorage.setItem(StorageKeys.OidcSettings, JSON.stringify(this._userManagerSettings));
426
426
  }
427
427
  }
428
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
429
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcService, providedIn: 'root' }); }
428
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
429
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcService, providedIn: 'root' }); }
430
430
  }
431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcService, decorators: [{
431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcService, decorators: [{
432
432
  type: Injectable,
433
433
  args: [{
434
434
  providedIn: 'root',
435
435
  }]
436
436
  }], ctorParameters: () => [] });
437
437
 
438
- /* eslint-disable @typescript-eslint/no-explicit-any */
439
438
  class OidcFacade {
440
439
  constructor() {
441
440
  this.store = inject(Store);
@@ -549,10 +548,10 @@ class OidcFacade {
549
548
  this.registerEvent(OidcEvent.UserSignedOut, this.addUserSignedOut);
550
549
  this.registerEvent(OidcEvent.UserSessionChanged, this.addUserSessionChanged);
551
550
  }
552
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
553
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcFacade, providedIn: 'root' }); }
551
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
552
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcFacade, providedIn: 'root' }); }
554
553
  }
555
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcFacade, decorators: [{
554
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcFacade, decorators: [{
556
555
  type: Injectable,
557
556
  args: [{
558
557
  providedIn: 'root',
@@ -569,8 +568,8 @@ class IMNG_USER_SUPPORT {
569
568
  value: x[propertyKey], //NOSONAR
570
569
  }))));
571
570
  }
572
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IMNG_USER_SUPPORT, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
573
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: IMNG_USER_SUPPORT, isStandalone: true, selector: "imng-support", ngImport: i0, template: `<div class="container pt-5 mt-5">
571
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: IMNG_USER_SUPPORT, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
572
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: IMNG_USER_SUPPORT, isStandalone: true, selector: "imng-support", ngImport: i0, template: `<div class="container pt-5 mt-5">
574
573
  <div class="row h3 text-center">
575
574
  <div class="col-md-12 text-center">OIDC Support</div>
576
575
  </div>
@@ -620,7 +619,7 @@ class IMNG_USER_SUPPORT {
620
619
  }
621
620
  </div>`, isInline: true, dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }] }); }
622
621
  }
623
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IMNG_USER_SUPPORT, decorators: [{
622
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: IMNG_USER_SUPPORT, decorators: [{
624
623
  type: Component,
625
624
  args: [{
626
625
  selector: 'imng-support',
@@ -678,10 +677,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
678
677
  }], ctorParameters: () => [] });
679
678
 
680
679
  class IMNG_ACCESS_DENIED {
681
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IMNG_ACCESS_DENIED, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
682
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.10", type: IMNG_ACCESS_DENIED, isStandalone: true, selector: "imng-access-denied", ngImport: i0, template: '<div class="p-5 m-5 text-danger">Access denied.</div>', isInline: true }); }
680
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: IMNG_ACCESS_DENIED, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
681
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: IMNG_ACCESS_DENIED, isStandalone: true, selector: "imng-access-denied", ngImport: i0, template: '<div class="p-5 m-5 text-danger">Access denied.</div>', isInline: true }); }
683
682
  }
684
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IMNG_ACCESS_DENIED, decorators: [{
683
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: IMNG_ACCESS_DENIED, decorators: [{
685
684
  type: Component,
686
685
  args: [{
687
686
  selector: 'imng-access-denied',
@@ -707,19 +706,16 @@ class AuthGuard {
707
706
  }
708
707
  }));
709
708
  }
710
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
711
709
  canActivate() {
712
- //NOSONAR
713
710
  return this.isLoggedInPipe$;
714
711
  }
715
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
716
712
  canActivateChild() {
717
713
  return this.isLoggedInPipe$;
718
714
  }
719
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: AuthGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
720
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: AuthGuard, providedIn: 'root' }); }
715
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AuthGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
716
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AuthGuard, providedIn: 'root' }); }
721
717
  }
722
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: AuthGuard, decorators: [{
718
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AuthGuard, decorators: [{
723
719
  type: Injectable,
724
720
  args: [{
725
721
  providedIn: 'root',
@@ -727,18 +723,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
727
723
  }] });
728
724
 
729
725
  class IMNG_LOGOUT_SUCCESS {
730
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IMNG_LOGOUT_SUCCESS, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
731
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.10", type: IMNG_LOGOUT_SUCCESS, isStandalone: true, selector: "imng-logout-success", ngImport: i0, template:
732
- // eslint-disable-next-line max-len
733
- '<div class="p-5 m-5 text-center">You have successfully logged out.<br/>Please close this browser window to ensure you are completely logged out of the session.</div>', isInline: true }); }
726
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: IMNG_LOGOUT_SUCCESS, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
727
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: IMNG_LOGOUT_SUCCESS, isStandalone: true, selector: "imng-logout-success", ngImport: i0, template: '<div class="p-5 m-5 text-center">You have successfully logged out.<br/>Please close this browser window to ensure you are completely logged out of the session.</div>', isInline: true }); }
734
728
  }
735
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IMNG_LOGOUT_SUCCESS, decorators: [{
729
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: IMNG_LOGOUT_SUCCESS, decorators: [{
736
730
  type: Component,
737
731
  args: [{
738
732
  selector: 'imng-logout-success',
739
- template:
740
- // eslint-disable-next-line max-len
741
- '<div class="p-5 m-5 text-center">You have successfully logged out.<br/>Please close this browser window to ensure you are completely logged out of the session.</div>',
733
+ template: '<div class="p-5 m-5 text-center">You have successfully logged out.<br/>Please close this browser window to ensure you are completely logged out of the session.</div>',
742
734
  }]
743
735
  }] });
744
736
 
@@ -748,11 +740,11 @@ const routes = [
748
740
  { path: 'logout', component: IMNG_LOGOUT_SUCCESS },
749
741
  ];
750
742
  class ImngOidcClientRoutingModule {
751
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
752
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
753
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
743
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ImngOidcClientRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
744
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: ImngOidcClientRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
745
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ImngOidcClientRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
754
746
  }
755
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientRoutingModule, decorators: [{
747
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ImngOidcClientRoutingModule, decorators: [{
756
748
  type: NgModule,
757
749
  args: [{
758
750
  imports: [RouterModule.forChild(routes)],
@@ -842,10 +834,10 @@ class OidcEffects {
842
834
  }
843
835
  return user;
844
836
  }
845
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
846
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcEffects, providedIn: 'root' }); }
837
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
838
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcEffects, providedIn: 'root' }); }
847
839
  }
848
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcEffects, decorators: [{
840
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OidcEffects, decorators: [{
849
841
  type: Injectable,
850
842
  args: [{
851
843
  providedIn: 'root',
@@ -873,10 +865,10 @@ class TokenInterceptorService {
873
865
  }));
874
866
  }));
875
867
  }
876
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: TokenInterceptorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
877
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: TokenInterceptorService, providedIn: 'root' }); }
868
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TokenInterceptorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
869
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TokenInterceptorService, providedIn: 'root' }); }
878
870
  }
879
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: TokenInterceptorService, decorators: [{
871
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TokenInterceptorService, decorators: [{
880
872
  type: Injectable,
881
873
  args: [{ providedIn: 'root' }]
882
874
  }] });
@@ -910,12 +902,12 @@ class ImngOidcClientModule {
910
902
  providers: [{ provide: OIDC_CLIENT_CONFIG, useValue: oidcOptions }],
911
903
  };
912
904
  }
913
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
914
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientModule, imports: [CommonModule, i1$1.StoreFeatureModule, i2.EffectsFeatureModule, ImngOidcClientRoutingModule,
905
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ImngOidcClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
906
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: ImngOidcClientModule, imports: [CommonModule, i1$1.StoreFeatureModule, i2.EffectsFeatureModule, ImngOidcClientRoutingModule,
915
907
  IMNG_ACCESS_DENIED,
916
908
  IMNG_USER_SUPPORT,
917
909
  IMNG_LOGOUT_SUCCESS], exports: [IMNG_ACCESS_DENIED, IMNG_USER_SUPPORT, IMNG_LOGOUT_SUCCESS] }); }
918
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientModule, providers: [
910
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ImngOidcClientModule, providers: [
919
911
  {
920
912
  provide: OIDC_LIBRARY_CONFIG,
921
913
  useFactory: oidcConfigurator,
@@ -925,7 +917,7 @@ class ImngOidcClientModule {
925
917
  OidcFacade,
926
918
  OidcUserFacade,
927
919
  AuthGuard,
928
- provideHttpClient(withInterceptorsFromDi()),
920
+ provideHttpClient(withXhr(), withInterceptorsFromDi()),
929
921
  {
930
922
  provide: HTTP_INTERCEPTORS,
931
923
  useClass: TokenInterceptorService,
@@ -937,7 +929,7 @@ class ImngOidcClientModule {
937
929
  EffectsModule.forFeature([OidcEffects]),
938
930
  ImngOidcClientRoutingModule] }); }
939
931
  }
940
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientModule, decorators: [{
932
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ImngOidcClientModule, decorators: [{
941
933
  type: NgModule,
942
934
  args: [{
943
935
  imports: [
@@ -960,7 +952,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
960
952
  OidcFacade,
961
953
  OidcUserFacade,
962
954
  AuthGuard,
963
- provideHttpClient(withInterceptorsFromDi()),
955
+ provideHttpClient(withXhr(), withInterceptorsFromDi()),
964
956
  {
965
957
  provide: HTTP_INTERCEPTORS,
966
958
  useClass: TokenInterceptorService,
@@ -1 +1 @@
1
- {"version":3,"file":"imng-oidc-client.mjs","sources":["../../../../libs/imng-oidc-client/src/lib/+state/oidc.actions.ts","../../../../libs/imng-oidc-client/src/lib/util/jwt-decoder.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.reducer.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.selectors.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc-user.selectors.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc-user.facade.ts","../../../../libs/imng-oidc-client/src/lib/models/constants.ts","../../../../libs/imng-oidc-client/src/lib/models/oidc-library-config.ts","../../../../libs/imng-oidc-client/src/lib/services/oidc.service.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.facade.ts","../../../../libs/imng-oidc-client/src/lib/support/support.component.ts","../../../../libs/imng-oidc-client/src/lib/components/access-denied.component.ts","../../../../libs/imng-oidc-client/src/lib/services/auth-guard.ts","../../../../libs/imng-oidc-client/src/lib/components/logout-success.component.ts","../../../../libs/imng-oidc-client/src/lib/img-oidc-client-routing.module.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.effects.ts","../../../../libs/imng-oidc-client/src/lib/models/oidc-client-config.ts","../../../../libs/imng-oidc-client/src/lib/services/token-interceptor.service.ts","../../../../libs/imng-oidc-client/src/lib/util/oidc-client-configurator.ts","../../../../libs/imng-oidc-client/src/lib/imng-oidc-client.module.ts","../../../../libs/imng-oidc-client/src/lib/services/permissions.guard.ts","../../../../libs/imng-oidc-client/src/imng-oidc-client.ts"],"sourcesContent":["import { createAction } from '@ngrx/store';\nimport { RequestArguments } from '../models/arguments.model';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\nimport { createPayloadAction } from 'imng-ngrx-utils';\n\nexport const clearCurrentEmployee = createAction(\n '[Employees] Clear Current Employee',\n);\n\n// OIDC COMMANDS\n\nexport const getOidcUser = createAction('[Oidc] get oidc user');\nexport const removeOidcUser = createAction('[Oidc] remove oidc user');\nexport const userExpired = createAction('[Oidc] user expired');\nexport const userFound = createPayloadAction<IOidcUser>('[Oidc] user found');\nexport const onSessionChanged = createAction('[Oidc] session changed');\nexport const onAccessTokenExpired = createAction(\n '[Oidc] on access token expired',\n);\nexport const onAccessTokenExpiring = createAction('[Oidc] user expiring');\nexport const onUserLoading = createAction('[Oidc] user loading');\nexport const userDoneLoading = createAction('[Oidc] user done loading');\nexport const userDoneLoadingError = createPayloadAction<Error>(\n '[Oidc] user done loading error',\n);\nexport const onUserMetadataLoaded = createPayloadAction<unknown>(\n '[Oidc] on User Metadata Loaded',\n);\n\n// OIDC EVENTS\nexport const onSignInPopup = createPayloadAction<IOidcUser>(\n '[Oidc] on SignInPopup',\n);\nexport const onSignInRedirect = createPayloadAction<IOidcUser>(\n '[Oidc] on onSignInRedirect',\n);\nexport const onSignInSilent = createPayloadAction<IOidcUser>(\n '[Oidc] on onSignInSilent',\n);\n\nexport const onUserLoaded = createPayloadAction<IOidcUser>(\n '[Oidc] on user loaded',\n);\nexport const onUserLoadError = createPayloadAction<Error>(\n '[Oidc] user load error',\n);\nexport const onUserUnloaded = createAction('[Oidc] on user unloaded');\nexport const onUserSignedOut = createAction('[Oidc] on user signed out');\nexport const onSilentRenewError = createPayloadAction<Error>(\n '[Oidc] on silent renew error',\n);\nexport const signInPopup = createPayloadAction<RequestArguments>(\n '[Oidc] sign in popup',\n);\nexport const signInRedirect = createPayloadAction<RequestArguments | undefined>(\n '[Oidc] sign in redirect',\n);\nexport const signInError = createPayloadAction<Error>(\n '[Oidc] sign in popup error',\n);\nexport const signOutPopup = createPayloadAction<RequestArguments>(\n '[Oidc] sign out popup',\n);\nexport const signOutPopupError = createPayloadAction<string>(\n '[Oidc] sign out popup error',\n);\nexport const signOutRedirect = createPayloadAction<\n RequestArguments | undefined\n>('[Oidc] sign out redirect');\nexport const signOutRedirectError = createPayloadAction<string>(\n '[Oidc] sign out redirect error',\n);\nexport const signInSilent = createPayloadAction<RequestArguments>(\n '[Oidc] sign in silent',\n);\nexport const oidcError = createPayloadAction<Error>('[Oidc] error');\n\n// HTTP\nexport const setHttpError = createPayloadAction<HttpErrorResponse>(\n '[HTTP] Set Http Error',\n);\nexport const clearErrors = createAction('[HTTP] Clear Errors');\n","export function jwtDecoder<TYPE>(rawToken: string): TYPE | null {\n const splits = rawToken?.split('.');\n if (splits?.length > 1) {\n const payload = splits[1];\n return JSON.parse(window.atob(payload)) as TYPE;\n } else {\n return null;\n }\n}\n","import * as oidcActions from './oidc.actions';\nimport { jwtDecoder } from '../util/jwt-decoder';\nimport { on, createReducer, createFeature } from '@ngrx/store';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\n\nexport const OIDC_FEATURE_KEY = 'oidc';\nexport interface OidcState {\n identity: IOidcUser | undefined;\n audiences: string[] | undefined;\n userMetadata: unknown | undefined;\n permissions: string[] | undefined;\n isLoading: boolean;\n isLoggedIn: boolean;\n isExpiring: boolean;\n isExpired: boolean;\n errors: ErrorState;\n}\n\nexport interface ErrorState {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n silentRenewError: unknown | undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signInError: unknown | undefined;\n httpError: HttpErrorResponse | undefined;\n}\n\nexport const initialState: OidcState = {\n audiences: [],\n permissions: [],\n isLoading: true,\n isLoggedIn: false,\n isExpiring: false,\n isExpired: false,\n identity: undefined,\n userMetadata: undefined,\n errors: {\n silentRenewError: undefined,\n signInError: undefined,\n httpError: undefined,\n },\n};\n\nexport const oidcFeature = createFeature({\n name: OIDC_FEATURE_KEY,\n reducer: createReducer(initialState,\n on(oidcActions.getOidcUser,\n (state): OidcState => ({\n ...state,\n isLoading: false,\n isLoggedIn: false,\n })),\n on(oidcActions.onUserLoading,\n (state): OidcState => ({\n ...state,\n isLoading: true,\n isLoggedIn: false,\n })),\n on(oidcActions.removeOidcUser,\n (state): OidcState => ({\n ...state,\n isLoading: true,\n isLoggedIn: false,\n identity: undefined,\n })),\n on(oidcActions.setHttpError,\n (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n httpError: err.payload,\n },\n })),\n on(oidcActions.onUserMetadataLoaded,\n (state, userMetadata): OidcState => ({\n ...state,\n userMetadata: userMetadata.payload,\n isLoading: false,\n })),\n on(oidcActions.clearErrors,\n (state): OidcState => ({\n ...state, errors: {\n signInError: undefined,\n silentRenewError: undefined,\n httpError: undefined\n }\n })),\n on(oidcActions.userDoneLoading,\n (state): OidcState => ({\n ...state,\n isLoading: false\n })),\n on(oidcActions.onAccessTokenExpiring,\n (state): OidcState => ({\n ...state,\n isExpiring: true,\n })),\n on(oidcActions.onAccessTokenExpired,\n (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n isExpiring: false,\n isExpired: true,\n })),\n on(oidcActions.onUserLoaded,\n (state): OidcState => ({\n ...state,\n isLoading: false,\n isExpiring: false,\n })),\n on(\n oidcActions.onUserUnloaded,\n oidcActions.onUserSignedOut,\n oidcActions.signOutPopupError,\n oidcActions.signOutRedirectError,\n (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n identity: undefined,\n isExpired: true,\n isExpiring: false,\n userMetadata: undefined,\n })\n ),\n on(oidcActions.signOutRedirect,\n oidcActions.signOutPopup,\n (state): OidcState => ({\n ...state,\n identity: undefined,\n userMetadata: null,\n isLoggedIn: false,\n })),\n on(\n oidcActions.userFound,\n oidcActions.onSignInPopup,\n oidcActions.onSignInRedirect,\n oidcActions.onSignInSilent,\n (state, { payload }): OidcState => ({\n ...state,\n identity: payload,\n isLoggedIn: true,\n audiences: jwtDecoder<{ aud?: []; }>(payload.access_token)?.aud,\n permissions: jwtDecoder<{ permissions?: []; }>(payload.access_token)?.permissions,\n })\n ),\n on(oidcActions.userExpired, (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n isExpiring: false,\n })),\n on(oidcActions.onSilentRenewError, (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n silentRenewError: err.payload,\n },\n })),\n on(\n oidcActions.userDoneLoadingError,\n oidcActions.signInError,\n (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n signInError: err.payload,\n },\n })\n ))\n});\n","import { createSelector } from '@ngrx/store';\nimport { ErrorState, oidcFeature } from './oidc.reducer';\nimport { IOidcUser } from '../models/oidc-user';\n// State Selectors\n\nconst selectAccessToken = createSelector(\n oidcFeature.selectIdentity,\n (user?: IOidcUser) => (user || { access_token: undefined }).access_token,\n);\n\n// errors\nconst selectOidcErrorState = createSelector(\n oidcFeature.selectErrors,\n (errors) => errors,\n);\n\nconst selectHasErrors = createSelector(\n selectOidcErrorState,\n (state: ErrorState) =>\n !!state.httpError || !!state.signInError || !!state.silentRenewError,\n);\n\nconst selectSignInError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.signInError,\n);\n\nconst selectSilentRenewError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.silentRenewError,\n);\n\nconst selectHttpError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.httpError,\n);\n\nconst selectExpiresAt = createSelector(\n oidcFeature.selectIdentity,\n (state?: IOidcUser) =>\n state?.expires_at ? new Date(state.expires_at * 1000) : null, //NOSONAR\n);\nexport const oidcSelectors = {\n selectExpiresAt,\n selectPermissions: oidcFeature.selectPermissions,\n selectIsLoading: oidcFeature.selectIsLoading,\n selectIdentity: oidcFeature.selectIdentity,\n selectAccessToken,\n selectIsExpiring: oidcFeature.selectIsExpiring,\n selectIsExpired: oidcFeature.selectIsExpired,\n selectIsLoggedIn: oidcFeature.selectIsLoggedIn,\n selectSilentRenewError,\n selectSignInError,\n selectHttpError,\n selectHasErrors,\n selectAudiences: oidcFeature.selectAudiences,\n selectUserMetadata: oidcFeature.selectUserMetadata,\n};\n","import { createSelector } from '@ngrx/store';\nimport { OidcUserProfile } from '../models/oidc-user-profile';\nimport { oidcSelectors } from './oidc.selectors';\nimport { oidcFeature } from './oidc.reducer';\nimport { IOidcUser } from '../models/oidc-user';\n\nconst selectProfile = createSelector(\n oidcSelectors.selectIdentity,\n (identity?: IOidcUser) => identity?.profile as OidcUserProfile,\n);\n\nconst selectScopes = createSelector(\n oidcSelectors.selectIdentity,\n (identity?: IOidcUser) => identity?.scope?.split(' ') || identity?.scopes,\n);\nconst getPermissions = oidcFeature.selectPermissions;\n\nconst selectEmail = createSelector(selectProfile, (profile) => profile?.email);\n\nconst selectProfilePicture = createSelector(\n selectProfile,\n (profile) => profile?.picture,\n);\n\nexport const oidcUserSelectors = {\n getScopes: selectScopes,\n getProfile: selectProfile,\n getEmail: selectEmail,\n getProfilePicture: selectProfilePicture,\n getPermissions,\n};\n","import { Injectable, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { oidcUserSelectors } from './oidc-user.selectors';\nimport { OidcUserProfile } from '../models/oidc-user-profile';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcUserFacade {\n private readonly store = inject(Store);\n\n profile$: Observable<OidcUserProfile> = this.store.select(\n oidcUserSelectors.getProfile,\n );\n scopes$: Observable<string[] | undefined> = this.store.select(\n oidcUserSelectors.getScopes,\n );\n email$: Observable<string | undefined> = this.store.select(\n oidcUserSelectors.getEmail,\n );\n profilePicture$: Observable<string | undefined> = this.store.select(\n oidcUserSelectors.getProfilePicture,\n );\n permissions$: Observable<string[] | undefined> = this.store.select(\n oidcUserSelectors.getPermissions,\n );\n\n public hasPermissions(\n requiredPermissions: Array<string>,\n ): Observable<boolean> {\n return this.permissions$.pipe(\n map(\n (t) =>\n -1 <\n requiredPermissions.findIndex(\n (f) => -1 < (t?.findIndex((i) => i === f) ?? -1),\n ),\n ),\n );\n }\n}\n","export enum OidcEvent {\n AccessTokenExpired = 'addAccessTokenExpired',\n AccessTokenExpiring = 'addAccessTokenExpiring',\n SilentRenewError = 'AddSilentRenewError',\n UserLoaded = 'addUserLoaded',\n UserUnloaded = 'addUserUnloaded',\n UserSignedOut = 'addUserSignedOut',\n UserSessionChanged = 'addUserSessionChanged'\n}\n\nexport enum StorageKeys {\n PopupCallback = 'ngoidc:isPopupCallback',\n OidcSettings = 'ngoidc:settings',\n}\n\nexport const ACTION_NO_ACTION = 'NO_ACTION';\n","import { InjectionToken } from '@angular/core';\nimport { UserManagerSettings, Logger } from 'oidc-client';\n\nexport interface OidcLibraryConfig {\n oidc_config: UserManagerSettings;\n useCallbackFlag: boolean;\n getUserMetadata: boolean;\n log?: {\n logger: Logger;\n level: number;\n };\n}\nexport const OIDC_LIBRARY_CONFIG = new InjectionToken<OidcLibraryConfig>(\n 'OIDC_LIBRARY_CONFIG'\n);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isPlatformBrowser } from '@angular/common';\nimport { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport {\n Log,\n OidcClient,\n SigninRequest,\n SignoutRequest,\n UserManager,\n UserManagerSettings,\n} from 'oidc-client';\nimport { from, Observable } from 'rxjs';\nimport { OidcEvent, StorageKeys } from '../models/constants';\nimport { IOidcUser } from '../models/oidc-user';\nimport { switchMap } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport {\n OidcLibraryConfig,\n OIDC_LIBRARY_CONFIG,\n} from '../models/oidc-library-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcService {\n private readonly oidcLibraryConfig =\n inject<OidcLibraryConfig>(OIDC_LIBRARY_CONFIG);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly httpClient = inject(HttpClient);\n\n public readonly OidcUserManager: UserManager;\n private readonly _oidcClient: OidcClient;\n private readonly _userManagerSettings: UserManagerSettings;\n\n constructor() {\n const logSettings = this.oidcLibraryConfig.log;\n let clientSettings = this.oidcLibraryConfig.oidc_config;\n\n if (logSettings) {\n Log.level = logSettings.level;\n Log.logger = logSettings.logger;\n }\n\n if (clientSettings?.userStore != null) {\n clientSettings = {\n ...clientSettings,\n userStore: clientSettings.userStore,\n };\n }\n this._userManagerSettings = { ...clientSettings };\n this.OidcUserManager = new UserManager(clientSettings);\n this._oidcClient = new OidcClient(clientSettings);\n }\n\n public getUserMetadata(): Observable<unknown> {\n return this.httpClient\n .get<{\n userinfo_endpoint: string;\n }>(this.oidcLibraryConfig.oidc_config?.metadataUrl ?? '')\n .pipe(\n switchMap((openidConfig) =>\n this.httpClient.get<unknown>(openidConfig.userinfo_endpoint),\n ),\n );\n }\n\n getUserManager(): UserManager {\n return this.OidcUserManager;\n }\n\n getOidcClient(): OidcClient {\n return this._oidcClient;\n }\n\n getOidcUser(): Observable<IOidcUser | null> {\n return from(this.OidcUserManager.getUser());\n }\n\n removeOidcUser(): Observable<void> {\n return from(this.OidcUserManager.removeUser());\n }\n\n registerOidcEvent(\n event: OidcEvent,\n callback: (...ev: unknown[]) => void,\n ): void {\n switch (event) {\n case OidcEvent.AccessTokenExpired:\n this.OidcUserManager.events.addAccessTokenExpired(callback);\n break;\n case OidcEvent.AccessTokenExpiring:\n this.OidcUserManager.events.addAccessTokenExpiring(callback);\n break;\n case OidcEvent.SilentRenewError:\n this.OidcUserManager.events.addSilentRenewError(callback);\n break;\n case OidcEvent.UserLoaded:\n this.OidcUserManager.events.addUserLoaded(callback);\n break;\n case OidcEvent.UserSessionChanged:\n this.OidcUserManager.events.addUserSessionChanged(callback);\n break;\n case OidcEvent.UserSignedOut:\n this.OidcUserManager.events.addUserSignedOut(callback);\n break;\n case OidcEvent.UserUnloaded:\n this.OidcUserManager.events.addUserUnloaded(callback);\n break;\n default:\n break;\n }\n }\n\n removeOidcEvent(\n event: OidcEvent,\n callback: (...ev: unknown[]) => void,\n ): void {\n switch (event) {\n case OidcEvent.AccessTokenExpired:\n this.OidcUserManager.events.removeAccessTokenExpired(callback);\n break;\n case OidcEvent.AccessTokenExpiring:\n this.OidcUserManager.events.removeAccessTokenExpiring(callback);\n break;\n case OidcEvent.SilentRenewError:\n this.OidcUserManager.events.removeSilentRenewError(callback);\n break;\n case OidcEvent.UserLoaded:\n this.OidcUserManager.events.removeUserLoaded(callback);\n break;\n case OidcEvent.UserSessionChanged:\n this.OidcUserManager.events.removeUserSessionChanged(callback);\n break;\n case OidcEvent.UserSignedOut:\n this.OidcUserManager.events.removeUserSignedOut(callback);\n break;\n case OidcEvent.UserUnloaded:\n this.OidcUserManager.events.removeUserUnloaded(callback);\n break;\n default:\n break;\n }\n }\n\n signInPopup(args?: any): Observable<IOidcUser> {\n //NOSONAR\n this.setCallbackInformation(true);\n\n return from(this.OidcUserManager.signinPopup({ ...args }));\n }\n\n signInRedirect(args?: any): Observable<void> {\n //NOSONAR\n this.setCallbackInformation(false);\n\n return from(this.OidcUserManager.signinRedirect({ ...args }));\n }\n\n signOutPopup(args?: any): Observable<any> {\n //NOSONAR\n this.setCallbackInformation(true);\n\n return from(this.OidcUserManager.signoutPopup({ ...args }));\n }\n\n signOutRedirect(args?: any): Observable<any> {\n //NOSONAR\n this.setCallbackInformation(false);\n return from(this.OidcUserManager.signoutRedirect({ ...args }));\n }\n\n signInSilent(args?: any): Observable<IOidcUser> {\n //NOSONAR\n return from(this.OidcUserManager.signinSilent({ ...args }));\n }\n\n signinPopupCallback(): Observable<any> {\n //NOSONAR\n return from(this.OidcUserManager.signinPopupCallback());\n }\n\n signinRedirectCallback(): Observable<IOidcUser> {\n return from(this.OidcUserManager.signinRedirectCallback());\n }\n\n signoutPopupCallback(): Observable<void> {\n return from(this.OidcUserManager.signoutPopupCallback());\n }\n\n signoutRedirectCallback(): Observable<any> {\n //NOSONAR\n return from(this.OidcUserManager.signoutRedirectCallback());\n }\n\n getSigninUrl(args?: any): Observable<SigninRequest> {\n //NOSONAR\n return from(this.OidcUserManager.createSigninRequest(args));\n }\n\n getSignoutUrl(args?: any): Observable<SignoutRequest> {\n //NOSONAR\n return from(this.OidcUserManager.createSignoutRequest(args));\n }\n\n private setCallbackInformation(isPopupCallback: boolean): void {\n // is browser and useCallbackFlag set to true or defaults to true\n if (\n isPlatformBrowser(this.platformId) &&\n this.oidcLibraryConfig.useCallbackFlag\n ) {\n localStorage.setItem(StorageKeys.PopupCallback, `${isPopupCallback}`);\n localStorage.setItem(\n StorageKeys.OidcSettings,\n JSON.stringify(this._userManagerSettings),\n );\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n OidcClient,\n SigninRequest,\n SignoutRequest,\n UserManager,\n} from 'oidc-client';\nimport { Observable } from 'rxjs';\nimport { filter, take, map } from 'rxjs/operators';\nimport { oidcSelectors } from './oidc.selectors';\nimport { OidcService } from '../services/oidc.service';\nimport { RequestArguments } from '../models/arguments.model';\nimport { OidcEvent } from '../models/constants';\nimport * as oidcActions from './oidc.actions';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcFacade {\n private readonly store = inject(Store);\n private readonly oidcService = inject(OidcService);\n\n constructor() {\n this.registerDefaultEvents();\n }\n\n loading$: Observable<boolean> = this.store.select(\n oidcSelectors.selectIsLoading,\n );\n expiring$: Observable<boolean> = this.store.select(\n oidcSelectors.selectIsExpiring,\n );\n expired$: Observable<boolean> = this.store.select(\n oidcSelectors.selectIsExpired,\n );\n loggedIn$: Observable<boolean> = this.store.select(\n oidcSelectors.selectIsLoggedIn,\n );\n identity$: Observable<IOidcUser | undefined> = this.store.select(\n oidcSelectors.selectIdentity,\n );\n accessToken$: Observable<string | undefined> = this.store.select(\n oidcSelectors.selectAccessToken,\n );\n httpError$: Observable<HttpErrorResponse | undefined> = this.store.select(\n oidcSelectors.selectHttpError,\n );\n signInError$: Observable<unknown> = this.store.select(\n oidcSelectors.selectSignInError,\n );\n silentRenewError$: Observable<unknown> = this.store.select(\n oidcSelectors.selectSilentRenewError,\n );\n hasErrors$: Observable<boolean> = this.store.select(\n oidcSelectors.selectHasErrors,\n );\n permissions$: Observable<string[] | undefined> = this.store.select(\n oidcSelectors.selectPermissions,\n );\n audiences$: Observable<string[] | null | undefined> = this.store.select(\n oidcSelectors.selectAudiences,\n );\n expiresAt$: Observable<Date | null> = this.store.select(\n oidcSelectors.selectExpiresAt,\n );\n userMetadata$: Observable<unknown> = this.store.select(\n oidcSelectors.selectUserMetadata,\n );\n\n // default bindings to events\n public addUserUnLoaded(): void {\n this.store?.dispatch(oidcActions.onUserUnloaded());\n }\n\n public accessTokenExpired(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onAccessTokenExpired());\n } else {\n sessionStorage.clear();\n localStorage.clear();\n window.location.reload();\n }\n }\n\n public accessTokenExpiring(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onAccessTokenExpiring());\n } else {\n this.accessTokenExpired();\n }\n }\n\n public addSilentRenewError(...ev: unknown[]): void {\n this.store.dispatch(oidcActions.onSilentRenewError(ev[0] as Error));\n }\n\n public addUserLoaded(...ev: unknown[]): void {\n this.store.dispatch(oidcActions.onUserLoaded(ev[0] as IOidcUser));\n }\n\n public addUserSignedOut(): void {\n this.oidcService?.removeOidcUser();\n this.store?.dispatch(oidcActions.onUserSignedOut());\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public addUserSessionChanged(): void {\n this.store.dispatch(oidcActions.onSessionChanged());\n }\n\n public clearErrors(): void {\n this.store.dispatch(oidcActions.clearErrors());\n }\n\n // OIDC Methods\n\n public getOidcUser(): void {\n this.store.dispatch(oidcActions.getOidcUser());\n }\n\n public removeOidcUser(): void {\n this.store.dispatch(oidcActions.removeOidcUser());\n }\n\n public getUserManager(): UserManager {\n return this.oidcService.getUserManager();\n }\n\n public getOidcClient(): OidcClient {\n return this.oidcService.getOidcClient();\n }\n\n /**\n * Convenient function to wait for OIDC dependencies to be loaded.\n */\n public waitForAuthenticationLoaded(): Observable<boolean> {\n return this.loading$.pipe(\n filter((loading) => loading === false),\n take(1),\n map(() => true),\n );\n }\n\n public signinPopup(args: RequestArguments): void {\n this.store.dispatch(oidcActions.signInPopup(args));\n }\n\n public signinRedirect(args?: RequestArguments): void {\n this.store.dispatch(oidcActions.signInRedirect(args));\n }\n\n public signinSilent(args: RequestArguments): void {\n this.store.dispatch(oidcActions.signInSilent(args));\n }\n\n public signoutPopup(args: RequestArguments): void {\n this.store.dispatch(oidcActions.signOutPopup(args));\n }\n\n public signoutRedirect(args?: RequestArguments): void {\n this.store.dispatch(oidcActions.signOutRedirect(args));\n }\n\n public getSigninUrl(args?: RequestArguments): Observable<SigninRequest> {\n return this.oidcService.getSigninUrl(args);\n }\n\n getSignoutUrl(args?: RequestArguments): Observable<SignoutRequest> {\n return this.oidcService.getSignoutUrl(args);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerEvent(event: OidcEvent, callback: (...ev: unknown[]) => void): void {\n this.oidcService.registerOidcEvent(event, callback);\n }\n\n private registerDefaultEvents(): void {\n // add simple loggers\n this.registerEvent(OidcEvent.AccessTokenExpired, this.accessTokenExpired);\n this.registerEvent(OidcEvent.AccessTokenExpiring, this.accessTokenExpiring);\n this.registerEvent(OidcEvent.SilentRenewError, this.addSilentRenewError);\n\n this.registerEvent(OidcEvent.UserLoaded, this.addUserLoaded);\n this.registerEvent(OidcEvent.UserUnloaded, this.addUserUnLoaded);\n this.registerEvent(OidcEvent.UserSignedOut, this.addUserSignedOut);\n this.registerEvent(\n OidcEvent.UserSessionChanged,\n this.addUserSessionChanged,\n );\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { OidcUserFacade } from '../+state/oidc-user.facade';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n selector: 'imng-support',\n imports: [AsyncPipe],\n template: `<div class=\"container pt-5 mt-5\">\n <div class=\"row h3 text-center\">\n <div class=\"col-md-12 text-center\">OIDC Support</div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Audiences</div>\n <div class=\"col-md-8\">\n @for (\n item of facade.audiences$ | async;\n track item;\n let isLast = $last\n ) {\n <span>\n {{ item }}\n @if (!isLast) {\n <br />\n }\n </span>\n }\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Permissions</div>\n <div class=\"col-md-8\">\n @for (\n item of facade.permissions$ | async;\n track item;\n let isLast = $last\n ) {\n <span>\n {{ item }}\n @if (!isLast) {\n <br />\n }\n </span>\n }\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Expires</div>\n <div class=\"col-md-8\">{{ facade.expiresAt$ | async }}</div>\n </div>\n @for (item of profileValue$ | async; track item) {\n <div class=\"row\">\n <div class=\"col-md-3\">{{ item.key }}</div>\n <div class=\"col-md-8\">{{ item.value }}</div>\n </div>\n }\n </div>`,\n})\nexport class IMNG_USER_SUPPORT {\n readonly facade = inject(OidcFacade);\n readonly oidcUserFacade = inject(OidcUserFacade);\n\n public profileValue$: Observable<{ key: string; value: string }[]>;\n constructor() {\n this.profileValue$ = this.oidcUserFacade.profile$.pipe(\n map((x) =>\n Object.keys(x).map((propertyKey) => ({\n key: propertyKey,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: (x as any)[propertyKey], //NOSONAR\n })),\n ),\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'imng-access-denied',\n template: '<div class=\"p-5 m-5 text-danger\">Access denied.</div>',\n})\nexport class IMNG_ACCESS_DENIED {}\n","import { Observable } from 'rxjs';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { Injectable, inject } from '@angular/core';\nimport { tap, switchMap } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard {\n private readonly document = inject(DOCUMENT);\n private readonly oidcFacade = inject(OidcFacade);\n //NOSONAR\n /**\n * This will automatically attempt to authenticate you when trying to access a protected route.\n */\n public readonly isLoggedInPipe$ = this.oidcFacade\n .waitForAuthenticationLoaded()\n .pipe(\n switchMap(() => this.oidcFacade.loggedIn$),\n tap((t) => {\n if (!t) {\n this.oidcFacade.signinRedirect({\n data: { redirect_url: this.document.location.href },\n });\n }\n }),\n );\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public canActivate(): Observable<boolean> {\n //NOSONAR\n return this.isLoggedInPipe$;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public canActivateChild(): Observable<boolean> {\n return this.isLoggedInPipe$;\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'imng-logout-success',\n template:\n // eslint-disable-next-line max-len\n '<div class=\"p-5 m-5 text-center\">You have successfully logged out.<br/>Please close this browser window to ensure you are completely logged out of the session.</div>',\n})\nexport class IMNG_LOGOUT_SUCCESS {}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule, Route } from '@angular/router';\nimport { IMNG_USER_SUPPORT } from './support/support.component';\nimport { IMNG_ACCESS_DENIED } from './components/access-denied.component';\nimport { AuthGuard } from './services/auth-guard';\nimport { IMNG_LOGOUT_SUCCESS } from './components/logout-success.component';\n\nconst routes: Routes = [\n { path: 'support', component: IMNG_USER_SUPPORT },\n { path: 'access-denied', component: IMNG_ACCESS_DENIED },\n { path: 'logout', component: IMNG_LOGOUT_SUCCESS },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ImngOidcClientRoutingModule {}\n\nexport const oidcSupportRoute: Route = {\n path: 'oidc/support',\n component: IMNG_USER_SUPPORT,\n canActivate: [AuthGuard],\n};\n\nexport const oidcAccessDeniedRoute: Route = {\n path: 'oidc/access-denied',\n component: IMNG_ACCESS_DENIED,\n};\n\nexport const oidcLogoutRoute: Route = {\n path: 'oidc/logout',\n component: IMNG_LOGOUT_SUCCESS,\n};\n\nexport const oidcRoutes: Route[] = [\n oidcSupportRoute,\n oidcAccessDeniedRoute,\n oidcLogoutRoute,\n];\n","import { OidcService } from '../services/oidc.service';\nimport * as oidcActions from './oidc.actions';\nimport { IOidcUser } from '../models/oidc-user';\nimport { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { OnInitEffects, Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { switchMap, map, filter, catchError, of, concatMap, tap } from 'rxjs';\nimport { oidcLogoutRoute } from '../img-oidc-client-routing.module';\nimport {\n OIDC_LIBRARY_CONFIG,\n OidcLibraryConfig,\n} from '../models/oidc-library-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcEffects implements OnInitEffects {\n private readonly actions$ = inject(Actions);\n private readonly oidcService = inject(OidcService);\n private readonly oidcLibraryOptions =\n inject<OidcLibraryConfig>(OIDC_LIBRARY_CONFIG);\n private readonly router = inject(Router);\n\n getOidcUser$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.getOidcUser),\n switchMap(() =>\n this.oidcService.getOidcUser().pipe(\n map((userData: IOidcUser | null) =>\n this.makeOidcUserSerializable(userData),\n ),\n filter((userData: IOidcUser) => !!userData),\n map((userData: IOidcUser) => oidcActions.userFound(userData)),\n catchError((err) => of(oidcActions.userDoneLoadingError(err))),\n ),\n ),\n );\n });\n\n silentRenew$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(\n (userFound: { payload: IOidcUser }) =>\n // user expired, initiate silent sign-in if configured to automatic\n (userFound.payload != null &&\n userFound.payload.expired &&\n this.oidcLibraryOptions.oidc_config?.automaticSilentRenew) ||\n false,\n ),\n map((userFound) => oidcActions.signInSilent(userFound.payload)),\n );\n });\n\n removeOidcUser$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.removeOidcUser),\n concatMap(() =>\n this.oidcService.removeOidcUser().pipe(\n map(() => oidcActions.userDoneLoading()),\n catchError((err) => of(oidcActions.oidcError(err))),\n ),\n ),\n );\n });\n\n userDoneLoadingNoMetadata$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(() => !this.oidcLibraryOptions.getUserMetadata),\n map(() => oidcActions.userDoneLoading()),\n );\n });\n\n userDoneLoadingWithMetadata$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(() => this.oidcLibraryOptions.getUserMetadata || false),\n switchMap(() => this.oidcService.getUserMetadata()),\n map((metadata) => oidcActions.onUserMetadataLoaded(metadata)),\n );\n });\n\n onAccessTokenExpired$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.onAccessTokenExpired),\n map(() => oidcActions.removeOidcUser()),\n );\n });\n\n signInPopup$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInPopup),\n concatMap((args) =>\n this.oidcService.signInPopup(args.payload).pipe(\n map((user) =>\n oidcActions.onSignInPopup(this.makeOidcUserSerializable(user)),\n ),\n catchError((err) => of(oidcActions.signInError(err))),\n ),\n ),\n );\n });\n\n signInRedirect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInRedirect),\n concatMap((args) =>\n this.oidcService.signInRedirect(args.payload).pipe(\n concatMap(() => this.oidcService.signinRedirectCallback()),\n map((user) =>\n oidcActions.onSignInRedirect(this.makeOidcUserSerializable(user)),\n ),\n catchError((err) => of(oidcActions.signInError(err))),\n ),\n ),\n );\n });\n\n signInSilent$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInSilent),\n concatMap((args) =>\n this.oidcService.signInSilent(args.payload).pipe(\n map((user) =>\n oidcActions.onSignInSilent(this.makeOidcUserSerializable(user)),\n ),\n catchError((err) => of(oidcActions.onSilentRenewError(err))),\n ),\n ),\n );\n });\n\n signOutPopup$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signOutPopup),\n concatMap((args) =>\n this.oidcService.signOutPopup(args.payload).pipe(\n map(() => oidcActions.onUserSignedOut()),\n catchError((err) => of(oidcActions.signOutPopupError(err.message))),\n ),\n ),\n );\n });\n\n signOutRedirect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signOutRedirect),\n concatMap((args) =>\n this.oidcService.signOutRedirect(args.payload).pipe(\n map(() => oidcActions.onUserSignedOut()),\n catchError((err) =>\n of(oidcActions.signOutRedirectError(err.message)),\n ),\n ),\n ),\n );\n });\n\n onUserSignedOut$ = createEffect(\n () => {\n return this.actions$.pipe(\n ofType(\n oidcActions.onUserSignedOut,\n oidcActions.signOutPopupError,\n oidcActions.signOutRedirectError,\n ),\n tap(() => {\n localStorage.clear();\n sessionStorage.clear();\n this.router.navigateByUrl(oidcLogoutRoute.path ?? '');\n }),\n );\n },\n { dispatch: false },\n );\n\n ngrxOnInitEffects(): Action {\n return oidcActions.getOidcUser();\n }\n\n makeOidcUserSerializable(user: IOidcUser | null): IOidcUser {\n if (user?.toStorageString) {\n user = {\n ...user,\n toStorageString: undefined,\n };\n }\n return user as IOidcUser;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface OidcClientConfig {\n audience: string;\n client_id: string;\n client_secret?: string;\n authority: string;\n scope?:\n | 'openid'\n | 'profile'\n | 'offline_access'\n | 'name'\n | 'given_name'\n | 'family_name'\n | 'nickname'\n | 'email'\n | 'email_verified'\n | 'picture'\n | 'created_at'\n | 'identities'\n | 'phone'\n | 'address'\n | string; //NOSONAR\n response_type?:\n | 'code'\n | 'token'\n | 'id_token'\n | 'code token'\n | 'code id_token'\n | 'token id_token'\n | 'code token id_token'\n | string; //NOSONAR\n automaticSilentRenew?: boolean;\n getUserMetadata: boolean;\n useCallbackFlag?: boolean;\n metadataUrl?: string;\n}\nexport const OIDC_CLIENT_CONFIG = new InjectionToken<OidcClientConfig>(\n 'oidc-client-config',\n);\n","import { Observable, throwError } from 'rxjs';\nimport { first, catchError, mergeMap } from 'rxjs/operators';\nimport {\n HttpInterceptor,\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpErrorResponse,\n} from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { oidcSelectors } from '../+state/oidc.selectors';\nimport * as oidcActions from '../+state/oidc.actions';\n\n@Injectable({ providedIn: 'root' })\nexport class TokenInterceptorService implements HttpInterceptor {\n private readonly store = inject(Store);\n\n intercept(\n req: HttpRequest<unknown>,\n next: HttpHandler,\n ): Observable<HttpEvent<unknown>> {\n return this.store.select(oidcSelectors.selectAccessToken).pipe(\n first(),\n mergeMap((accessToken) => {\n if (accessToken) {\n req = req.clone({\n setHeaders: { Authorization: `Bearer ${accessToken}` },\n });\n }\n return next.handle(req).pipe(\n catchError((err: Error) => {\n if (err instanceof HttpErrorResponse) {\n this.store.dispatch(oidcActions.setHttpError(err));\n }\n return throwError(() => err);\n }),\n );\n }),\n );\n }\n}\n","import { isNullOrUndefined } from 'imng-nrsrx-client-utils';\nimport { OidcClientConfig } from '../models/oidc-client-config';\nimport { OidcLibraryConfig } from '../models/oidc-library-config';\n\nexport function oidcConfigurator(\n oidcClientConfig: OidcClientConfig,\n document: Document,\n): OidcLibraryConfig {\n return {\n oidc_config: {\n ...oidcClientConfig,\n extraQueryParams: { audience: oidcClientConfig.audience },\n redirect_uri: `${document.location.origin}/callback.html`,\n response_type: oidcClientConfig.response_type ?? 'id_token token',\n post_logout_redirect_uri: `${document.location.origin}/signout-callback.html`,\n silent_redirect_uri: `${document.location.origin}/renew-callback.html`,\n automaticSilentRenew: isNullOrUndefined(\n oidcClientConfig.automaticSilentRenew,\n )\n ? true\n : oidcClientConfig.automaticSilentRenew,\n metadataUrl:\n oidcClientConfig.metadataUrl ??\n `${oidcClientConfig.authority}/.well-known/openid-configuration`,\n },\n getUserMetadata: oidcClientConfig.getUserMetadata,\n useCallbackFlag: isNullOrUndefined(oidcClientConfig.useCallbackFlag)\n ? true\n : (oidcClientConfig.useCallbackFlag as boolean),\n };\n}\n","import { CommonModule } from '@angular/common';\nimport {\n HTTP_INTERCEPTORS,\n provideHttpClient,\n withInterceptorsFromDi,\n} from '@angular/common/http';\nimport { NgModule, ModuleWithProviders, DOCUMENT } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule, Store } from '@ngrx/store';\nimport { OidcUserFacade } from './+state/oidc-user.facade';\nimport { OidcEffects } from './+state/oidc.effects';\nimport { OidcFacade } from './+state/oidc.facade';\nimport { oidcFeature } from './+state/oidc.reducer';\nimport { IMNG_ACCESS_DENIED } from './components/access-denied.component';\nimport { IMNG_LOGOUT_SUCCESS } from './components/logout-success.component';\nimport { ImngOidcClientRoutingModule } from './img-oidc-client-routing.module';\nimport {\n OIDC_CLIENT_CONFIG,\n OidcClientConfig,\n} from './models/oidc-client-config';\nimport { OIDC_LIBRARY_CONFIG } from './models/oidc-library-config';\nimport { AuthGuard } from './services/auth-guard';\nimport { OidcService } from './services/oidc.service';\nimport { TokenInterceptorService } from './services/token-interceptor.service';\nimport { IMNG_USER_SUPPORT } from './support/support.component';\nimport { oidcConfigurator } from './util/oidc-client-configurator';\n\n@NgModule({\n imports: [\n CommonModule,\n StoreModule.forFeature(oidcFeature),\n EffectsModule.forFeature([OidcEffects]),\n ImngOidcClientRoutingModule,\n IMNG_ACCESS_DENIED,\n IMNG_USER_SUPPORT,\n IMNG_LOGOUT_SUCCESS,\n ],\n exports: [IMNG_ACCESS_DENIED, IMNG_USER_SUPPORT, IMNG_LOGOUT_SUCCESS],\n providers: [\n {\n provide: OIDC_LIBRARY_CONFIG,\n useFactory: oidcConfigurator,\n deps: [OIDC_CLIENT_CONFIG, DOCUMENT],\n },\n OidcService,\n OidcFacade,\n OidcUserFacade,\n AuthGuard,\n provideHttpClient(withInterceptorsFromDi()),\n {\n provide: HTTP_INTERCEPTORS,\n useClass: TokenInterceptorService,\n multi: true,\n deps: [Store],\n },\n ],\n})\nexport class ImngOidcClientModule {\n static forRoot(\n oidcOptions: OidcClientConfig,\n ): ModuleWithProviders<ImngOidcClientModule> {\n return {\n ngModule: ImngOidcClientModule,\n providers: [{ provide: OIDC_CLIENT_CONFIG, useValue: oidcOptions }],\n };\n }\n}\n","import { ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { switchMap, tap } from 'rxjs/operators';\nimport { OidcUserFacade } from '../+state/oidc-user.facade';\n\nexport abstract class PermissionsGuard {\n constructor(\n private readonly oidcFacade: OidcFacade,\n private readonly oidcUserFacade: OidcUserFacade,\n private readonly router: Router\n ) { }\n\n protected abstract permissions: string[];\n\n public canActivate(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n route: ActivatedRouteSnapshot, //NOSONAR\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n state: RouterStateSnapshot //NOSONAR\n ): Observable<boolean> | boolean {\n return this.oidcFacade.waitForAuthenticationLoaded().pipe(\n switchMap(() => this.oidcUserFacade.hasPermissions(this.permissions)),\n tap((t) => {\n if (!t) {\n this.router.navigate(['oidc/access-denied'], {\n relativeTo: this.router.routerState.root,\n });\n }\n })\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["oidcActions.getOidcUser","oidcActions.onUserLoading","oidcActions.removeOidcUser","oidcActions.setHttpError","oidcActions.onUserMetadataLoaded","oidcActions.clearErrors","oidcActions.userDoneLoading","oidcActions.onAccessTokenExpiring","oidcActions.onAccessTokenExpired","oidcActions.onUserLoaded","oidcActions.onUserUnloaded","oidcActions.onUserSignedOut","oidcActions.signOutPopupError","oidcActions.signOutRedirectError","oidcActions.signOutRedirect","oidcActions.signOutPopup","oidcActions.userFound","oidcActions.onSignInPopup","oidcActions.onSignInRedirect","oidcActions.onSignInSilent","oidcActions.userExpired","oidcActions.onSilentRenewError","oidcActions.userDoneLoadingError","oidcActions.signInError","oidcActions.onSessionChanged","oidcActions.signInPopup","oidcActions.signInRedirect","oidcActions.signInSilent","switchMap","map","filter","oidcActions.oidcError","tap","catchError","i1","DOCUMENT"],"mappings":"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"}
1
+ {"version":3,"file":"imng-oidc-client.mjs","sources":["../../../../libs/imng-oidc-client/src/lib/+state/oidc.actions.ts","../../../../libs/imng-oidc-client/src/lib/util/jwt-decoder.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.reducer.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.selectors.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc-user.selectors.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc-user.facade.ts","../../../../libs/imng-oidc-client/src/lib/models/constants.ts","../../../../libs/imng-oidc-client/src/lib/models/oidc-library-config.ts","../../../../libs/imng-oidc-client/src/lib/services/oidc.service.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.facade.ts","../../../../libs/imng-oidc-client/src/lib/support/support.component.ts","../../../../libs/imng-oidc-client/src/lib/components/access-denied.component.ts","../../../../libs/imng-oidc-client/src/lib/services/auth-guard.ts","../../../../libs/imng-oidc-client/src/lib/components/logout-success.component.ts","../../../../libs/imng-oidc-client/src/lib/img-oidc-client-routing.module.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.effects.ts","../../../../libs/imng-oidc-client/src/lib/models/oidc-client-config.ts","../../../../libs/imng-oidc-client/src/lib/services/token-interceptor.service.ts","../../../../libs/imng-oidc-client/src/lib/util/oidc-client-configurator.ts","../../../../libs/imng-oidc-client/src/lib/imng-oidc-client.module.ts","../../../../libs/imng-oidc-client/src/lib/services/permissions.guard.ts","../../../../libs/imng-oidc-client/src/imng-oidc-client.ts"],"sourcesContent":["import { createAction } from '@ngrx/store';\nimport { RequestArguments } from '../models/arguments.model';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\nimport { createPayloadAction } from 'imng-ngrx-utils';\n\nexport const clearCurrentEmployee = createAction(\n '[Employees] Clear Current Employee',\n);\n\n// OIDC COMMANDS\n\nexport const getOidcUser = createAction('[Oidc] get oidc user');\nexport const removeOidcUser = createAction('[Oidc] remove oidc user');\nexport const userExpired = createAction('[Oidc] user expired');\nexport const userFound = createPayloadAction<IOidcUser>('[Oidc] user found');\nexport const onSessionChanged = createAction('[Oidc] session changed');\nexport const onAccessTokenExpired = createAction(\n '[Oidc] on access token expired',\n);\nexport const onAccessTokenExpiring = createAction('[Oidc] user expiring');\nexport const onUserLoading = createAction('[Oidc] user loading');\nexport const userDoneLoading = createAction('[Oidc] user done loading');\nexport const userDoneLoadingError = createPayloadAction<Error>(\n '[Oidc] user done loading error',\n);\nexport const onUserMetadataLoaded = createPayloadAction<unknown>(\n '[Oidc] on User Metadata Loaded',\n);\n\n// OIDC EVENTS\nexport const onSignInPopup = createPayloadAction<IOidcUser>(\n '[Oidc] on SignInPopup',\n);\nexport const onSignInRedirect = createPayloadAction<IOidcUser>(\n '[Oidc] on onSignInRedirect',\n);\nexport const onSignInSilent = createPayloadAction<IOidcUser>(\n '[Oidc] on onSignInSilent',\n);\n\nexport const onUserLoaded = createPayloadAction<IOidcUser>(\n '[Oidc] on user loaded',\n);\nexport const onUserLoadError = createPayloadAction<Error>(\n '[Oidc] user load error',\n);\nexport const onUserUnloaded = createAction('[Oidc] on user unloaded');\nexport const onUserSignedOut = createAction('[Oidc] on user signed out');\nexport const onSilentRenewError = createPayloadAction<Error>(\n '[Oidc] on silent renew error',\n);\nexport const signInPopup = createPayloadAction<RequestArguments>(\n '[Oidc] sign in popup',\n);\nexport const signInRedirect = createPayloadAction<RequestArguments | undefined>(\n '[Oidc] sign in redirect',\n);\nexport const signInError = createPayloadAction<Error>(\n '[Oidc] sign in popup error',\n);\nexport const signOutPopup = createPayloadAction<RequestArguments>(\n '[Oidc] sign out popup',\n);\nexport const signOutPopupError = createPayloadAction<string>(\n '[Oidc] sign out popup error',\n);\nexport const signOutRedirect = createPayloadAction<\n RequestArguments | undefined\n>('[Oidc] sign out redirect');\nexport const signOutRedirectError = createPayloadAction<string>(\n '[Oidc] sign out redirect error',\n);\nexport const signInSilent = createPayloadAction<RequestArguments>(\n '[Oidc] sign in silent',\n);\nexport const oidcError = createPayloadAction<Error>('[Oidc] error');\n\n// HTTP\nexport const setHttpError = createPayloadAction<HttpErrorResponse>(\n '[HTTP] Set Http Error',\n);\nexport const clearErrors = createAction('[HTTP] Clear Errors');\n","export function jwtDecoder<TYPE>(rawToken: string): TYPE | null {\n const splits = rawToken?.split('.');\n if (splits?.length > 1) {\n const payload = splits[1];\n return JSON.parse(window.atob(payload)) as TYPE;\n } else {\n return null;\n }\n}\n","import * as oidcActions from './oidc.actions';\nimport { jwtDecoder } from '../util/jwt-decoder';\nimport { on, createReducer, createFeature } from '@ngrx/store';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\n\nexport const OIDC_FEATURE_KEY = 'oidc';\nexport interface OidcState {\n identity: IOidcUser | undefined;\n audiences: string[] | undefined;\n userMetadata: unknown | undefined;\n permissions: string[] | undefined;\n isLoading: boolean;\n isLoggedIn: boolean;\n isExpiring: boolean;\n isExpired: boolean;\n errors: ErrorState;\n}\n\nexport interface ErrorState {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n silentRenewError: unknown | undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signInError: unknown | undefined;\n httpError: HttpErrorResponse | undefined;\n}\n\nexport const initialState: OidcState = {\n audiences: [],\n permissions: [],\n isLoading: true,\n isLoggedIn: false,\n isExpiring: false,\n isExpired: false,\n identity: undefined,\n userMetadata: undefined,\n errors: {\n silentRenewError: undefined,\n signInError: undefined,\n httpError: undefined,\n },\n};\n\nexport const oidcFeature = createFeature({\n name: OIDC_FEATURE_KEY,\n reducer: createReducer(initialState,\n on(oidcActions.getOidcUser,\n (state): OidcState => ({\n ...state,\n isLoading: false,\n isLoggedIn: false,\n })),\n on(oidcActions.onUserLoading,\n (state): OidcState => ({\n ...state,\n isLoading: true,\n isLoggedIn: false,\n })),\n on(oidcActions.removeOidcUser,\n (state): OidcState => ({\n ...state,\n isLoading: true,\n isLoggedIn: false,\n identity: undefined,\n })),\n on(oidcActions.setHttpError,\n (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n httpError: err.payload,\n },\n })),\n on(oidcActions.onUserMetadataLoaded,\n (state, userMetadata): OidcState => ({\n ...state,\n userMetadata: userMetadata.payload,\n isLoading: false,\n })),\n on(oidcActions.clearErrors,\n (state): OidcState => ({\n ...state, errors: {\n signInError: undefined,\n silentRenewError: undefined,\n httpError: undefined\n }\n })),\n on(oidcActions.userDoneLoading,\n (state): OidcState => ({\n ...state,\n isLoading: false\n })),\n on(oidcActions.onAccessTokenExpiring,\n (state): OidcState => ({\n ...state,\n isExpiring: true,\n })),\n on(oidcActions.onAccessTokenExpired,\n (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n isExpiring: false,\n isExpired: true,\n })),\n on(oidcActions.onUserLoaded,\n (state): OidcState => ({\n ...state,\n isLoading: false,\n isExpiring: false,\n })),\n on(\n oidcActions.onUserUnloaded,\n oidcActions.onUserSignedOut,\n oidcActions.signOutPopupError,\n oidcActions.signOutRedirectError,\n (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n identity: undefined,\n isExpired: true,\n isExpiring: false,\n userMetadata: undefined,\n })\n ),\n on(oidcActions.signOutRedirect,\n oidcActions.signOutPopup,\n (state): OidcState => ({\n ...state,\n identity: undefined,\n userMetadata: null,\n isLoggedIn: false,\n })),\n on(\n oidcActions.userFound,\n oidcActions.onSignInPopup,\n oidcActions.onSignInRedirect,\n oidcActions.onSignInSilent,\n (state, { payload }): OidcState => ({\n ...state,\n identity: payload,\n isLoggedIn: true,\n audiences: jwtDecoder<{ aud?: []; }>(payload.access_token)?.aud,\n permissions: jwtDecoder<{ permissions?: []; }>(payload.access_token)?.permissions,\n })\n ),\n on(oidcActions.userExpired, (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n isExpiring: false,\n })),\n on(oidcActions.onSilentRenewError, (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n silentRenewError: err.payload,\n },\n })),\n on(\n oidcActions.userDoneLoadingError,\n oidcActions.signInError,\n (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n signInError: err.payload,\n },\n })\n ))\n});\n","import { createSelector } from '@ngrx/store';\nimport { ErrorState, oidcFeature } from './oidc.reducer';\nimport { IOidcUser } from '../models/oidc-user';\n// State Selectors\n\nconst selectAccessToken = createSelector(\n oidcFeature.selectIdentity,\n (user?: IOidcUser) => (user || { access_token: undefined }).access_token,\n);\n\n// errors\nconst selectOidcErrorState = createSelector(\n oidcFeature.selectErrors,\n (errors) => errors,\n);\n\nconst selectHasErrors = createSelector(\n selectOidcErrorState,\n (state: ErrorState) =>\n !!state.httpError || !!state.signInError || !!state.silentRenewError,\n);\n\nconst selectSignInError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.signInError,\n);\n\nconst selectSilentRenewError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.silentRenewError,\n);\n\nconst selectHttpError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.httpError,\n);\n\nconst selectExpiresAt = createSelector(\n oidcFeature.selectIdentity,\n (state?: IOidcUser) =>\n state?.expires_at ? new Date(state.expires_at * 1000) : null, //NOSONAR\n);\nexport const oidcSelectors = {\n selectExpiresAt,\n selectPermissions: oidcFeature.selectPermissions,\n selectIsLoading: oidcFeature.selectIsLoading,\n selectIdentity: oidcFeature.selectIdentity,\n selectAccessToken,\n selectIsExpiring: oidcFeature.selectIsExpiring,\n selectIsExpired: oidcFeature.selectIsExpired,\n selectIsLoggedIn: oidcFeature.selectIsLoggedIn,\n selectSilentRenewError,\n selectSignInError,\n selectHttpError,\n selectHasErrors,\n selectAudiences: oidcFeature.selectAudiences,\n selectUserMetadata: oidcFeature.selectUserMetadata,\n};\n","import { createSelector } from '@ngrx/store';\nimport { OidcUserProfile } from '../models/oidc-user-profile';\nimport { oidcSelectors } from './oidc.selectors';\nimport { oidcFeature } from './oidc.reducer';\nimport { IOidcUser } from '../models/oidc-user';\n\nconst selectProfile = createSelector(\n oidcSelectors.selectIdentity,\n (identity?: IOidcUser) => identity?.profile as OidcUserProfile,\n);\n\nconst selectScopes = createSelector(\n oidcSelectors.selectIdentity,\n (identity?: IOidcUser) => identity?.scope?.split(' ') || identity?.scopes,\n);\nconst getPermissions = oidcFeature.selectPermissions;\n\nconst selectEmail = createSelector(selectProfile, (profile) => profile?.email);\n\nconst selectProfilePicture = createSelector(\n selectProfile,\n (profile) => profile?.picture,\n);\n\nexport const oidcUserSelectors = {\n getScopes: selectScopes,\n getProfile: selectProfile,\n getEmail: selectEmail,\n getProfilePicture: selectProfilePicture,\n getPermissions,\n};\n","import { Injectable, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { oidcUserSelectors } from './oidc-user.selectors';\nimport { OidcUserProfile } from '../models/oidc-user-profile';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcUserFacade {\n private readonly store = inject(Store);\n\n profile$: Observable<OidcUserProfile> = this.store.select(\n oidcUserSelectors.getProfile,\n );\n scopes$: Observable<string[] | undefined> = this.store.select(\n oidcUserSelectors.getScopes,\n );\n email$: Observable<string | undefined> = this.store.select(\n oidcUserSelectors.getEmail,\n );\n profilePicture$: Observable<string | undefined> = this.store.select(\n oidcUserSelectors.getProfilePicture,\n );\n permissions$: Observable<string[] | undefined> = this.store.select(\n oidcUserSelectors.getPermissions,\n );\n\n public hasPermissions(\n requiredPermissions: Array<string>,\n ): Observable<boolean> {\n return this.permissions$.pipe(\n map(\n (t) =>\n -1 <\n requiredPermissions.findIndex(\n (f) => -1 < (t?.findIndex((i) => i === f) ?? -1),\n ),\n ),\n );\n }\n}\n","export enum OidcEvent {\n AccessTokenExpired = 'addAccessTokenExpired',\n AccessTokenExpiring = 'addAccessTokenExpiring',\n SilentRenewError = 'AddSilentRenewError',\n UserLoaded = 'addUserLoaded',\n UserUnloaded = 'addUserUnloaded',\n UserSignedOut = 'addUserSignedOut',\n UserSessionChanged = 'addUserSessionChanged'\n}\n\nexport enum StorageKeys {\n PopupCallback = 'ngoidc:isPopupCallback',\n OidcSettings = 'ngoidc:settings',\n}\n\nexport const ACTION_NO_ACTION = 'NO_ACTION';\n","import { InjectionToken } from '@angular/core';\nimport { UserManagerSettings, Logger } from 'oidc-client';\n\nexport interface OidcLibraryConfig {\n oidc_config: UserManagerSettings;\n useCallbackFlag: boolean;\n getUserMetadata: boolean;\n log?: {\n logger: Logger;\n level: number;\n };\n}\nexport const OIDC_LIBRARY_CONFIG = new InjectionToken<OidcLibraryConfig>(\n 'OIDC_LIBRARY_CONFIG'\n);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isPlatformBrowser } from '@angular/common';\nimport { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport {\n Log,\n OidcClient,\n SigninRequest,\n SignoutRequest,\n UserManager,\n UserManagerSettings,\n} from 'oidc-client';\nimport { from, Observable } from 'rxjs';\nimport { OidcEvent, StorageKeys } from '../models/constants';\nimport { IOidcUser } from '../models/oidc-user';\nimport { switchMap } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport {\n OidcLibraryConfig,\n OIDC_LIBRARY_CONFIG,\n} from '../models/oidc-library-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcService {\n private readonly oidcLibraryConfig =\n inject<OidcLibraryConfig>(OIDC_LIBRARY_CONFIG);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly httpClient = inject(HttpClient);\n\n public readonly OidcUserManager: UserManager;\n private readonly _oidcClient: OidcClient;\n private readonly _userManagerSettings: UserManagerSettings;\n\n constructor() {\n const logSettings = this.oidcLibraryConfig.log;\n let clientSettings = this.oidcLibraryConfig.oidc_config;\n\n if (logSettings) {\n Log.level = logSettings.level;\n Log.logger = logSettings.logger;\n }\n\n if (clientSettings?.userStore != null) {\n clientSettings = {\n ...clientSettings,\n userStore: clientSettings.userStore,\n };\n }\n this._userManagerSettings = { ...clientSettings };\n this.OidcUserManager = new UserManager(clientSettings);\n this._oidcClient = new OidcClient(clientSettings);\n }\n\n public getUserMetadata(): Observable<unknown> {\n return this.httpClient\n .get<{\n userinfo_endpoint: string;\n }>(this.oidcLibraryConfig.oidc_config?.metadataUrl ?? '')\n .pipe(\n switchMap((openidConfig) =>\n this.httpClient.get<unknown>(openidConfig.userinfo_endpoint),\n ),\n );\n }\n\n getUserManager(): UserManager {\n return this.OidcUserManager;\n }\n\n getOidcClient(): OidcClient {\n return this._oidcClient;\n }\n\n getOidcUser(): Observable<IOidcUser | null> {\n return from(this.OidcUserManager.getUser());\n }\n\n removeOidcUser(): Observable<void> {\n return from(this.OidcUserManager.removeUser());\n }\n\n registerOidcEvent(\n event: OidcEvent,\n callback: (...ev: unknown[]) => void,\n ): void {\n switch (event) {\n case OidcEvent.AccessTokenExpired:\n this.OidcUserManager.events.addAccessTokenExpired(callback);\n break;\n case OidcEvent.AccessTokenExpiring:\n this.OidcUserManager.events.addAccessTokenExpiring(callback);\n break;\n case OidcEvent.SilentRenewError:\n this.OidcUserManager.events.addSilentRenewError(callback);\n break;\n case OidcEvent.UserLoaded:\n this.OidcUserManager.events.addUserLoaded(callback);\n break;\n case OidcEvent.UserSessionChanged:\n this.OidcUserManager.events.addUserSessionChanged(callback);\n break;\n case OidcEvent.UserSignedOut:\n this.OidcUserManager.events.addUserSignedOut(callback);\n break;\n case OidcEvent.UserUnloaded:\n this.OidcUserManager.events.addUserUnloaded(callback);\n break;\n default:\n break;\n }\n }\n\n removeOidcEvent(\n event: OidcEvent,\n callback: (...ev: unknown[]) => void,\n ): void {\n switch (event) {\n case OidcEvent.AccessTokenExpired:\n this.OidcUserManager.events.removeAccessTokenExpired(callback);\n break;\n case OidcEvent.AccessTokenExpiring:\n this.OidcUserManager.events.removeAccessTokenExpiring(callback);\n break;\n case OidcEvent.SilentRenewError:\n this.OidcUserManager.events.removeSilentRenewError(callback);\n break;\n case OidcEvent.UserLoaded:\n this.OidcUserManager.events.removeUserLoaded(callback);\n break;\n case OidcEvent.UserSessionChanged:\n this.OidcUserManager.events.removeUserSessionChanged(callback);\n break;\n case OidcEvent.UserSignedOut:\n this.OidcUserManager.events.removeUserSignedOut(callback);\n break;\n case OidcEvent.UserUnloaded:\n this.OidcUserManager.events.removeUserUnloaded(callback);\n break;\n default:\n break;\n }\n }\n\n signInPopup(args?: any): Observable<IOidcUser> {\n //NOSONAR\n this.setCallbackInformation(true);\n\n return from(this.OidcUserManager.signinPopup({ ...args }));\n }\n\n signInRedirect(args?: any): Observable<void> {\n //NOSONAR\n this.setCallbackInformation(false);\n\n return from(this.OidcUserManager.signinRedirect({ ...args }));\n }\n\n signOutPopup(args?: any): Observable<any> {\n //NOSONAR\n this.setCallbackInformation(true);\n\n return from(this.OidcUserManager.signoutPopup({ ...args }));\n }\n\n signOutRedirect(args?: any): Observable<any> {\n //NOSONAR\n this.setCallbackInformation(false);\n return from(this.OidcUserManager.signoutRedirect({ ...args }));\n }\n\n signInSilent(args?: any): Observable<IOidcUser> {\n //NOSONAR\n return from(this.OidcUserManager.signinSilent({ ...args }));\n }\n\n signinPopupCallback(): Observable<any> {\n //NOSONAR\n return from(this.OidcUserManager.signinPopupCallback());\n }\n\n signinRedirectCallback(): Observable<IOidcUser> {\n return from(this.OidcUserManager.signinRedirectCallback());\n }\n\n signoutPopupCallback(): Observable<void> {\n return from(this.OidcUserManager.signoutPopupCallback());\n }\n\n signoutRedirectCallback(): Observable<any> {\n //NOSONAR\n return from(this.OidcUserManager.signoutRedirectCallback());\n }\n\n getSigninUrl(args?: any): Observable<SigninRequest> {\n //NOSONAR\n return from(this.OidcUserManager.createSigninRequest(args));\n }\n\n getSignoutUrl(args?: any): Observable<SignoutRequest> {\n //NOSONAR\n return from(this.OidcUserManager.createSignoutRequest(args));\n }\n\n private setCallbackInformation(isPopupCallback: boolean): void {\n // is browser and useCallbackFlag set to true or defaults to true\n if (\n isPlatformBrowser(this.platformId) &&\n this.oidcLibraryConfig.useCallbackFlag\n ) {\n localStorage.setItem(StorageKeys.PopupCallback, `${isPopupCallback}`);\n localStorage.setItem(\n StorageKeys.OidcSettings,\n JSON.stringify(this._userManagerSettings),\n );\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n OidcClient,\n SigninRequest,\n SignoutRequest,\n UserManager,\n} from 'oidc-client';\nimport { Observable } from 'rxjs';\nimport { filter, take, map } from 'rxjs/operators';\nimport { oidcSelectors } from './oidc.selectors';\nimport { OidcService } from '../services/oidc.service';\nimport { RequestArguments } from '../models/arguments.model';\nimport { OidcEvent } from '../models/constants';\nimport * as oidcActions from './oidc.actions';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcFacade {\n private readonly store = inject(Store);\n private readonly oidcService = inject(OidcService);\n\n constructor() {\n this.registerDefaultEvents();\n }\n\n loading$: Observable<boolean> = this.store.select(\n oidcSelectors.selectIsLoading,\n );\n expiring$: Observable<boolean> = this.store.select(\n oidcSelectors.selectIsExpiring,\n );\n expired$: Observable<boolean> = this.store.select(\n oidcSelectors.selectIsExpired,\n );\n loggedIn$: Observable<boolean> = this.store.select(\n oidcSelectors.selectIsLoggedIn,\n );\n identity$: Observable<IOidcUser | undefined> = this.store.select(\n oidcSelectors.selectIdentity,\n );\n accessToken$: Observable<string | undefined> = this.store.select(\n oidcSelectors.selectAccessToken,\n );\n httpError$: Observable<HttpErrorResponse | undefined> = this.store.select(\n oidcSelectors.selectHttpError,\n );\n signInError$: Observable<unknown> = this.store.select(\n oidcSelectors.selectSignInError,\n );\n silentRenewError$: Observable<unknown> = this.store.select(\n oidcSelectors.selectSilentRenewError,\n );\n hasErrors$: Observable<boolean> = this.store.select(\n oidcSelectors.selectHasErrors,\n );\n permissions$: Observable<string[] | undefined> = this.store.select(\n oidcSelectors.selectPermissions,\n );\n audiences$: Observable<string[] | null | undefined> = this.store.select(\n oidcSelectors.selectAudiences,\n );\n expiresAt$: Observable<Date | null> = this.store.select(\n oidcSelectors.selectExpiresAt,\n );\n userMetadata$: Observable<unknown> = this.store.select(\n oidcSelectors.selectUserMetadata,\n );\n\n // default bindings to events\n public addUserUnLoaded(): void {\n this.store?.dispatch(oidcActions.onUserUnloaded());\n }\n\n public accessTokenExpired(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onAccessTokenExpired());\n } else {\n sessionStorage.clear();\n localStorage.clear();\n window.location.reload();\n }\n }\n\n public accessTokenExpiring(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onAccessTokenExpiring());\n } else {\n this.accessTokenExpired();\n }\n }\n\n public addSilentRenewError(...ev: unknown[]): void {\n this.store.dispatch(oidcActions.onSilentRenewError(ev[0] as Error));\n }\n\n public addUserLoaded(...ev: unknown[]): void {\n this.store.dispatch(oidcActions.onUserLoaded(ev[0] as IOidcUser));\n }\n\n public addUserSignedOut(): void {\n this.oidcService?.removeOidcUser();\n this.store?.dispatch(oidcActions.onUserSignedOut());\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public addUserSessionChanged(): void {\n this.store.dispatch(oidcActions.onSessionChanged());\n }\n\n public clearErrors(): void {\n this.store.dispatch(oidcActions.clearErrors());\n }\n\n // OIDC Methods\n\n public getOidcUser(): void {\n this.store.dispatch(oidcActions.getOidcUser());\n }\n\n public removeOidcUser(): void {\n this.store.dispatch(oidcActions.removeOidcUser());\n }\n\n public getUserManager(): UserManager {\n return this.oidcService.getUserManager();\n }\n\n public getOidcClient(): OidcClient {\n return this.oidcService.getOidcClient();\n }\n\n /**\n * Convenient function to wait for OIDC dependencies to be loaded.\n */\n public waitForAuthenticationLoaded(): Observable<boolean> {\n return this.loading$.pipe(\n filter((loading) => loading === false),\n take(1),\n map(() => true),\n );\n }\n\n public signinPopup(args: RequestArguments): void {\n this.store.dispatch(oidcActions.signInPopup(args));\n }\n\n public signinRedirect(args?: RequestArguments): void {\n this.store.dispatch(oidcActions.signInRedirect(args));\n }\n\n public signinSilent(args: RequestArguments): void {\n this.store.dispatch(oidcActions.signInSilent(args));\n }\n\n public signoutPopup(args: RequestArguments): void {\n this.store.dispatch(oidcActions.signOutPopup(args));\n }\n\n public signoutRedirect(args?: RequestArguments): void {\n this.store.dispatch(oidcActions.signOutRedirect(args));\n }\n\n public getSigninUrl(args?: RequestArguments): Observable<SigninRequest> {\n return this.oidcService.getSigninUrl(args);\n }\n\n getSignoutUrl(args?: RequestArguments): Observable<SignoutRequest> {\n return this.oidcService.getSignoutUrl(args);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerEvent(event: OidcEvent, callback: (...ev: unknown[]) => void): void {\n this.oidcService.registerOidcEvent(event, callback);\n }\n\n private registerDefaultEvents(): void {\n // add simple loggers\n this.registerEvent(OidcEvent.AccessTokenExpired, this.accessTokenExpired);\n this.registerEvent(OidcEvent.AccessTokenExpiring, this.accessTokenExpiring);\n this.registerEvent(OidcEvent.SilentRenewError, this.addSilentRenewError);\n\n this.registerEvent(OidcEvent.UserLoaded, this.addUserLoaded);\n this.registerEvent(OidcEvent.UserUnloaded, this.addUserUnLoaded);\n this.registerEvent(OidcEvent.UserSignedOut, this.addUserSignedOut);\n this.registerEvent(\n OidcEvent.UserSessionChanged,\n this.addUserSessionChanged,\n );\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { OidcUserFacade } from '../+state/oidc-user.facade';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n selector: 'imng-support',\n imports: [AsyncPipe],\n template: `<div class=\"container pt-5 mt-5\">\n <div class=\"row h3 text-center\">\n <div class=\"col-md-12 text-center\">OIDC Support</div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Audiences</div>\n <div class=\"col-md-8\">\n @for (\n item of facade.audiences$ | async;\n track item;\n let isLast = $last\n ) {\n <span>\n {{ item }}\n @if (!isLast) {\n <br />\n }\n </span>\n }\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Permissions</div>\n <div class=\"col-md-8\">\n @for (\n item of facade.permissions$ | async;\n track item;\n let isLast = $last\n ) {\n <span>\n {{ item }}\n @if (!isLast) {\n <br />\n }\n </span>\n }\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Expires</div>\n <div class=\"col-md-8\">{{ facade.expiresAt$ | async }}</div>\n </div>\n @for (item of profileValue$ | async; track item) {\n <div class=\"row\">\n <div class=\"col-md-3\">{{ item.key }}</div>\n <div class=\"col-md-8\">{{ item.value }}</div>\n </div>\n }\n </div>`,\n})\nexport class IMNG_USER_SUPPORT {\n readonly facade = inject(OidcFacade);\n readonly oidcUserFacade = inject(OidcUserFacade);\n\n public profileValue$: Observable<{ key: string; value: string }[]>;\n constructor() {\n this.profileValue$ = this.oidcUserFacade.profile$.pipe(\n map((x) =>\n Object.keys(x).map((propertyKey) => ({\n key: propertyKey,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: (x as any)[propertyKey], //NOSONAR\n })),\n ),\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'imng-access-denied',\n template: '<div class=\"p-5 m-5 text-danger\">Access denied.</div>',\n})\nexport class IMNG_ACCESS_DENIED {}\n","import { Observable } from 'rxjs';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { Injectable, inject } from '@angular/core';\nimport { tap, switchMap } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard {\n private readonly document = inject(DOCUMENT);\n private readonly oidcFacade = inject(OidcFacade);\n //NOSONAR\n /**\n * This will automatically attempt to authenticate you when trying to access a protected route.\n */\n public readonly isLoggedInPipe$ = this.oidcFacade\n .waitForAuthenticationLoaded()\n .pipe(\n switchMap(() => this.oidcFacade.loggedIn$),\n tap((t) => {\n if (!t) {\n this.oidcFacade.signinRedirect({\n data: { redirect_url: this.document.location.href },\n });\n }\n }),\n );\n\n public canActivate(): Observable<boolean> {\n return this.isLoggedInPipe$;\n }\n\n public canActivateChild(): Observable<boolean> {\n return this.isLoggedInPipe$;\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'imng-logout-success',\n template:\n '<div class=\"p-5 m-5 text-center\">You have successfully logged out.<br/>Please close this browser window to ensure you are completely logged out of the session.</div>',\n})\nexport class IMNG_LOGOUT_SUCCESS {}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule, Route } from '@angular/router';\nimport { IMNG_USER_SUPPORT } from './support/support.component';\nimport { IMNG_ACCESS_DENIED } from './components/access-denied.component';\nimport { AuthGuard } from './services/auth-guard';\nimport { IMNG_LOGOUT_SUCCESS } from './components/logout-success.component';\n\nconst routes: Routes = [\n { path: 'support', component: IMNG_USER_SUPPORT },\n { path: 'access-denied', component: IMNG_ACCESS_DENIED },\n { path: 'logout', component: IMNG_LOGOUT_SUCCESS },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ImngOidcClientRoutingModule {}\n\nexport const oidcSupportRoute: Route = {\n path: 'oidc/support',\n component: IMNG_USER_SUPPORT,\n canActivate: [AuthGuard],\n};\n\nexport const oidcAccessDeniedRoute: Route = {\n path: 'oidc/access-denied',\n component: IMNG_ACCESS_DENIED,\n};\n\nexport const oidcLogoutRoute: Route = {\n path: 'oidc/logout',\n component: IMNG_LOGOUT_SUCCESS,\n};\n\nexport const oidcRoutes: Route[] = [\n oidcSupportRoute,\n oidcAccessDeniedRoute,\n oidcLogoutRoute,\n];\n","import { OidcService } from '../services/oidc.service';\nimport * as oidcActions from './oidc.actions';\nimport { IOidcUser } from '../models/oidc-user';\nimport { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { OnInitEffects, Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { switchMap, map, filter, catchError, of, concatMap, tap } from 'rxjs';\nimport { oidcLogoutRoute } from '../img-oidc-client-routing.module';\nimport {\n OIDC_LIBRARY_CONFIG,\n OidcLibraryConfig,\n} from '../models/oidc-library-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcEffects implements OnInitEffects {\n private readonly actions$ = inject(Actions);\n private readonly oidcService = inject(OidcService);\n private readonly oidcLibraryOptions =\n inject<OidcLibraryConfig>(OIDC_LIBRARY_CONFIG);\n private readonly router = inject(Router);\n\n getOidcUser$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.getOidcUser),\n switchMap(() =>\n this.oidcService.getOidcUser().pipe(\n map((userData: IOidcUser | null) =>\n this.makeOidcUserSerializable(userData),\n ),\n filter((userData: IOidcUser) => !!userData),\n map((userData: IOidcUser) => oidcActions.userFound(userData)),\n catchError((err) => of(oidcActions.userDoneLoadingError(err))),\n ),\n ),\n );\n });\n\n silentRenew$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(\n (userFound: { payload: IOidcUser }) =>\n // user expired, initiate silent sign-in if configured to automatic\n (userFound.payload != null &&\n userFound.payload.expired &&\n this.oidcLibraryOptions.oidc_config?.automaticSilentRenew) ||\n false,\n ),\n map((userFound) => oidcActions.signInSilent(userFound.payload)),\n );\n });\n\n removeOidcUser$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.removeOidcUser),\n concatMap(() =>\n this.oidcService.removeOidcUser().pipe(\n map(() => oidcActions.userDoneLoading()),\n catchError((err) => of(oidcActions.oidcError(err))),\n ),\n ),\n );\n });\n\n userDoneLoadingNoMetadata$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(() => !this.oidcLibraryOptions.getUserMetadata),\n map(() => oidcActions.userDoneLoading()),\n );\n });\n\n userDoneLoadingWithMetadata$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(() => this.oidcLibraryOptions.getUserMetadata || false),\n switchMap(() => this.oidcService.getUserMetadata()),\n map((metadata) => oidcActions.onUserMetadataLoaded(metadata)),\n );\n });\n\n onAccessTokenExpired$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.onAccessTokenExpired),\n map(() => oidcActions.removeOidcUser()),\n );\n });\n\n signInPopup$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInPopup),\n concatMap((args) =>\n this.oidcService.signInPopup(args.payload).pipe(\n map((user) =>\n oidcActions.onSignInPopup(this.makeOidcUserSerializable(user)),\n ),\n catchError((err) => of(oidcActions.signInError(err))),\n ),\n ),\n );\n });\n\n signInRedirect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInRedirect),\n concatMap((args) =>\n this.oidcService.signInRedirect(args.payload).pipe(\n concatMap(() => this.oidcService.signinRedirectCallback()),\n map((user) =>\n oidcActions.onSignInRedirect(this.makeOidcUserSerializable(user)),\n ),\n catchError((err) => of(oidcActions.signInError(err))),\n ),\n ),\n );\n });\n\n signInSilent$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInSilent),\n concatMap((args) =>\n this.oidcService.signInSilent(args.payload).pipe(\n map((user) =>\n oidcActions.onSignInSilent(this.makeOidcUserSerializable(user)),\n ),\n catchError((err) => of(oidcActions.onSilentRenewError(err))),\n ),\n ),\n );\n });\n\n signOutPopup$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signOutPopup),\n concatMap((args) =>\n this.oidcService.signOutPopup(args.payload).pipe(\n map(() => oidcActions.onUserSignedOut()),\n catchError((err) => of(oidcActions.signOutPopupError(err.message))),\n ),\n ),\n );\n });\n\n signOutRedirect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signOutRedirect),\n concatMap((args) =>\n this.oidcService.signOutRedirect(args.payload).pipe(\n map(() => oidcActions.onUserSignedOut()),\n catchError((err) =>\n of(oidcActions.signOutRedirectError(err.message)),\n ),\n ),\n ),\n );\n });\n\n onUserSignedOut$ = createEffect(\n () => {\n return this.actions$.pipe(\n ofType(\n oidcActions.onUserSignedOut,\n oidcActions.signOutPopupError,\n oidcActions.signOutRedirectError,\n ),\n tap(() => {\n localStorage.clear();\n sessionStorage.clear();\n this.router.navigateByUrl(oidcLogoutRoute.path ?? '');\n }),\n );\n },\n { dispatch: false },\n );\n\n ngrxOnInitEffects(): Action {\n return oidcActions.getOidcUser();\n }\n\n makeOidcUserSerializable(user: IOidcUser | null): IOidcUser {\n if (user?.toStorageString) {\n user = {\n ...user,\n toStorageString: undefined,\n };\n }\n return user as IOidcUser;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface OidcClientConfig {\n audience: string;\n client_id: string;\n client_secret?: string;\n authority: string;\n scope?:\n | 'openid'\n | 'profile'\n | 'offline_access'\n | 'name'\n | 'given_name'\n | 'family_name'\n | 'nickname'\n | 'email'\n | 'email_verified'\n | 'picture'\n | 'created_at'\n | 'identities'\n | 'phone'\n | 'address'\n | string; //NOSONAR\n response_type?:\n | 'code'\n | 'token'\n | 'id_token'\n | 'code token'\n | 'code id_token'\n | 'token id_token'\n | 'code token id_token'\n | string; //NOSONAR\n automaticSilentRenew?: boolean;\n getUserMetadata: boolean;\n useCallbackFlag?: boolean;\n metadataUrl?: string;\n}\nexport const OIDC_CLIENT_CONFIG = new InjectionToken<OidcClientConfig>(\n 'oidc-client-config',\n);\n","import { Observable, throwError } from 'rxjs';\nimport { first, catchError, mergeMap } from 'rxjs/operators';\nimport {\n HttpInterceptor,\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpErrorResponse,\n} from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { oidcSelectors } from '../+state/oidc.selectors';\nimport * as oidcActions from '../+state/oidc.actions';\n\n@Injectable({ providedIn: 'root' })\nexport class TokenInterceptorService implements HttpInterceptor {\n private readonly store = inject(Store);\n\n intercept(\n req: HttpRequest<unknown>,\n next: HttpHandler,\n ): Observable<HttpEvent<unknown>> {\n return this.store.select(oidcSelectors.selectAccessToken).pipe(\n first(),\n mergeMap((accessToken) => {\n if (accessToken) {\n req = req.clone({\n setHeaders: { Authorization: `Bearer ${accessToken}` },\n });\n }\n return next.handle(req).pipe(\n catchError((err: Error) => {\n if (err instanceof HttpErrorResponse) {\n this.store.dispatch(oidcActions.setHttpError(err));\n }\n return throwError(() => err);\n }),\n );\n }),\n );\n }\n}\n","import { isNullOrUndefined } from 'imng-nrsrx-client-utils';\nimport { OidcClientConfig } from '../models/oidc-client-config';\nimport { OidcLibraryConfig } from '../models/oidc-library-config';\n\nexport function oidcConfigurator(\n oidcClientConfig: OidcClientConfig,\n document: Document,\n): OidcLibraryConfig {\n return {\n oidc_config: {\n ...oidcClientConfig,\n extraQueryParams: { audience: oidcClientConfig.audience },\n redirect_uri: `${document.location.origin}/callback.html`,\n response_type: oidcClientConfig.response_type ?? 'id_token token',\n post_logout_redirect_uri: `${document.location.origin}/signout-callback.html`,\n silent_redirect_uri: `${document.location.origin}/renew-callback.html`,\n automaticSilentRenew: isNullOrUndefined(\n oidcClientConfig.automaticSilentRenew,\n )\n ? true\n : oidcClientConfig.automaticSilentRenew,\n metadataUrl:\n oidcClientConfig.metadataUrl ??\n `${oidcClientConfig.authority}/.well-known/openid-configuration`,\n },\n getUserMetadata: oidcClientConfig.getUserMetadata,\n useCallbackFlag: isNullOrUndefined(oidcClientConfig.useCallbackFlag)\n ? true\n : (oidcClientConfig.useCallbackFlag as boolean),\n };\n}\n","import { CommonModule } from '@angular/common';\nimport {\n HTTP_INTERCEPTORS,\n provideHttpClient,\n withInterceptorsFromDi,\n withXhr\n} from '@angular/common/http';\nimport { NgModule, ModuleWithProviders, DOCUMENT } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule, Store } from '@ngrx/store';\nimport { OidcUserFacade } from './+state/oidc-user.facade';\nimport { OidcEffects } from './+state/oidc.effects';\nimport { OidcFacade } from './+state/oidc.facade';\nimport { oidcFeature } from './+state/oidc.reducer';\nimport { IMNG_ACCESS_DENIED } from './components/access-denied.component';\nimport { IMNG_LOGOUT_SUCCESS } from './components/logout-success.component';\nimport { ImngOidcClientRoutingModule } from './img-oidc-client-routing.module';\nimport {\n OIDC_CLIENT_CONFIG,\n OidcClientConfig,\n} from './models/oidc-client-config';\nimport { OIDC_LIBRARY_CONFIG } from './models/oidc-library-config';\nimport { AuthGuard } from './services/auth-guard';\nimport { OidcService } from './services/oidc.service';\nimport { TokenInterceptorService } from './services/token-interceptor.service';\nimport { IMNG_USER_SUPPORT } from './support/support.component';\nimport { oidcConfigurator } from './util/oidc-client-configurator';\n\n@NgModule({\n imports: [\n CommonModule,\n StoreModule.forFeature(oidcFeature),\n EffectsModule.forFeature([OidcEffects]),\n ImngOidcClientRoutingModule,\n IMNG_ACCESS_DENIED,\n IMNG_USER_SUPPORT,\n IMNG_LOGOUT_SUCCESS,\n ],\n exports: [IMNG_ACCESS_DENIED, IMNG_USER_SUPPORT, IMNG_LOGOUT_SUCCESS],\n providers: [\n {\n provide: OIDC_LIBRARY_CONFIG,\n useFactory: oidcConfigurator,\n deps: [OIDC_CLIENT_CONFIG, DOCUMENT],\n },\n OidcService,\n OidcFacade,\n OidcUserFacade,\n AuthGuard,\n provideHttpClient(withXhr(), withInterceptorsFromDi()),\n {\n provide: HTTP_INTERCEPTORS,\n useClass: TokenInterceptorService,\n multi: true,\n deps: [Store],\n },\n ],\n})\nexport class ImngOidcClientModule {\n static forRoot(\n oidcOptions: OidcClientConfig,\n ): ModuleWithProviders<ImngOidcClientModule> {\n return {\n ngModule: ImngOidcClientModule,\n providers: [{ provide: OIDC_CLIENT_CONFIG, useValue: oidcOptions }],\n };\n }\n}\n","import { ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { switchMap, tap } from 'rxjs/operators';\nimport { OidcUserFacade } from '../+state/oidc-user.facade';\n\nexport abstract class PermissionsGuard {\n constructor(\n private readonly oidcFacade: OidcFacade,\n private readonly oidcUserFacade: OidcUserFacade,\n private readonly router: Router\n ) { }\n\n protected abstract permissions: string[];\n\n public canActivate(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n route: ActivatedRouteSnapshot, //NOSONAR\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n state: RouterStateSnapshot //NOSONAR\n ): Observable<boolean> | boolean {\n return this.oidcFacade.waitForAuthenticationLoaded().pipe(\n switchMap(() => this.oidcUserFacade.hasPermissions(this.permissions)),\n tap((t) => {\n if (!t) {\n this.router.navigate(['oidc/access-denied'], {\n relativeTo: this.router.routerState.root,\n });\n }\n })\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["oidcActions.getOidcUser","oidcActions.onUserLoading","oidcActions.removeOidcUser","oidcActions.setHttpError","oidcActions.onUserMetadataLoaded","oidcActions.clearErrors","oidcActions.userDoneLoading","oidcActions.onAccessTokenExpiring","oidcActions.onAccessTokenExpired","oidcActions.onUserLoaded","oidcActions.onUserUnloaded","oidcActions.onUserSignedOut","oidcActions.signOutPopupError","oidcActions.signOutRedirectError","oidcActions.signOutRedirect","oidcActions.signOutPopup","oidcActions.userFound","oidcActions.onSignInPopup","oidcActions.onSignInRedirect","oidcActions.onSignInSilent","oidcActions.userExpired","oidcActions.onSilentRenewError","oidcActions.userDoneLoadingError","oidcActions.signInError","oidcActions.onSessionChanged","oidcActions.signInPopup","oidcActions.signInRedirect","oidcActions.signInSilent","switchMap","map","filter","oidcActions.oidcError","tap","catchError","i1","DOCUMENT"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imng-oidc-client",
3
- "version": "9.218.2",
3
+ "version": "9.220.3",
4
4
  "description": "Small library to facilitate the integration of the ng-oidc-client library with the Auth0 identity provider.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "*",
@@ -8,8 +8,8 @@
8
8
  "@angular/router": "*",
9
9
  "@ngrx/store": "*",
10
10
  "@ngrx/effects": "*",
11
- "imng-ngrx-utils": "9.218.2",
12
- "imng-nrsrx-client-utils": "9.218.2",
11
+ "imng-ngrx-utils": "9.220.3",
12
+ "imng-nrsrx-client-utils": "9.220.3",
13
13
  "oidc-client": "*",
14
14
  "rxjs": "*"
15
15
  },