imng-oidc-client 9.71.1 → 9.126.2
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.
|
@@ -15,10 +15,10 @@ class OidcMockFacade {
|
|
|
15
15
|
waitForAuthenticationLoaded() {
|
|
16
16
|
return of(true);
|
|
17
17
|
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
19
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcMockFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcMockFacade, providedIn: 'root' }); }
|
|
20
20
|
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcMockFacade, decorators: [{
|
|
22
22
|
type: Injectable,
|
|
23
23
|
args: [{
|
|
24
24
|
providedIn: 'root',
|
|
@@ -26,11 +26,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
26
26
|
}] });
|
|
27
27
|
|
|
28
28
|
class TestingModule {
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
30
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.
|
|
31
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: TestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
30
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: TestingModule, imports: [CommonModule] }); }
|
|
31
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: TestingModule, providers: [OidcMockFacade], imports: [CommonModule] }); }
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: TestingModule, decorators: [{
|
|
34
34
|
type: NgModule,
|
|
35
35
|
args: [{
|
|
36
36
|
imports: [CommonModule],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imng-oidc-client-testing.mjs","sources":["../../../../libs/imng-oidc-client/testing/src/lib/oidc-mock.facade.ts","../../../../libs/imng-oidc-client/testing/src/lib/testing.module.ts","../../../../libs/imng-oidc-client/testing/src/lib/provide-oidc-mock-facade.ts","../../../../libs/imng-oidc-client/testing/src/imng-oidc-client-testing.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcMockFacade {\n\n loggedIn$: Observable<boolean> = of(true);\n /**\n * Convenient function to wait for OIDC dependencies to be loaded.\n */\n public waitForAuthenticationLoaded(): Observable<boolean> {\n return of(true);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OidcMockFacade } from './oidc-mock.facade';\n\n@NgModule({\n imports: [CommonModule],\n providers: [OidcMockFacade],\n})\nexport class TestingModule {}\n","import { OidcFacade } from 'imng-oidc-client';\nimport { OidcMockFacade } from './oidc-mock.facade';\n\nexport function provideOidcMockFacade() {\n return {\n provide: OidcFacade,\n useValue: new OidcMockFacade(),\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA;MAOa,cAAc,CAAA;AAH3B,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,SAAS,GAAwB,EAAE,CAAC,IAAI,CAAC;AAO1C,IAAA;AANC;;AAEG;IACI,2BAA2B,GAAA;AAChC,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC;IACjB
|
|
1
|
+
{"version":3,"file":"imng-oidc-client-testing.mjs","sources":["../../../../libs/imng-oidc-client/testing/src/lib/oidc-mock.facade.ts","../../../../libs/imng-oidc-client/testing/src/lib/testing.module.ts","../../../../libs/imng-oidc-client/testing/src/lib/provide-oidc-mock-facade.ts","../../../../libs/imng-oidc-client/testing/src/imng-oidc-client-testing.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcMockFacade {\n\n loggedIn$: Observable<boolean> = of(true);\n /**\n * Convenient function to wait for OIDC dependencies to be loaded.\n */\n public waitForAuthenticationLoaded(): Observable<boolean> {\n return of(true);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OidcMockFacade } from './oidc-mock.facade';\n\n@NgModule({\n imports: [CommonModule],\n providers: [OidcMockFacade],\n})\nexport class TestingModule {}\n","import { OidcFacade } from 'imng-oidc-client';\nimport { OidcMockFacade } from './oidc-mock.facade';\n\nexport function provideOidcMockFacade() {\n return {\n provide: OidcFacade,\n useValue: new OidcMockFacade(),\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA;MAOa,cAAc,CAAA;AAH3B,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,SAAS,GAAwB,EAAE,CAAC,IAAI,CAAC;AAO1C,IAAA;AANC;;AAEG;IACI,2BAA2B,GAAA;AAChC,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC;IACjB;+GARW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCEY,aAAa,CAAA;+GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAHd,YAAY,CAAA,EAAA,CAAA,CAAA;AAGX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAAA,SAAA,EAFb,CAAC,cAAc,CAAC,YADjB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,SAAS,EAAE,CAAC,cAAc,CAAC;AAC5B,iBAAA;;;SCJe,qBAAqB,GAAA;IACnC,OAAO;AACL,QAAA,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,IAAI,cAAc,EAAE;KAC/B;AACH;;ACRA;;AAEG;;;;"}
|
|
@@ -32,7 +32,7 @@ const onSignInPopup = createPayloadAction('[Oidc] on SignInPopup');
|
|
|
32
32
|
const onSignInRedirect = createPayloadAction('[Oidc] on onSignInRedirect');
|
|
33
33
|
const onSignInSilent = createPayloadAction('[Oidc] on onSignInSilent');
|
|
34
34
|
const onUserLoaded = createPayloadAction('[Oidc] on user loaded');
|
|
35
|
-
const
|
|
35
|
+
const onUserLoadError = createPayloadAction('[Oidc] user load error');
|
|
36
36
|
const onUserUnloaded = createAction('[Oidc] on user unloaded');
|
|
37
37
|
const onUserSignedOut = createAction('[Oidc] on user signed out');
|
|
38
38
|
const onSilentRenewError = createPayloadAction('[Oidc] on silent renew error');
|
|
@@ -62,12 +62,12 @@ var oidc_actions = /*#__PURE__*/Object.freeze({
|
|
|
62
62
|
onSignInRedirect: onSignInRedirect,
|
|
63
63
|
onSignInSilent: onSignInSilent,
|
|
64
64
|
onSilentRenewError: onSilentRenewError,
|
|
65
|
+
onUserLoadError: onUserLoadError,
|
|
65
66
|
onUserLoaded: onUserLoaded,
|
|
66
67
|
onUserLoading: onUserLoading,
|
|
67
68
|
onUserMetadataLoaded: onUserMetadataLoaded,
|
|
68
69
|
onUserSignedOut: onUserSignedOut,
|
|
69
70
|
onUserUnloaded: onUserUnloaded,
|
|
70
|
-
onUserloadError: onUserloadError,
|
|
71
71
|
removeOidcUser: removeOidcUser,
|
|
72
72
|
setHttpError: setHttpError,
|
|
73
73
|
signInError: signInError,
|
|
@@ -249,10 +249,10 @@ class OidcUserFacade {
|
|
|
249
249
|
return this.permissions$.pipe(map((t) => -1 <
|
|
250
250
|
requiredPermissions.findIndex((f) => -1 < (t?.findIndex((i) => i === f) ?? -1))));
|
|
251
251
|
}
|
|
252
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
253
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
252
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcUserFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
253
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcUserFacade, providedIn: 'root' }); }
|
|
254
254
|
}
|
|
255
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcUserFacade, decorators: [{
|
|
256
256
|
type: Injectable,
|
|
257
257
|
args: [{
|
|
258
258
|
providedIn: 'root',
|
|
@@ -425,10 +425,10 @@ class OidcService {
|
|
|
425
425
|
localStorage.setItem(StorageKeys.OidcSettings, JSON.stringify(this._userManagerSettings));
|
|
426
426
|
}
|
|
427
427
|
}
|
|
428
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
429
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
428
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
429
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcService, providedIn: 'root' }); }
|
|
430
430
|
}
|
|
431
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
431
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcService, decorators: [{
|
|
432
432
|
type: Injectable,
|
|
433
433
|
args: [{
|
|
434
434
|
providedIn: 'root',
|
|
@@ -549,10 +549,10 @@ class OidcFacade {
|
|
|
549
549
|
this.registerEvent(OidcEvent.UserSignedOut, this.addUserSignedOut);
|
|
550
550
|
this.registerEvent(OidcEvent.UserSessionChanged, this.addUserSessionChanged);
|
|
551
551
|
}
|
|
552
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
553
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
552
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
553
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcFacade, providedIn: 'root' }); }
|
|
554
554
|
}
|
|
555
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
555
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcFacade, decorators: [{
|
|
556
556
|
type: Injectable,
|
|
557
557
|
args: [{
|
|
558
558
|
providedIn: 'root',
|
|
@@ -569,8 +569,8 @@ class IMNG_USER_SUPPORT {
|
|
|
569
569
|
value: x[propertyKey], //NOSONAR
|
|
570
570
|
}))));
|
|
571
571
|
}
|
|
572
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
573
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
572
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IMNG_USER_SUPPORT, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
573
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: IMNG_USER_SUPPORT, isStandalone: true, selector: "imng-support", ngImport: i0, template: `<div class="container pt-5 mt-5">
|
|
574
574
|
<div class="row h3 text-center">
|
|
575
575
|
<div class="col-md-12 text-center">OIDC Support</div>
|
|
576
576
|
</div>
|
|
@@ -620,7 +620,7 @@ class IMNG_USER_SUPPORT {
|
|
|
620
620
|
}
|
|
621
621
|
</div>`, isInline: true, dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }] }); }
|
|
622
622
|
}
|
|
623
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
623
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IMNG_USER_SUPPORT, decorators: [{
|
|
624
624
|
type: Component,
|
|
625
625
|
args: [{
|
|
626
626
|
selector: 'imng-support',
|
|
@@ -678,10 +678,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
678
678
|
}], ctorParameters: () => [] });
|
|
679
679
|
|
|
680
680
|
class IMNG_ACCESS_DENIED {
|
|
681
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
682
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.
|
|
681
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IMNG_ACCESS_DENIED, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
682
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.10", type: IMNG_ACCESS_DENIED, isStandalone: true, selector: "imng-access-denied", ngImport: i0, template: '<div class="p-5 m-5 text-danger">Access denied.</div>', isInline: true }); }
|
|
683
683
|
}
|
|
684
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
684
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IMNG_ACCESS_DENIED, decorators: [{
|
|
685
685
|
type: Component,
|
|
686
686
|
args: [{
|
|
687
687
|
selector: 'imng-access-denied',
|
|
@@ -716,10 +716,10 @@ class AuthGuard {
|
|
|
716
716
|
canActivateChild() {
|
|
717
717
|
return this.isLoggedInPipe$;
|
|
718
718
|
}
|
|
719
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
720
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
719
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: AuthGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
720
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: AuthGuard, providedIn: 'root' }); }
|
|
721
721
|
}
|
|
722
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
722
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: AuthGuard, decorators: [{
|
|
723
723
|
type: Injectable,
|
|
724
724
|
args: [{
|
|
725
725
|
providedIn: 'root',
|
|
@@ -727,12 +727,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
727
727
|
}] });
|
|
728
728
|
|
|
729
729
|
class IMNG_LOGOUT_SUCCESS {
|
|
730
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
731
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.
|
|
730
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IMNG_LOGOUT_SUCCESS, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
731
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.10", type: IMNG_LOGOUT_SUCCESS, isStandalone: true, selector: "imng-logout-success", ngImport: i0, template:
|
|
732
732
|
// eslint-disable-next-line max-len
|
|
733
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 }); }
|
|
734
734
|
}
|
|
735
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
735
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IMNG_LOGOUT_SUCCESS, decorators: [{
|
|
736
736
|
type: Component,
|
|
737
737
|
args: [{
|
|
738
738
|
selector: 'imng-logout-success',
|
|
@@ -748,11 +748,11 @@ const routes = [
|
|
|
748
748
|
{ path: 'logout', component: IMNG_LOGOUT_SUCCESS },
|
|
749
749
|
];
|
|
750
750
|
class ImngOidcClientRoutingModule {
|
|
751
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
752
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.
|
|
753
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.
|
|
751
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
752
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
|
|
753
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
|
|
754
754
|
}
|
|
755
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
755
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientRoutingModule, decorators: [{
|
|
756
756
|
type: NgModule,
|
|
757
757
|
args: [{
|
|
758
758
|
imports: [RouterModule.forChild(routes)],
|
|
@@ -842,10 +842,10 @@ class OidcEffects {
|
|
|
842
842
|
}
|
|
843
843
|
return user;
|
|
844
844
|
}
|
|
845
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
846
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
845
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
846
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcEffects, providedIn: 'root' }); }
|
|
847
847
|
}
|
|
848
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
848
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: OidcEffects, decorators: [{
|
|
849
849
|
type: Injectable,
|
|
850
850
|
args: [{
|
|
851
851
|
providedIn: 'root',
|
|
@@ -873,10 +873,10 @@ class TokenInterceptorService {
|
|
|
873
873
|
}));
|
|
874
874
|
}));
|
|
875
875
|
}
|
|
876
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
877
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
876
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: TokenInterceptorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
877
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: TokenInterceptorService, providedIn: 'root' }); }
|
|
878
878
|
}
|
|
879
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
879
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: TokenInterceptorService, decorators: [{
|
|
880
880
|
type: Injectable,
|
|
881
881
|
args: [{ providedIn: 'root' }]
|
|
882
882
|
}] });
|
|
@@ -904,18 +904,18 @@ function oidcConfigurator(oidcClientConfig, document) {
|
|
|
904
904
|
}
|
|
905
905
|
|
|
906
906
|
class ImngOidcClientModule {
|
|
907
|
-
static forRoot(
|
|
907
|
+
static forRoot(oidcOptions) {
|
|
908
908
|
return {
|
|
909
909
|
ngModule: ImngOidcClientModule,
|
|
910
|
-
providers: [{ provide: OIDC_CLIENT_CONFIG, useValue:
|
|
910
|
+
providers: [{ provide: OIDC_CLIENT_CONFIG, useValue: oidcOptions }],
|
|
911
911
|
};
|
|
912
912
|
}
|
|
913
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
914
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.
|
|
913
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
914
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientModule, imports: [CommonModule, i1$1.StoreFeatureModule, i2.EffectsFeatureModule, ImngOidcClientRoutingModule,
|
|
915
915
|
IMNG_ACCESS_DENIED,
|
|
916
916
|
IMNG_USER_SUPPORT,
|
|
917
917
|
IMNG_LOGOUT_SUCCESS], exports: [IMNG_ACCESS_DENIED, IMNG_USER_SUPPORT, IMNG_LOGOUT_SUCCESS] }); }
|
|
918
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.
|
|
918
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientModule, providers: [
|
|
919
919
|
{
|
|
920
920
|
provide: OIDC_LIBRARY_CONFIG,
|
|
921
921
|
useFactory: oidcConfigurator,
|
|
@@ -937,7 +937,7 @@ class ImngOidcClientModule {
|
|
|
937
937
|
EffectsModule.forFeature([OidcEffects]),
|
|
938
938
|
ImngOidcClientRoutingModule] }); }
|
|
939
939
|
}
|
|
940
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
940
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ImngOidcClientModule, decorators: [{
|
|
941
941
|
type: NgModule,
|
|
942
942
|
args: [{
|
|
943
943
|
imports: [
|
|
@@ -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 { RequestArugments } 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<RequestArugments>(\n '[Oidc] sign in popup'\n);\nexport const signInRedirect = createPayloadAction<RequestArugments | undefined>(\n '[Oidc] sign in redirect'\n);\nexport const signInError = createPayloadAction<Error>(\n '[Oidc] sign in popup error'\n);\nexport const signOutPopup = createPayloadAction<RequestArugments>(\n '[Oidc] sign out popup'\n);\nexport const signOutPopupError = createPayloadAction<string>(\n '[Oidc] sign out popup error'\n);\nexport const signOutRedirect = createPayloadAction<\n RequestArugments | undefined\n>('[Oidc] sign out redirect');\nexport const signOutRedirectError = createPayloadAction<string>(\n '[Oidc] sign out redirect error'\n);\nexport const signInSilent = createPayloadAction<RequestArugments>(\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 { RequestArugments } 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: RequestArugments): void {\n this.store.dispatch(oidcActions.signInPopup(args));\n }\n\n public signinRedirect(args?: RequestArugments): void {\n this.store.dispatch(oidcActions.signInRedirect(args));\n }\n\n public signinSilent(args: RequestArugments): void {\n this.store.dispatch(oidcActions.signInSilent(args));\n }\n\n public signoutPopup(args: RequestArugments): void {\n this.store.dispatch(oidcActions.signOutPopup(args));\n }\n\n public signoutRedirect(args?: RequestArugments): void {\n this.store.dispatch(oidcActions.signOutRedirect(args));\n }\n\n public getSigninUrl(args?: RequestArugments): Observable<SigninRequest> {\n return this.oidcService.getSigninUrl(args);\n }\n\n getSignoutUrl(args?: RequestArugments): 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 oidc0ptions: OidcClientConfig,\n ): ModuleWithProviders<ImngOidcClientModule> {\n return {\n ngModule: ImngOidcClientModule,\n providers: [{ provide: OIDC_CLIENT_CONFIG, useValue: oidc0ptions }],\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","/* 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":";;;;;;;;;;;;;;;;AAMO,MAAM,oBAAoB,GAAG,YAAY,CAC9C,oCAAoC,CACrC;AAED;AAEO,MAAM,WAAW,GAAG,YAAY,CAAC,sBAAsB,CAAC;AACxD,MAAM,cAAc,GAAG,YAAY,CAAC,yBAAyB,CAAC;AAC9D,MAAM,WAAW,GAAG,YAAY,CAAC,qBAAqB,CAAC;AACvD,MAAM,SAAS,GAAG,mBAAmB,CAAY,mBAAmB,CAAC;AACrE,MAAM,gBAAgB,GAAG,YAAY,CAAC,wBAAwB,CAAC;AAC/D,MAAM,oBAAoB,GAAG,YAAY,CAC9C,gCAAgC,CACjC;AACM,MAAM,qBAAqB,GAAG,YAAY,CAAC,sBAAsB,CAAC;AAClE,MAAM,aAAa,GAAG,YAAY,CAAC,qBAAqB,CAAC;AACzD,MAAM,eAAe,GAAG,YAAY,CAAC,0BAA0B,CAAC;AAChE,MAAM,oBAAoB,GAAG,mBAAmB,CACrD,gCAAgC,CACjC;AACM,MAAM,oBAAoB,GAAG,mBAAmB,CACrD,gCAAgC,CACjC;AAED;AACO,MAAM,aAAa,GAAG,mBAAmB,CAC9C,uBAAuB,CACxB;AACM,MAAM,gBAAgB,GAAG,mBAAmB,CACjD,4BAA4B,CAC7B;AACM,MAAM,cAAc,GAAG,mBAAmB,CAC/C,0BAA0B,CAC3B;AAEM,MAAM,YAAY,GAAG,mBAAmB,CAC7C,uBAAuB,CACxB;AACM,MAAM,eAAe,GAAG,mBAAmB,CAChD,wBAAwB,CACzB;AACM,MAAM,cAAc,GAAG,YAAY,CAAC,yBAAyB,CAAC;AAC9D,MAAM,eAAe,GAAG,YAAY,CAAC,2BAA2B,CAAC;AACjE,MAAM,kBAAkB,GAAG,mBAAmB,CACnD,8BAA8B,CAC/B;AACM,MAAM,WAAW,GAAG,mBAAmB,CAC5C,sBAAsB,CACvB;AACM,MAAM,cAAc,GAAG,mBAAmB,CAC/C,yBAAyB,CAC1B;AACM,MAAM,WAAW,GAAG,mBAAmB,CAC5C,4BAA4B,CAC7B;AACM,MAAM,YAAY,GAAG,mBAAmB,CAC7C,uBAAuB,CACxB;AACM,MAAM,iBAAiB,GAAG,mBAAmB,CAClD,6BAA6B,CAC9B;AACM,MAAM,eAAe,GAAG,mBAAmB,CAEhD,0BAA0B,CAAC;AACtB,MAAM,oBAAoB,GAAG,mBAAmB,CACrD,gCAAgC,CACjC;AACM,MAAM,YAAY,GAAG,mBAAmB,CAC7C,uBAAuB,CACxB;AACM,MAAM,SAAS,GAAG,mBAAmB,CAAQ,cAAc,CAAC;AAEnE;AACO,MAAM,YAAY,GAAG,mBAAmB,CAC7C,uBAAuB,CACxB;AACM,MAAM,WAAW,GAAG,YAAY,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClFxD,SAAU,UAAU,CAAO,QAAgB,EAAA;IAC/C,MAAM,MAAM,GAAG,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC;AACnC,IAAA,IAAI,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE;AACtB,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAS;IACjD;SAAO;AACL,QAAA,OAAO,IAAI;IACb;AACF;;ACFO,MAAM,gBAAgB,GAAG,MAAM;AAqB/B,MAAM,YAAY,GAAc;AACrC,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,MAAM,EAAE;AACN,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,SAAS,EAAE,SAAS;AACrB,KAAA;CACF;AAEM,MAAM,WAAW,GAAG,aAAa,CAAC;AACvC,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,OAAO,EAAE,aAAa,CAAC,YAAY,EACjC,EAAE,CAACA,WAAuB,EACxB,CAAC,KAAK,MAAiB;AACrB,QAAA,GAAG,KAAK;AACR,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,UAAU,EAAE,KAAK;AAClB,KAAA,CAAC,CAAC,EACL,EAAE,CAACC,aAAyB,EAC1B,CAAC,KAAK,MAAiB;AACrB,QAAA,GAAG,KAAK;AACR,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,UAAU,EAAE,KAAK;AAClB,KAAA,CAAC,CAAC,EACL,EAAE,CAACC,cAA0B,EAC3B,CAAC,KAAK,MAAiB;AACrB,QAAA,GAAG,KAAK;AACR,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,QAAQ,EAAE,SAAS;AACpB,KAAA,CAAC,CAAC,EACL,EAAE,CAACC,YAAwB,EACzB,CAAC,KAAK,EAAE,GAAG,MAAiB;AAC1B,QAAA,GAAG,KAAK;AACR,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,MAAM,EAAE;YACN,GAAG,KAAK,CAAC,MAAM;YACf,SAAS,EAAE,GAAG,CAAC,OAAO;AACvB,SAAA;AACF,KAAA,CAAC,CAAC,EACL,EAAE,CAACC,oBAAgC,EACjC,CAAC,KAAK,EAAE,YAAY,MAAiB;AACnC,QAAA,GAAG,KAAK;QACR,YAAY,EAAE,YAAY,CAAC,OAAO;AAClC,QAAA,SAAS,EAAE,KAAK;AACjB,KAAA,CAAC,CAAC,EACL,EAAE,CAACC,WAAuB,EACxB,CAAC,KAAK,MAAiB;QACrB,GAAG,KAAK,EAAE,MAAM,EAAE;AAChB,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,gBAAgB,EAAE,SAAS;AAC3B,YAAA,SAAS,EAAE;AACZ;AACF,KAAA,CAAC,CAAC,EACL,EAAE,CAACC,eAA2B,EAC5B,CAAC,KAAK,MAAiB;AACrB,QAAA,GAAG,KAAK;AACR,QAAA,SAAS,EAAE;AACZ,KAAA,CAAC,CAAC,EACL,EAAE,CAACC,qBAAiC,EAClC,CAAC,KAAK,MAAiB;AACrB,QAAA,GAAG,KAAK;AACR,QAAA,UAAU,EAAE,IAAI;AACjB,KAAA,CAAC,CAAC,EACL,EAAE,CAACC,oBAAgC,EACjC,CAAC,KAAK,MAAiB;AACrB,QAAA,GAAG,KAAK;AACR,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,SAAS,EAAE,IAAI;AAChB,KAAA,CAAC,CAAC,EACL,EAAE,CAACC,YAAwB,EACzB,CAAC,KAAK,MAAiB;AACrB,QAAA,GAAG,KAAK;AACR,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC,EACL,EAAE,CACAC,cAA0B,EAC1BC,eAA2B,EAC3BC,iBAA6B,EAC7BC,oBAAgC,EAChC,CAAC,KAAK,MAAiB;AACrB,QAAA,GAAG,KAAK;AACR,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,YAAY,EAAE,SAAS;AACxB,KAAA,CAAC,CACH,EACD,EAAE,CAACC,eAA2B,EAC5BC,YAAwB,EACxB,CAAC,KAAK,MAAiB;AACrB,QAAA,GAAG,KAAK;AACR,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,UAAU,EAAE,KAAK;AAClB,KAAA,CAAC,CAAC,EACL,EAAE,CACAC,SAAqB,EACrBC,aAAyB,EACzBC,gBAA4B,EAC5BC,cAA0B,EAC1B,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAiB;AAClC,QAAA,GAAG,KAAK;AACR,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,UAAU,CAAgB,OAAO,CAAC,YAAY,CAAC,EAAE,GAAG;QAC/D,WAAW,EAAE,UAAU,CAAwB,OAAO,CAAC,YAAY,CAAC,EAAE,WAAW;AAClF,KAAA,CAAC,CACH,EACD,EAAE,CAACC,WAAuB,EAAE,CAAC,KAAK,MAAiB;AACjD,QAAA,GAAG,KAAK;AACR,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,UAAU,EAAE,KAAK;AAClB,KAAA,CAAC,CAAC,EACH,EAAE,CAACC,kBAA8B,EAAE,CAAC,KAAK,EAAE,GAAG,MAAiB;AAC7D,QAAA,GAAG,KAAK;AACR,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,MAAM,EAAE;YACN,GAAG,KAAK,CAAC,MAAM;YACf,gBAAgB,EAAE,GAAG,CAAC,OAAO;AAC9B,SAAA;AACF,KAAA,CAAC,CAAC,EACH,EAAE,CACAC,oBAAgC,EAChCC,WAAuB,EACvB,CAAC,KAAK,EAAE,GAAG,MAAiB;AAC1B,QAAA,GAAG,KAAK;AACR,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,MAAM,EAAE;YACN,GAAG,KAAK,CAAC,MAAM;YACf,WAAW,EAAE,GAAG,CAAC,OAAO;AACzB,SAAA;AACF,KAAA,CAAC,CACH;AACJ,CAAA;;ACxKD;AAEA,MAAM,iBAAiB,GAAG,cAAc,CACtC,WAAW,CAAC,cAAc,EAC1B,CAAC,IAAgB,KAAK,CAAC,IAAI,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,YAAY,CACzE;AAED;AACA,MAAM,oBAAoB,GAAG,cAAc,CACzC,WAAW,CAAC,YAAY,EACxB,CAAC,MAAM,KAAK,MAAM,CACnB;AAED,MAAM,eAAe,GAAG,cAAc,CACpC,oBAAoB,EACpB,CAAC,KAAiB,KAChB,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,gBAAgB,CACvE;AAED,MAAM,iBAAiB,GAAG,cAAc,CACtC,oBAAoB,EACpB,CAAC,MAAkB,KAAK,MAAM,CAAC,WAAW,CAC3C;AAED,MAAM,sBAAsB,GAAG,cAAc,CAC3C,oBAAoB,EACpB,CAAC,MAAkB,KAAK,MAAM,CAAC,gBAAgB,CAChD;AAED,MAAM,eAAe,GAAG,cAAc,CACpC,oBAAoB,EACpB,CAAC,MAAkB,KAAK,MAAM,CAAC,SAAS,CACzC;AAED,MAAM,eAAe,GAAG,cAAc,CACpC,WAAW,CAAC,cAAc,EAC1B,CAAC,KAAiB,KAChB,KAAK,EAAE,UAAU,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,IAAI,CAC/D;AACM,MAAM,aAAa,GAAG;IAC3B,eAAe;IACf,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;IAChD,eAAe,EAAE,WAAW,CAAC,eAAe;IAC5C,cAAc,EAAE,WAAW,CAAC,cAAc;IAC1C,iBAAiB;IACjB,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;IAC9C,eAAe,EAAE,WAAW,CAAC,eAAe;IAC5C,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;IAC9C,sBAAsB;IACtB,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,eAAe,EAAE,WAAW,CAAC,eAAe;IAC5C,kBAAkB,EAAE,WAAW,CAAC,kBAAkB;;;AClDpD,MAAM,aAAa,GAAG,cAAc,CAClC,aAAa,CAAC,cAAc,EAC5B,CAAC,QAAoB,KAAK,QAAQ,EAAE,OAA0B,CAC/D;AAED,MAAM,YAAY,GAAG,cAAc,CACjC,aAAa,CAAC,cAAc,EAC5B,CAAC,QAAoB,KAAK,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,MAAM,CAC1E;AACD,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB;AAEpD,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC,OAAO,KAAK,OAAO,EAAE,KAAK,CAAC;AAE9E,MAAM,oBAAoB,GAAG,cAAc,CACzC,aAAa,EACb,CAAC,OAAO,KAAK,OAAO,EAAE,OAAO,CAC9B;AAEM,MAAM,iBAAiB,GAAG;AAC/B,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,iBAAiB,EAAE,oBAAoB;IACvC,cAAc;;;MCnBH,cAAc,CAAA;AAH3B,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAEtC,IAAA,CAAA,QAAQ,GAAgC,IAAI,CAAC,KAAK,CAAC,MAAM,CACvD,iBAAiB,CAAC,UAAU,CAC7B;QACD,IAAA,CAAA,OAAO,GAAqC,IAAI,CAAC,KAAK,CAAC,MAAM,CAC3D,iBAAiB,CAAC,SAAS,CAC5B;QACD,IAAA,CAAA,MAAM,GAAmC,IAAI,CAAC,KAAK,CAAC,MAAM,CACxD,iBAAiB,CAAC,QAAQ,CAC3B;QACD,IAAA,CAAA,eAAe,GAAmC,IAAI,CAAC,KAAK,CAAC,MAAM,CACjE,iBAAiB,CAAC,iBAAiB,CACpC;QACD,IAAA,CAAA,YAAY,GAAqC,IAAI,CAAC,KAAK,CAAC,MAAM,CAChE,iBAAiB,CAAC,cAAc,CACjC;AAeF,IAAA;AAbQ,IAAA,cAAc,CACnB,mBAAkC,EAAA;AAElC,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAC3B,GAAG,CACD,CAAC,CAAC,KACA,CAAC,CAAC;AACF,YAAA,mBAAmB,CAAC,SAAS,CAC3B,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACjD,CACJ,CACF;IACH;+GA/BW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ICTW;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,oBAAA,CAAA,GAAA,uBAA4C;AAC5C,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,wBAA8C;AAC9C,IAAA,SAAA,CAAA,kBAAA,CAAA,GAAA,qBAAwC;AACxC,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,eAA4B;AAC5B,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,iBAAgC;AAChC,IAAA,SAAA,CAAA,eAAA,CAAA,GAAA,kBAAkC;AAClC,IAAA,SAAA,CAAA,oBAAA,CAAA,GAAA,uBAA4C;AAC9C,CAAC,EARW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;IAUT;AAAZ,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,wBAAwC;AACxC,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,iBAAgC;AAClC,CAAC,EAHW,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;AAKhB,MAAM,gBAAgB,GAAG;;ACHzB,MAAM,mBAAmB,GAAG,IAAI,cAAc,CACnD,qBAAqB,CACtB;;ACdD;MAwBa,WAAW,CAAA;AAUtB,IAAA,WAAA,GAAA;AATiB,QAAA,IAAA,CAAA,iBAAiB,GAChC,MAAM,CAAoB,mBAAmB,CAAC;AAC/B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAO9C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG;AAC9C,QAAA,IAAI,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW;QAEvD,IAAI,WAAW,EAAE;AACf,YAAA,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK;AAC7B,YAAA,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;QACjC;AAEA,QAAA,IAAI,cAAc,EAAE,SAAS,IAAI,IAAI,EAAE;AACrC,YAAA,cAAc,GAAG;AACf,gBAAA,GAAG,cAAc;gBACjB,SAAS,EAAE,cAAc,CAAC,SAAS;aACpC;QACH;AACA,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,GAAG,cAAc,EAAE;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,WAAW,CAAC,cAAc,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC;IACnD;IAEO,eAAe,GAAA;QACpB,OAAO,IAAI,CAAC;aACT,GAAG,CAED,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,WAAW,IAAI,EAAE;aACvD,IAAI,CACH,SAAS,CAAC,CAAC,YAAY,KACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAU,YAAY,CAAC,iBAAiB,CAAC,CAC7D,CACF;IACL;IAEA,cAAc,GAAA;QACZ,OAAO,IAAI,CAAC,eAAe;IAC7B;IAEA,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,WAAW;IACzB;IAEA,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IAC7C;IAEA,cAAc,GAAA;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;IAChD;IAEA,iBAAiB,CACf,KAAgB,EAChB,QAAoC,EAAA;QAEpC,QAAQ,KAAK;YACX,KAAK,SAAS,CAAC,kBAAkB;gBAC/B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC;gBAC3D;YACF,KAAK,SAAS,CAAC,mBAAmB;gBAChC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC;gBAC5D;YACF,KAAK,SAAS,CAAC,gBAAgB;gBAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC;gBACzD;YACF,KAAK,SAAS,CAAC,UAAU;gBACvB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACnD;YACF,KAAK,SAAS,CAAC,kBAAkB;gBAC/B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC;gBAC3D;YACF,KAAK,SAAS,CAAC,aAAa;gBAC1B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;gBACtD;YACF,KAAK,SAAS,CAAC,YAAY;gBACzB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC;gBACrD;AACF,YAAA;gBACE;;IAEN;IAEA,eAAe,CACb,KAAgB,EAChB,QAAoC,EAAA;QAEpC,QAAQ,KAAK;YACX,KAAK,SAAS,CAAC,kBAAkB;gBAC/B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC;gBAC9D;YACF,KAAK,SAAS,CAAC,mBAAmB;gBAChC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,yBAAyB,CAAC,QAAQ,CAAC;gBAC/D;YACF,KAAK,SAAS,CAAC,gBAAgB;gBAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC;gBAC5D;YACF,KAAK,SAAS,CAAC,UAAU;gBACvB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;gBACtD;YACF,KAAK,SAAS,CAAC,kBAAkB;gBAC/B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC;gBAC9D;YACF,KAAK,SAAS,CAAC,aAAa;gBAC1B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC;gBACzD;YACF,KAAK,SAAS,CAAC,YAAY;gBACzB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC;gBACxD;AACF,YAAA;gBACE;;IAEN;AAEA,IAAA,WAAW,CAAC,IAAU,EAAA;;AAEpB,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;AAEjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC5D;AAEA,IAAA,cAAc,CAAC,IAAU,EAAA;;AAEvB,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;AAElC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC/D;AAEA,IAAA,YAAY,CAAC,IAAU,EAAA;;AAErB,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;AAEjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC7D;AAEA,IAAA,eAAe,CAAC,IAAU,EAAA;;AAExB,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAChE;AAEA,IAAA,YAAY,CAAC,IAAU,EAAA;;AAErB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC7D;IAEA,mBAAmB,GAAA;;QAEjB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC;IACzD;IAEA,sBAAsB,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC;IAC5D;IAEA,oBAAoB,GAAA;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,CAAC;IAC1D;IAEA,uBAAuB,GAAA;;QAErB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC;IAC7D;AAEA,IAAA,YAAY,CAAC,IAAU,EAAA;;QAErB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7D;AAEA,IAAA,aAAa,CAAC,IAAU,EAAA;;QAEtB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC9D;AAEQ,IAAA,sBAAsB,CAAC,eAAwB,EAAA;;AAErD,QAAA,IACE,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,EACtC;YACA,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,CAAA,EAAG,eAAe,CAAA,CAAE,CAAC;AACrE,YAAA,YAAY,CAAC,OAAO,CAClB,WAAW,CAAC,YAAY,EACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAC1C;QACH;IACF;+GAhMW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA;;4FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACvBD;MAsBa,UAAU,CAAA;AAIrB,IAAA,WAAA,GAAA;AAHiB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AACrB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAMlD,IAAA,CAAA,QAAQ,GAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,CAC/C,aAAa,CAAC,eAAe,CAC9B;QACD,IAAA,CAAA,SAAS,GAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,CAChD,aAAa,CAAC,gBAAgB,CAC/B;QACD,IAAA,CAAA,QAAQ,GAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,CAC/C,aAAa,CAAC,eAAe,CAC9B;QACD,IAAA,CAAA,SAAS,GAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,CAChD,aAAa,CAAC,gBAAgB,CAC/B;QACD,IAAA,CAAA,SAAS,GAAsC,IAAI,CAAC,KAAK,CAAC,MAAM,CAC9D,aAAa,CAAC,cAAc,CAC7B;QACD,IAAA,CAAA,YAAY,GAAmC,IAAI,CAAC,KAAK,CAAC,MAAM,CAC9D,aAAa,CAAC,iBAAiB,CAChC;QACD,IAAA,CAAA,UAAU,GAA8C,IAAI,CAAC,KAAK,CAAC,MAAM,CACvE,aAAa,CAAC,eAAe,CAC9B;QACD,IAAA,CAAA,YAAY,GAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,CACnD,aAAa,CAAC,iBAAiB,CAChC;QACD,IAAA,CAAA,iBAAiB,GAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,CACxD,aAAa,CAAC,sBAAsB,CACrC;QACD,IAAA,CAAA,UAAU,GAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,CACjD,aAAa,CAAC,eAAe,CAC9B;QACD,IAAA,CAAA,YAAY,GAAqC,IAAI,CAAC,KAAK,CAAC,MAAM,CAChE,aAAa,CAAC,iBAAiB,CAChC;QACD,IAAA,CAAA,UAAU,GAA4C,IAAI,CAAC,KAAK,CAAC,MAAM,CACrE,aAAa,CAAC,eAAe,CAC9B;QACD,IAAA,CAAA,UAAU,GAA4B,IAAI,CAAC,KAAK,CAAC,MAAM,CACrD,aAAa,CAAC,eAAe,CAC9B;QACD,IAAA,CAAA,aAAa,GAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,CACpD,aAAa,CAAC,kBAAkB,CACjC;QA5CC,IAAI,CAAC,qBAAqB,EAAE;IAC9B;;IA8CO,eAAe,GAAA;QACpB,IAAI,CAAC,KAAK,EAAE,QAAQ,CAACb,cAA0B,EAAE,CAAC;IACpD;IAEO,kBAAkB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACF,oBAAgC,EAAE,CAAC;QACzD;aAAO;YACL,cAAc,CAAC,KAAK,EAAE;YACtB,YAAY,CAAC,KAAK,EAAE;AACpB,YAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;QAC1B;IACF;IAEO,mBAAmB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACD,qBAAiC,EAAE,CAAC;QAC1D;aAAO;YACL,IAAI,CAAC,kBAAkB,EAAE;QAC3B;IACF;IAEO,mBAAmB,CAAC,GAAG,EAAa,EAAA;AACzC,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACc,kBAA8B,CAAC,EAAE,CAAC,CAAC,CAAU,CAAC,CAAC;IACrE;IAEO,aAAa,CAAC,GAAG,EAAa,EAAA;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACZ,YAAwB,CAAC,EAAE,CAAC,CAAC,CAAc,CAAC,CAAC;IACnE;IAEO,gBAAgB,GAAA;AACrB,QAAA,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE;QAClC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAACE,eAA2B,EAAE,CAAC;IACrD;;IAGO,qBAAqB,GAAA;QAC1B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACa,gBAA4B,EAAE,CAAC;IACrD;IAEO,WAAW,GAAA;QAChB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACnB,WAAuB,EAAE,CAAC;IAChD;;IAIO,WAAW,GAAA;QAChB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACL,WAAuB,EAAE,CAAC;IAChD;IAEO,cAAc,GAAA;QACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACE,cAA0B,EAAE,CAAC;IACnD;IAEO,cAAc,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;IAC1C;IAEO,aAAa,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;IACzC;AAEA;;AAEG;IACI,2BAA2B,GAAA;AAChC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,KAAK,KAAK,CAAC,EACtC,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC,MAAM,IAAI,CAAC,CAChB;IACH;AAEO,IAAA,WAAW,CAAC,IAAsB,EAAA;AACvC,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACuB,WAAuB,CAAC,IAAI,CAAC,CAAC;IACpD;AAEO,IAAA,cAAc,CAAC,IAAuB,EAAA;AAC3C,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,cAA0B,CAAC,IAAI,CAAC,CAAC;IACvD;AAEO,IAAA,YAAY,CAAC,IAAsB,EAAA;AACxC,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,YAAwB,CAAC,IAAI,CAAC,CAAC;IACrD;AAEO,IAAA,YAAY,CAAC,IAAsB,EAAA;AACxC,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACZ,YAAwB,CAAC,IAAI,CAAC,CAAC;IACrD;AAEO,IAAA,eAAe,CAAC,IAAuB,EAAA;AAC5C,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACD,eAA2B,CAAC,IAAI,CAAC,CAAC;IACxD;AAEO,IAAA,YAAY,CAAC,IAAuB,EAAA;QACzC,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC;IAC5C;AAEA,IAAA,aAAa,CAAC,IAAuB,EAAA;QACnC,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC;IAC7C;;IAGA,aAAa,CAAC,KAAgB,EAAE,QAAoC,EAAA;QAClE,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC;IACrD;IAEQ,qBAAqB,GAAA;;QAE3B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC;QACzE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAC3E,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAExE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC;QAChE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC;QAClE,IAAI,CAAC,aAAa,CAChB,SAAS,CAAC,kBAAkB,EAC5B,IAAI,CAAC,qBAAqB,CAC3B;IACH;+GA3KW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA;;4FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCuCY,iBAAiB,CAAA;AAK5B,IAAA,WAAA,GAAA;AAJS,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3B,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAI9C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CACpD,GAAG,CAAC,CAAC,CAAC,KACJ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,MAAM;AACnC,YAAA,GAAG,EAAE,WAAW;;AAEhB,YAAA,KAAK,EAAG,CAAS,CAAC,WAAW,CAAC;SAC/B,CAAC,CAAC,CACJ,CACF;IACH;+GAfW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlDlB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAjDG,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAmDR,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBArD7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;oBACxB,OAAO,EAAE,CAAC,SAAS,CAAC;AACpB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDH,QAAA,CAAA;AACR,iBAAA;;;MCrDY,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,8EAFnB,uDAAuD,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAEtD,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,uDAAuD;AAClE,iBAAA;;;MCIY,SAAS,CAAA;AAHtB,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;;AAEhD;;AAEG;QACa,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC;AACpC,aAAA,2BAA2B;AAC3B,aAAA,IAAI,CACH,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1C,GAAG,CAAC,CAAC,CAAC,KAAI;YACR,IAAI,CAAC,CAAC,EAAE;AACN,gBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;oBAC7B,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;AACpD,iBAAA,CAAC;YACJ;QACF,CAAC,CAAC,CACH;AAYJ,IAAA;;IATQ,WAAW,GAAA;;QAEhB,OAAO,IAAI,CAAC,eAAe;IAC7B;;IAGO,gBAAgB,GAAA;QACrB,OAAO,IAAI,CAAC,eAAe;IAC7B;+GA7BW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAT,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,cAFR,MAAM,EAAA,CAAA,CAAA;;4FAEP,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCAY,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA;;QAF5B,uKAAuK,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAE9J,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;oBAC/B,QAAQ;;oBAEN,uKAAuK;AAC1K,iBAAA;;;ACAD,MAAM,MAAM,GAAW;AACrB,IAAA,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE;AACjD,IAAA,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,kBAAkB,EAAE;AACxD,IAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,mBAAmB,EAAE;CACnD;MAMY,2BAA2B,CAAA;+GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,wCAF5B,YAAY,CAAA,EAAA,CAAA,CAAA;gHAEX,2BAA2B,EAAA,OAAA,EAAA,CAH5B,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC7B,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAEX,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;AAGM,MAAM,gBAAgB,GAAU;AACrC,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,SAAS,EAAE,iBAAiB;IAC5B,WAAW,EAAE,CAAC,SAAS,CAAC;;AAGnB,MAAM,qBAAqB,GAAU;AAC1C,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,SAAS,EAAE,kBAAkB;;AAGxB,MAAM,eAAe,GAAU;AACpC,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,SAAS,EAAE,mBAAmB;;AAGzB,MAAM,UAAU,GAAY;IACjC,gBAAgB;IAChB,qBAAqB;IACrB,eAAe;;;MCrBJ,WAAW,CAAA;AAHxB,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,QAAA,IAAA,CAAA,kBAAkB,GACjC,MAAM,CAAoB,mBAAmB,CAAC;AAC/B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAExC,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,MAAK;AAC/B,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CAACd,WAAuB,CAAC,EAC/B4B,WAAS,CAAC,MACR,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,CACjCC,KAAG,CAAC,CAAC,QAA0B,KAC7B,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CACxC,EACDC,QAAM,CAAC,CAAC,QAAmB,KAAK,CAAC,CAAC,QAAQ,CAAC,EAC3CD,KAAG,CAAC,CAAC,QAAmB,KAAKb,SAAqB,CAAC,QAAQ,CAAC,CAAC,EAC7D,UAAU,CAAC,CAAC,GAAG,KAAK,EAAE,CAACM,oBAAgC,CAAC,GAAG,CAAC,CAAC,CAAC,CAC/D,CACF,CACF;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,MAAK;AAC/B,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CAACN,SAAqB,CAAC,EAC7Bc,QAAM,CACJ,CAAC,SAAiC;;AAEhC,YAAA,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI;gBACxB,SAAS,CAAC,OAAO,CAAC,OAAO;AACzB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,oBAAoB;AAC3D,gBAAA,KAAK,CACR,EACDD,KAAG,CAAC,CAAC,SAAS,KAAKF,YAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAChE;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,eAAe,GAAG,YAAY,CAAC,MAAK;YAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CAACzB,cAA0B,CAAC,EAClC,SAAS,CAAC,MACR,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,CACpC2B,KAAG,CAAC,MAAMvB,eAA2B,EAAE,CAAC,EACxC,UAAU,CAAC,CAAC,GAAG,KAAK,EAAE,CAACyB,SAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CACpD,CACF,CACF;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,0BAA0B,GAAG,YAAY,CAAC,MAAK;AAC7C,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CAACf,SAAqB,CAAC,EAC7Bc,QAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,EACtDD,KAAG,CAAC,MAAMvB,eAA2B,EAAE,CAAC,CACzC;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,4BAA4B,GAAG,YAAY,CAAC,MAAK;YAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CAACU,SAAqB,CAAC,EAC7Bc,QAAM,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,IAAI,KAAK,CAAC,EAC9DF,WAAS,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,EACnDC,KAAG,CAAC,CAAC,QAAQ,KAAKzB,oBAAgC,CAAC,QAAQ,CAAC,CAAC,CAC9D;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,qBAAqB,GAAG,YAAY,CAAC,MAAK;YACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CAACI,oBAAgC,CAAC,EACxCqB,KAAG,CAAC,MAAM3B,cAA0B,EAAE,CAAC,CACxC;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,MAAK;AAC/B,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CAACuB,WAAuB,CAAC,EAC/B,SAAS,CAAC,CAAC,IAAI,KACb,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC7CI,KAAG,CAAC,CAAC,IAAI,KACPZ,aAAyB,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAC/D,EACD,UAAU,CAAC,CAAC,GAAG,KAAK,EAAE,CAACM,WAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,CACtD,CACF,CACF;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,eAAe,GAAG,YAAY,CAAC,MAAK;AAClC,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CAACG,cAA0B,CAAC,EAClC,SAAS,CAAC,CAAC,IAAI,KACb,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAChD,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,EAC1DG,KAAG,CAAC,CAAC,IAAI,KACPX,gBAA4B,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAClE,EACD,UAAU,CAAC,CAAC,GAAG,KAAK,EAAE,CAACK,WAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,CACtD,CACF,CACF;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,aAAa,GAAG,YAAY,CAAC,MAAK;AAChC,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CAACI,YAAwB,CAAC,EAChC,SAAS,CAAC,CAAC,IAAI,KACb,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9CE,KAAG,CAAC,CAAC,IAAI,KACPV,cAA0B,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAChE,EACD,UAAU,CAAC,CAAC,GAAG,KAAK,EAAE,CAACE,kBAA8B,CAAC,GAAG,CAAC,CAAC,CAAC,CAC7D,CACF,CACF;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,aAAa,GAAG,YAAY,CAAC,MAAK;AAChC,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CAACN,YAAwB,CAAC,EAChC,SAAS,CAAC,CAAC,IAAI,KACb,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9Cc,KAAG,CAAC,MAAMlB,eAA2B,EAAE,CAAC,EACxC,UAAU,CAAC,CAAC,GAAG,KAAK,EAAE,CAACC,iBAA6B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CACpE,CACF,CACF;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,gBAAgB,GAAG,YAAY,CAAC,MAAK;AACnC,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CAACE,eAA2B,CAAC,EACnC,SAAS,CAAC,CAAC,IAAI,KACb,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CACjDe,KAAG,CAAC,MAAMlB,eAA2B,EAAE,CAAC,EACxC,UAAU,CAAC,CAAC,GAAG,KACb,EAAE,CAACE,oBAAgC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAClD,CACF,CACF,CACF;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,gBAAgB,GAAG,YAAY,CAC7B,MAAK;YACH,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CACJF,eAA2B,EAC3BC,iBAA6B,EAC7BC,oBAAgC,CACjC,EACDmB,KAAG,CAAC,MAAK;gBACP,YAAY,CAAC,KAAK,EAAE;gBACpB,cAAc,CAAC,KAAK,EAAE;gBACtB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC;YACvD,CAAC,CAAC,CACH;AACH,QAAA,CAAC,EACD,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB;AAeF,IAAA;IAbC,iBAAiB,GAAA;AACf,QAAA,OAAOhC,WAAuB,EAAE;IAClC;AAEA,IAAA,wBAAwB,CAAC,IAAsB,EAAA;AAC7C,QAAA,IAAI,IAAI,EAAE,eAAe,EAAE;AACzB,YAAA,IAAI,GAAG;AACL,gBAAA,GAAG,IAAI;AACP,gBAAA,eAAe,EAAE,SAAS;aAC3B;QACH;AACA,QAAA,OAAO,IAAiB;IAC1B;+GA7KW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA;;4FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCqBY,kBAAkB,GAAG,IAAI,cAAc,CAClD,oBAAoB;;MCvBT,uBAAuB,CAAA;AADpC,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAyBvC,IAAA;IAvBC,SAAS,CACP,GAAyB,EACzB,IAAiB,EAAA;QAEjB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAC5D,KAAK,EAAE,EACP,QAAQ,CAAC,CAAC,WAAW,KAAI;YACvB,IAAI,WAAW,EAAE;AACf,gBAAA,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;AACd,oBAAA,UAAU,EAAE,EAAE,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,EAAE,EAAE;AACvD,iBAAA,CAAC;YACJ;AACA,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1BiC,YAAU,CAAC,CAAC,GAAU,KAAI;AACxB,gBAAA,IAAI,GAAG,YAAY,iBAAiB,EAAE;AACpC,oBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC9B,YAAwB,CAAC,GAAG,CAAC,CAAC;gBACpD;AACA,gBAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC;YAC9B,CAAC,CAAC,CACH;QACH,CAAC,CAAC,CACH;IACH;+GAzBW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cADV,MAAM,EAAA,CAAA,CAAA;;4FACnB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACV5B,SAAU,gBAAgB,CAC9B,gBAAkC,EAClC,QAAkB,EAAA;IAElB,OAAO;AACL,QAAA,WAAW,EAAE;AACX,YAAA,GAAG,gBAAgB;AACnB,YAAA,gBAAgB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE;AACzD,YAAA,YAAY,EAAE,CAAA,EAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAA,cAAA,CAAgB;AACzD,YAAA,aAAa,EAAE,gBAAgB,CAAC,aAAa,IAAI,gBAAgB;AACjE,YAAA,wBAAwB,EAAE,CAAA,EAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAA,sBAAA,CAAwB;AAC7E,YAAA,mBAAmB,EAAE,CAAA,EAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAA,oBAAA,CAAsB;AACtE,YAAA,oBAAoB,EAAE,iBAAiB,CACrC,gBAAgB,CAAC,oBAAoB;AAErC,kBAAE;kBACA,gBAAgB,CAAC,oBAAoB;YACzC,WAAW,EACT,gBAAgB,CAAC,WAAW;gBAC5B,CAAA,EAAG,gBAAgB,CAAC,SAAS,CAAA,iCAAA,CAAmC;AACnE,SAAA;QACD,eAAe,EAAE,gBAAgB,CAAC,eAAe;AACjD,QAAA,eAAe,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,eAAe;AACjE,cAAE;cACC,gBAAgB,CAAC,eAA2B;KAClD;AACH;;MC2Ba,oBAAoB,CAAA;IAC/B,OAAO,OAAO,CACZ,WAA6B,EAAA;QAE7B,OAAO;AACL,YAAA,QAAQ,EAAE,oBAAoB;YAC9B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;SACpE;IACH;+GARW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAApB,oBAAoB,EAAA,OAAA,EAAA,CA5B7B,YAAY,EAAA+B,IAAA,CAAA,kBAAA,EAAA,EAAA,CAAA,oBAAA,EAGZ,2BAA2B;YAC3B,kBAAkB;YAClB,iBAAiB;AACjB,YAAA,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAEX,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAoBzD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,SAAA,EAnBpB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,UAAU,EAAE,gBAAgB;AAC5B,gBAAA,IAAI,EAAE,CAAC,kBAAkB,EAAEC,UAAQ,CAAC;AACrC,aAAA;YACD,WAAW;YACX,UAAU;YACV,cAAc;YACd,SAAS;YACT,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;AAC3C,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,QAAQ,EAAE,uBAAuB;AACjC,gBAAA,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,CAAC,KAAK,CAAC;AACd,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CA1BC,YAAY;AACZ,YAAA,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC;AACnC,YAAA,aAAa,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;YACvC,2BAA2B,CAAA,EAAA,CAAA,CAAA;;4FAyBlB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA9BhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;AACZ,wBAAA,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC;AACnC,wBAAA,aAAa,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;wBACvC,2BAA2B;wBAC3B,kBAAkB;wBAClB,iBAAiB;wBACjB,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;AACrE,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,UAAU,EAAE,gBAAgB;AAC5B,4BAAA,IAAI,EAAE,CAAC,kBAAkB,EAAEA,UAAQ,CAAC;AACrC,yBAAA;wBACD,WAAW;wBACX,UAAU;wBACV,cAAc;wBACd,SAAS;wBACT,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;AAC3C,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,QAAQ,EAAE,uBAAuB;AACjC,4BAAA,KAAK,EAAE,IAAI;4BACX,IAAI,EAAE,CAAC,KAAK,CAAC;AACd,yBAAA;AACF,qBAAA;AACF,iBAAA;;;MClDqB,gBAAgB,CAAA;AACpC,IAAA,WAAA,CACmB,UAAsB,EACtB,cAA8B,EAC9B,MAAc,EAAA;QAFd,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,MAAM,GAAN,MAAM;IACrB;IAIG,WAAW;;AAEhB,IAAA,KAA6B;;AAE7B,IAAA,KAA0B;;AAE1B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,IAAI,CACvD,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EACrE,GAAG,CAAC,CAAC,CAAC,KAAI;YACR,IAAI,CAAC,CAAC,EAAE;gBACN,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE;AAC3C,oBAAA,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI;AACzC,iBAAA,CAAC;YACJ;QACF,CAAC,CAAC,CACH;IACH;AACD;;AChCD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "imng-oidc-client",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.126.2",
|
|
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.126.2",
|
|
12
|
+
"imng-nrsrx-client-utils": "9.126.2",
|
|
13
13
|
"oidc-client": "*",
|
|
14
14
|
"rxjs": "*"
|
|
15
15
|
},
|
|
@@ -48,5 +48,6 @@
|
|
|
48
48
|
"default": "./fesm2022/imng-oidc-client-testing.mjs"
|
|
49
49
|
}
|
|
50
50
|
},
|
|
51
|
-
"sideEffects": false
|
|
51
|
+
"sideEffects": false,
|
|
52
|
+
"type": "module"
|
|
52
53
|
}
|
|
@@ -43,7 +43,7 @@ declare class IMNG_ACCESS_DENIED {
|
|
|
43
43
|
static ɵcmp: i0.ɵɵComponentDeclaration<IMNG_ACCESS_DENIED, "imng-access-denied", never, {}, {}, never, never, true, never>;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
interface
|
|
46
|
+
interface RequestArguments {
|
|
47
47
|
url?: string;
|
|
48
48
|
client_id?: string;
|
|
49
49
|
redirect_uri?: string;
|
|
@@ -130,13 +130,13 @@ declare class OidcFacade {
|
|
|
130
130
|
* Convenient function to wait for OIDC dependencies to be loaded.
|
|
131
131
|
*/
|
|
132
132
|
waitForAuthenticationLoaded(): Observable<boolean>;
|
|
133
|
-
signinPopup(args:
|
|
134
|
-
signinRedirect(args?:
|
|
135
|
-
signinSilent(args:
|
|
136
|
-
signoutPopup(args:
|
|
137
|
-
signoutRedirect(args?:
|
|
138
|
-
getSigninUrl(args?:
|
|
139
|
-
getSignoutUrl(args?:
|
|
133
|
+
signinPopup(args: RequestArguments): void;
|
|
134
|
+
signinRedirect(args?: RequestArguments): void;
|
|
135
|
+
signinSilent(args: RequestArguments): void;
|
|
136
|
+
signoutPopup(args: RequestArguments): void;
|
|
137
|
+
signoutRedirect(args?: RequestArguments): void;
|
|
138
|
+
getSigninUrl(args?: RequestArguments): Observable<SigninRequest>;
|
|
139
|
+
getSignoutUrl(args?: RequestArguments): Observable<SignoutRequest>;
|
|
140
140
|
registerEvent(event: OidcEvent, callback: (...ev: unknown[]) => void): void;
|
|
141
141
|
private registerDefaultEvents;
|
|
142
142
|
static ɵfac: i0.ɵɵFactoryDeclaration<OidcFacade, never>;
|
|
@@ -178,7 +178,7 @@ declare class IMNG_LOGOUT_SUCCESS {
|
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
declare class ImngOidcClientModule {
|
|
181
|
-
static forRoot(
|
|
181
|
+
static forRoot(oidcOptions: OidcClientConfig): ModuleWithProviders<ImngOidcClientModule>;
|
|
182
182
|
static ɵfac: i0.ɵɵFactoryDeclaration<ImngOidcClientModule, never>;
|
|
183
183
|
static ɵmod: i0.ɵɵNgModuleDeclaration<ImngOidcClientModule, never, [typeof i1$1.CommonModule, typeof _ngrx_store.StoreFeatureModule, typeof _ngrx_effects.EffectsFeatureModule, typeof ImngOidcClientRoutingModule, typeof IMNG_ACCESS_DENIED, typeof IMNG_USER_SUPPORT, typeof IMNG_LOGOUT_SUCCESS], [typeof IMNG_ACCESS_DENIED, typeof IMNG_USER_SUPPORT, typeof IMNG_LOGOUT_SUCCESS]>;
|
|
184
184
|
static ɵinj: i0.ɵɵInjectorDeclaration<ImngOidcClientModule>;
|
|
@@ -222,7 +222,7 @@ declare const onSignInSilent: _ngrx_store.FunctionWithParametersType<[payload: I
|
|
|
222
222
|
declare const onUserLoaded: _ngrx_store.FunctionWithParametersType<[payload: IOidcUser], {
|
|
223
223
|
payload: IOidcUser;
|
|
224
224
|
} & _ngrx_store.Action<string>> & _ngrx_store.Action<string>;
|
|
225
|
-
declare const
|
|
225
|
+
declare const onUserLoadError: _ngrx_store.FunctionWithParametersType<[payload: Error], {
|
|
226
226
|
payload: Error;
|
|
227
227
|
} & _ngrx_store.Action<string>> & _ngrx_store.Action<string>;
|
|
228
228
|
declare const onUserUnloaded: _ngrx_store.ActionCreator<"[Oidc] on user unloaded", () => _ngrx_store.Action<"[Oidc] on user unloaded">>;
|
|
@@ -230,29 +230,29 @@ declare const onUserSignedOut: _ngrx_store.ActionCreator<"[Oidc] on user signed
|
|
|
230
230
|
declare const onSilentRenewError: _ngrx_store.FunctionWithParametersType<[payload: Error], {
|
|
231
231
|
payload: Error;
|
|
232
232
|
} & _ngrx_store.Action<string>> & _ngrx_store.Action<string>;
|
|
233
|
-
declare const signInPopup: _ngrx_store.FunctionWithParametersType<[payload:
|
|
234
|
-
payload:
|
|
233
|
+
declare const signInPopup: _ngrx_store.FunctionWithParametersType<[payload: RequestArguments], {
|
|
234
|
+
payload: RequestArguments;
|
|
235
235
|
} & _ngrx_store.Action<string>> & _ngrx_store.Action<string>;
|
|
236
|
-
declare const signInRedirect: _ngrx_store.FunctionWithParametersType<[payload:
|
|
237
|
-
payload:
|
|
236
|
+
declare const signInRedirect: _ngrx_store.FunctionWithParametersType<[payload: RequestArguments | undefined], {
|
|
237
|
+
payload: RequestArguments | undefined;
|
|
238
238
|
} & _ngrx_store.Action<string>> & _ngrx_store.Action<string>;
|
|
239
239
|
declare const signInError: _ngrx_store.FunctionWithParametersType<[payload: Error], {
|
|
240
240
|
payload: Error;
|
|
241
241
|
} & _ngrx_store.Action<string>> & _ngrx_store.Action<string>;
|
|
242
|
-
declare const signOutPopup: _ngrx_store.FunctionWithParametersType<[payload:
|
|
243
|
-
payload:
|
|
242
|
+
declare const signOutPopup: _ngrx_store.FunctionWithParametersType<[payload: RequestArguments], {
|
|
243
|
+
payload: RequestArguments;
|
|
244
244
|
} & _ngrx_store.Action<string>> & _ngrx_store.Action<string>;
|
|
245
245
|
declare const signOutPopupError: _ngrx_store.FunctionWithParametersType<[payload: string], {
|
|
246
246
|
payload: string;
|
|
247
247
|
} & _ngrx_store.Action<string>> & _ngrx_store.Action<string>;
|
|
248
|
-
declare const signOutRedirect: _ngrx_store.FunctionWithParametersType<[payload:
|
|
249
|
-
payload:
|
|
248
|
+
declare const signOutRedirect: _ngrx_store.FunctionWithParametersType<[payload: RequestArguments | undefined], {
|
|
249
|
+
payload: RequestArguments | undefined;
|
|
250
250
|
} & _ngrx_store.Action<string>> & _ngrx_store.Action<string>;
|
|
251
251
|
declare const signOutRedirectError: _ngrx_store.FunctionWithParametersType<[payload: string], {
|
|
252
252
|
payload: string;
|
|
253
253
|
} & _ngrx_store.Action<string>> & _ngrx_store.Action<string>;
|
|
254
|
-
declare const signInSilent: _ngrx_store.FunctionWithParametersType<[payload:
|
|
255
|
-
payload:
|
|
254
|
+
declare const signInSilent: _ngrx_store.FunctionWithParametersType<[payload: RequestArguments], {
|
|
255
|
+
payload: RequestArguments;
|
|
256
256
|
} & _ngrx_store.Action<string>> & _ngrx_store.Action<string>;
|
|
257
257
|
declare const oidcError: _ngrx_store.FunctionWithParametersType<[payload: Error], {
|
|
258
258
|
payload: Error;
|
|
@@ -273,12 +273,12 @@ declare const oidc_actions_d_onSignInPopup: typeof onSignInPopup;
|
|
|
273
273
|
declare const oidc_actions_d_onSignInRedirect: typeof onSignInRedirect;
|
|
274
274
|
declare const oidc_actions_d_onSignInSilent: typeof onSignInSilent;
|
|
275
275
|
declare const oidc_actions_d_onSilentRenewError: typeof onSilentRenewError;
|
|
276
|
+
declare const oidc_actions_d_onUserLoadError: typeof onUserLoadError;
|
|
276
277
|
declare const oidc_actions_d_onUserLoaded: typeof onUserLoaded;
|
|
277
278
|
declare const oidc_actions_d_onUserLoading: typeof onUserLoading;
|
|
278
279
|
declare const oidc_actions_d_onUserMetadataLoaded: typeof onUserMetadataLoaded;
|
|
279
280
|
declare const oidc_actions_d_onUserSignedOut: typeof onUserSignedOut;
|
|
280
281
|
declare const oidc_actions_d_onUserUnloaded: typeof onUserUnloaded;
|
|
281
|
-
declare const oidc_actions_d_onUserloadError: typeof onUserloadError;
|
|
282
282
|
declare const oidc_actions_d_removeOidcUser: typeof removeOidcUser;
|
|
283
283
|
declare const oidc_actions_d_setHttpError: typeof setHttpError;
|
|
284
284
|
declare const oidc_actions_d_signInError: typeof signInError;
|
|
@@ -306,12 +306,12 @@ declare namespace oidc_actions_d {
|
|
|
306
306
|
oidc_actions_d_onSignInRedirect as onSignInRedirect,
|
|
307
307
|
oidc_actions_d_onSignInSilent as onSignInSilent,
|
|
308
308
|
oidc_actions_d_onSilentRenewError as onSilentRenewError,
|
|
309
|
+
oidc_actions_d_onUserLoadError as onUserLoadError,
|
|
309
310
|
oidc_actions_d_onUserLoaded as onUserLoaded,
|
|
310
311
|
oidc_actions_d_onUserLoading as onUserLoading,
|
|
311
312
|
oidc_actions_d_onUserMetadataLoaded as onUserMetadataLoaded,
|
|
312
313
|
oidc_actions_d_onUserSignedOut as onUserSignedOut,
|
|
313
314
|
oidc_actions_d_onUserUnloaded as onUserUnloaded,
|
|
314
|
-
oidc_actions_d_onUserloadError as onUserloadError,
|
|
315
315
|
oidc_actions_d_removeOidcUser as removeOidcUser,
|
|
316
316
|
oidc_actions_d_setHttpError as setHttpError,
|
|
317
317
|
oidc_actions_d_signInError as signInError,
|
|
@@ -340,7 +340,7 @@ declare class OidcEffects implements OnInitEffects {
|
|
|
340
340
|
payload: Error;
|
|
341
341
|
} & Action<string>)> & _ngrx_effects.CreateEffectMetadata;
|
|
342
342
|
silentRenew$: rxjs.Observable<{
|
|
343
|
-
payload: imng_oidc_client.
|
|
343
|
+
payload: imng_oidc_client.RequestArguments;
|
|
344
344
|
} & Action<string>> & _ngrx_effects.CreateEffectMetadata;
|
|
345
345
|
removeOidcUser$: rxjs.Observable<Action<"[Oidc] user done loading"> | ({
|
|
346
346
|
payload: Error;
|
|
@@ -504,4 +504,4 @@ declare abstract class PermissionsGuard {
|
|
|
504
504
|
}
|
|
505
505
|
|
|
506
506
|
export { ACTION_NO_ACTION, AuthGuard, IMNG_ACCESS_DENIED, IMNG_LOGOUT_SUCCESS, IMNG_USER_SUPPORT, ImngOidcClientModule, ImngOidcClientRoutingModule, OIDC_CLIENT_CONFIG, OidcEffects, OidcEvent, OidcFacade, OidcService, OidcUserFacade, PermissionsGuard, StorageKeys, TokenInterceptorService, jwtDecoder, oidcAccessDeniedRoute, oidc_actions_d as oidcActionTypes, oidcConfigurator, oidcFeature, oidcLogoutRoute, oidcRoutes, oidcSelectors, oidcSupportRoute, oidcUserSelectors };
|
|
507
|
-
export type { ErrorState, IOidcUser, OidcClientConfig, OidcState, OidcUserProfile,
|
|
507
|
+
export type { ErrorState, IOidcUser, OidcClientConfig, OidcState, OidcUserProfile, RequestArguments };
|