imng-oidc-client 4.102.10

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.
Files changed (62) hide show
  1. package/README.md +50 -0
  2. package/esm2020/imng-oidc-client.mjs +5 -0
  3. package/esm2020/index.mjs +24 -0
  4. package/esm2020/lib/+state/oidc-user.facade.mjs +28 -0
  5. package/esm2020/lib/+state/oidc-user.selectors.mjs +13 -0
  6. package/esm2020/lib/+state/oidc.actions.mjs +37 -0
  7. package/esm2020/lib/+state/oidc.effects.mjs +66 -0
  8. package/esm2020/lib/+state/oidc.facade.mjs +136 -0
  9. package/esm2020/lib/+state/oidc.reducer.mjs +93 -0
  10. package/esm2020/lib/+state/oidc.selectors.mjs +40 -0
  11. package/esm2020/lib/components/access-denied.component.mjs +14 -0
  12. package/esm2020/lib/components/logout-success.component.mjs +18 -0
  13. package/esm2020/lib/img-oidc-client-routing.module.mjs +44 -0
  14. package/esm2020/lib/imng-oidc-client.module.mjs +96 -0
  15. package/esm2020/lib/models/arguments.model.mjs +2 -0
  16. package/esm2020/lib/models/constants.mjs +17 -0
  17. package/esm2020/lib/models/oidc-client-config.mjs +3 -0
  18. package/esm2020/lib/models/oidc-library-config.mjs +3 -0
  19. package/esm2020/lib/models/oidc-user-profile.mjs +2 -0
  20. package/esm2020/lib/models/oidc-user.mjs +2 -0
  21. package/esm2020/lib/services/auth-guard.mjs +40 -0
  22. package/esm2020/lib/services/oidc.service.mjs +166 -0
  23. package/esm2020/lib/services/permissions.guard.mjs +22 -0
  24. package/esm2020/lib/services/token-interceptor.service.mjs +35 -0
  25. package/esm2020/lib/support/support.component.mjs +85 -0
  26. package/esm2020/lib/util/jwt-decoder.mjs +11 -0
  27. package/esm2020/lib/util/oidc-client-configurator.mjs +24 -0
  28. package/fesm2015/imng-oidc-client.mjs +844 -0
  29. package/fesm2015/imng-oidc-client.mjs.map +1 -0
  30. package/fesm2020/imng-oidc-client.mjs +907 -0
  31. package/fesm2020/imng-oidc-client.mjs.map +1 -0
  32. package/imng-oidc-client.d.ts +5 -0
  33. package/index.d.ts +23 -0
  34. package/lib/+state/oidc-user.facade.d.ts +16 -0
  35. package/lib/+state/oidc-user.selectors.d.ts +7 -0
  36. package/lib/+state/oidc.actions.d.ts +72 -0
  37. package/lib/+state/oidc.effects.d.ts +58 -0
  38. package/lib/+state/oidc.facade.d.ts +56 -0
  39. package/lib/+state/oidc.reducer.d.ts +22 -0
  40. package/lib/+state/oidc.selectors.d.ts +20 -0
  41. package/lib/components/access-denied.component.d.ts +5 -0
  42. package/lib/components/logout-success.component.d.ts +5 -0
  43. package/lib/img-oidc-client-routing.module.d.ts +12 -0
  44. package/lib/imng-oidc-client.module.d.ts +17 -0
  45. package/lib/models/arguments.model.d.ts +21 -0
  46. package/lib/models/constants.d.ts +14 -0
  47. package/lib/models/oidc-client-config.d.ts +12 -0
  48. package/lib/models/oidc-library-config.d.ts +12 -0
  49. package/lib/models/oidc-user-profile.d.ts +4 -0
  50. package/lib/models/oidc-user.d.ts +15 -0
  51. package/lib/services/auth-guard.d.ts +14 -0
  52. package/lib/services/oidc.service.d.ts +37 -0
  53. package/lib/services/permissions.guard.d.ts +12 -0
  54. package/lib/services/token-interceptor.service.d.ts +12 -0
  55. package/lib/support/support.component.d.ts +15 -0
  56. package/lib/util/jwt-decoder.d.ts +1 -0
  57. package/lib/util/oidc-client-configurator.d.ts +3 -0
  58. package/package.json +54 -0
  59. package/src/assets/callback.html +44 -0
  60. package/src/assets/oidc-client.rsa256.slim.min.js +3 -0
  61. package/src/assets/renew-callback.html +18 -0
  62. package/src/assets/signout-callback.html +29 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imng-oidc-client.mjs","sources":["../../../../libs/imng-oidc-client/src/lib/+state/oidc.selectors.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.actions.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.facade.ts","../../../../libs/imng-oidc-client/src/lib/services/auth-guard.ts","../../../../libs/imng-oidc-client/src/lib/util/oidc-client-configurator.ts","../../../../libs/imng-oidc-client/src/lib/models/oidc-client-config.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/support/support.component.ts","../../../../libs/imng-oidc-client/src/lib/components/access-denied.component.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/util/jwt-decoder.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.reducer.ts","../../../../libs/imng-oidc-client/src/lib/services/token-interceptor.service.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 {\n createFeatureSelector,\n createSelector,\n MemoizedSelector,\n} from '@ngrx/store';\nimport { ErrorState, OidcState } from './oidc.reducer';\nimport { IOidcUser } from '../models/oidc-user';\n// State Selectors\n\nconst selectOidcState = createFeatureSelector<OidcState>('oidc');\nconst getOidcLoading = createSelector(\n selectOidcState,\n (state: OidcState) => state.loading\n);\nconst getOidcIdentity = createSelector(\n selectOidcState,\n (state: OidcState) => state.identity\n);\nconst getAccessToken = createSelector(\n getOidcIdentity,\n (user?: IOidcUser) => (user || { access_token: undefined }).access_token\n);\nconst isIdentityExpiring = createSelector(\n selectOidcState,\n (state: OidcState) => state.expiring\n);\n\nconst isIdentityExpired = createSelector(\n selectOidcState,\n (state: OidcState) => state.expired\n);\nconst isLoggedIn = createSelector(\n selectOidcState,\n (state: OidcState) => state.loggedIn\n);\n\n// errors\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst selectOidcErrorState: MemoizedSelector<{}, ErrorState> = createSelector(\n selectOidcState,\n (state: OidcState) => state.errors\n);\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst hasErrors: MemoizedSelector<{}, boolean> = createSelector(\n selectOidcErrorState,\n (state: ErrorState) =>\n !!state.httpError || !!state.signInError || !!state.silentRenewError\n);\n\nconst getSignInError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.signInError\n);\n\nconst getSilentRenewError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.silentRenewError\n);\n\nconst getHttpError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.httpError\n);\nconst getPermissions = createSelector(\n selectOidcState,\n (state: OidcState) => state.permissions\n);\nconst getAudiences = createSelector(\n selectOidcState,\n (state: OidcState) => state.audiences\n);\nconst getExpiresAt = createSelector(getOidcIdentity, (state?: IOidcUser) =>\n state?.expires_at ? new Date(state.expires_at * 1000) : null //NOSONAR\n);\nconst getUserMetadata = createSelector(\n selectOidcState,\n (state: OidcState) => state.userMetadata\n);\n\nexport const oidcQuery = {\n getExpiresAt,\n getPermissions,\n selectOidcState,\n getOidcLoading,\n getOidcIdentity,\n getAccessToken,\n isIdentityExpiring,\n getSilentRenewError,\n isIdentityExpired,\n isLoggedIn,\n getSignInError,\n getHttpError,\n hasErrors,\n getAudiences,\n getUserMetadata,\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 { Inject, Injectable, PLATFORM_ID } 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 public readonly OidcUserManager: UserManager;\n private readonly _oidcClient: OidcClient;\n private readonly _userManagerSettings: UserManagerSettings;\n\n constructor(\n @Inject(OIDC_LIBRARY_CONFIG)\n private readonly oidcLibraryConfig: OidcLibraryConfig,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) private readonly platformId: Object,\n private readonly httpClient: HttpClient\n ) {\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<{ userinfo_endpoint: string; }>(\n this.oidcLibraryConfig.oidc_config?.metadataUrl || ''\n )\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> { //NOSONAR\n this.setCallbackInformation(true);\n\n return from(this.OidcUserManager.signinPopup({ ...args }));\n }\n\n signInRedirect(args?: any): Observable<void> { //NOSONAR\n this.setCallbackInformation(false);\n\n return from(this.OidcUserManager.signinRedirect({ ...args }));\n }\n\n signOutPopup(args?: any): Observable<any> { //NOSONAR\n this.setCallbackInformation(true);\n\n return from(this.OidcUserManager.signoutPopup({ ...args }));\n }\n\n signOutRedirect(args?: any): Observable<any> { //NOSONAR\n this.setCallbackInformation(false);\n return from(this.OidcUserManager.signoutRedirect({ ...args }));\n }\n\n signInSilent(args?: any): Observable<IOidcUser> { //NOSONAR\n return from(this.OidcUserManager.signinSilent({ ...args }));\n }\n\n signinPopupCallback(): Observable<any> { //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> { //NOSONAR\n return from(this.OidcUserManager.signoutRedirectCallback());\n }\n\n getSigninUrl(args?: any): Observable<SigninRequest> { //NOSONAR\n return from(this.OidcUserManager.createSigninRequest(args));\n }\n\n getSignoutUrl(args?: any): Observable<SignoutRequest> { //NOSONAR\n return from(this.OidcUserManager.createSignoutRequest(args));\n }\n\n private setCallbackInformation(isPopupCallback: boolean): void {\n // is browser and useCallbackFlag set to true or defaults to true\n if (\n isPlatformBrowser(this.platformId) &&\n this.oidcLibraryConfig.useCallbackFlag\n ) {\n localStorage.setItem(StorageKeys.PopupCallback, `${isPopupCallback}`);\n localStorage.setItem(\n StorageKeys.OidcSettings,\n JSON.stringify(this._userManagerSettings)\n );\n }\n }\n}\n","import { 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","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } 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 { OidcState } from './oidc.reducer';\nimport { oidcQuery } 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 constructor(\n private readonly store: Store<OidcState>,\n private readonly oidcService: OidcService\n ) {\n this.registerDefaultEvents();\n }\n\n loading$: Observable<boolean> = this.store.select(oidcQuery.getOidcLoading);\n expiring$: Observable<boolean> = this.store.select(\n oidcQuery.isIdentityExpiring\n );\n expired$: Observable<boolean> = this.store.select(\n oidcQuery.isIdentityExpired\n );\n loggedIn$: Observable<boolean> = this.store.select(oidcQuery.isLoggedIn);\n identity$: Observable<IOidcUser | undefined> = this.store.select(\n oidcQuery.getOidcIdentity\n );\n accessToken$: Observable<string | undefined> = this.store.select(\n oidcQuery.getAccessToken\n );\n httpError$: Observable<HttpErrorResponse | undefined> = this.store.select(\n oidcQuery.getHttpError\n );\n signInError$: Observable<unknown> = this.store.select(\n oidcQuery.getSignInError\n );\n silentRenewError$: Observable<unknown> = this.store.select(\n oidcQuery.getSilentRenewError\n );\n hasErrors$: Observable<boolean> = this.store.select(oidcQuery.hasErrors);\n permissions$: Observable<string[] | undefined> = this.store.select(\n oidcQuery.getPermissions\n );\n audiences$: Observable<string[] | null | undefined> = this.store.select(\n oidcQuery.getAudiences\n );\n expiresAt$: Observable<Date | null> = this.store.select(\n oidcQuery.getExpiresAt\n );\n userMetadata$: Observable<unknown> = this.store.select(\n oidcQuery.getUserMetadata\n );\n\n // default bindings to events\n public addUserUnLoaded(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onUserUnloaded());\n }\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 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 { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router';\nimport { 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 implements CanActivate, CanActivateChild {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(@Inject(DOCUMENT) private readonly document: any, private readonly oidcFacade: OidcFacade) { } //NOSONAR\n\n public readonly isLoggedInPipe$ = this.oidcFacade.waitForAuthenticationLoaded().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(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> { //NOSONAR\n return this.isLoggedInPipe$;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot) //NOSONAR\n : Observable<boolean> {\n return this.isLoggedInPipe$;\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 authority: oidcClientConfig.authority,\n client_id: oidcClientConfig.client_id,\n extraQueryParams: { audience: oidcClientConfig.audience },\n redirect_uri: `${document.location.origin}/callback.html`,\n response_type: oidcClientConfig.response_type || 'id_token token',\n scope: oidcClientConfig.scope || 'openid profile offline_access email',\n post_logout_redirect_uri: `${document.location.origin}/signout-callback.html`,\n silent_redirect_uri: `${document.location.origin}/renew-callback.html`,\n automaticSilentRenew:\n isNullOrUndefined(oidcClientConfig.automaticSilentRenew)\n ? true\n : oidcClientConfig.automaticSilentRenew,\n metadataUrl: `${oidcClientConfig.authority}/.well-known/openid-configuration`,\n },\n getUserMetadata: oidcClientConfig.getUserMetadata,\n useCallbackFlag:\n isNullOrUndefined(oidcClientConfig.useCallbackFlag)\n ? true\n : oidcClientConfig.useCallbackFlag as boolean,\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface OidcClientConfig {\n audience: string;\n client_id: 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}\nexport const OIDC_CLIENT_CONFIG = new InjectionToken<OidcClientConfig>(\n 'oidc-client-config'\n);\n","import { createSelector } from '@ngrx/store';\nimport { OidcUserProfile } from '../models/oidc-user-profile';\nimport { oidcQuery } from './oidc.selectors';\nimport { OidcState } from './oidc.reducer';\nimport { IOidcUser } from '../models/oidc-user';\n\nconst getProfile = createSelector(\n oidcQuery.getOidcIdentity,\n (identity?: IOidcUser) => identity?.profile as OidcUserProfile\n);\n\nconst getPermissions = createSelector(\n oidcQuery.selectOidcState,\n (state: OidcState) => state?.permissions\n);\n\nconst getEmail = createSelector(getProfile, (profile) => profile?.email);\n\nconst getProfilePicture = createSelector(\n getProfile,\n (profile) => profile?.picture\n);\n\nexport const OidcUserSelectors = {\n getProfile,\n getEmail,\n getProfilePicture,\n getPermissions,\n};\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { OidcUserSelectors } from './oidc-user.selectors';\nimport { OidcState } from './oidc.reducer';\nimport { OidcUserProfile } from '../models/oidc-user-profile';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcUserFacade {\n constructor(private readonly store: Store<OidcState>) {}\n profile$: Observable<OidcUserProfile> = this.store.select(\n OidcUserSelectors.getProfile\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","import { Component } 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';\n\n@Component({\n selector: 'imng-support',\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 <span *ngFor=\"let item of facade.audiences$ | async; last as isLast\">\n {{ item }} <br *ngIf=\"!isLast\" />\n </span>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Permissions</div>\n <div class=\"col-md-8\">\n <span *ngFor=\"let item of facade.permissions$ | async; last as isLast\">\n {{ item }} <br *ngIf=\"!isLast\" />\n </span>\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 <div class=\"row\" *ngFor=\"let item of profileValue$ | async\">\n <div class=\"col-md-3\">{{ item.key }}</div>\n <div class=\"col-md-8\">{{ item.value }}</div>\n </div>\n </div> `,\n})\nexport class SupportComponent {\n public profileValue$: Observable<{ key: string; value: string; }[]>;\n constructor(\n public readonly facade: OidcFacade,\n public readonly oidcUserFacade: OidcUserFacade\n ) {\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 AccessDeniedComponent { }\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 LogoutSuccessComponent { }\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule, Route } from '@angular/router';\nimport { SupportComponent } from './support/support.component';\nimport { AccessDeniedComponent } from './components/access-denied.component';\nimport { AuthGuard } from './services/auth-guard';\nimport { LogoutSuccessComponent } from './components/logout-success.component';\n\nconst routes: Routes = [\n { path: 'support', component: SupportComponent },\n { path: 'access-denied', component: AccessDeniedComponent },\n { path: 'logout', component: LogoutSuccessComponent },\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: SupportComponent,\n canActivate: [AuthGuard],\n};\n\nexport const oidcAccessDeniedRoute: Route = {\n path: 'oidc/access-denied',\n component: AccessDeniedComponent,\n};\n\nexport const oidcLogoutRoute: Route = {\n path: 'oidc/logout',\n component: LogoutSuccessComponent,\n};\n\nexport const oidcRoutes: Route[] = [\n oidcSupportRoute,\n oidcAccessDeniedRoute,\n oidcLogoutRoute,\n];\n","import { Inject, Injectable } from '@angular/core';\nimport { Actions, ofType, OnInitEffects, createEffect } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { of } from 'rxjs';\nimport {\n catchError,\n concatMap,\n map,\n filter,\n tap,\n switchMap,\n} from 'rxjs/operators';\nimport { OidcService } from '../services/oidc.service';\nimport * as oidcActions from './oidc.actions';\nimport { IOidcUser } from '../models/oidc-user';\nimport { Router } from '@angular/router';\nimport { oidcLogoutRoute } from '../img-oidc-client-routing.module';\nimport {\n OidcLibraryConfig,\n OIDC_LIBRARY_CONFIG,\n} from '../models/oidc-library-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcEffects implements OnInitEffects {\n constructor(\n private readonly actions$: Actions,\n private readonly oidcService: OidcService,\n @Inject(OIDC_LIBRARY_CONFIG)\n private readonly oidcLibraryOptions: OidcLibraryConfig,\n private readonly router: Router\n ) {}\n\n getOidcUser$ = createEffect(() =>\n 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 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 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 this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(() => !this.oidcLibraryOptions.getUserMetadata),\n map(() => oidcActions.userDoneLoading())\n )\n );\n\n userDoneLoadingWithMetadata$ = createEffect(() =>\n 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 this.actions$.pipe(\n ofType(oidcActions.onAccessTokenExpired),\n map(() => oidcActions.removeOidcUser())\n )\n );\n\n signInPopup$ = createEffect(() =>\n 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 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 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 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 this.actions$.pipe(\n ofType(oidcActions.signOutRedirect),\n concatMap((args) =>\n this.oidcService.signOutRedirect(args.payload).pipe(\n map(() => oidcActions.onUserSignedOut()),\n catchError((err) => of(oidcActions.signOutRedirectError(err.message)))\n )\n )\n )\n );\n\n onUserSignedOut$ = createEffect(\n () =>\n 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 { 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","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, Action } 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;\n audiences?: string[];\n userMetadata?: unknown;\n permissions?: string[];\n loading: boolean;\n loggedIn: boolean;\n expiring: boolean;\n expired: boolean;\n errors: ErrorState;\n}\n\nexport interface ErrorState {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n silentRenewError?: unknown;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signInError?: unknown;\n httpError?: HttpErrorResponse;\n}\n\nexport const initialState: OidcState = {\n audiences: [],\n permissions: [],\n loading: true,\n loggedIn: false,\n expiring: false,\n expired: false,\n errors: {\n silentRenewError: undefined,\n signInError: undefined,\n httpError: undefined,\n },\n};\n\nconst featureReducer = createReducer(\n initialState,\n on(oidcActions.getOidcUser, oidcActions.onUserLoading, (state) => ({\n ...state,\n loading: true,\n loggedIn: false,\n })),\n on(oidcActions.removeOidcUser, (state) => ({\n ...state,\n loading: true,\n loggedIn: false,\n identity: undefined,\n })),\n on(oidcActions.setHttpError, (state, err) => ({\n ...state,\n loading: false,\n errors: {\n ...state.errors,\n httpError: err.payload,\n },\n })),\n on(oidcActions.onUserMetadataLoaded, (state, userMetadata) => ({\n ...state,\n userMetadata: userMetadata.payload,\n loading: false,\n })),\n on(oidcActions.clearErrors, (state) => ({ ...state, errors: {} })),\n on(oidcActions.userDoneLoading, (state) => ({ ...state, loading: false })),\n on(oidcActions.onAccessTokenExpiring, (state) => ({\n ...state,\n expiring: true,\n })),\n on(oidcActions.onAccessTokenExpired, (state) => ({\n ...state,\n loggedIn: false,\n expiring: false,\n expired: true,\n })),\n on(oidcActions.onUserLoaded, (state) => ({\n ...state,\n loading: false,\n expiring: false,\n })),\n on(\n oidcActions.onUserUnloaded,\n oidcActions.onUserSignedOut,\n oidcActions.signOutPopupError,\n oidcActions.signOutRedirectError,\n (state) => ({\n ...state,\n loggedIn: false,\n identity: undefined,\n expired: true,\n expiring: false,\n userMetadata: undefined,\n })\n ),\n on(oidcActions.signOutRedirect, oidcActions.signOutPopup, (state) => ({\n ...state,\n identity: undefined,\n userMetadata: null,\n loggedIn: false,\n })),\n on(\n oidcActions.userFound,\n oidcActions.onSignInPopup,\n oidcActions.onSignInRedirect,\n oidcActions.onSignInSilent,\n (state, { payload }) => ({\n ...state,\n identity: payload,\n loggedIn: true,\n audiences: payload.access_token\n ? jwtDecoder<{ aud?: [] }>(payload.access_token)?.aud\n : undefined,\n permissions: jwtDecoder<{ permissions?: [] }>(payload.access_token)\n ?.permissions,\n })\n ),\n on(oidcActions.userExpired, (state) => ({\n ...state,\n loggedIn: false,\n expiring: false,\n })),\n on(oidcActions.onSilentRenewError, (state, err) => ({\n ...state,\n loading: false,\n errors: {\n ...state.errors,\n silentRenewError: err.payload,\n },\n })),\n on(\n oidcActions.userDoneLoadingError,\n oidcActions.signInError,\n (state, err) => ({\n ...state,\n loading: false,\n errors: {\n ...state.errors,\n signInError: err.payload,\n },\n })\n )\n);\n\nexport function oidcReducer(\n state: OidcState | undefined,\n action: Action\n): OidcState {\n return featureReducer(state, action);\n}\n","import { Observable, throwError } from 'rxjs';\nimport { first, catchError, mergeMap } from 'rxjs/operators';\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { oidcQuery } from '../+state/oidc.selectors';\nimport { OidcState } from '../+state/oidc.reducer';\nimport * as oidcActions from '../+state/oidc.actions';\n\n@Injectable()\nexport class TokenInterceptorService implements HttpInterceptor {\n constructor(private readonly store: Store<OidcState>) { }\n\n intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n return this.store.select(oidcQuery.getAccessToken).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","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport { AuthGuard } from './services/auth-guard';\nimport { oidcConfigurator } from './util/oidc-client-configurator';\nimport {\n OidcClientConfig,\n OIDC_CLIENT_CONFIG,\n} from './models/oidc-client-config';\nimport { OidcEffects } from './+state/oidc.effects';\nimport { OidcService } from './services/oidc.service';\nimport { OidcFacade } from './+state/oidc.facade';\nimport { StoreModule, Store } from '@ngrx/store';\nimport { oidcReducer, OIDC_FEATURE_KEY } from './+state/oidc.reducer';\nimport { EffectsModule } from '@ngrx/effects';\nimport { OidcUserFacade } from './+state/oidc-user.facade';\nimport { TokenInterceptorService } from './services/token-interceptor.service';\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\nimport { AccessDeniedComponent } from './components/access-denied.component';\nimport { SupportComponent } from './support/support.component';\nimport { ImngOidcClientRoutingModule } from './img-oidc-client-routing.module';\nimport { LogoutSuccessComponent } from './components/logout-success.component';\nimport { OIDC_LIBRARY_CONFIG } from './models/oidc-library-config';\n\n@NgModule({\n declarations: [\n AccessDeniedComponent,\n SupportComponent,\n LogoutSuccessComponent,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n StoreModule.forFeature(OIDC_FEATURE_KEY, oidcReducer),\n EffectsModule.forFeature([OidcEffects]),\n ImngOidcClientRoutingModule,\n ],\n exports: [AccessDeniedComponent, SupportComponent, LogoutSuccessComponent],\n providers: [\n {\n provide: OIDC_LIBRARY_CONFIG,\n useFactory: oidcConfigurator,\n deps: [OIDC_CLIENT_CONFIG, DOCUMENT],\n },\n OidcService,\n OidcFacade,\n OidcEffects,\n OidcUserFacade,\n AuthGuard,\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 {\n CanActivate,\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n Router,\n} 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 implements CanActivate {\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,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n state: RouterStateSnapshot\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":["getPermissions","oidcActions.onUserUnloaded","oidcActions.onAccessTokenExpired","oidcActions.onAccessTokenExpiring","oidcActions.onSilentRenewError","oidcActions.onUserLoaded","oidcActions.onUserSignedOut","oidcActions.onSessionChanged","oidcActions.clearErrors","oidcActions.getOidcUser","oidcActions.removeOidcUser","oidcActions.signInPopup","oidcActions.signInRedirect","oidcActions.signInSilent","oidcActions.signOutPopup","oidcActions.signOutRedirect","i1","i2.OidcService","i1.OidcFacade","i2.OidcUserFacade","oidcActions.userFound","oidcActions.userDoneLoadingError","oidcActions.userDoneLoading","oidcActions.oidcError","oidcActions.onUserMetadataLoaded","oidcActions.onSignInPopup","oidcActions.signInError","oidcActions.onSignInRedirect","oidcActions.onSignInSilent","oidcActions.signOutPopupError","oidcActions.signOutRedirectError","i3","oidcActions.onUserLoading","oidcActions.setHttpError","oidcActions.userExpired"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="imng-oidc-client" />
