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: "
|
|
19
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
30
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
31
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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":["
|
|
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: "
|
|
253
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
429
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
553
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
573
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
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: "
|
|
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: "
|
|
682
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
720
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
731
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
752
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
753
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
846
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
877
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
914
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
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.
|
|
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.
|
|
12
|
-
"imng-nrsrx-client-utils": "9.
|
|
11
|
+
"imng-ngrx-utils": "9.220.3",
|
|
12
|
+
"imng-nrsrx-client-utils": "9.220.3",
|
|
13
13
|
"oidc-client": "*",
|
|
14
14
|
"rxjs": "*"
|
|
15
15
|
},
|