@igo2/auth 17.0.0 → 17.0.1-next.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.
Files changed (39) hide show
  1. package/esm2022/facebook/auth-facebook/auth-facebook.component.mjs +5 -5
  2. package/esm2022/form/auth-form/auth-form.component.mjs +3 -3
  3. package/esm2022/form/auth-form.module.mjs +4 -4
  4. package/esm2022/form/shared/auth-form.interface.mjs +1 -1
  5. package/esm2022/google/auth-google/auth-google.component.mjs +3 -3
  6. package/esm2022/internal/auth-intern/auth-intern.component.mjs +5 -5
  7. package/esm2022/lib/shared/admin.guard.mjs +3 -3
  8. package/esm2022/lib/shared/auth-storage.service.mjs +3 -3
  9. package/esm2022/lib/shared/auth.guard.mjs +3 -3
  10. package/esm2022/lib/shared/auth.interceptor.mjs +7 -10
  11. package/esm2022/lib/shared/auth.interface.mjs +1 -1
  12. package/esm2022/lib/shared/auth.service.mjs +3 -3
  13. package/esm2022/lib/shared/logged.guard.mjs +3 -3
  14. package/esm2022/lib/shared/profils.guard.mjs +3 -3
  15. package/esm2022/lib/shared/token.service.mjs +3 -3
  16. package/esm2022/microsoft/auth-microsoft/auth-microsoft.component.mjs +5 -5
  17. package/esm2022/microsoft/auth-microsoft.provider.mjs +2 -3
  18. package/esm2022/microsoft/auth-microsoftb2c/auth-microsoftb2c.component.mjs +5 -5
  19. package/esm2022/microsoft/auth-microsoftb2c/auth-msalBroadcastServiceb2c.service.mjs +3 -3
  20. package/esm2022/microsoft/auth-microsoftb2c/auth-msalServiceb2c.service.mjs +3 -3
  21. package/esm2022/monitoring/auth-monitoring/auth-monitoring.provider.mjs +2 -2
  22. package/esm2022/monitoring/auth-monitoring/auth-monitoring.service.mjs +4 -4
  23. package/fesm2022/igo2-auth-facebook.mjs +4 -4
  24. package/fesm2022/igo2-auth-facebook.mjs.map +1 -1
  25. package/fesm2022/igo2-auth-form.mjs +7 -7
  26. package/fesm2022/igo2-auth-google.mjs +3 -3
  27. package/fesm2022/igo2-auth-internal.mjs +4 -4
  28. package/fesm2022/igo2-auth-internal.mjs.map +1 -1
  29. package/fesm2022/igo2-auth-microsoft.mjs +15 -16
  30. package/fesm2022/igo2-auth-microsoft.mjs.map +1 -1
  31. package/fesm2022/igo2-auth-monitoring.mjs +4 -4
  32. package/fesm2022/igo2-auth-monitoring.mjs.map +1 -1
  33. package/fesm2022/igo2-auth.mjs +27 -30
  34. package/fesm2022/igo2-auth.mjs.map +1 -1
  35. package/form/shared/auth-form.interface.d.ts +2 -2
  36. package/form/src/auth-form/auth-intern.theme.scss +1 -1
  37. package/lib/shared/auth.interface.d.ts +2 -2
  38. package/microsoft/auth-microsoft.provider.d.ts +1 -1
  39. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-auth-microsoft.mjs","sources":["../../../packages/auth/microsoft/src/auth-microsoft/auth-microsoft.component.ts","../../../packages/auth/microsoft/src/auth-microsoft/auth-microsoft.component.html","../../../packages/auth/microsoft/src/auth-microsoftb2c/auth-msalServiceb2c.service.ts","../../../packages/auth/microsoft/src/auth-microsoftb2c/auth-msalBroadcastServiceb2c.service.ts","../../../packages/auth/microsoft/src/auth-microsoftb2c/auth-microsoftb2c.component.ts","../../../packages/auth/microsoft/src/auth-microsoftb2c/auth-microsoftb2c.component.html","../../../packages/auth/microsoft/src/auth-microsoft.provider.ts","../../../packages/auth/microsoft/src/igo2-auth-microsoft.ts"],"sourcesContent":["import {\n ApplicationRef,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Output\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { AuthService } from '@igo2/auth';\nimport { IconSvg, IgoIconComponent, MICROSOFT_ICON } from '@igo2/common/icon';\nimport { ConfigService } from '@igo2/core/config';\nimport { IgoLanguageModule } from '@igo2/core/language';\n\nimport {\n MSAL_GUARD_CONFIG,\n MsalBroadcastService,\n MsalService\n} from '@azure/msal-angular';\nimport {\n AuthenticationResult,\n InteractionRequiredAuthError,\n InteractionStatus,\n PopupRequest,\n PublicClientApplication,\n SilentRequest\n} from '@azure/msal-browser';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport {\n AuthMicrosoftOptions,\n MSPMsalGuardConfiguration\n} from '../shared/auth-microsoft.interface';\n\n@Component({\n selector: 'igo-auth-microsoft',\n templateUrl: './auth-microsoft.component.html',\n styleUrls: ['./auth-microsoft.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [MatButtonModule, IgoLanguageModule, IgoIconComponent]\n})\nexport class AuthMicrosoftComponent {\n private options?: AuthMicrosoftOptions;\n private readonly _destroying$ = new Subject<void>();\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\n private broadcastService: MsalBroadcastService;\n\n svgIcon: IconSvg = MICROSOFT_ICON;\n\n constructor(\n private authService: AuthService,\n private config: ConfigService,\n private appRef: ApplicationRef,\n private msalService: MsalService,\n @Inject(MSAL_GUARD_CONFIG)\n private msalGuardConfig: MSPMsalGuardConfiguration[]\n ) {\n this.options = this.config.getConfig('auth.microsoft');\n\n this.msalService.instance = new PublicClientApplication({\n auth: this.options,\n cache: {\n cacheLocation: 'sessionStorage'\n }\n });\n\n this.broadcastService = new MsalBroadcastService(\n this.msalService.instance,\n this.msalService\n );\n\n if (this.options?.clientId) {\n this.broadcastService.inProgress$\n .pipe(\n filter(\n (status: InteractionStatus) => status === InteractionStatus.None\n ),\n takeUntil(this._destroying$)\n )\n .subscribe(() => {\n this.checkAccount();\n });\n } else {\n console.warn('Microsoft authentification needs \"clientId\" option');\n }\n }\n\n public loginMicrosoft() {\n this.msalService\n .loginPopup({ ...this.getConf().authRequest } as PopupRequest)\n .subscribe((response: AuthenticationResult) => {\n this.msalService.instance.setActiveAccount(response.account);\n this.checkAccount();\n });\n }\n\n private checkAccount() {\n this.msalService.instance\n .acquireTokenSilent(this.getConf().authRequest as SilentRequest)\n .then((response: AuthenticationResult) => {\n const tokenAccess = response.accessToken;\n const tokenId = response.idToken;\n this.authService\n .loginWithToken(tokenAccess, 'microsoft', { tokenId })\n .subscribe(() => {\n this.appRef.tick();\n this.login.emit(true);\n });\n })\n .catch(async (error) => {\n if (error instanceof InteractionRequiredAuthError) {\n // fallback to interaction when silent call fails\n return this.msalService.acquireTokenPopup(\n this.getConf().authRequest as SilentRequest\n );\n }\n console.log(error);\n })\n .catch((error) => {\n console.log('Silent token fails');\n });\n }\n\n private getConf(): MSPMsalGuardConfiguration {\n return this.msalGuardConfig.filter((conf) => conf.type === 'add')[0];\n }\n}\n","<button\n class=\"microsoft-login-button\"\n mat-raised-button\n (click)=\"loginMicrosoft()\"\n>\n <igo-icon [icon]=\"svgIcon\"></igo-icon>\n {{ 'igo.auth.microsoft.login' | translate }}\n</button>\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { Location } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\nimport { MSAL_INSTANCE } from '@azure/msal-angular';\nimport { IMsalService } from '@azure/msal-angular';\nimport {\n AuthenticationResult,\n EndSessionPopupRequest,\n EndSessionRequest,\n IPublicClientApplication,\n Logger,\n PopupRequest,\n RedirectRequest,\n SilentRequest,\n SsoSilentRequest,\n WrapperSKU\n} from '@azure/msal-browser';\nimport { Observable, from } from 'rxjs';\n\n@Injectable()\nexport class MsalServiceb2c implements IMsalService {\n private redirectHash: string;\n private logger: Logger;\n private name = '@azure/msal-angular';\n private version = '2.0.0-beta.2';\n constructor(\n @Inject(MSAL_INSTANCE) public instance: IPublicClientApplication,\n private location: Location\n ) {\n const hash = this.location.path(true).split('#').pop();\n if (hash) {\n this.redirectHash = `#${hash}`;\n }\n this.instance.initializeWrapperLibrary(WrapperSKU.Angular, this.version);\n }\n\n initialize(): Observable<void> {\n return from(this.instance.initialize());\n }\n\n acquireTokenPopup(request: PopupRequest): Observable<AuthenticationResult> {\n return from(this.instance.acquireTokenPopup(request));\n }\n acquireTokenRedirect(request: RedirectRequest): Observable<void> {\n return from(this.instance.acquireTokenRedirect(request));\n }\n acquireTokenSilent(\n silentRequest: SilentRequest\n ): Observable<AuthenticationResult> {\n return from(this.instance.acquireTokenSilent(silentRequest));\n }\n handleRedirectObservable(hash?: string): Observable<AuthenticationResult> {\n return from(this.instance.handleRedirectPromise(hash || this.redirectHash));\n }\n loginPopup(request?: PopupRequest): Observable<AuthenticationResult> {\n return from(this.instance.loginPopup(request));\n }\n loginRedirect(request?: RedirectRequest): Observable<void> {\n return from(this.instance.loginRedirect(request));\n }\n logout(logoutRequest?: EndSessionRequest): Observable<void> {\n return from(this.instance.logout(logoutRequest));\n }\n logoutRedirect(logoutRequest?: EndSessionRequest): Observable<void> {\n return from(this.instance.logoutRedirect(logoutRequest));\n }\n logoutPopup(logoutRequest?: EndSessionPopupRequest): Observable<void> {\n return from(this.instance.logoutPopup(logoutRequest));\n }\n ssoSilent(request: SsoSilentRequest): Observable<AuthenticationResult> {\n return from(this.instance.ssoSilent(request));\n }\n /**\n * Gets logger for msal-angular.\n * If no logger set, returns logger instance created with same options as msal-browser\n */\n getLogger(): Logger {\n if (!this.logger) {\n this.logger = this.instance.getLogger().clone(this.name, this.version);\n }\n return this.logger;\n }\n // Create a logger instance for msal-angular with the same options as msal-browser\n setLogger(logger: Logger): void {\n this.logger = logger.clone(this.name, this.version);\n this.instance.setLogger(logger);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { Inject, Injectable } from '@angular/core';\n\nimport { MSAL_INSTANCE } from '@azure/msal-angular';\nimport {\n EventMessage,\n EventMessageUtils,\n IPublicClientApplication,\n InteractionStatus\n} from '@azure/msal-browser';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nimport { MsalServiceb2c } from './auth-msalServiceb2c.service';\n\n@Injectable()\nexport class MsalBroadcastServiceb2c {\n private _msalSubject: Subject<EventMessage>;\n public msalSubject$: Observable<EventMessage>;\n private _inProgress: BehaviorSubject<InteractionStatus>;\n public inProgress$: Observable<InteractionStatus>;\n\n constructor(\n @Inject(MSAL_INSTANCE) private msalInstance: IPublicClientApplication,\n private authService: MsalServiceb2c\n ) {\n this._msalSubject = new Subject<EventMessage>();\n this.msalSubject$ = this._msalSubject.asObservable();\n\n // InProgress as BehaviorSubject so most recent inProgress state will be available upon subscription\n this._inProgress = new BehaviorSubject<InteractionStatus>(\n InteractionStatus.Startup\n );\n this.inProgress$ = this._inProgress.asObservable();\n\n this.msalInstance.addEventCallback((message: EventMessage) => {\n this._msalSubject.next(message);\n const status = EventMessageUtils.getInteractionStatusFromEvent(message);\n if (status !== null) {\n this.authService\n .getLogger()\n .verbose(\n `BroadcastService - ${message.eventType} results in setting inProgress to ${status}`\n );\n this._inProgress.next(status);\n }\n });\n }\n}\n","import {\n ApplicationRef,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Output\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { AuthService } from '@igo2/auth';\nimport { IconSvg, IgoIconComponent, MICROSOFT_ICON } from '@igo2/common/icon';\nimport { ConfigService } from '@igo2/core/config';\nimport { IgoLanguageModule } from '@igo2/core/language';\n\nimport { MSAL_GUARD_CONFIG } from '@azure/msal-angular';\nimport {\n AuthenticationResult,\n InteractionRequiredAuthError,\n InteractionStatus,\n PopupRequest,\n PublicClientApplication,\n SilentRequest\n} from '@azure/msal-browser';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport {\n AuthMicrosoftb2cOptions,\n MSPMsalGuardConfiguration\n} from '../shared/auth-microsoft.interface';\nimport { MsalBroadcastServiceb2c } from './auth-msalBroadcastServiceb2c.service';\nimport { MsalServiceb2c } from './auth-msalServiceb2c.service';\n\n@Component({\n selector: 'igo-auth-microsoftb2c',\n templateUrl: './auth-microsoftb2c.component.html',\n styleUrls: ['./auth-microsoftb2c.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [MatButtonModule, IgoLanguageModule, IgoIconComponent],\n providers: [MsalServiceb2c]\n})\nexport class AuthMicrosoftb2cComponent {\n private options: AuthMicrosoftb2cOptions;\n private readonly _destroying$ = new Subject<void>();\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\n private broadcastService: MsalBroadcastServiceb2c;\n\n svgIcon: IconSvg = MICROSOFT_ICON;\n\n constructor(\n private authService: AuthService,\n private config: ConfigService,\n private appRef: ApplicationRef,\n private msalService: MsalServiceb2c,\n @Inject(MSAL_GUARD_CONFIG)\n private msalGuardConfig: MSPMsalGuardConfiguration[]\n ) {\n this.options = this.config.getConfig('auth.microsoftb2c') || {};\n\n this.msalService.instance = new PublicClientApplication({\n auth: this.options.browserAuthOptions,\n cache: {\n cacheLocation: 'sessionStorage'\n }\n });\n\n this.broadcastService = new MsalBroadcastServiceb2c(\n this.msalService.instance,\n this.msalService\n );\n\n if (this.options.browserAuthOptions.clientId) {\n this.broadcastService.inProgress$\n .pipe(\n filter(\n (status: InteractionStatus) => status === InteractionStatus.None\n ),\n takeUntil(this._destroying$)\n )\n .subscribe(() => {\n this.checkAccount();\n });\n } else {\n console.warn('Microsoft authentification needs \"clientId\" option');\n }\n }\n\n public loginMicrosoftb2c() {\n this.msalService\n .loginPopup({ ...this.getConf().authRequest } as PopupRequest)\n .subscribe((response: AuthenticationResult) => {\n this.msalService.instance.setActiveAccount(response.account);\n this.checkAccount();\n });\n }\n\n private checkAccount() {\n this.msalService.instance\n .acquireTokenSilent(this.getConf().authRequest as SilentRequest)\n .then((response: AuthenticationResult) => {\n const token = response.idToken;\n this.authService.loginWithToken(token, 'microsoftb2c').subscribe(() => {\n this.appRef.tick();\n this.login.emit(true);\n });\n })\n .catch(async (error) => {\n if (error instanceof InteractionRequiredAuthError) {\n // fallback to interaction when silent call fails\n return this.msalService.acquireTokenPopup(\n this.getConf().authRequest as SilentRequest\n );\n }\n })\n .catch((error) => {\n console.log('Silent token fails');\n });\n }\n\n private getConf(): MSPMsalGuardConfiguration {\n return this.msalGuardConfig.filter((conf) => conf.type === 'b2c')[0];\n }\n}\n","<button\n class=\"microsoft-login-button\"\n mat-raised-button\n (click)=\"loginMicrosoftb2c()\"\n>\n <igo-icon [icon]=\"svgIcon\"></igo-icon>\n {{ 'igo.auth.microsoftb2c.login' | translate }}\n</button>\n","import { AuthFeature, AuthFeatureKind } from '@igo2/auth';\nimport { ConfigService } from '@igo2/core/config';\n\nimport {\n MSAL_GUARD_CONFIG,\n MSAL_INSTANCE,\n MsalService\n} from '@azure/msal-angular';\nimport { InteractionType, PublicClientApplication } from '@azure/msal-browser';\nimport { BrowserAuthOptions } from '@azure/msal-browser';\n\nimport { AuthMicrosoftComponent } from './auth-microsoft/auth-microsoft.component';\nimport { AuthMicrosoftb2cComponent } from './auth-microsoftb2c/auth-microsoftb2c.component';\nimport { MsalServiceb2c } from './auth-microsoftb2c/auth-msalServiceb2c.service';\nimport {\n AuthMicrosoftOptions,\n MSPMsalGuardConfiguration\n} from './shared/auth-microsoft.interface';\n\nexport const AUTH_MICROSOFT_DIRECTIVES = [\n AuthMicrosoftComponent,\n AuthMicrosoftb2cComponent\n] as const;\n\nexport function MSALConfigFactory(\n config: ConfigService\n): PublicClientApplication {\n const msConf = config.getConfig('auth.microsoft') as AuthMicrosoftOptions;\n if (!msConf) {\n return;\n }\n\n msConf.redirectUri = msConf?.redirectUri || window.location.href;\n msConf.authority =\n msConf?.authority || 'https://login.microsoftonline.com/organizations';\n\n const myMsalObj = new PublicClientApplication({\n auth: msConf,\n cache: {\n cacheLocation: 'sessionStorage'\n }\n });\n\n return myMsalObj;\n}\n\nexport function MSALConfigFactoryb2c(\n config: ConfigService\n): PublicClientApplication {\n const msConf = config.getConfig(\n 'auth.microsoftb2c.browserAuthOptions'\n ) as BrowserAuthOptions;\n if (!msConf) {\n return;\n }\n msConf.redirectUri = msConf?.redirectUri || window.location.href;\n msConf.authority =\n msConf?.authority || 'https://login.microsoftonline.com/organizations';\n\n const myMsalObj = new PublicClientApplication({\n auth: msConf,\n cache: {\n cacheLocation: 'sessionStorage'\n }\n });\n\n return myMsalObj;\n}\n\nexport function MSALAngularConfigFactory(\n config: ConfigService\n): MSPMsalGuardConfiguration {\n const msConf = config.getConfig('auth.microsoft') as AuthMicrosoftOptions;\n\n return {\n interactionType: InteractionType.Popup,\n authRequest: {\n scopes: ['user.read'],\n loginHint: 'todo'\n },\n type: 'add'\n };\n}\n\nexport function MSALAngularConfigFactoryb2c(\n config: ConfigService\n): MSPMsalGuardConfiguration {\n const msConf = config.getConfig(\n 'auth.microsoftb2c.browserAuthOptions'\n ) as BrowserAuthOptions;\n\n return {\n interactionType: InteractionType.Popup,\n authRequest: {\n scopes: [msConf?.clientId]\n },\n type: 'b2c'\n };\n}\n\nexport function withMicrosoftSupport(\n type?: string\n): AuthFeature<AuthFeatureKind.Microsoft> {\n if (type === 'b2c') {\n return {\n kind: AuthFeatureKind.Microsoft,\n providers: [\n {\n provide: MSAL_INSTANCE,\n useFactory: MSALConfigFactoryb2c,\n deps: [ConfigService]\n },\n {\n provide: MSAL_GUARD_CONFIG,\n useFactory: MSALAngularConfigFactoryb2c,\n deps: [ConfigService],\n multi: true\n },\n MsalServiceb2c\n ]\n };\n } else {\n return {\n kind: AuthFeatureKind.Microsoft,\n providers: [\n {\n provide: MSAL_INSTANCE,\n useFactory: MSALConfigFactory,\n deps: [ConfigService]\n },\n {\n provide: MSAL_GUARD_CONFIG,\n useFactory: MSALAngularConfigFactory,\n deps: [ConfigService],\n multi: true\n },\n MsalService\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i1.MsalServiceb2c"],"mappings":"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"}
1
+ {"version":3,"file":"igo2-auth-microsoft.mjs","sources":["../../../packages/auth/microsoft/src/auth-microsoft/auth-microsoft.component.ts","../../../packages/auth/microsoft/src/auth-microsoft/auth-microsoft.component.html","../../../packages/auth/microsoft/src/auth-microsoftb2c/auth-msalServiceb2c.service.ts","../../../packages/auth/microsoft/src/auth-microsoftb2c/auth-msalBroadcastServiceb2c.service.ts","../../../packages/auth/microsoft/src/auth-microsoftb2c/auth-microsoftb2c.component.ts","../../../packages/auth/microsoft/src/auth-microsoftb2c/auth-microsoftb2c.component.html","../../../packages/auth/microsoft/src/auth-microsoft.provider.ts","../../../packages/auth/microsoft/src/igo2-auth-microsoft.ts"],"sourcesContent":["import {\n ApplicationRef,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Output\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { AuthService } from '@igo2/auth';\nimport { IconSvg, IgoIconComponent, MICROSOFT_ICON } from '@igo2/common/icon';\nimport { ConfigService } from '@igo2/core/config';\nimport { IgoLanguageModule } from '@igo2/core/language';\n\nimport {\n MSAL_GUARD_CONFIG,\n MsalBroadcastService,\n MsalService\n} from '@azure/msal-angular';\nimport {\n AuthenticationResult,\n InteractionRequiredAuthError,\n InteractionStatus,\n PopupRequest,\n PublicClientApplication,\n SilentRequest\n} from '@azure/msal-browser';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport {\n AuthMicrosoftOptions,\n MSPMsalGuardConfiguration\n} from '../shared/auth-microsoft.interface';\n\n@Component({\n selector: 'igo-auth-microsoft',\n templateUrl: './auth-microsoft.component.html',\n styleUrls: ['./auth-microsoft.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [MatButtonModule, IgoLanguageModule, IgoIconComponent]\n})\nexport class AuthMicrosoftComponent {\n private options?: AuthMicrosoftOptions;\n private readonly _destroying$ = new Subject<void>();\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\n private broadcastService: MsalBroadcastService;\n\n svgIcon: IconSvg = MICROSOFT_ICON;\n\n constructor(\n private authService: AuthService,\n private config: ConfigService,\n private appRef: ApplicationRef,\n private msalService: MsalService,\n @Inject(MSAL_GUARD_CONFIG)\n private msalGuardConfig: MSPMsalGuardConfiguration[]\n ) {\n this.options = this.config.getConfig('auth.microsoft');\n\n this.msalService.instance = new PublicClientApplication({\n auth: this.options,\n cache: {\n cacheLocation: 'sessionStorage'\n }\n });\n\n this.broadcastService = new MsalBroadcastService(\n this.msalService.instance,\n this.msalService\n );\n\n if (this.options?.clientId) {\n this.broadcastService.inProgress$\n .pipe(\n filter(\n (status: InteractionStatus) => status === InteractionStatus.None\n ),\n takeUntil(this._destroying$)\n )\n .subscribe(() => {\n this.checkAccount();\n });\n } else {\n console.warn('Microsoft authentification needs \"clientId\" option');\n }\n }\n\n public loginMicrosoft() {\n this.msalService\n .loginPopup({ ...this.getConf().authRequest } as PopupRequest)\n .subscribe((response: AuthenticationResult) => {\n this.msalService.instance.setActiveAccount(response.account);\n this.checkAccount();\n });\n }\n\n private checkAccount() {\n this.msalService.instance\n .acquireTokenSilent(this.getConf().authRequest as SilentRequest)\n .then((response: AuthenticationResult) => {\n const tokenAccess = response.accessToken;\n const tokenId = response.idToken;\n this.authService\n .loginWithToken(tokenAccess, 'microsoft', { tokenId })\n .subscribe(() => {\n this.appRef.tick();\n this.login.emit(true);\n });\n })\n .catch(async (error) => {\n if (error instanceof InteractionRequiredAuthError) {\n // fallback to interaction when silent call fails\n return this.msalService.acquireTokenPopup(\n this.getConf().authRequest as SilentRequest\n );\n }\n console.log(error);\n })\n .catch(() => {\n console.log('Silent token fails');\n });\n }\n\n private getConf(): MSPMsalGuardConfiguration {\n return this.msalGuardConfig.filter((conf) => conf.type === 'add')[0];\n }\n}\n","<button\n class=\"microsoft-login-button\"\n mat-raised-button\n (click)=\"loginMicrosoft()\"\n>\n <igo-icon [icon]=\"svgIcon\"></igo-icon>\n {{ 'igo.auth.microsoft.login' | translate }}\n</button>\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { Location } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\nimport { MSAL_INSTANCE } from '@azure/msal-angular';\nimport { IMsalService } from '@azure/msal-angular';\nimport {\n AuthenticationResult,\n EndSessionPopupRequest,\n EndSessionRequest,\n IPublicClientApplication,\n Logger,\n PopupRequest,\n RedirectRequest,\n SilentRequest,\n SsoSilentRequest,\n WrapperSKU\n} from '@azure/msal-browser';\nimport { Observable, from } from 'rxjs';\n\n@Injectable()\nexport class MsalServiceb2c implements IMsalService {\n private redirectHash: string;\n private logger: Logger;\n private name = '@azure/msal-angular';\n private version = '2.0.0-beta.2';\n constructor(\n @Inject(MSAL_INSTANCE) public instance: IPublicClientApplication,\n private location: Location\n ) {\n const hash = this.location.path(true).split('#').pop();\n if (hash) {\n this.redirectHash = `#${hash}`;\n }\n this.instance.initializeWrapperLibrary(WrapperSKU.Angular, this.version);\n }\n\n initialize(): Observable<void> {\n return from(this.instance.initialize());\n }\n\n acquireTokenPopup(request: PopupRequest): Observable<AuthenticationResult> {\n return from(this.instance.acquireTokenPopup(request));\n }\n acquireTokenRedirect(request: RedirectRequest): Observable<void> {\n return from(this.instance.acquireTokenRedirect(request));\n }\n acquireTokenSilent(\n silentRequest: SilentRequest\n ): Observable<AuthenticationResult> {\n return from(this.instance.acquireTokenSilent(silentRequest));\n }\n handleRedirectObservable(hash?: string): Observable<AuthenticationResult> {\n return from(this.instance.handleRedirectPromise(hash || this.redirectHash));\n }\n loginPopup(request?: PopupRequest): Observable<AuthenticationResult> {\n return from(this.instance.loginPopup(request));\n }\n loginRedirect(request?: RedirectRequest): Observable<void> {\n return from(this.instance.loginRedirect(request));\n }\n logout(logoutRequest?: EndSessionRequest): Observable<void> {\n return from(this.instance.logout(logoutRequest));\n }\n logoutRedirect(logoutRequest?: EndSessionRequest): Observable<void> {\n return from(this.instance.logoutRedirect(logoutRequest));\n }\n logoutPopup(logoutRequest?: EndSessionPopupRequest): Observable<void> {\n return from(this.instance.logoutPopup(logoutRequest));\n }\n ssoSilent(request: SsoSilentRequest): Observable<AuthenticationResult> {\n return from(this.instance.ssoSilent(request));\n }\n /**\n * Gets logger for msal-angular.\n * If no logger set, returns logger instance created with same options as msal-browser\n */\n getLogger(): Logger {\n if (!this.logger) {\n this.logger = this.instance.getLogger().clone(this.name, this.version);\n }\n return this.logger;\n }\n // Create a logger instance for msal-angular with the same options as msal-browser\n setLogger(logger: Logger): void {\n this.logger = logger.clone(this.name, this.version);\n this.instance.setLogger(logger);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { Inject, Injectable } from '@angular/core';\n\nimport { MSAL_INSTANCE } from '@azure/msal-angular';\nimport {\n EventMessage,\n EventMessageUtils,\n IPublicClientApplication,\n InteractionStatus\n} from '@azure/msal-browser';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nimport { MsalServiceb2c } from './auth-msalServiceb2c.service';\n\n@Injectable()\nexport class MsalBroadcastServiceb2c {\n private _msalSubject: Subject<EventMessage>;\n public msalSubject$: Observable<EventMessage>;\n private _inProgress: BehaviorSubject<InteractionStatus>;\n public inProgress$: Observable<InteractionStatus>;\n\n constructor(\n @Inject(MSAL_INSTANCE) private msalInstance: IPublicClientApplication,\n private authService: MsalServiceb2c\n ) {\n this._msalSubject = new Subject<EventMessage>();\n this.msalSubject$ = this._msalSubject.asObservable();\n\n // InProgress as BehaviorSubject so most recent inProgress state will be available upon subscription\n this._inProgress = new BehaviorSubject<InteractionStatus>(\n InteractionStatus.Startup\n );\n this.inProgress$ = this._inProgress.asObservable();\n\n this.msalInstance.addEventCallback((message: EventMessage) => {\n this._msalSubject.next(message);\n const status = EventMessageUtils.getInteractionStatusFromEvent(message);\n if (status !== null) {\n this.authService\n .getLogger()\n .verbose(\n `BroadcastService - ${message.eventType} results in setting inProgress to ${status}`\n );\n this._inProgress.next(status);\n }\n });\n }\n}\n","import {\n ApplicationRef,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Output\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { AuthService } from '@igo2/auth';\nimport { IconSvg, IgoIconComponent, MICROSOFT_ICON } from '@igo2/common/icon';\nimport { ConfigService } from '@igo2/core/config';\nimport { IgoLanguageModule } from '@igo2/core/language';\n\nimport { MSAL_GUARD_CONFIG } from '@azure/msal-angular';\nimport {\n AuthenticationResult,\n InteractionRequiredAuthError,\n InteractionStatus,\n PopupRequest,\n PublicClientApplication,\n SilentRequest\n} from '@azure/msal-browser';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport {\n AuthMicrosoftb2cOptions,\n MSPMsalGuardConfiguration\n} from '../shared/auth-microsoft.interface';\nimport { MsalBroadcastServiceb2c } from './auth-msalBroadcastServiceb2c.service';\nimport { MsalServiceb2c } from './auth-msalServiceb2c.service';\n\n@Component({\n selector: 'igo-auth-microsoftb2c',\n templateUrl: './auth-microsoftb2c.component.html',\n styleUrls: ['./auth-microsoftb2c.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [MatButtonModule, IgoLanguageModule, IgoIconComponent],\n providers: [MsalServiceb2c]\n})\nexport class AuthMicrosoftb2cComponent {\n private options: AuthMicrosoftb2cOptions;\n private readonly _destroying$ = new Subject<void>();\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\n private broadcastService: MsalBroadcastServiceb2c;\n\n svgIcon: IconSvg = MICROSOFT_ICON;\n\n constructor(\n private authService: AuthService,\n private config: ConfigService,\n private appRef: ApplicationRef,\n private msalService: MsalServiceb2c,\n @Inject(MSAL_GUARD_CONFIG)\n private msalGuardConfig: MSPMsalGuardConfiguration[]\n ) {\n this.options = this.config.getConfig('auth.microsoftb2c') || {};\n\n this.msalService.instance = new PublicClientApplication({\n auth: this.options.browserAuthOptions,\n cache: {\n cacheLocation: 'sessionStorage'\n }\n });\n\n this.broadcastService = new MsalBroadcastServiceb2c(\n this.msalService.instance,\n this.msalService\n );\n\n if (this.options.browserAuthOptions.clientId) {\n this.broadcastService.inProgress$\n .pipe(\n filter(\n (status: InteractionStatus) => status === InteractionStatus.None\n ),\n takeUntil(this._destroying$)\n )\n .subscribe(() => {\n this.checkAccount();\n });\n } else {\n console.warn('Microsoft authentification needs \"clientId\" option');\n }\n }\n\n public loginMicrosoftb2c() {\n this.msalService\n .loginPopup({ ...this.getConf().authRequest } as PopupRequest)\n .subscribe((response: AuthenticationResult) => {\n this.msalService.instance.setActiveAccount(response.account);\n this.checkAccount();\n });\n }\n\n private checkAccount() {\n this.msalService.instance\n .acquireTokenSilent(this.getConf().authRequest as SilentRequest)\n .then((response: AuthenticationResult) => {\n const token = response.idToken;\n this.authService.loginWithToken(token, 'microsoftb2c').subscribe(() => {\n this.appRef.tick();\n this.login.emit(true);\n });\n })\n .catch(async (error) => {\n if (error instanceof InteractionRequiredAuthError) {\n // fallback to interaction when silent call fails\n return this.msalService.acquireTokenPopup(\n this.getConf().authRequest as SilentRequest\n );\n }\n })\n .catch(() => {\n console.log('Silent token fails');\n });\n }\n\n private getConf(): MSPMsalGuardConfiguration {\n return this.msalGuardConfig.filter((conf) => conf.type === 'b2c')[0];\n }\n}\n","<button\n class=\"microsoft-login-button\"\n mat-raised-button\n (click)=\"loginMicrosoftb2c()\"\n>\n <igo-icon [icon]=\"svgIcon\"></igo-icon>\n {{ 'igo.auth.microsoftb2c.login' | translate }}\n</button>\n","import { AuthFeature, AuthFeatureKind } from '@igo2/auth';\nimport { ConfigService } from '@igo2/core/config';\n\nimport {\n MSAL_GUARD_CONFIG,\n MSAL_INSTANCE,\n MsalService\n} from '@azure/msal-angular';\nimport { InteractionType, PublicClientApplication } from '@azure/msal-browser';\nimport { BrowserAuthOptions } from '@azure/msal-browser';\n\nimport { AuthMicrosoftComponent } from './auth-microsoft/auth-microsoft.component';\nimport { AuthMicrosoftb2cComponent } from './auth-microsoftb2c/auth-microsoftb2c.component';\nimport { MsalServiceb2c } from './auth-microsoftb2c/auth-msalServiceb2c.service';\nimport {\n AuthMicrosoftOptions,\n MSPMsalGuardConfiguration\n} from './shared/auth-microsoft.interface';\n\nexport const AUTH_MICROSOFT_DIRECTIVES = [\n AuthMicrosoftComponent,\n AuthMicrosoftb2cComponent\n] as const;\n\nexport function MSALConfigFactory(\n config: ConfigService\n): PublicClientApplication {\n const msConf = config.getConfig('auth.microsoft') as AuthMicrosoftOptions;\n if (!msConf) {\n return;\n }\n\n msConf.redirectUri = msConf?.redirectUri || window.location.href;\n msConf.authority =\n msConf?.authority || 'https://login.microsoftonline.com/organizations';\n\n const myMsalObj = new PublicClientApplication({\n auth: msConf,\n cache: {\n cacheLocation: 'sessionStorage'\n }\n });\n\n return myMsalObj;\n}\n\nexport function MSALConfigFactoryb2c(\n config: ConfigService\n): PublicClientApplication {\n const msConf = config.getConfig(\n 'auth.microsoftb2c.browserAuthOptions'\n ) as BrowserAuthOptions;\n if (!msConf) {\n return;\n }\n msConf.redirectUri = msConf?.redirectUri || window.location.href;\n msConf.authority =\n msConf?.authority || 'https://login.microsoftonline.com/organizations';\n\n const myMsalObj = new PublicClientApplication({\n auth: msConf,\n cache: {\n cacheLocation: 'sessionStorage'\n }\n });\n\n return myMsalObj;\n}\n\nexport function MSALAngularConfigFactory(): MSPMsalGuardConfiguration {\n return {\n interactionType: InteractionType.Popup,\n authRequest: {\n scopes: ['user.read'],\n loginHint: 'todo'\n },\n type: 'add'\n };\n}\n\nexport function MSALAngularConfigFactoryb2c(\n config: ConfigService\n): MSPMsalGuardConfiguration {\n const msConf = config.getConfig(\n 'auth.microsoftb2c.browserAuthOptions'\n ) as BrowserAuthOptions;\n\n return {\n interactionType: InteractionType.Popup,\n authRequest: {\n scopes: [msConf?.clientId]\n },\n type: 'b2c'\n };\n}\n\nexport function withMicrosoftSupport(\n type?: string\n): AuthFeature<AuthFeatureKind.Microsoft> {\n if (type === 'b2c') {\n return {\n kind: AuthFeatureKind.Microsoft,\n providers: [\n {\n provide: MSAL_INSTANCE,\n useFactory: MSALConfigFactoryb2c,\n deps: [ConfigService]\n },\n {\n provide: MSAL_GUARD_CONFIG,\n useFactory: MSALAngularConfigFactoryb2c,\n deps: [ConfigService],\n multi: true\n },\n MsalServiceb2c\n ]\n };\n } else {\n return {\n kind: AuthFeatureKind.Microsoft,\n providers: [\n {\n provide: MSAL_INSTANCE,\n useFactory: MSALConfigFactory,\n deps: [ConfigService]\n },\n {\n provide: MSAL_GUARD_CONFIG,\n useFactory: MSALAngularConfigFactory,\n deps: [ConfigService],\n multi: true\n },\n MsalService\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i1.MsalServiceb2c"],"mappings":"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"}
@@ -38,10 +38,10 @@ class AuthMonitoringService {
38
38
  break;
39
39
  }
40
40
  }
41
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthMonitoringService, deps: [{ token: i1.ConfigService }, { token: MONITORING_OPTIONS, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
42
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthMonitoringService, providedIn: 'root' });
41
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthMonitoringService, deps: [{ token: i1.ConfigService }, { token: MONITORING_OPTIONS, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
42
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthMonitoringService, providedIn: 'root' });
43
43
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthMonitoringService, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthMonitoringService, decorators: [{
45
45
  type: Injectable,
46
46
  args: [{
47
47
  providedIn: 'root'
@@ -66,7 +66,7 @@ function provideAuthUserMonitoring(options) {
66
66
  // Force instantiate Tracing service to avoid require it in any constructor.
67
67
  {
68
68
  provide: APP_INITIALIZER,
69
- useFactory: () => () => { },
69
+ useFactory: () => () => void 1,
70
70
  deps: [AuthMonitoringService],
71
71
  multi: true
72
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-auth-monitoring.mjs","sources":["../../../packages/auth/monitoring/src/auth-monitoring/auth-monitoring.service.ts","../../../packages/auth/monitoring/src/auth-monitoring/auth-monitoring.provider.ts","../../../packages/auth/monitoring/src/igo2-auth-monitoring.ts"],"sourcesContent":["import { Inject, Injectable, Injector, Optional } from '@angular/core';\r\n\r\nimport { AuthService, User } from '@igo2/auth';\r\nimport { ConfigService } from '@igo2/core/config';\r\nimport {\r\n AnyMonitoringOptions,\r\n MONITORING_OPTIONS,\r\n identifySentryUser\r\n} from '@igo2/core/monitoring';\r\n\r\nimport { first, switchMap } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthMonitoringService {\r\n // The AuthService need to be lazy provided because this service is provided in the APP_INITIALIZER\r\n authService?: AuthService;\r\n\r\n constructor(\r\n private configService: ConfigService,\r\n @Optional()\r\n @Inject(MONITORING_OPTIONS)\r\n private monitoringOptions: AnyMonitoringOptions | null,\r\n private injector: Injector\r\n ) {\r\n if (!this.monitoringOptions?.identifyUser) {\r\n return;\r\n }\r\n\r\n this.configService.isLoaded$\r\n .pipe(\r\n first((isLoaded) => isLoaded),\r\n switchMap(() => {\r\n this.authService = this.injector.get(AuthService);\r\n return this.authService?.authenticate$;\r\n })\r\n )\r\n .subscribe((isAuthenticated) => {\r\n const user = isAuthenticated ? this.authService.user : null;\r\n this._identifyUser(user);\r\n });\r\n }\r\n\r\n private _identifyUser(user: User | null): void {\r\n switch (this.monitoringOptions.provider) {\r\n case 'sentry':\r\n identifySentryUser(user);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","import { APP_INITIALIZER, Injector, Provider } from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core/config';\r\nimport {\r\n AnyMonitoringOptions,\r\n MONITORING_OPTIONS\r\n} from '@igo2/core/monitoring';\r\n\r\nimport { AuthMonitoringService } from './auth-monitoring.service';\r\n\r\nexport function provideAuthUserMonitoring(\r\n options: AnyMonitoringOptions | null\r\n): Provider[] {\r\n if (!options) {\r\n return [];\r\n }\r\n\r\n return [\r\n {\r\n provide: AuthMonitoringService,\r\n useClass: AuthMonitoringService,\r\n deps: [ConfigService, MONITORING_OPTIONS, Injector]\r\n },\r\n // Force instantiate Tracing service to avoid require it in any constructor.\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: () => () => {},\r\n deps: [AuthMonitoringService],\r\n multi: true\r\n }\r\n ];\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;MAea,qBAAqB,CAAA;AAKtB,IAAA,aAAA,CAAA;AAGA,IAAA,iBAAA,CAAA;AACA,IAAA,QAAA,CAAA;;AAPV,IAAA,WAAW,CAAe;AAE1B,IAAA,WAAA,CACU,aAA4B,EAG5B,iBAA8C,EAC9C,QAAkB,EAAA;QAJlB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAG5B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAA6B;QAC9C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAE1B,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,EAAE;YACzC,OAAO;SACR;QAED,IAAI,CAAC,aAAa,CAAC,SAAS;AACzB,aAAA,IAAI,CACH,KAAK,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAC7B,SAAS,CAAC,MAAK;YACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAClD,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;AACzC,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,eAAe,KAAI;AAC7B,YAAA,MAAM,IAAI,GAAG,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;AAC5D,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3B,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,aAAa,CAAC,IAAiB,EAAA;AACrC,QAAA,QAAQ,IAAI,CAAC,iBAAiB,CAAC,QAAQ;AACrC,YAAA,KAAK,QAAQ;gBACX,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;AAER,YAAA;gBACE,MAAM;SACT;KACF;AAtCU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,+CAOtB,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAPjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;2FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOI,QAAQ;;0BACR,MAAM;2BAAC,kBAAkB,CAAA;;;ACZxB,SAAU,yBAAyB,CACvC,OAAoC,EAAA;IAEpC,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,OAAO,EAAE,CAAC;KACX;IAED,OAAO;AACL,QAAA;AACE,YAAA,OAAO,EAAE,qBAAqB;AAC9B,YAAA,QAAQ,EAAE,qBAAqB;AAC/B,YAAA,IAAI,EAAE,CAAC,aAAa,EAAE,kBAAkB,EAAE,QAAQ,CAAC;AACpD,SAAA;;AAED,QAAA;AACE,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,UAAU,EAAE,MAAM,SAAQ;YAC1B,IAAI,EAAE,CAAC,qBAAqB,CAAC;AAC7B,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;KACF,CAAC;AACJ;;AC/BA;;AAEG;;;;"}
1
+ {"version":3,"file":"igo2-auth-monitoring.mjs","sources":["../../../packages/auth/monitoring/src/auth-monitoring/auth-monitoring.service.ts","../../../packages/auth/monitoring/src/auth-monitoring/auth-monitoring.provider.ts","../../../packages/auth/monitoring/src/igo2-auth-monitoring.ts"],"sourcesContent":["import { Inject, Injectable, Injector, Optional } from '@angular/core';\n\nimport { AuthService, User } from '@igo2/auth';\nimport { ConfigService } from '@igo2/core/config';\nimport {\n AnyMonitoringOptions,\n MONITORING_OPTIONS,\n identifySentryUser\n} from '@igo2/core/monitoring';\n\nimport { first, switchMap } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthMonitoringService {\n // The AuthService need to be lazy provided because this service is provided in the APP_INITIALIZER\n authService?: AuthService;\n\n constructor(\n private configService: ConfigService,\n @Optional()\n @Inject(MONITORING_OPTIONS)\n private monitoringOptions: AnyMonitoringOptions | null,\n private injector: Injector\n ) {\n if (!this.monitoringOptions?.identifyUser) {\n return;\n }\n\n this.configService.isLoaded$\n .pipe(\n first((isLoaded) => isLoaded),\n switchMap(() => {\n this.authService = this.injector.get(AuthService);\n return this.authService?.authenticate$;\n })\n )\n .subscribe((isAuthenticated) => {\n const user = isAuthenticated ? this.authService.user : null;\n this._identifyUser(user);\n });\n }\n\n private _identifyUser(user: User | null): void {\n switch (this.monitoringOptions.provider) {\n case 'sentry':\n identifySentryUser(user);\n break;\n\n default:\n break;\n }\n }\n}\n","import { APP_INITIALIZER, Injector, Provider } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\nimport {\n AnyMonitoringOptions,\n MONITORING_OPTIONS\n} from '@igo2/core/monitoring';\n\nimport { AuthMonitoringService } from './auth-monitoring.service';\n\nexport function provideAuthUserMonitoring(\n options: AnyMonitoringOptions | null\n): Provider[] {\n if (!options) {\n return [];\n }\n\n return [\n {\n provide: AuthMonitoringService,\n useClass: AuthMonitoringService,\n deps: [ConfigService, MONITORING_OPTIONS, Injector]\n },\n // Force instantiate Tracing service to avoid require it in any constructor.\n {\n provide: APP_INITIALIZER,\n useFactory: () => () => void 1,\n deps: [AuthMonitoringService],\n multi: true\n }\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;MAea,qBAAqB,CAAA;AAKtB,IAAA,aAAA,CAAA;AAGA,IAAA,iBAAA,CAAA;AACA,IAAA,QAAA,CAAA;;AAPV,IAAA,WAAW,CAAe;AAE1B,IAAA,WAAA,CACU,aAA4B,EAG5B,iBAA8C,EAC9C,QAAkB,EAAA;QAJlB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAG5B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAA6B;QAC9C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAE1B,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,EAAE;YACzC,OAAO;SACR;QAED,IAAI,CAAC,aAAa,CAAC,SAAS;AACzB,aAAA,IAAI,CACH,KAAK,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAC7B,SAAS,CAAC,MAAK;YACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAClD,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;AACzC,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,eAAe,KAAI;AAC7B,YAAA,MAAM,IAAI,GAAG,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;AAC5D,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3B,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,aAAa,CAAC,IAAiB,EAAA;AACrC,QAAA,QAAQ,IAAI,CAAC,iBAAiB,CAAC,QAAQ;AACrC,YAAA,KAAK,QAAQ;gBACX,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;AAER,YAAA;gBACE,MAAM;SACT;KACF;AAtCU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,+CAOtB,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAPjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;2FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOI,QAAQ;;0BACR,MAAM;2BAAC,kBAAkB,CAAA;;;ACZxB,SAAU,yBAAyB,CACvC,OAAoC,EAAA;IAEpC,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,OAAO,EAAE,CAAC;KACX;IAED,OAAO;AACL,QAAA;AACE,YAAA,OAAO,EAAE,qBAAqB;AAC9B,YAAA,QAAQ,EAAE,qBAAqB;AAC/B,YAAA,IAAI,EAAE,CAAC,aAAa,EAAE,kBAAkB,EAAE,QAAQ,CAAC;AACpD,SAAA;;AAED,QAAA;AACE,YAAA,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,MAAM,MAAM,KAAK,CAAC;YAC9B,IAAI,EAAE,CAAC,qBAAqB,CAAC;AAC7B,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;KACF,CAAC;AACJ;;AC/BA;;AAEG;;;;"}
@@ -49,10 +49,10 @@ class TokenService {
49
49
  }
50
50
  return true;
51
51
  }
52
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TokenService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
53
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TokenService, providedIn: 'root' });
52
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TokenService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
53
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TokenService, providedIn: 'root' });
54
54
  }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TokenService, decorators: [{
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TokenService, decorators: [{
56
56
  type: Injectable,
57
57
  args: [{
58
58
  providedIn: 'root'
@@ -204,10 +204,10 @@ class AuthService {
204
204
  throw err;
205
205
  }));
206
206
  }
207
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: TokenService }, { token: i2.ConfigService }, { token: i4.LanguageService }, { token: i5.MessageService }, { token: i3.Router, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
208
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthService, providedIn: 'root' });
207
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: TokenService }, { token: i2.ConfigService }, { token: i4.LanguageService }, { token: i5.MessageService }, { token: i3.Router, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
208
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthService, providedIn: 'root' });
209
209
  }
210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthService, decorators: [{
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthService, decorators: [{
211
211
  type: Injectable,
212
212
  args: [{
213
213
  providedIn: 'root'
@@ -295,10 +295,10 @@ class AuthStorageService extends BaseStorage {
295
295
  });
296
296
  }
297
297
  }
298
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthStorageService, deps: [{ token: i2.ConfigService }, { token: i1.HttpClient }, { token: AuthService }, { token: TokenService }], target: i0.ɵɵFactoryTarget.Injectable });
299
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthStorageService, providedIn: 'root' });
298
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthStorageService, deps: [{ token: i2.ConfigService }, { token: i1.HttpClient }, { token: AuthService }, { token: TokenService }], target: i0.ɵɵFactoryTarget.Injectable });
299
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthStorageService, providedIn: 'root' });
300
300
  }