5
+ export * from './index';
package/index.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ export * from './lib/imng-oidc-client.module';
2
+ export * from './lib/+state/oidc-user.facade';
3
+ export { OidcUserSelectors } from './lib/+state/oidc-user.selectors';
4
+ export * from './lib/+state/oidc.actions';
5
+ export * from './lib/+state/oidc.effects';
6
+ export * from './lib/+state/oidc.facade';
7
+ export { OidcState, ErrorState, oidcReducer } from './lib/+state/oidc.reducer';
8
+ export { oidcQuery } from './lib/+state/oidc.selectors';
9
+ export * from './lib/models/arguments.model';
10
+ export { OidcClientConfig, OIDC_CLIENT_CONFIG, } from './lib/models/oidc-client-config';
11
+ export * from './lib/models/oidc-user-profile';
12
+ export * from './lib/models/constants';
13
+ export * from './lib/util/oidc-client-configurator';
14
+ export * from './lib/services/auth-guard';
15
+ export * from './lib/services/oidc.service';
16
+ export * from './lib/services/token-interceptor.service';
17
+ export * from './lib/util/jwt-decoder';
18
+ export * from './lib/services/permissions.guard';
19
+ export * from './lib/components/access-denied.component';
20
+ export * from './lib/support/support.component';
21
+ export * from './lib/img-oidc-client-routing.module';
22
+ export * from './lib/models/oidc-user';
23
+ export * from './lib/components/logout-success.component';
@@ -0,0 +1,16 @@
1
+ import { Store } from '@ngrx/store';
2
+ import { Observable } from 'rxjs';
3
+ import { OidcState } from './oidc.reducer';
4
+ import { OidcUserProfile } from '../models/oidc-user-profile';
5
+ import * as i0 from "@angular/core";
6
+ export declare class OidcUserFacade {
7
+ private readonly store;
8
+ constructor(store: Store<OidcState>);
9
+ profile$: Observable<OidcUserProfile>;
10
+ email$: Observable<string | undefined>;
11
+ profilePicture$: Observable<string | undefined>;
12
+ permissions$: Observable<string[] | undefined>;
13
+ hasPermissions(requiredPermissions: Array<string>): Observable<boolean>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<OidcUserFacade, never>;
15
+ static ɵprov: i0.ɵɵInjectableDeclaration<OidcUserFacade>;
16
+ }
@@ -0,0 +1,7 @@
1
+ import { OidcUserProfile } from '../models/oidc-user-profile';
2
+ export declare const OidcUserSelectors: {
3
+ getProfile: import("@ngrx/store").MemoizedSelector<object, OidcUserProfile, import("@ngrx/store").DefaultProjectorFn<OidcUserProfile>>;
4
+ getEmail: import("@ngrx/store").MemoizedSelector<object, string | undefined, import("@ngrx/store").DefaultProjectorFn<string | undefined>>;
5
+ getProfilePicture: import("@ngrx/store").MemoizedSelector<object, string | undefined, import("@ngrx/store").DefaultProjectorFn<string | undefined>>;
6
+ getPermissions: import("@ngrx/store").MemoizedSelector<object, string[] | undefined, import("@ngrx/store").DefaultProjectorFn<string[] | undefined>>;
7
+ };
@@ -0,0 +1,72 @@
1
+ import { RequestArugments } from '../models/arguments.model';
2
+ import { HttpErrorResponse } from '@angular/common/http';
3
+ import { IOidcUser } from '../models/oidc-user';
4
+ export declare const clearCurrentEmployee: import("@ngrx/store").ActionCreator<"[Employees] Clear Current Employee", () => import("@ngrx/store/src/models").TypedAction<"[Employees] Clear Current Employee">>;
5
+ export declare const getOidcUser: import("@ngrx/store").ActionCreator<"[Oidc] get oidc user", () => import("@ngrx/store/src/models").TypedAction<"[Oidc] get oidc user">>;
6
+ export declare const removeOidcUser: import("@ngrx/store").ActionCreator<"[Oidc] remove oidc user", () => import("@ngrx/store/src/models").TypedAction<"[Oidc] remove oidc user">>;
7
+ export declare const userExpired: import("@ngrx/store").ActionCreator<"[Oidc] user expired", () => import("@ngrx/store/src/models").TypedAction<"[Oidc] user expired">>;
8
+ export declare const userFound: import("@ngrx/store").FunctionWithParametersType<[payload: IOidcUser], {
9
+ payload: IOidcUser;
10
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
11
+ export declare const onSessionChanged: import("@ngrx/store").ActionCreator<"[Oidc] session changed", () => import("@ngrx/store/src/models").TypedAction<"[Oidc] session changed">>;
12
+ export declare const onAccessTokenExpired: import("@ngrx/store").ActionCreator<"[Oidc] on access token expired", () => import("@ngrx/store/src/models").TypedAction<"[Oidc] on access token expired">>;
13
+ export declare const onAccessTokenExpiring: import("@ngrx/store").ActionCreator<"[Oidc] user expiring", () => import("@ngrx/store/src/models").TypedAction<"[Oidc] user expiring">>;
14
+ export declare const onUserLoading: import("@ngrx/store").ActionCreator<"[Oidc] user loading", () => import("@ngrx/store/src/models").TypedAction<"[Oidc] user loading">>;
15
+ export declare const userDoneLoading: import("@ngrx/store").ActionCreator<"[Oidc] user done loading", () => import("@ngrx/store/src/models").TypedAction<"[Oidc] user done loading">>;
16
+ export declare const userDoneLoadingError: import("@ngrx/store").FunctionWithParametersType<[payload: Error], {
17
+ payload: Error;
18
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
19
+ export declare const onUserMetadataLoaded: import("@ngrx/store").FunctionWithParametersType<[payload: unknown], {
20
+ payload: unknown;
21
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
22
+ export declare const onSignInPopup: import("@ngrx/store").FunctionWithParametersType<[payload: IOidcUser], {
23
+ payload: IOidcUser;
24
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
25
+ export declare const onSignInRedirect: import("@ngrx/store").FunctionWithParametersType<[payload: IOidcUser], {
26
+ payload: IOidcUser;
27
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
28
+ export declare const onSignInSilent: import("@ngrx/store").FunctionWithParametersType<[payload: IOidcUser], {
29
+ payload: IOidcUser;
30
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
31
+ export declare const onUserLoaded: import("@ngrx/store").FunctionWithParametersType<[payload: IOidcUser], {
32
+ payload: IOidcUser;
33
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
34
+ export declare const onUserloadError: import("@ngrx/store").FunctionWithParametersType<[payload: Error], {
35
+ payload: Error;
36
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
37
+ export declare const onUserUnloaded: import("@ngrx/store").ActionCreator<"[Oidc] on user unloaded", () => import("@ngrx/store/src/models").TypedAction<"[Oidc] on user unloaded">>;
38
+ export declare const onUserSignedOut: import("@ngrx/store").ActionCreator<"[Oidc] on user signed out", () => import("@ngrx/store/src/models").TypedAction<"[Oidc] on user signed out">>;
39
+ export declare const onSilentRenewError: import("@ngrx/store").FunctionWithParametersType<[payload: Error], {
40
+ payload: Error;
41
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
42
+ export declare const signInPopup: import("@ngrx/store").FunctionWithParametersType<[payload: RequestArugments], {
43
+ payload: RequestArugments;
44
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
45
+ export declare const signInRedirect: import("@ngrx/store").FunctionWithParametersType<[payload: RequestArugments | undefined], {
46
+ payload: RequestArugments | undefined;
47
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
48
+ export declare const signInError: import("@ngrx/store").FunctionWithParametersType<[payload: Error], {
49
+ payload: Error;
50
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
51
+ export declare const signOutPopup: import("@ngrx/store").FunctionWithParametersType<[payload: RequestArugments], {
52
+ payload: RequestArugments;
53
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
54
+ export declare const signOutPopupError: import("@ngrx/store").FunctionWithParametersType<[payload: string], {
55
+ payload: string;
56
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
57
+ export declare const signOutRedirect: import("@ngrx/store").FunctionWithParametersType<[payload: RequestArugments | undefined], {
58
+ payload: RequestArugments | undefined;
59
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
60
+ export declare const signOutRedirectError: import("@ngrx/store").FunctionWithParametersType<[payload: string], {
61
+ payload: string;
62
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
63
+ export declare const signInSilent: import("@ngrx/store").FunctionWithParametersType<[payload: RequestArugments], {
64
+ payload: RequestArugments;
65
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
66
+ export declare const oidcError: import("@ngrx/store").FunctionWithParametersType<[payload: Error], {
67
+ payload: Error;
68
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
69
+ export declare const setHttpError: import("@ngrx/store").FunctionWithParametersType<[payload: HttpErrorResponse], {
70
+ payload: HttpErrorResponse;
71
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
72
+ export declare const clearErrors: import("@ngrx/store").ActionCreator<"[HTTP] Clear Errors", () => import("@ngrx/store/src/models").TypedAction<"[HTTP] Clear Errors">>;
@@ -0,0 +1,58 @@
1
+ import { Actions, OnInitEffects } from '@ngrx/effects';
2
+ import { Action } from '@ngrx/store';
3
+ import { OidcService } from '../services/oidc.service';
4
+ import { IOidcUser } from '../models/oidc-user';
5
+ import { Router } from '@angular/router';
6
+ import { OidcLibraryConfig } from '../models/oidc-library-config';
7
+ import * as i0 from "@angular/core";
8
+ export declare class OidcEffects implements OnInitEffects {
9
+ private readonly actions$;
10
+ private readonly oidcService;
11
+ private readonly oidcLibraryOptions;
12
+ private readonly router;
13
+ constructor(actions$: Actions, oidcService: OidcService, oidcLibraryOptions: OidcLibraryConfig, router: Router);
14
+ getOidcUser$: import("rxjs").Observable<({
15
+ payload: IOidcUser;
16
+ } & import("@ngrx/store/src/models").TypedAction<string>) | ({
17
+ payload: Error;
18
+ } & import("@ngrx/store/src/models").TypedAction<string>)> & import("@ngrx/effects").CreateEffectMetadata;
19
+ silentRenew$: import("rxjs").Observable<{
20
+ payload: import("imng-oidc-client").RequestArugments;
21
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/effects").CreateEffectMetadata;
22
+ removeOidcUser$: import("rxjs").Observable<import("@ngrx/store/src/models").TypedAction<"[Oidc] user done loading"> | ({
23
+ payload: Error;
24
+ } & import("@ngrx/store/src/models").TypedAction<string>)> & import("@ngrx/effects").CreateEffectMetadata;
25
+ userDoneLoadingNoMetadata$: import("rxjs").Observable<import("@ngrx/store/src/models").TypedAction<"[Oidc] user done loading">> & import("@ngrx/effects").CreateEffectMetadata;
26
+ userDoneLoadingWithMetadata$: import("rxjs").Observable<{
27
+ payload: unknown;
28
+ } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/effects").CreateEffectMetadata;
29
+ onAccessTokenExpired$: import("rxjs").Observable<import("@ngrx/store/src/models").TypedAction<"[Oidc] remove oidc user">> & import("@ngrx/effects").CreateEffectMetadata;
30
+ signInPopup$: import("rxjs").Observable<({
31
+ payload: IOidcUser;
32
+ } & import("@ngrx/store/src/models").TypedAction<string>) | ({
33
+ payload: Error;
34
+ } & import("@ngrx/store/src/models").TypedAction<string>)> & import("@ngrx/effects").CreateEffectMetadata;
35
+ signInRedirect$: import("rxjs").Observable<({
36
+ payload: IOidcUser;
37
+ } & import("@ngrx/store/src/models").TypedAction<string>) | ({
38
+ payload: Error;
39
+ } & import("@ngrx/store/src/models").TypedAction<string>)> & import("@ngrx/effects").CreateEffectMetadata;
40
+ signInSilent$: import("rxjs").Observable<({
41
+ payload: IOidcUser;
42
+ } & import("@ngrx/store/src/models").TypedAction<string>) | ({
43
+ payload: Error;
44
+ } & import("@ngrx/store/src/models").TypedAction<string>)> & import("@ngrx/effects").CreateEffectMetadata;
45
+ signOutPopup$: import("rxjs").Observable<import("@ngrx/store/src/models").TypedAction<"[Oidc] on user signed out"> | ({
46
+ payload: string;
47
+ } & import("@ngrx/store/src/models").TypedAction<string>)> & import("@ngrx/effects").CreateEffectMetadata;
48
+ signOutRedirect$: import("rxjs").Observable<import("@ngrx/store/src/models").TypedAction<"[Oidc] on user signed out"> | ({
49
+ payload: string;
50
+ } & import("@ngrx/store/src/models").TypedAction<string>)> & import("@ngrx/effects").CreateEffectMetadata;
51
+ onUserSignedOut$: import("rxjs").Observable<import("@ngrx/store/src/models").TypedAction<"[Oidc] on user signed out"> | ({
52
+ payload: string;
53
+ } & import("@ngrx/store/src/models").TypedAction<string>)> & import("@ngrx/effects").CreateEffectMetadata;
54
+ ngrxOnInitEffects(): Action;
55
+ makeOidcUserSerializable(user: IOidcUser | null): IOidcUser;
56
+ static ɵfac: i0.ɵɵFactoryDeclaration<OidcEffects, never>;
57
+ static ɵprov: i0.ɵɵInjectableDeclaration<OidcEffects>;
58
+ }
@@ -0,0 +1,56 @@
1
+ import { Store } from '@ngrx/store';
2
+ import { OidcClient, SigninRequest, SignoutRequest, UserManager } from 'oidc-client';
3
+ import { Observable } from 'rxjs';
4
+ import { OidcState } from './oidc.reducer';
5
+ import { OidcService } from '../services/oidc.service';
6
+ import { RequestArugments } from '../models/arguments.model';
7
+ import { OidcEvent } from '../models/constants';
8
+ import { HttpErrorResponse } from '@angular/common/http';
9
+ import { IOidcUser } from '../models/oidc-user';
10
+ import * as i0 from "@angular/core";
11
+ export declare class OidcFacade {
12
+ private readonly store;
13
+ private readonly oidcService;
14
+ constructor(store: Store<OidcState>, oidcService: OidcService);
15
+ loading$: Observable<boolean>;
16
+ expiring$: Observable<boolean>;
17
+ expired$: Observable<boolean>;
18
+ loggedIn$: Observable<boolean>;
19
+ identity$: Observable<IOidcUser | undefined>;
20
+ accessToken$: Observable<string | undefined>;
21
+ httpError$: Observable<HttpErrorResponse | undefined>;
22
+ signInError$: Observable<unknown>;
23
+ silentRenewError$: Observable<unknown>;
24
+ hasErrors$: Observable<boolean>;
25
+ permissions$: Observable<string[] | undefined>;
26
+ audiences$: Observable<string[] | null | undefined>;
27
+ expiresAt$: Observable<Date | null>;
28
+ userMetadata$: Observable<unknown>;
29
+ addUserUnLoaded(): void;
30
+ accessTokenExpired(): void;
31
+ accessTokenExpiring(): void;
32
+ addSilentRenewError(...ev: unknown[]): void;
33
+ addUserLoaded(...ev: unknown[]): void;
34
+ addUserSignedOut(): void;
35
+ addUserSessionChanged(): void;
36
+ clearErrors(): void;
37
+ getOidcUser(): void;
38
+ removeOidcUser(): void;
39
+ getUserManager(): UserManager;
40
+ getOidcClient(): OidcClient;
41
+ /**
42
+ * Convenient function to wait for loaded.
43
+ */
44
+ waitForAuthenticationLoaded(): Observable<boolean>;
45
+ signinPopup(args: RequestArugments): void;
46
+ signinRedirect(args?: RequestArugments): void;
47
+ signinSilent(args: RequestArugments): void;
48
+ signoutPopup(args: RequestArugments): void;
49
+ signoutRedirect(args?: RequestArugments): void;
50
+ getSigninUrl(args?: RequestArugments): Observable<SigninRequest>;
51
+ getSignoutUrl(args?: RequestArugments): Observable<SignoutRequest>;
52
+ registerEvent(event: OidcEvent, callback: (...ev: unknown[]) => void): void;
53
+ private registerDefaultEvents;
54
+ static ɵfac: i0.ɵɵFactoryDeclaration<OidcFacade, never>;
55
+ static ɵprov: i0.ɵɵInjectableDeclaration<OidcFacade>;
56
+ }
@@ -0,0 +1,22 @@
1
+ import { Action } from '@ngrx/store';
2
+ import { HttpErrorResponse } from '@angular/common/http';
3
+ import { IOidcUser } from '../models/oidc-user';
4
+ export declare const OIDC_FEATURE_KEY = "oidc";
5
+ export interface OidcState {
6
+ identity?: IOidcUser;
7
+ audiences?: string[];
8
+ userMetadata?: unknown;
9
+ permissions?: string[];
10
+ loading: boolean;
11
+ loggedIn: boolean;
12
+ expiring: boolean;
13
+ expired: boolean;
14
+ errors: ErrorState;
15
+ }
16
+ export interface ErrorState {
17
+ silentRenewError?: unknown;
18
+ signInError?: unknown;
19
+ httpError?: HttpErrorResponse;
20
+ }
21
+ export declare const initialState: OidcState;
22
+ export declare function oidcReducer(state: OidcState | undefined, action: Action): OidcState;
@@ -0,0 +1,20 @@
1
+ import { MemoizedSelector } from '@ngrx/store';
2
+ import { OidcState } from './oidc.reducer';
3
+ import { IOidcUser } from '../models/oidc-user';
4
+ export declare const oidcQuery: {
5
+ getExpiresAt: MemoizedSelector<object, Date | null, import("@ngrx/store").DefaultProjectorFn<Date | null>>;
6
+ getPermissions: MemoizedSelector<object, string[] | undefined, import("@ngrx/store").DefaultProjectorFn<string[] | undefined>>;
7
+ selectOidcState: MemoizedSelector<object, OidcState, import("@ngrx/store").DefaultProjectorFn<OidcState>>;
8
+ getOidcLoading: MemoizedSelector<object, boolean, import("@ngrx/store").DefaultProjectorFn<boolean>>;
9
+ getOidcIdentity: MemoizedSelector<object, IOidcUser | undefined, import("@ngrx/store").DefaultProjectorFn<IOidcUser | undefined>>;
10
+ getAccessToken: MemoizedSelector<object, string | undefined, import("@ngrx/store").DefaultProjectorFn<string | undefined>>;
11
+ isIdentityExpiring: MemoizedSelector<object, boolean, import("@ngrx/store").DefaultProjectorFn<boolean>>;
12
+ getSilentRenewError: MemoizedSelector<{}, unknown, import("@ngrx/store").DefaultProjectorFn<unknown>>;
13
+ isIdentityExpired: MemoizedSelector<object, boolean, import("@ngrx/store").DefaultProjectorFn<boolean>>;
14
+ isLoggedIn: MemoizedSelector<object, boolean, import("@ngrx/store").DefaultProjectorFn<boolean>>;
15
+ getSignInError: MemoizedSelector<{}, unknown, import("@ngrx/store").DefaultProjectorFn<unknown>>;
16
+ getHttpError: MemoizedSelector<{}, import("@angular/common/http").HttpErrorResponse | undefined, import("@ngrx/store").DefaultProjectorFn<import("@angular/common/http").HttpErrorResponse | undefined>>;
17
+ hasErrors: MemoizedSelector<{}, boolean, import("@ngrx/store").DefaultProjectorFn<boolean>>;
18
+ getAudiences: MemoizedSelector<object, string[] | undefined, import("@ngrx/store").DefaultProjectorFn<string[] | undefined>>;
19
+ getUserMetadata: MemoizedSelector<object, unknown, import("@ngrx/store").DefaultProjectorFn<unknown>>;
20
+ };
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class AccessDeniedComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<AccessDeniedComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<AccessDeniedComponent, "imng-access-denied", never, {}, {}, never, never>;
5
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class LogoutSuccessComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<LogoutSuccessComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<LogoutSuccessComponent, "imng-logout-success", never, {}, {}, never, never>;
5
+ }
@@ -0,0 +1,12 @@
1
+ import { Route } from '@angular/router';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ export declare class ImngOidcClientRoutingModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<ImngOidcClientRoutingModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ImngOidcClientRoutingModule, never, [typeof i1.RouterModule], [typeof i1.RouterModule]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<ImngOidcClientRoutingModule>;
8
+ }
9
+ export declare const oidcSupportRoute: Route;
10
+ export declare const oidcAccessDeniedRoute: Route;
11
+ export declare const oidcLogoutRoute: Route;
12
+ export declare const oidcRoutes: Route[];
@@ -0,0 +1,17 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { OidcClientConfig } from './models/oidc-client-config';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./components/access-denied.component";
5
+ import * as i2 from "./support/support.component";
6
+ import * as i3 from "./components/logout-success.component";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "@angular/common/http";
9
+ import * as i6 from "@ngrx/store";
10
+ import * as i7 from "@ngrx/effects";
11
+ import * as i8 from "./img-oidc-client-routing.module";
12
+ export declare class ImngOidcClientModule {
13
+ static forRoot(oidc0ptions: OidcClientConfig): ModuleWithProviders<ImngOidcClientModule>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<ImngOidcClientModule, never>;
15
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ImngOidcClientModule, [typeof i1.AccessDeniedComponent, typeof i2.SupportComponent, typeof i3.LogoutSuccessComponent], [typeof i4.CommonModule, typeof i5.HttpClientModule, typeof i6.StoreFeatureModule, typeof i7.EffectsFeatureModule, typeof i8.ImngOidcClientRoutingModule], [typeof i1.AccessDeniedComponent, typeof i2.SupportComponent, typeof i3.LogoutSuccessComponent]>;
16
+ static ɵinj: i0.ɵɵInjectorDeclaration<ImngOidcClientModule>;
17
+ }
@@ -0,0 +1,21 @@
1
+ export interface RequestArugments {
2
+ url?: string;
3
+ client_id?: string;
4
+ redirect_uri?: string;
5
+ response_type?: string;
6
+ scope?: string;
7
+ authority?: string;
8
+ data?: any;
9
+ state?: string;
10
+ prompt?: string;
11
+ display?: string;
12
+ max_age?: number;
13
+ ui_locales?: string;
14
+ id_token_hint?: string;
15
+ login_hint?: string;
16
+ acr_values?: string;
17
+ resource?: string;
18
+ request?: any;
19
+ request_uri?: string;
20
+ extraQueryParams?: any;
21
+ }
@@ -0,0 +1,14 @@
1
+ export declare enum OidcEvent {
2
+ AccessTokenExpired = "addAccessTokenExpired",
3
+ AccessTokenExpiring = "addAccessTokenExpiring",
4
+ SilentRenewError = "AddSilentRenewError",
5
+ UserLoaded = "addUserLoaded",
6
+ UserUnloaded = "addUserUnloaded",
7
+ UserSignedOut = "addUserSignedOut",
8
+ UserSessionChanged = "addUserSessionChanged"
9
+ }
10
+ export declare enum StorageKeys {
11
+ PopupCallback = "ngoidc:isPopupCallback",
12
+ OidcSettings = "ngoidc:settings"
13
+ }
14
+ export declare const ACTION_NO_ACTION = "NO_ACTION";
@@ -0,0 +1,12 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export interface OidcClientConfig {
3
+ audience: string;
4
+ client_id: string;
5
+ authority: string;
6
+ scope?: 'openid' | 'profile' | 'offline_access' | 'name' | 'given_name' | 'family_name' | 'nickname' | 'email' | 'email_verified' | 'picture' | 'created_at' | 'identities' | 'phone' | 'address' | string;
7
+ response_type?: 'code' | 'token' | 'id_token' | 'code token' | 'code id_token' | 'token id_token' | 'code token id_token' | string;
8
+ automaticSilentRenew?: boolean;
9
+ getUserMetadata: boolean;
10
+ useCallbackFlag?: boolean;
11
+ }
12
+ export declare const OIDC_CLIENT_CONFIG: InjectionToken<OidcClientConfig>;
@@ -0,0 +1,12 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { UserManagerSettings, Logger } from 'oidc-client';
3
+ export interface OidcLibraryConfig {
4
+ oidc_config: UserManagerSettings;
5
+ useCallbackFlag: boolean;
6
+ getUserMetadata: boolean;
7
+ log?: {
8
+ logger: Logger;
9
+ level: number;
10
+ };
11
+ }
12
+ export declare const OIDC_LIBRARY_CONFIG: InjectionToken<OidcLibraryConfig>;
@@ -0,0 +1,4 @@
1
+ export interface OidcUserProfile {
2
+ email?: string;
3
+ picture?: string;
4
+ }