{"version":3,"file":"chunk-ebizcc18.js","sources":["packages/vanilla/lib/shared/crypto/src/crypto-resource.service.ts","packages/vanilla/lib/shared/crypto/src/crypto.service.ts","packages/vanilla/lib/shared/login-providers/src/base-login-provider.service.ts","packages/vanilla/lib/shared/login-providers/src/apple-provider.service.ts","packages/vanilla/lib/shared/login-providers/src/facebook-provider.service.ts","packages/vanilla/lib/shared/login-providers/src/google-provider.service.ts","packages/vanilla/lib/shared/login-providers/src/login-providers.service.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SharedFeaturesApiService } from '@frontend/vanilla/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * @experimental\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class CryptoResourceService {\n constructor(private api: SharedFeaturesApiService) {}\n\n encrypt(data: string, purpose: string): Observable {\n return this.api.get('crypto/encrypt', { data, purpose }).pipe(map((response: { result: string }) => response?.result));\n }\n\n decrypt(data: string, purpose: string): Observable {\n return this.api.get('crypto/decrypt', { data, purpose }).pipe(map((response: { result: string }) => response?.result));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nimport { CryptoResourceService } from './crypto-resource.service';\n\n/**\n * @description This service provides means to encrypt/decrypt data with the configured secret key for a given purpose.\n * See: {@link https://admin.dynacon.prod.env.works/services/198137/features/303108}\n *\n * @howToUse\n * ```\n * const encryptedData = await cryptoService.encrypt(data, purpose);\n * const decryptedData = await cryptoService.decrypt(encryptedData, purpose);\n * ```\n *\n * @experimental\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class CryptoService {\n constructor(private cryptoResourceService: CryptoResourceService) {}\n\n /**\n * @param data Value to encrypt.\n * @param purpose Encryption identifier (e.g. `login`).\n * See: {@link https://admin.dynacon.prod.env.works/services/198137/features/303108/keys/303112/valuematrix}\n */\n encrypt(data: string, purpose: string): Observable {\n return this.cryptoResourceService.encrypt(data, purpose);\n }\n\n /**\n * @param value Encrypted value.\n * @param purpose Decryption identifier (e.g. `login`).\n * See: {@link https://admin.dynacon.prod.env.works/services/198137/features/303108/keys/303112/valuematrix}\n */\n decrypt(value: string, purpose: string): Observable {\n return this.cryptoResourceService.decrypt(value, purpose);\n }\n}\n","import { DynamicScriptsService, LoginProviderProfile, ScriptOptions, TrackingService } from '@frontend/vanilla/core';\nimport { ProviderParameters } from '@frontend/vanilla/shared/login';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nimport { AuthOptions, AuthResponse } from './login-providers.models';\n\n/**\n * @protected\n */\nexport abstract class BaseLoginProviderService {\n get loginResponse(): Observable | null> {\n return this.loginResponseSubject;\n }\n\n get profile(): Observable {\n return this.profileSubject;\n }\n\n protected loginResponseSubject = new Subject | null>();\n protected profileSubject = new BehaviorSubject(null);\n\n protected constructor(\n private dynamicScriptsService: DynamicScriptsService,\n private trackingService: TrackingService,\n ) {}\n\n protected async initSdk(typeofSdk: string, config: ProviderParameters, scriptOptions?: ScriptOptions): Promise {\n return new Promise((resolve) => {\n if (typeofSdk === 'undefined' && config.sdkUrl && config.clientId) {\n this.dynamicScriptsService\n .load(config.sdkUrl, {\n async: true,\n defer: true,\n crossorigin: 'anonymous',\n ...scriptOptions,\n })\n .then(() => resolve());\n } else {\n resolve();\n }\n });\n }\n\n protected trackSuccessLoginWithProvider(provider: string) {\n this.trackingService.triggerEvent('Event.Tracking', {\n 'component.LabelEvent': provider,\n 'component.ActionEvent': 'success',\n 'component.PositionEvent': 'not applicable',\n 'component.LocationEvent': 'not applicable',\n 'component.EventDetails': 'direct login',\n 'component.URLClicked': 'not applicable',\n });\n }\n\n protected abstract login(options: AuthOptions): void;\n\n protected abstract initProfile(config?: ProviderParameters): void;\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n CookieName,\n CookieService,\n DynamicScriptsService,\n Logger,\n LoginProvider,\n LoginProviderProfile,\n NavigationService,\n TrackingService,\n} from '@frontend/vanilla/core';\nimport { CryptoService } from '@frontend/vanilla/shared/crypto';\nimport { filter } from 'rxjs/operators';\n\nimport { BaseLoginProviderService } from './base-login-provider.service';\nimport { AuthOptions, AuthResponse } from './login-providers.models';\n\nimport SignInResponseI = AppleSignInAPI.SignInResponseI;\nimport UserI = AppleSignInAPI.UserI;\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AppleProviderService extends BaseLoginProviderService {\n constructor(\n private cookieService: CookieService,\n private cryptoService: CryptoService,\n private navigationService: NavigationService,\n private logger: Logger,\n dynamicScriptsService: DynamicScriptsService,\n trackingService: TrackingService,\n ) {\n super(dynamicScriptsService, trackingService);\n\n this.loginResponse.pipe(filter(Boolean)).subscribe((auth: AuthResponse) => {\n const authorization = auth.response?.authorization;\n const redirectUrl = auth.options.authUrl?.redirectUrl;\n\n if (authorization && redirectUrl) {\n // Authenticate using SDK login\n redirectUrl.search.append('access_token', authorization.id_token);\n redirectUrl.search.append('code', authorization.code);\n\n if (auth.response?.user) {\n const nonce = this.cookieService.get(CookieName.Nonce);\n\n this.cryptoService.encrypt(JSON.stringify(auth.response.user), nonce).subscribe({\n next: (encryptedUserData: string) => this.cookieService.put(CookieName.AppleUser, encryptedUserData),\n complete: () => {\n this.trackSuccessLoginWithProvider(LoginProvider.APPLE);\n this.navigationService.goTo(redirectUrl.absUrl());\n },\n error: () => this.navigationService.goTo(redirectUrl.absUrl()),\n });\n }\n } else {\n this.logger.warn('Filed to login with Apple provider; fallback to login with URI', auth?.response);\n this.navigationService.goTo(auth?.options.authUrl?.url?.absUrl() || '/');\n }\n });\n }\n\n /** Perform SDK login\n * @param {AuthOptions} options\n * Config: {@link https://admin.dynacon.prod.env.works/services/198200/features/133282/keys/252395/valuematrix}\n */\n login(options: AuthOptions) {\n if (options.providerParameters?.sdkLogin) {\n this.initSdk(typeof AppleID, options.providerParameters, {\n onloadCallback: () =>\n AppleID?.auth.init({\n clientId: options.providerParameters?.clientId,\n redirectURI: options.providerParameters?.redirectUrl,\n }),\n }).then(() => {\n if (typeof AppleID !== 'undefined') {\n AppleID.auth.signIn(options.providerParameters).then(\n (response: SignInResponseI) => {\n this.loginResponseSubject.next({ response, options });\n },\n (error: any) => this.loginResponseSubject.next({ error, options }),\n );\n } else {\n this.loginResponseSubject.next(null);\n }\n });\n } else {\n this.loginResponseSubject.next(null);\n }\n }\n\n /** Loads Apple profile data from cookies\n * Config: {@link https://admin.dynacon.prod.env.works/services/198200/features/133282/keys/252395/valuematrix}\n */\n initProfile() {\n const encryptedUserData = this.cookieService.get(CookieName.AppleUser);\n const profile: LoginProviderProfile = {\n provider: LoginProvider.APPLE,\n };\n\n if (encryptedUserData) {\n const nonce = this.cookieService.get(CookieName.Nonce);\n\n this.cryptoService.decrypt(encryptedUserData, nonce).subscribe({\n next: (data: string) => {\n const userData: UserI = JSON.parse(data);\n profile.name = `${userData.name.firstName} ${userData.name.lastName}`;\n },\n complete: () => this.profileSubject.next(profile),\n error: () => this.profileSubject.next(profile),\n });\n } else {\n this.profileSubject.next(profile);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DynamicScriptsService, Logger, LoginProvider, LoginProviderProfile, NavigationService, TrackingService } from '@frontend/vanilla/core';\nimport { ProviderParameters } from '@frontend/vanilla/shared/login';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { BaseLoginProviderService } from './base-login-provider.service';\nimport { AuthOptions, AuthResponse, FacebookProfileData } from './login-providers.models';\n\nimport LoginStatus = facebook.LoginStatus;\nimport StatusResponse = facebook.StatusResponse;\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class FacebookProviderService extends BaseLoginProviderService {\n get connectionStatus(): Observable {\n return this.connectionStatusSubject;\n }\n\n private connectionStatusSubject = new BehaviorSubject('unknown');\n\n constructor(\n private navigationService: NavigationService,\n private logger: Logger,\n dynamicScriptsService: DynamicScriptsService,\n trackingService: TrackingService,\n ) {\n super(dynamicScriptsService, trackingService);\n\n this.loginResponse.pipe(filter(Boolean)).subscribe((auth: AuthResponse) => {\n const authResponse = auth.response?.authResponse;\n const redirectUrl = auth.options.authUrl?.redirectUrl;\n\n if (authResponse?.accessToken && redirectUrl) {\n // Authenticate using SDK login\n redirectUrl.search.append('access_token', authResponse.accessToken);\n if (authResponse.signedRequest) {\n redirectUrl.search.append('code', authResponse.signedRequest);\n }\n redirectUrl.search.append('expires_in', authResponse.expiresIn.toString());\n\n if (authResponse.data_access_expiration_time) {\n redirectUrl.search.append('data_access_expiration_time', authResponse.data_access_expiration_time.toString());\n }\n\n this.trackSuccessLoginWithProvider(LoginProvider.FACEBOOK);\n this.navigationService.goTo(redirectUrl.absUrl());\n } else {\n this.logger.warn('Filed to login with Facebook provider; fallback to login with URI', auth);\n this.navigationService.goTo(auth.options.authUrl.url || '/');\n }\n });\n }\n\n /** Perform SDK login\n * @param {AuthOptions} options\n * Config: {@link https://admin.dynacon.prod.env.works/services/198200/features/133282/keys/252395/valuematrix}\n */\n login(options: AuthOptions) {\n const config = options.providerParameters;\n\n if (config?.sdkLogin) {\n this.initSdk(typeof FB, config, { onloadCallback: () => this.initFacebookAuth(config) }).then(\n () => {\n if (typeof FB !== 'undefined') {\n FB.login((response: StatusResponse) => {\n this.loginResponseSubject.next({ response, options });\n });\n } else {\n this.loginResponseSubject.next(null);\n }\n },\n (reason: any) => this.loginResponseSubject.next(reason),\n );\n } else {\n this.loginResponseSubject.next(null);\n }\n }\n\n /** Loads Facebook profile data\n * Config: {@link https://admin.dynacon.prod.env.works/services/198200/features/133282/keys/252395/valuematrix}\n */\n initProfile(config?: ProviderParameters) {\n const profile: LoginProviderProfile = {\n provider: LoginProvider.FACEBOOK,\n };\n\n if (config?.sdkLogin) {\n this.initSdk(typeof FB, config, { onloadCallback: () => this.initFacebookAuth(config) }).then(\n () => {\n if (typeof FB !== 'undefined') {\n FB.getLoginStatus((response: StatusResponse) => this.connectionStatusSubject.next(response.status));\n\n FB.api('/me', { fields: 'name,picture{url}' }, (response: FacebookProfileData) => {\n profile.name = response?.name;\n profile.pictureUrl = response?.picture?.data.url;\n\n this.profileSubject.next(profile);\n });\n } else {\n this.profileSubject.next(profile);\n }\n },\n () => this.profileSubject.next(profile),\n );\n } else {\n this.profileSubject.next(profile);\n }\n }\n\n private initFacebookAuth(config: ProviderParameters) {\n FB?.init({\n appId: config.clientId,\n cookie: !!config.sdkCookie,\n xfbml: true,\n version: config.sdkVersion || 'v10.0',\n });\n\n FB?.Event.subscribe('auth.login', (response: StatusResponse) => this.connectionStatusSubject.next(response.status));\n FB?.Event.subscribe('auth.statusChange', (response: StatusResponse) => this.connectionStatusSubject.next(response.status));\n FB?.Event.subscribe('auth.authResponseChange', (response: StatusResponse) => this.connectionStatusSubject.next(response.status));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DynamicScriptsService, Logger, LoginProvider, LoginProviderProfile, NavigationService, TrackingService } from '@frontend/vanilla/core';\nimport { ProviderParameters } from '@frontend/vanilla/shared/login';\nimport { filter } from 'rxjs/operators';\n\nimport { BaseLoginProviderService } from './base-login-provider.service';\nimport { AuthOptions } from './login-providers.models';\n\nimport AuthResponse = gapi.auth2.AuthResponse;\nimport GoogleAuth = gapi.auth2.GoogleAuth;\nimport GoogleUser = gapi.auth2.GoogleUser;\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class GoogleProviderService extends BaseLoginProviderService {\n constructor(\n private navigationService: NavigationService,\n private logger: Logger,\n dynamicScriptsService: DynamicScriptsService,\n trackingService: TrackingService,\n ) {\n super(dynamicScriptsService, trackingService);\n\n this.loginResponse.pipe(filter(Boolean)).subscribe((auth) => {\n const redirectUrl = auth.options.authUrl.redirectUrl;\n\n if (auth.response && redirectUrl) {\n // Authenticate using SDK login\n\n redirectUrl.search.append('access_token', auth.response.access_token);\n redirectUrl.search.append('code', auth.response.id_token);\n redirectUrl.search.append('expires_in', auth.response.expires_in.toString());\n redirectUrl.search.append('data_access_expiration_time', auth.response.expires_at.toString());\n\n this.trackSuccessLoginWithProvider(LoginProvider.GOOGLE);\n this.navigationService.goTo(redirectUrl.absUrl());\n } else {\n this.logger.warn('Filed to login with Google provider; fallback to login with URI', auth);\n this.navigationService.goTo(auth.options.authUrl.url?.absUrl() || '/');\n }\n });\n }\n\n /** Perform SDK login\n * @param {AuthOptions} options\n * Config: {@link https://admin.dynacon.prod.env.works/services/198200/features/133282/keys/252395/valuematrix}\n */\n login(options: AuthOptions) {\n if (options.providerParameters?.sdkLogin) {\n this.initAuth(options.providerParameters).then(\n (googleAuth: GoogleAuth | null) => {\n if (googleAuth) {\n googleAuth.signIn(options.signInOptions).then(\n (response: GoogleUser) => {\n this.loginResponseSubject.next({ response: response.getAuthResponse(), options });\n },\n (error: any) => this.loginResponseSubject.next({ error, options }),\n );\n } else {\n this.loginResponseSubject.next(null);\n }\n },\n (error: any) => this.loginResponseSubject.next({ error, options }),\n );\n } else {\n this.loginResponseSubject.next(null);\n }\n }\n\n /** Loads Google profile data\n * Config: {@link https://admin.dynacon.prod.env.works/services/198200/features/133282/keys/252395/valuematrix}\n */\n initProfile(config?: ProviderParameters) {\n const profile: LoginProviderProfile = {\n provider: LoginProvider.GOOGLE,\n };\n\n if (config?.sdkLogin) {\n this.initAuth(config).then(\n (googleAuth: GoogleAuth | null) => {\n const user = googleAuth?.currentUser.get().getBasicProfile();\n\n const googleProfile: LoginProviderProfile = {\n ...profile,\n name: user?.getName() || '',\n pictureUrl: user?.getImageUrl() || '',\n };\n this.profileSubject.next(googleProfile);\n },\n () => this.profileSubject.next(profile),\n );\n } else {\n this.profileSubject.next(profile);\n }\n }\n\n private initAuth(config: ProviderParameters): Promise {\n return new Promise((resolve) => {\n if (typeof gapi === 'undefined') {\n this.initSdk(typeof gapi, config).then(\n () => {\n if (typeof gapi !== 'undefined') {\n gapi.load('auth2', () => {\n resolve(\n gapi.auth2.init({\n client_id: config.clientId,\n }),\n );\n });\n } else {\n resolve(null);\n }\n },\n () => this.loginResponseSubject.next(null),\n );\n } else {\n resolve(\n gapi.auth2.init({\n client_id: config.clientId,\n }),\n );\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n CommonMessages,\n CookieName,\n CookieService,\n LoginProvider,\n LoginProviderProfile,\n MessageLifetime,\n MessageQueueService,\n MessageScope,\n MessageType,\n NavigationService,\n ParsedUrl,\n UrlService,\n UtilsService,\n} from '@frontend/vanilla/core';\nimport { LoginConfig, ProviderParameters } from '@frontend/vanilla/shared/login';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\n\nimport { AppleProviderService } from './apple-provider.service';\nimport { FacebookProviderService } from './facebook-provider.service';\nimport { GoogleProviderService } from './google-provider.service';\nimport { AuthUrl, ProviderLoginOptions } from './login-providers.models';\n\nimport SigninOptions = AppleSignInAPI.ClientConfigI;\n\n/**\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class LoginProvidersService {\n readonly providersProfile = new BehaviorSubject(null);\n\n constructor(\n private loginConfig: LoginConfig,\n private commonMessages: CommonMessages,\n private urlService: UrlService,\n private cookieService: CookieService,\n private utilsService: UtilsService,\n private navigationService: NavigationService,\n private messageQueueService: MessageQueueService,\n private appleProviderService: AppleProviderService,\n private googleProviderService: GoogleProviderService,\n private facebookProviderService: FacebookProviderService,\n ) {}\n\n /**\n * Initialize user profiles when available and `sdkLogin` config is enabled.\n **/\n initProvidersProfile() {\n combineLatest([this.appleProviderService.profile, this.googleProviderService.profile, this.facebookProviderService.profile]).subscribe(\n ([appleProfile, googleProfile, facebookProfile]) => {\n if (googleProfile && facebookProfile && appleProfile) {\n this.providersProfile.next([appleProfile, googleProfile, facebookProfile]);\n }\n },\n );\n\n this.appleProviderService.initProfile();\n this.googleProviderService.initProfile(this.loginConfig.providers[LoginProvider.GOOGLE]);\n this.facebookProviderService.initProfile(this.loginConfig.providers[LoginProvider.FACEBOOK]);\n }\n\n /**\n * Invokes login with via URL for a given provider.\n * Appends passed queryParams parameter values to the URL provided via {@link ProviderLoginOptions}.\n **/\n urlAuth(options: ProviderLoginOptions) {\n const providerConfig = this.loginConfig.providers[options.provider];\n\n if (providerConfig?.appendNonce) {\n this.updateNonce();\n }\n\n const authUrl = this.getAuthUrl(options, providerConfig);\n\n if (authUrl?.url?.absUrl()) {\n if (options.provider === LoginProvider.YAHOO) {\n this.appendToUri(authUrl.url, [CookieName.Nonce, CookieName.LoginHint, CookieName.IdTokenHint]);\n }\n\n this.navigationService.goTo(authUrl.url.absUrl());\n } else {\n this.showLoginError();\n }\n }\n\n /** Invokes login with via SDK for a given provider. */\n sdkAuth(options: ProviderLoginOptions) {\n const providerParameters = this.loginConfig.providers[options.provider];\n\n if (providerParameters?.appendNonce) {\n this.updateNonce();\n }\n\n const authUrl = this.getAuthUrl(options, providerParameters);\n\n if (!authUrl?.url && !authUrl?.redirectUrl) {\n this.showLoginError();\n } else if (options.provider === LoginProvider.APPLE) {\n const signInOptions: SigninOptions = {\n ...options.loginOptions,\n clientId: providerParameters?.clientId,\n nonce: authUrl?.url?.search.get(CookieName.Nonce) || undefined,\n };\n this.appleProviderService.login({\n signInOptions,\n providerParameters,\n authUrl,\n });\n } else if (options.provider === LoginProvider.GOOGLE) {\n this.googleProviderService.login({\n signInOptions: options.loginOptions,\n providerParameters,\n authUrl,\n });\n } else if (options.provider === LoginProvider.FACEBOOK) {\n this.facebookProviderService.login({\n signInOptions: options.loginOptions,\n providerParameters,\n authUrl,\n });\n }\n }\n\n private getAuthUrl(options: ProviderLoginOptions, providerConfig?: ProviderParameters): AuthUrl | null {\n if (!providerConfig) {\n return null;\n }\n\n const redirectUrl = this.urlService.parse(providerConfig.redirectUrl);\n\n for (const key in options.redirectQueryParams) {\n const redirectQuery = options.redirectQueryParams[key];\n\n if (redirectQuery) {\n redirectUrl.search.append(key, redirectQuery);\n }\n }\n\n const url = this.urlService.parse(providerConfig.loginUrl);\n url.search.append('client_id', providerConfig.clientId);\n url.search.append('redirect_uri', redirectUrl.absUrl());\n\n for (const key in options.queryParams) {\n const query = options.queryParams[key];\n\n if (query) {\n url.search.append(key, query);\n }\n }\n\n if (providerConfig.appendNonce) {\n url.search.append(CookieName.Nonce, this.cookieService.get(CookieName.Nonce));\n }\n\n return { url, redirectUrl };\n }\n\n /** Appends values of cookies with the listed keys and deletes those cookies. */\n private appendToUri(url: ParsedUrl, cookieKeys: string[] = []) {\n cookieKeys.forEach((cookieName: string) => {\n const value = this.cookieService.get(cookieName);\n\n if (value) {\n url.search.append(cookieName, value);\n this.cookieService.remove(cookieName);\n }\n });\n }\n\n /**\n * Updates the 'nonce' cookie.\n *\n * A unique, single-use string to associate a client session with the user's identity token.\n * This value is also used to prevent replay attacks and allows you to correlate the initial authentication request\n * with the identity token provided in the authorization response.\n **/\n private updateNonce() {\n this.cookieService.remove(CookieName.Nonce);\n\n const guid = this.utilsService.generateGuid();\n this.cookieService.put(CookieName.Nonce, guid);\n }\n\n private showLoginError() {\n this.messageQueueService.clear();\n this.messageQueueService.add({\n scope: MessageScope.Login,\n html: this.commonMessages.LoginError || '',\n type: MessageType.Error,\n lifetime: MessageLifetime.Single,\n });\n }\n}\n"],"names":["CryptoResourceService","constructor","api","encrypt","data","purpose","get","pipe","map","response","result","decrypt","ɵɵinject","SharedFeaturesApiService","factory","ɵfac","providedIn","_CryptoResourceService","CryptoService","cryptoResourceService","value","_CryptoService","BaseLoginProviderService","loginResponse","loginResponseSubject","profile","profileSubject","dynamicScriptsService","trackingService","Subject","BehaviorSubject","initSdk","typeofSdk","config","scriptOptions","__async","Promise","resolve","sdkUrl","clientId","load","__spreadValues","async","defer","crossorigin","then","trackSuccessLoginWithProvider","provider","triggerEvent","AppleProviderService","cookieService","cryptoService","navigationService","logger","filter","Boolean","subscribe","auth","authorization","redirectUrl","options","authUrl","search","append","id_token","code","user","nonce","CookieName","Nonce","JSON","stringify","next","encryptedUserData","put","AppleUser","complete","LoginProvider","APPLE","goTo","absUrl","error","warn","url","login","providerParameters","sdkLogin","AppleID","onloadCallback","init","redirectURI","signIn","initProfile","userData","parse","name","firstName","lastName","CookieService","NavigationService","Logger","DynamicScriptsService","TrackingService","_AppleProviderService","FacebookProviderService","connectionStatus","connectionStatusSubject","authResponse","accessToken","signedRequest","expiresIn","toString","data_access_expiration_time","FACEBOOK","FB","initFacebookAuth","reason","getLoginStatus","status","fields","pictureUrl","picture","appId","cookie","sdkCookie","xfbml","version","sdkVersion","Event","_FacebookProviderService","GoogleProviderService","access_token","expires_in","expires_at","GOOGLE","initAuth","googleAuth","signInOptions","getAuthResponse","currentUser","getBasicProfile","googleProfile","__spreadProps","getName","getImageUrl","gapi","auth2","client_id","_GoogleProviderService","LoginProvidersService","loginConfig","commonMessages","urlService","utilsService","messageQueueService","appleProviderService","googleProviderService","facebookProviderService","providersProfile","initProvidersProfile","combineLatest","appleProfile","facebookProfile","providers","urlAuth","providerConfig","appendNonce","updateNonce","getAuthUrl","YAHOO","appendToUri","LoginHint","IdTokenHint","showLoginError","sdkAuth","loginOptions","undefined","key","redirectQueryParams","redirectQuery","loginUrl","queryParams","query","cookieKeys","forEach","cookieName","remove","guid","generateGuid","clear","add","scope","MessageScope","Login","html","LoginError","type","MessageType","Error","lifetime","MessageLifetime","Single","LoginConfig","CommonMessages","UrlService","UtilsService","MessageQueueService","_LoginProvidersService"],"mappings":"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"}