301
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthStorageService, decorators: [{
301
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthStorageService, decorators: [{
302
302
  type: Injectable,
303
303
  args: [{
304
304
  providedIn: 'root'
@@ -348,9 +348,6 @@ class AuthInterceptor {
348
348
  const token = this.tokenService.get();
349
349
  const element = document.createElement('a');
350
350
  element.href = req.url;
351
- if (element.host === '') {
352
- element.href = element.href; // FIX IE11, DO NOT REMOVE
353
- }
354
351
  if (!token || this.trustHosts.indexOf(element.hostname) === -1) {
355
352
  return next.handle(req);
356
353
  }
@@ -390,7 +387,7 @@ class AuthInterceptor {
390
387
  }
391
388
  alterUrlWithKeyAuth(url) {
392
389
  const hostWithKey = this.handleHostsAuthByKey(url);
393
- let interceptedUrl = url;
390
+ const interceptedUrl = url;
394
391
  if (hostWithKey) {
395
392
  const urlDecomposed = interceptedUrl.split(/[?&]/);
396
393
  let urlWithKeyAdded = urlDecomposed.shift();
@@ -422,8 +419,8 @@ class AuthInterceptor {
422
419
  for (const hostWithAuthByKey of this.hostsWithAuthByKey) {
423
420
  const domainRegex = new RegExp(hostWithAuthByKey.domainRegFilters);
424
421
  if (domainRegex.test(reqUrl)) {
425
- var replace = `${hostWithAuthByKey.keyProperty}=${hostWithAuthByKey.keyValue}`;
426
- var keyAdded = new RegExp(replace, 'gm');
422
+ const replace = `${hostWithAuthByKey.keyProperty}=${hostWithAuthByKey.keyValue}`;
423
+ const keyAdded = new RegExp(replace, 'gm');
427
424
  if (!keyAdded.test(reqUrl)) {
428
425
  hostWithKey = {
429
426
  key: hostWithAuthByKey.keyProperty,
@@ -453,10 +450,10 @@ class AuthInterceptor {
453
450
  });
454
451
  }
455
452
  }
456
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthInterceptor, deps: [{ token: i2.ConfigService }, { token: TokenService }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
457
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthInterceptor, providedIn: 'root' });
453
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthInterceptor, deps: [{ token: i2.ConfigService }, { token: TokenService }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
454
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthInterceptor, providedIn: 'root' });
458
455
  }
459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthInterceptor, decorators: [{
456
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthInterceptor, decorators: [{
460
457
  type: Injectable,
461
458
  args: [{
462
459
  providedIn: 'root'
@@ -483,10 +480,10 @@ class LoggedGuard {
483
480
  }
484
481
  return false;
485
482
  }
486
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: LoggedGuard, deps: [{ token: AuthService }, { token: i2.ConfigService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
487
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: LoggedGuard, providedIn: 'root' });
483
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: LoggedGuard, deps: [{ token: AuthService }, { token: i2.ConfigService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
484
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: LoggedGuard, providedIn: 'root' });
488
485
  }
489
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: LoggedGuard, decorators: [{
486
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: LoggedGuard, decorators: [{
490
487
  type: Injectable,
491
488
  args: [{
492
489
  providedIn: 'root'
@@ -513,10 +510,10 @@ class AuthGuard {
513
510
  }
514
511
  return false;
515
512
  }
516
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthGuard, deps: [{ token: AuthService }, { token: i2.ConfigService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
517
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthGuard, providedIn: 'root' });
513
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthGuard, deps: [{ token: AuthService }, { token: i2.ConfigService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
514
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthGuard, providedIn: 'root' });
518
515
  }
519
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthGuard, decorators: [{
516
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AuthGuard, decorators: [{
520
517
  type: Injectable,
521
518
  args: [{
522
519
  providedIn: 'root'
@@ -543,10 +540,10 @@ class AdminGuard {
543
540
  }
544
541
  return false;
545
542
  }
546
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AdminGuard, deps: [{ token: AuthService }, { token: i2.ConfigService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
547
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AdminGuard, providedIn: 'root' });
543
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AdminGuard, deps: [{ token: AuthService }, { token: i2.ConfigService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
544
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AdminGuard, providedIn: 'root' });
548
545
  }
549
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AdminGuard, decorators: [{
546
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AdminGuard, decorators: [{
550
547
  type: Injectable,
551
548
  args: [{
552
549
  providedIn: 'root'
@@ -577,10 +574,10 @@ class ProfilsGuard {
577
574
  return false;
578
575
  }));
579
576
  }
580
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ProfilsGuard, deps: [{ token: AuthService }, { token: i2.ConfigService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
581
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ProfilsGuard, providedIn: 'root' });
577
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ProfilsGuard, deps: [{ token: AuthService }, { token: i2.ConfigService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
578
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ProfilsGuard, providedIn: 'root' });
582
579
  }
583
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ProfilsGuard, decorators: [{
580
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ProfilsGuard, decorators: [{
584
581
  type: Injectable,
585
582
  args: [{
586
583
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-auth.mjs","sources":["../../../packages/auth/src/lib/shared/token.service.ts","../../../packages/auth/src/lib/shared/auth.service.ts","../../../packages/auth/src/lib/shared/auth-storage.service.ts","../../../packages/auth/src/lib/shared/auth.interface.ts","../../../packages/auth/src/lib/shared/auth.interceptor.ts","../../../packages/auth/src/lib/shared/logged.guard.ts","../../../packages/auth/src/lib/shared/auth.guard.ts","../../../packages/auth/src/lib/shared/admin.guard.ts","../../../packages/auth/src/lib/shared/profils.guard.ts","../../../packages/auth/src/lib/auth.provider.ts","../../../packages/auth/src/public_api.ts","../../../packages/auth/src/igo2-auth.ts"],"sourcesContent":["import { Injectable, Injector } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { jwtDecode } from 'jwt-decode';\n\nimport { AuthOptions } from './auth.interface';\nimport { IgoJwtPayload } from './token.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenService {\n private options?: AuthOptions;\n private tokenKey: string;\n\n constructor(private injector: Injector) {\n const config = this.injector.get<ConfigService>(ConfigService);\n this.options = config.getConfig('auth');\n this.tokenKey = this.options?.tokenKey;\n }\n\n set(token: string) {\n localStorage.setItem(this.tokenKey, token);\n }\n\n remove() {\n localStorage.removeItem(this.tokenKey);\n }\n\n get(): string {\n return localStorage.getItem(this.tokenKey);\n }\n\n decode(): IgoJwtPayload | null {\n const token = this.get();\n if (!token) {\n return;\n }\n return jwtDecode(token) satisfies IgoJwtPayload;\n }\n\n isExpired() {\n const jwt = this.decode();\n const currentTime = new Date().getTime() / 1000;\n if (jwt && currentTime < jwt.exp) {\n return false;\n }\n return true;\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ConfigService } from '@igo2/core/config';\nimport { LanguageService } from '@igo2/core/language';\nimport { MessageService } from '@igo2/core/message';\nimport { Base64 } from '@igo2/utils';\n\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { catchError, tap } from 'rxjs/operators';\nimport { globalCacheBusterNotifier } from 'ts-cacheable';\n\nimport { AuthOptions, IInfosUser, User } from './auth.interface';\nimport { IgoJwtPayload } from './token.interface';\nimport { TokenService } from './token.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n public authenticate$ = new BehaviorSubject<boolean>(undefined);\n public logged$ = new BehaviorSubject<boolean>(undefined);\n public redirectUrl: string;\n public languageForce = false;\n private anonymous = false;\n private authOptions: AuthOptions;\n\n get hasAuthService() {\n return this.authOptions?.url !== undefined;\n }\n\n get user(): User | null {\n const decodedToken = this.decodeToken();\n return decodedToken?.user ? decodedToken.user : null;\n }\n\n constructor(\n private http: HttpClient,\n private tokenService: TokenService,\n private config: ConfigService,\n private languageService: LanguageService,\n private messageService: MessageService,\n @Optional() private router: Router\n ) {\n this.authOptions = this.config.getConfig('auth');\n this.authenticate$.next(this.authenticated);\n this.authenticate$.subscribe((authenticated) => {\n this.logged$.next(authenticated);\n globalCacheBusterNotifier.next();\n });\n }\n\n login(username: string, password: string): Observable<void> {\n const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n\n const body = {\n username,\n password: this.encodePassword(password)\n };\n\n return this.loginCall(body, myHeader);\n }\n\n loginWithToken(\n token: string,\n type: string,\n infosUser?: IInfosUser\n ): Observable<void> {\n const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n\n const body = {\n token,\n typeConnection: type,\n infosUser\n };\n\n return this.loginCall(body, myHeader);\n }\n\n loginAnonymous(): Observable<boolean> {\n this.anonymous = true;\n this.logged$.next(true);\n return of(true);\n }\n\n refresh(): Observable<void> {\n return this.http.post(`${this.authOptions?.url}/refresh`, {}).pipe(\n tap((data: any) => {\n this.tokenService.set(data.token);\n }),\n catchError((err) => {\n err.error.caught = true;\n throw err;\n })\n );\n }\n\n logout(): Observable<boolean> {\n this.anonymous = false;\n this.tokenService.remove();\n this.authenticate$.next(false);\n return of(true);\n }\n\n isAuthenticated(): boolean {\n return !this.tokenService.isExpired();\n }\n\n getToken(): string {\n return this.tokenService.get();\n }\n\n decodeToken(): IgoJwtPayload | null {\n if (this.isAuthenticated()) {\n return this.tokenService.decode();\n }\n return;\n }\n\n goToRedirectUrl() {\n if (!this.router) {\n return;\n }\n const redirectUrl = this.redirectUrl || this.router.url;\n\n if (redirectUrl === this.authOptions.loginRoute) {\n const homeRoute = this.authOptions.homeRoute || '/';\n this.router.navigateByUrl(homeRoute);\n } else if (redirectUrl) {\n this.router.navigateByUrl(redirectUrl);\n }\n }\n\n getUserInfo(): Observable<User> {\n const url = this.authOptions?.url + '/info';\n return this.http.get<User>(url);\n }\n\n getProfils(): Observable<{ profils: string[] }> {\n return this.http.get<{ profils: string[] }>(\n `${this.authOptions?.url}/profils`\n );\n }\n\n updateUser(user: User): Observable<User> {\n return this.http.patch<User>(this.authOptions?.url, user);\n }\n\n private encodePassword(password: string) {\n return Base64.encode(password);\n }\n\n // authenticated or anonymous\n get logged(): boolean {\n return this.authenticated || this.isAnonymous;\n }\n\n get isAnonymous(): boolean {\n return this.anonymous;\n }\n\n get authenticated(): boolean {\n return this.isAuthenticated();\n }\n\n get isAdmin(): boolean {\n const token = this.decodeToken();\n if (token?.user?.isAdmin) {\n return true;\n }\n return false;\n }\n\n private loginCall(body, headers) {\n return this.http\n .post(`${this.authOptions?.url}/login`, body, { headers })\n .pipe(\n tap((data: any) => {\n this.tokenService.set(data.token);\n const tokenDecoded = this.decodeToken();\n if (tokenDecoded?.user) {\n if (tokenDecoded.user.locale && !this.languageForce) {\n this.languageService.setLanguage(tokenDecoded.user.locale);\n }\n if (tokenDecoded.user.isExpired) {\n this.messageService.alert('igo.auth.error.Password expired');\n }\n }\n this.authenticate$.next(true);\n }),\n catchError((err) => {\n err.error.caught = true;\n throw err;\n })\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\nimport { BaseStorage, StorageScope } from '@igo2/core/storage';\n\nimport { AuthStorageOptions } from './auth-storage.interface';\nimport { AuthService } from './auth.service';\nimport { TokenService } from './token.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthStorageService extends BaseStorage<AuthStorageOptions> {\n constructor(\n config: ConfigService,\n private http: HttpClient,\n private authService: AuthService,\n private tokenService: TokenService\n ) {\n super(config);\n\n this.authService.authenticate$.subscribe((isAuthenticated) => {\n if (isAuthenticated && this.options.url) {\n this.http\n .get(this.options.url)\n .subscribe((userIgo: { preference: object }) => {\n if (userIgo && userIgo.preference) {\n for (const key of Object.keys(userIgo.preference)) {\n const value = userIgo.preference[key];\n super.set(key, value);\n }\n }\n });\n }\n });\n }\n\n set(\n key: string,\n value: string | object | boolean | number,\n scope: StorageScope = StorageScope.LOCAL\n ) {\n if (\n scope === StorageScope.LOCAL &&\n this.authService.authenticated &&\n this.options.url\n ) {\n const preference = {};\n preference[key] = value;\n this.http.patch(this.options.url, { preference }).subscribe();\n }\n super.set(key, value, scope);\n }\n\n remove(key: string, scope: StorageScope = StorageScope.LOCAL) {\n if (\n scope === StorageScope.LOCAL &&\n this.authService.authenticated &&\n this.options.url\n ) {\n const preference = {};\n preference[key] = undefined;\n this.http.patch(this.options.url, { preference }).subscribe();\n }\n super.remove(key, scope);\n }\n\n clear(scope: StorageScope = StorageScope.LOCAL) {\n if (\n scope === StorageScope.LOCAL &&\n this.authService.authenticated &&\n this.options.url\n ) {\n this.http\n .patch(\n this.options.url,\n { preference: {} },\n {\n params: {\n mergePreference: 'false'\n }\n }\n )\n .subscribe();\n }\n\n let token: string;\n if (scope === StorageScope.LOCAL) {\n token = this.tokenService.get();\n }\n\n super.clear(scope);\n\n if (token) {\n this.tokenService.set(token);\n }\n\n if (\n scope === StorageScope.LOCAL &&\n this.authService.authenticated &&\n this.options.url\n ) {\n this.http\n .get(this.options.url)\n .subscribe((userIgo: { preference: object }) => {\n if (userIgo && userIgo.preference) {\n for (const key of Object.keys(userIgo.preference)) {\n const value = userIgo.preference[key];\n super.set(key, value);\n }\n }\n });\n }\n }\n}\n","import { Provider } from '@angular/core';\n\nimport { BaseUser } from '@igo2/core/user';\n\nexport interface User extends BaseUser {\n source?: string;\n sourceId?: string;\n locale?: string;\n isExpired?: boolean;\n isAdmin?: boolean;\n defaultContextId?: string;\n}\n\nexport interface IInfosUser {\n tokenId: string;\n}\n\nexport type AuthOptions = {\n url?: string;\n tokenKey?: string;\n allowAnonymous?: boolean;\n loginRoute?: string;\n logoutRoute?: string;\n homeRoute?: string;\n trustHosts?: string[];\n profilsGuard?: string[];\n hostsWithCredentials?: WithCredentialsOptions[];\n hostsByKey?: AuthByKeyOptions[];\n intern?: AuthInternOptions;\n};\n\nexport interface AuthByKeyOptions {\n domainRegFilters?: string;\n keyProperty?: string;\n keyValue?: string;\n}\nexport interface WithCredentialsOptions {\n withCredentials?: boolean;\n domainRegFilters?: string;\n}\n\nexport interface AuthInternOptions {\n enabled?: boolean;\n}\n\nexport interface AuthFeature<KindT extends AuthFeatureKind> {\n kind: KindT;\n providers: Provider[];\n}\n\nexport enum AuthFeatureKind {\n Microsoft = 0\n}\n","import { HttpClient } from '@angular/common/http';\nimport {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { Observable } from 'rxjs';\nimport { Md5 } from 'ts-md5';\n\nimport {\n AuthByKeyOptions,\n AuthOptions,\n WithCredentialsOptions\n} from './auth.interface';\nimport { TokenService } from './token.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthInterceptor implements HttpInterceptor {\n private authOptions: AuthOptions;\n private refreshInProgress = false;\n private trustHosts: string[];\n private hostsWithCredentials: WithCredentialsOptions[];\n private hostsWithAuthByKey: AuthByKeyOptions[];\n\n constructor(\n private config: ConfigService,\n private tokenService: TokenService,\n private http: HttpClient\n ) {\n this.authOptions = this.config.getConfig('auth') as AuthOptions;\n\n this.trustHosts = this.authOptions?.trustHosts || [];\n this.trustHosts.push(window.location.hostname);\n\n this.hostsWithCredentials = this.authOptions?.hostsWithCredentials || [];\n this.hostsWithAuthByKey = this.authOptions?.hostsByKey || [];\n }\n\n intercept(\n originalReq: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n const withCredentials = this.handleHostsWithCredentials(originalReq.url);\n let req = originalReq.clone();\n const hostWithKey = this.handleHostsAuthByKey(originalReq.url);\n if (hostWithKey) {\n req = req.clone({\n params: req.params.set(hostWithKey.key, hostWithKey.value)\n });\n }\n if (withCredentials) {\n req = originalReq.clone({\n withCredentials\n });\n return next.handle(req);\n }\n this.refreshToken();\n const token = this.tokenService.get();\n const element = document.createElement('a');\n element.href = req.url;\n if (element.host === '') {\n element.href = element.href; // FIX IE11, DO NOT REMOVE\n }\n\n if (!token || this.trustHosts.indexOf(element.hostname) === -1) {\n return next.handle(req);\n }\n\n const authHeader = `Bearer ${token}`;\n let authReq = req.clone({\n headers: req.headers.set('Authorization', authHeader)\n });\n\n const tokenDecoded = this.tokenService.decode();\n if (authReq.params.get('_i') === 'true' && tokenDecoded?.user?.sourceId) {\n const hashUser = Md5.hashStr(tokenDecoded.user.sourceId) as string;\n authReq = authReq.clone({\n params: authReq.params.set('_i', hashUser)\n });\n } else if (authReq.params.get('_i') === 'true') {\n authReq = authReq.clone({\n params: authReq.params.delete('_i')\n });\n }\n\n return next.handle(authReq);\n }\n\n interceptXhr(xhr, url: string): boolean {\n const withCredentials = this.handleHostsWithCredentials(url);\n if (withCredentials) {\n xhr.withCredentials = withCredentials;\n return true;\n }\n\n this.refreshToken();\n const element = document.createElement('a');\n element.href = url;\n\n const token = this.tokenService.get();\n if (!token || this.trustHosts.indexOf(element.hostname) === -1) {\n return false;\n }\n xhr.setRequestHeader('Authorization', 'Bearer ' + token);\n return true;\n }\n\n alterUrlWithKeyAuth(url: string): string {\n const hostWithKey = this.handleHostsAuthByKey(url);\n let interceptedUrl = url;\n if (hostWithKey) {\n const urlDecomposed = interceptedUrl.split(/[?&]/);\n let urlWithKeyAdded = urlDecomposed.shift();\n const paramsToKeep = urlDecomposed.filter((p) => p.length !== 0);\n paramsToKeep.push(`${hostWithKey.key}=${hostWithKey.value}`);\n if (paramsToKeep.length) {\n urlWithKeyAdded += '?' + paramsToKeep.join('&');\n }\n return urlWithKeyAdded;\n }\n return;\n }\n\n private handleHostsWithCredentials(reqUrl: string) {\n let withCredentials = false;\n for (const hostWithCredentials of this.hostsWithCredentials) {\n const domainRegex = new RegExp(hostWithCredentials.domainRegFilters);\n if (domainRegex.test(reqUrl)) {\n withCredentials =\n hostWithCredentials.withCredentials !== undefined\n ? hostWithCredentials.withCredentials\n : undefined;\n break;\n }\n }\n return withCredentials;\n }\n\n private handleHostsAuthByKey(reqUrl: string): { key: string; value: string } {\n let hostWithKey;\n for (const hostWithAuthByKey of this.hostsWithAuthByKey) {\n const domainRegex = new RegExp(hostWithAuthByKey.domainRegFilters);\n if (domainRegex.test(reqUrl)) {\n var replace = `${hostWithAuthByKey.keyProperty}=${hostWithAuthByKey.keyValue}`;\n var keyAdded = new RegExp(replace, 'gm');\n if (!keyAdded.test(reqUrl)) {\n hostWithKey = {\n key: hostWithAuthByKey.keyProperty,\n value: hostWithAuthByKey.keyValue\n };\n break;\n }\n }\n }\n return hostWithKey;\n }\n\n refreshToken() {\n const jwt = this.tokenService.decode();\n const currentTime = new Date().getTime() / 1000;\n\n if (\n !this.refreshInProgress &&\n jwt &&\n currentTime < jwt.exp &&\n currentTime > jwt.exp - 1800\n ) {\n this.refreshInProgress = true;\n\n const url = this.authOptions?.url;\n return this.http.post(`${url}/refresh`, {}).subscribe(\n (data: any) => {\n this.tokenService.set(data.token);\n this.refreshInProgress = false;\n },\n (err) => {\n err.error.caught = true;\n return err;\n }\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { AuthOptions } from './auth.interface';\nimport { AuthService } from './auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoggedGuard {\n constructor(\n private authService: AuthService,\n private config: ConfigService,\n private router: Router\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if (this.authService.logged) {\n return true;\n }\n\n this.authService.redirectUrl = state.url;\n\n const authConfig = this.config.getConfig('auth') as AuthOptions;\n if (authConfig?.loginRoute) {\n this.router.navigateByUrl(authConfig.loginRoute);\n }\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { AuthOptions } from './auth.interface';\nimport { AuthService } from './auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard {\n constructor(\n private authService: AuthService,\n private config: ConfigService,\n private router: Router\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if (this.authService.authenticated) {\n return true;\n }\n\n this.authService.redirectUrl = state.url;\n\n const authConfig = this.config.getConfig('auth') as AuthOptions;\n if (authConfig?.loginRoute) {\n this.router.navigateByUrl(authConfig.loginRoute);\n }\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { AuthOptions } from './auth.interface';\nimport { AuthService } from './auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AdminGuard {\n constructor(\n private authService: AuthService,\n private config: ConfigService,\n private router: Router\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if (this.authService.isAdmin) {\n return true;\n }\n\n this.authService.redirectUrl = state.url;\n\n const authConfig = this.config.getConfig('auth') as AuthOptions;\n if (authConfig?.loginRoute) {\n this.router.navigateByUrl(authConfig.loginRoute);\n }\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { map } from 'rxjs/operators';\n\nimport { AuthOptions } from './auth.interface';\nimport { AuthService } from './auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProfilsGuard {\n constructor(\n private authService: AuthService,\n private config: ConfigService,\n private router: Router\n ) {}\n\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n return this.authService.getProfils().pipe(\n map((profils: { profils: string[] }) => {\n const authConfig = this.config.getConfig('auth') as AuthOptions;\n if (\n profils &&\n profils.profils &&\n profils.profils.some((v) => authConfig.profilsGuard.indexOf(v) !== -1)\n ) {\n return true;\n }\n\n this.authService.redirectUrl = state.url;\n\n if (authConfig?.loginRoute) {\n this.router.navigateByUrl(authConfig.loginRoute);\n }\n\n return false;\n })\n );\n }\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport {\n EnvironmentProviders,\n Provider,\n makeEnvironmentProviders\n} from '@angular/core';\n\nimport { StorageService } from '@igo2/core/storage';\n\nimport {\n AuthFeature,\n AuthFeatureKind,\n AuthInterceptor,\n AuthStorageService\n} from './shared';\n\nexport function provideAuthentification(\n ...features: AuthFeature<AuthFeatureKind>[]\n): EnvironmentProviders {\n const providers: Provider[] = [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptor,\n multi: true\n },\n {\n provide: StorageService,\n useClass: AuthStorageService\n }\n ];\n\n for (const feature of features) {\n providers.push(...feature.providers);\n }\n\n return makeEnvironmentProviders(providers);\n}\n","/*\n * Public API Surface of auth\n */\nexport * from './lib/auth.provider';\nexport * from './lib/shared';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.TokenService","i3","i6","i1","i2","i3.AuthService","i4.TokenService","i1.AuthService"],"mappings":"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"}
1
+ {"version":3,"file":"igo2-auth.mjs","sources":["../../../packages/auth/src/lib/shared/token.service.ts","../../../packages/auth/src/lib/shared/auth.service.ts","../../../packages/auth/src/lib/shared/auth-storage.service.ts","../../../packages/auth/src/lib/shared/auth.interface.ts","../../../packages/auth/src/lib/shared/auth.interceptor.ts","../../../packages/auth/src/lib/shared/logged.guard.ts","../../../packages/auth/src/lib/shared/auth.guard.ts","../../../packages/auth/src/lib/shared/admin.guard.ts","../../../packages/auth/src/lib/shared/profils.guard.ts","../../../packages/auth/src/lib/auth.provider.ts","../../../packages/auth/src/public_api.ts","../../../packages/auth/src/igo2-auth.ts"],"sourcesContent":["import { Injectable, Injector } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { jwtDecode } from 'jwt-decode';\n\nimport { AuthOptions } from './auth.interface';\nimport { IgoJwtPayload } from './token.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenService {\n private options?: AuthOptions;\n private tokenKey: string;\n\n constructor(private injector: Injector) {\n const config = this.injector.get<ConfigService>(ConfigService);\n this.options = config.getConfig('auth');\n this.tokenKey = this.options?.tokenKey;\n }\n\n set(token: string) {\n localStorage.setItem(this.tokenKey, token);\n }\n\n remove() {\n localStorage.removeItem(this.tokenKey);\n }\n\n get(): string {\n return localStorage.getItem(this.tokenKey);\n }\n\n decode(): IgoJwtPayload | null {\n const token = this.get();\n if (!token) {\n return;\n }\n return jwtDecode(token) satisfies IgoJwtPayload;\n }\n\n isExpired() {\n const jwt = this.decode();\n const currentTime = new Date().getTime() / 1000;\n if (jwt && currentTime < jwt.exp) {\n return false;\n }\n return true;\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ConfigService } from '@igo2/core/config';\nimport { LanguageService } from '@igo2/core/language';\nimport { MessageService } from '@igo2/core/message';\nimport { Base64 } from '@igo2/utils';\n\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { catchError, tap } from 'rxjs/operators';\nimport { globalCacheBusterNotifier } from 'ts-cacheable';\n\nimport { AuthOptions, IInfosUser, User } from './auth.interface';\nimport { IgoJwtPayload } from './token.interface';\nimport { TokenService } from './token.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n public authenticate$ = new BehaviorSubject<boolean>(undefined);\n public logged$ = new BehaviorSubject<boolean>(undefined);\n public redirectUrl: string;\n public languageForce = false;\n private anonymous = false;\n private authOptions: AuthOptions;\n\n get hasAuthService() {\n return this.authOptions?.url !== undefined;\n }\n\n get user(): User | null {\n const decodedToken = this.decodeToken();\n return decodedToken?.user ? decodedToken.user : null;\n }\n\n constructor(\n private http: HttpClient,\n private tokenService: TokenService,\n private config: ConfigService,\n private languageService: LanguageService,\n private messageService: MessageService,\n @Optional() private router: Router\n ) {\n this.authOptions = this.config.getConfig('auth');\n this.authenticate$.next(this.authenticated);\n this.authenticate$.subscribe((authenticated) => {\n this.logged$.next(authenticated);\n globalCacheBusterNotifier.next();\n });\n }\n\n login(username: string, password: string): Observable<void> {\n const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n\n const body = {\n username,\n password: this.encodePassword(password)\n };\n\n return this.loginCall(body, myHeader);\n }\n\n loginWithToken(\n token: string,\n type: string,\n infosUser?: IInfosUser\n ): Observable<void> {\n const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n\n const body = {\n token,\n typeConnection: type,\n infosUser\n };\n\n return this.loginCall(body, myHeader);\n }\n\n loginAnonymous(): Observable<boolean> {\n this.anonymous = true;\n this.logged$.next(true);\n return of(true);\n }\n\n refresh(): Observable<void> {\n return this.http.post(`${this.authOptions?.url}/refresh`, {}).pipe(\n tap((data: any) => {\n this.tokenService.set(data.token);\n }),\n catchError((err) => {\n err.error.caught = true;\n throw err;\n })\n );\n }\n\n logout(): Observable<boolean> {\n this.anonymous = false;\n this.tokenService.remove();\n this.authenticate$.next(false);\n return of(true);\n }\n\n isAuthenticated(): boolean {\n return !this.tokenService.isExpired();\n }\n\n getToken(): string {\n return this.tokenService.get();\n }\n\n decodeToken(): IgoJwtPayload | null {\n if (this.isAuthenticated()) {\n return this.tokenService.decode();\n }\n return;\n }\n\n goToRedirectUrl() {\n if (!this.router) {\n return;\n }\n const redirectUrl = this.redirectUrl || this.router.url;\n\n if (redirectUrl === this.authOptions.loginRoute) {\n const homeRoute = this.authOptions.homeRoute || '/';\n this.router.navigateByUrl(homeRoute);\n } else if (redirectUrl) {\n this.router.navigateByUrl(redirectUrl);\n }\n }\n\n getUserInfo(): Observable<User> {\n const url = this.authOptions?.url + '/info';\n return this.http.get<User>(url);\n }\n\n getProfils(): Observable<{ profils: string[] }> {\n return this.http.get<{ profils: string[] }>(\n `${this.authOptions?.url}/profils`\n );\n }\n\n updateUser(user: User): Observable<User> {\n return this.http.patch<User>(this.authOptions?.url, user);\n }\n\n private encodePassword(password: string) {\n return Base64.encode(password);\n }\n\n // authenticated or anonymous\n get logged(): boolean {\n return this.authenticated || this.isAnonymous;\n }\n\n get isAnonymous(): boolean {\n return this.anonymous;\n }\n\n get authenticated(): boolean {\n return this.isAuthenticated();\n }\n\n get isAdmin(): boolean {\n const token = this.decodeToken();\n if (token?.user?.isAdmin) {\n return true;\n }\n return false;\n }\n\n private loginCall(body, headers) {\n return this.http\n .post(`${this.authOptions?.url}/login`, body, { headers })\n .pipe(\n tap((data: any) => {\n this.tokenService.set(data.token);\n const tokenDecoded = this.decodeToken();\n if (tokenDecoded?.user) {\n if (tokenDecoded.user.locale && !this.languageForce) {\n this.languageService.setLanguage(tokenDecoded.user.locale);\n }\n if (tokenDecoded.user.isExpired) {\n this.messageService.alert('igo.auth.error.Password expired');\n }\n }\n this.authenticate$.next(true);\n }),\n catchError((err) => {\n err.error.caught = true;\n throw err;\n })\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\nimport { BaseStorage, StorageScope } from '@igo2/core/storage';\n\nimport { AuthStorageOptions } from './auth-storage.interface';\nimport { AuthService } from './auth.service';\nimport { TokenService } from './token.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthStorageService extends BaseStorage<AuthStorageOptions> {\n constructor(\n config: ConfigService,\n private http: HttpClient,\n private authService: AuthService,\n private tokenService: TokenService\n ) {\n super(config);\n\n this.authService.authenticate$.subscribe((isAuthenticated) => {\n if (isAuthenticated && this.options.url) {\n this.http\n .get(this.options.url)\n .subscribe((userIgo: { preference: object }) => {\n if (userIgo && userIgo.preference) {\n for (const key of Object.keys(userIgo.preference)) {\n const value = userIgo.preference[key];\n super.set(key, value);\n }\n }\n });\n }\n });\n }\n\n set(\n key: string,\n value: string | object | boolean | number,\n scope: StorageScope = StorageScope.LOCAL\n ) {\n if (\n scope === StorageScope.LOCAL &&\n this.authService.authenticated &&\n this.options.url\n ) {\n const preference = {};\n preference[key] = value;\n this.http.patch(this.options.url, { preference }).subscribe();\n }\n super.set(key, value, scope);\n }\n\n remove(key: string, scope: StorageScope = StorageScope.LOCAL) {\n if (\n scope === StorageScope.LOCAL &&\n this.authService.authenticated &&\n this.options.url\n ) {\n const preference = {};\n preference[key] = undefined;\n this.http.patch(this.options.url, { preference }).subscribe();\n }\n super.remove(key, scope);\n }\n\n clear(scope: StorageScope = StorageScope.LOCAL) {\n if (\n scope === StorageScope.LOCAL &&\n this.authService.authenticated &&\n this.options.url\n ) {\n this.http\n .patch(\n this.options.url,\n { preference: {} },\n {\n params: {\n mergePreference: 'false'\n }\n }\n )\n .subscribe();\n }\n\n let token: string;\n if (scope === StorageScope.LOCAL) {\n token = this.tokenService.get();\n }\n\n super.clear(scope);\n\n if (token) {\n this.tokenService.set(token);\n }\n\n if (\n scope === StorageScope.LOCAL &&\n this.authService.authenticated &&\n this.options.url\n ) {\n this.http\n .get(this.options.url)\n .subscribe((userIgo: { preference: object }) => {\n if (userIgo && userIgo.preference) {\n for (const key of Object.keys(userIgo.preference)) {\n const value = userIgo.preference[key];\n super.set(key, value);\n }\n }\n });\n }\n }\n}\n","import { Provider } from '@angular/core';\n\nimport { BaseUser } from '@igo2/core/user';\n\nexport interface User extends BaseUser {\n source?: string;\n sourceId?: string;\n locale?: string;\n isExpired?: boolean;\n isAdmin?: boolean;\n defaultContextId?: string;\n}\n\nexport interface IInfosUser {\n tokenId: string;\n}\n\nexport interface AuthOptions {\n url?: string;\n tokenKey?: string;\n allowAnonymous?: boolean;\n loginRoute?: string;\n logoutRoute?: string;\n homeRoute?: string;\n trustHosts?: string[];\n profilsGuard?: string[];\n hostsWithCredentials?: WithCredentialsOptions[];\n hostsByKey?: AuthByKeyOptions[];\n intern?: AuthInternOptions;\n}\n\nexport interface AuthByKeyOptions {\n domainRegFilters?: string;\n keyProperty?: string;\n keyValue?: string;\n}\nexport interface WithCredentialsOptions {\n withCredentials?: boolean;\n domainRegFilters?: string;\n}\n\nexport interface AuthInternOptions {\n enabled?: boolean;\n}\n\nexport interface AuthFeature<KindT extends AuthFeatureKind> {\n kind: KindT;\n providers: Provider[];\n}\n\nexport enum AuthFeatureKind {\n Microsoft = 0\n}\n","import { HttpClient } from '@angular/common/http';\nimport {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { Observable } from 'rxjs';\nimport { Md5 } from 'ts-md5';\n\nimport {\n AuthByKeyOptions,\n AuthOptions,\n WithCredentialsOptions\n} from './auth.interface';\nimport { TokenService } from './token.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthInterceptor implements HttpInterceptor {\n private authOptions: AuthOptions;\n private refreshInProgress = false;\n private trustHosts: string[];\n private hostsWithCredentials: WithCredentialsOptions[];\n private hostsWithAuthByKey: AuthByKeyOptions[];\n\n constructor(\n private config: ConfigService,\n private tokenService: TokenService,\n private http: HttpClient\n ) {\n this.authOptions = this.config.getConfig('auth') as AuthOptions;\n\n this.trustHosts = this.authOptions?.trustHosts || [];\n this.trustHosts.push(window.location.hostname);\n\n this.hostsWithCredentials = this.authOptions?.hostsWithCredentials || [];\n this.hostsWithAuthByKey = this.authOptions?.hostsByKey || [];\n }\n\n intercept(\n originalReq: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n const withCredentials = this.handleHostsWithCredentials(originalReq.url);\n let req = originalReq.clone();\n const hostWithKey = this.handleHostsAuthByKey(originalReq.url);\n if (hostWithKey) {\n req = req.clone({\n params: req.params.set(hostWithKey.key, hostWithKey.value)\n });\n }\n if (withCredentials) {\n req = originalReq.clone({\n withCredentials\n });\n return next.handle(req);\n }\n this.refreshToken();\n const token = this.tokenService.get();\n const element = document.createElement('a');\n element.href = req.url;\n\n if (!token || this.trustHosts.indexOf(element.hostname) === -1) {\n return next.handle(req);\n }\n\n const authHeader = `Bearer ${token}`;\n let authReq = req.clone({\n headers: req.headers.set('Authorization', authHeader)\n });\n\n const tokenDecoded = this.tokenService.decode();\n if (authReq.params.get('_i') === 'true' && tokenDecoded?.user?.sourceId) {\n const hashUser = Md5.hashStr(tokenDecoded.user.sourceId) as string;\n authReq = authReq.clone({\n params: authReq.params.set('_i', hashUser)\n });\n } else if (authReq.params.get('_i') === 'true') {\n authReq = authReq.clone({\n params: authReq.params.delete('_i')\n });\n }\n\n return next.handle(authReq);\n }\n\n interceptXhr(xhr, url: string): boolean {\n const withCredentials = this.handleHostsWithCredentials(url);\n if (withCredentials) {\n xhr.withCredentials = withCredentials;\n return true;\n }\n\n this.refreshToken();\n const element = document.createElement('a');\n element.href = url;\n\n const token = this.tokenService.get();\n if (!token || this.trustHosts.indexOf(element.hostname) === -1) {\n return false;\n }\n xhr.setRequestHeader('Authorization', 'Bearer ' + token);\n return true;\n }\n\n alterUrlWithKeyAuth(url: string): string {\n const hostWithKey = this.handleHostsAuthByKey(url);\n const interceptedUrl = url;\n if (hostWithKey) {\n const urlDecomposed = interceptedUrl.split(/[?&]/);\n let urlWithKeyAdded = urlDecomposed.shift();\n const paramsToKeep = urlDecomposed.filter((p) => p.length !== 0);\n paramsToKeep.push(`${hostWithKey.key}=${hostWithKey.value}`);\n if (paramsToKeep.length) {\n urlWithKeyAdded += '?' + paramsToKeep.join('&');\n }\n return urlWithKeyAdded;\n }\n return;\n }\n\n private handleHostsWithCredentials(reqUrl: string) {\n let withCredentials = false;\n for (const hostWithCredentials of this.hostsWithCredentials) {\n const domainRegex = new RegExp(hostWithCredentials.domainRegFilters);\n if (domainRegex.test(reqUrl)) {\n withCredentials =\n hostWithCredentials.withCredentials !== undefined\n ? hostWithCredentials.withCredentials\n : undefined;\n break;\n }\n }\n return withCredentials;\n }\n\n private handleHostsAuthByKey(reqUrl: string): { key: string; value: string } {\n let hostWithKey;\n for (const hostWithAuthByKey of this.hostsWithAuthByKey) {\n const domainRegex = new RegExp(hostWithAuthByKey.domainRegFilters);\n if (domainRegex.test(reqUrl)) {\n const replace = `${hostWithAuthByKey.keyProperty}=${hostWithAuthByKey.keyValue}`;\n const keyAdded = new RegExp(replace, 'gm');\n if (!keyAdded.test(reqUrl)) {\n hostWithKey = {\n key: hostWithAuthByKey.keyProperty,\n value: hostWithAuthByKey.keyValue\n };\n break;\n }\n }\n }\n return hostWithKey;\n }\n\n refreshToken() {\n const jwt = this.tokenService.decode();\n const currentTime = new Date().getTime() / 1000;\n\n if (\n !this.refreshInProgress &&\n jwt &&\n currentTime < jwt.exp &&\n currentTime > jwt.exp - 1800\n ) {\n this.refreshInProgress = true;\n\n const url = this.authOptions?.url;\n return this.http.post(`${url}/refresh`, {}).subscribe(\n (data: any) => {\n this.tokenService.set(data.token);\n this.refreshInProgress = false;\n },\n (err) => {\n err.error.caught = true;\n return err;\n }\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { AuthOptions } from './auth.interface';\nimport { AuthService } from './auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoggedGuard {\n constructor(\n private authService: AuthService,\n private config: ConfigService,\n private router: Router\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if (this.authService.logged) {\n return true;\n }\n\n this.authService.redirectUrl = state.url;\n\n const authConfig = this.config.getConfig('auth') as AuthOptions;\n if (authConfig?.loginRoute) {\n this.router.navigateByUrl(authConfig.loginRoute);\n }\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { AuthOptions } from './auth.interface';\nimport { AuthService } from './auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard {\n constructor(\n private authService: AuthService,\n private config: ConfigService,\n private router: Router\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if (this.authService.authenticated) {\n return true;\n }\n\n this.authService.redirectUrl = state.url;\n\n const authConfig = this.config.getConfig('auth') as AuthOptions;\n if (authConfig?.loginRoute) {\n this.router.navigateByUrl(authConfig.loginRoute);\n }\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { AuthOptions } from './auth.interface';\nimport { AuthService } from './auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AdminGuard {\n constructor(\n private authService: AuthService,\n private config: ConfigService,\n private router: Router\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if (this.authService.isAdmin) {\n return true;\n }\n\n this.authService.redirectUrl = state.url;\n\n const authConfig = this.config.getConfig('auth') as AuthOptions;\n if (authConfig?.loginRoute) {\n this.router.navigateByUrl(authConfig.loginRoute);\n }\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { map } from 'rxjs/operators';\n\nimport { AuthOptions } from './auth.interface';\nimport { AuthService } from './auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProfilsGuard {\n constructor(\n private authService: AuthService,\n private config: ConfigService,\n private router: Router\n ) {}\n\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n return this.authService.getProfils().pipe(\n map((profils: { profils: string[] }) => {\n const authConfig = this.config.getConfig('auth') as AuthOptions;\n if (\n profils &&\n profils.profils &&\n profils.profils.some((v) => authConfig.profilsGuard.indexOf(v) !== -1)\n ) {\n return true;\n }\n\n this.authService.redirectUrl = state.url;\n\n if (authConfig?.loginRoute) {\n this.router.navigateByUrl(authConfig.loginRoute);\n }\n\n return false;\n })\n );\n }\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport {\n EnvironmentProviders,\n Provider,\n makeEnvironmentProviders\n} from '@angular/core';\n\nimport { StorageService } from '@igo2/core/storage';\n\nimport {\n AuthFeature,\n AuthFeatureKind,\n AuthInterceptor,\n AuthStorageService\n} from './shared';\n\nexport function provideAuthentification(\n ...features: AuthFeature<AuthFeatureKind>[]\n): EnvironmentProviders {\n const providers: Provider[] = [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptor,\n multi: true\n },\n {\n provide: StorageService,\n useClass: AuthStorageService\n }\n ];\n\n for (const feature of features) {\n providers.push(...feature.providers);\n }\n\n return makeEnvironmentProviders(providers);\n}\n","/*\n * Public API Surface of auth\n */\nexport * from './lib/auth.provider';\nexport * from './lib/shared';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.TokenService","i3","i6","i1","i2","i3.AuthService","i4.TokenService","i1.AuthService"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { AuthFacebookOptions } from '@igo2/auth/facebook';
2
2
  import { AuthGoogleOptions } from '@igo2/auth/google';
3
3
  import { AuthMicrosoftOptions, AuthMicrosoftb2cOptions } from '@igo2/auth/microsoft';
4
- export type AuthFormOptions = {
4
+ export interface AuthFormOptions {
5
5
  facebook?: AuthFacebookOptions;
6
6
  google?: AuthGoogleOptions;
7
7
  microsoft?: AuthMicrosoftOptions;
8
8
  microsoftb2c?: AuthMicrosoftb2cOptions;
9
- };
9
+ }
@@ -11,7 +11,7 @@
11
11
  igo-auth-intern {
12
12
  .loading-container {
13
13
  background-color: change-color(
14
- $color: mat.get-color-from-palette($background, status-bar),
14
+ $color: mat.m2-get-color-from-palette($background, status-bar),
15
15
  $alpha: 0.64
16
16
  );
17
17
  }