ems-web-app-cognito 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/cognito.component.mjs +10 -6
- package/fesm2015/ems-web-app-cognito.mjs +9 -5
- package/fesm2015/ems-web-app-cognito.mjs.map +1 -1
- package/fesm2020/ems-web-app-cognito.mjs +9 -5
- package/fesm2020/ems-web-app-cognito.mjs.map +1 -1
- package/lib/cognito.component.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ems-web-app-cognito.mjs","sources":["../../src/lib/cognito.types.ts","../../src/lib/cognito.utils.ts","../../src/lib/cognito.service.ts","../../src/lib/cognito.classes.ts","../../src/lib/cognito.pipes.ts","../../src/lib/cognito.component.ts","../../src/lib/cognito.component.html","../../src/lib/cognito.module.ts","../../src/public-api.ts","../../src/ems-web-app-cognito.ts"],"sourcesContent":["export enum CognitoResponseType {\n\tAuthenticated = \"authenticated\",\n\tPasswordReset = \"NEW_PASSWORD_REQUIRED\",\n\tNotAuthorized = \"NotAuthorizedException\",\n\tForcePasswordReset = \"PasswordResetRequiredException\",\n\tInvalidCode = \"CodeMismatchException\",\n\tLimitExceededException = \"LimitExceededException\",\n\tOtpChallenge = \"OtpChallenge\",\n\tMagicLink = \"MagicLink\",\n\tPasskey = \"Passkey\",\n\tSuccess = \"SUCCESS\"\n}\n\nexport enum CognitoRequestType {\n\tAuthentication = \"authentication\",\n\tNewUserPasswordReset = \"new-user-password-reset\",\n\tForcePasswordReset = \"force-password-reset\",\n\tForgotPassword = \"forgot-password\",\n\tUpdatePasswordWithCode = \"update-password-with-code\",\n\tPasswordReset = \"password-reset\",\n\tConfirmPassword = \"confirm-password\",\n\tOtpChallenge = \"otp-challenge\",\n\tPasskey = \"passkey\",\n\tMagicLink = \"magic-link\"\n}\n\nexport enum CognitoFormType {\n\tLogin = \"login\",\n\tNewUser = \"new-user\",\n\tForcePasswordReset = \"force-password-reset\",\n\tUserPasswordReset = \"user-password-reset\",\n\tUserVerificationRequest = \"user-verification-request\",\n\tPasswordUpdateSuccessful = \"password-update-successful\",\n\tGoogleSignIn = \"google-sign-in\"\n}","export function unsnake(input: string = \"\"): string {\n\treturn input\n\t\t\t.split(\"_\")\n\t\t\t.map(p => p.substring(0,1).toUpperCase() + p.substring(1).toLowerCase())\n\t\t\t.join(\" \");\n}\n\nexport function tick(duration: number = 0) {\n\treturn new Promise((resolve: (value: any) => void) => {\n\t\twindow.setTimeout(() => resolve(duration), duration);\n\t});\n}\n\nexport function trim(input?: string) {\n if(!input) return input;\n return input.replace(/^\\s+/, '').replace(/\\s+$/, '');\n}\n\nexport function params(requestedProperty?: string): any {\n const vars = {} as any;\n const parts = window.location.href.replace(/[?&#]+([^=&]+)=([^&]*)/gi, ((m: any, key: string, value: any) => {\n vars[key] = value;\n }) as any);\n\n for (const prop in vars) {\n if (vars[prop].toLowerCase() === 'true') vars[prop] = true;\n else if (vars[prop].toLowerCase() === 'false') vars[prop] = false;\n else if (!isNaN(parseFloat(vars[prop])) && !vars[prop].match(/[^0-9]+/gim)) vars[prop] = parseFloat(vars[prop]);\n }\n\n if (requestedProperty) return vars[requestedProperty];\n return vars;\n}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpResponse, HttpRequest, HttpErrorResponse, HttpParams } from '@angular/common/http';\nimport { Observable, Subject, BehaviorSubject, throwError, of } from 'rxjs';\nimport { catchError, map, tap, take } from \"rxjs/operators\";\nimport 'cross-fetch/polyfill';\nimport { CognitoUser, CognitoUserPool, CognitoUserSession, CognitoIdToken, CognitoAccessToken, CognitoRefreshToken, AuthenticationDetails } from 'amazon-cognito-identity-js';\nimport { ICognitoResponse, ICognitoUserData } from \"./cognito.interfaces\";\nimport { CognitoResponseType, CognitoRequestType, CognitoFormType } from \"./cognito.types\";\nimport { params } from \"./cognito.utils\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CognitoService {\n\n private sessionSource: BehaviorSubject<CognitoUserSession | null> = new BehaviorSubject<CognitoUserSession | null>(null);\n public session$: Observable<CognitoUserSession | null> = this.sessionSource.asObservable();\n\n private userSource: BehaviorSubject<CognitoUser | null> = new BehaviorSubject<CognitoUser | null>(null);\n public user$: Observable<CognitoUser | null> = this.userSource.asObservable();\n\n private formSource: BehaviorSubject<CognitoFormType | null> = new BehaviorSubject<CognitoFormType | null>(null);\n public form$: Observable<CognitoFormType | null> = this.formSource.asObservable();\n\n\n private user: CognitoUser | null = null;\n private pool!: CognitoUserPool;\n\n private accessToken?: string;\n private idToken?: string;\n\n constructor(private http: HttpClient) {\n\n }\n\n public initialize(UserPoolId: string, ClientId: string) {\n\n //for federated users\n const access = params(\"access_token\") ?? localStorage.getItem(\"ems_access_token\") ?? null;\n const id = params(\"id_token\") ?? localStorage.getItem(\"ems_id_token\") ?? null;\n const sessionId = params(\"sessionId\") ?? null;\n const otp = params(\"otp\") ?? null;\n\n if(access && id) {\n localStorage.setItem(\"ems_access_token\", access);\n localStorage.setItem(\"ems_id_token\", id);\n window.location.hash = \"\";\n } \n\n this.accessToken = access;\n this.idToken = id;\n\n //for srp users\n this.pool = new CognitoUserPool({ UserPoolId, ClientId });\n this.user = this.pool.getCurrentUser();\n this.userSource.next(this.user);\n this.user?.getSession((e: Error, session: null) => this.sessionSource.next(session));\n }\n\n public magicLinkAuthenticate(Username: string, ChallengeResponse?: string, SessionId?: string) {\n const request = ChallengeResponse ? CognitoRequestType.MagicLink : CognitoRequestType.Authentication;\n const details = new AuthenticationDetails({ Username });\n const data = { Username, Pool: this.pool };\n const user = this.user = this.user ?? new CognitoUser(data);\n this.user.setAuthenticationFlowType('CUSTOM_AUTH');\n\n //@ts-ignore\n if(SessionId) this.user.Session = SessionId;\n\n return new Promise(async( resolve: (result: any) =>void, reject: (result: any) => void) => {\n const handler = {\n onSuccess: (session: CognitoUserSession) => {\n this.sessionSource.next(session);\n this.userSource.next(this.user);\n resolve({ type: CognitoResponseType.Authenticated, session, user, request })\n },\n onFailure: (error: any)=> reject({ type: CognitoResponseType.NotAuthorized, error, user, request, session: null }),\n customChallenge: (challengeParameters: any) => {\n resolve({ type: CognitoResponseType.MagicLink, user, request, challengeParameters });\n }\n };\n \n if(ChallengeResponse) user.sendCustomChallengeAnswer(ChallengeResponse, handler);\n else user.initiateAuth(details, handler);\n });\n }\n\n public passkeyAuthenticate(Username: string, ChallengeResponse?: string) {\n const request = ChallengeResponse ? CognitoRequestType.Passkey : CognitoRequestType.Authentication;\n const details = new AuthenticationDetails({ Username });\n const data = { Username, Pool: this.pool };\n const user = this.user = this.user ?? new CognitoUser(data);\n this.user.setAuthenticationFlowType('CUSTOM_AUTH');\n\n return new Promise(async( resolve: (result: any) =>void, reject: (result: any) => void) => {\n const handler = {\n onSuccess: (session: CognitoUserSession) => {\n this.sessionSource.next(session);\n this.userSource.next(this.user);\n resolve({ type: CognitoResponseType.Authenticated, session, user, request })\n },\n onFailure: (error: any)=> reject({ type: CognitoResponseType.NotAuthorized, error, user, request, session: null }),\n customChallenge: (challengeParameters: any) => resolve({ type: CognitoResponseType.Passkey, user, request, challengeParameters })\n };\n \n if(ChallengeResponse) user.sendCustomChallengeAnswer(ChallengeResponse, handler);\n else user.initiateAuth(details, handler);\n });\n }\n\n public otpAuthenticate(Username: string, ChallengeResponse?: string) {\n const request = ChallengeResponse ? CognitoRequestType.OtpChallenge : CognitoRequestType.Authentication;\n const details = new AuthenticationDetails({ Username });\n const data = { Username, Pool: this.pool };\n const user = this.user = this.user ?? new CognitoUser(data);\n this.user.setAuthenticationFlowType('CUSTOM_AUTH');\n\n return new Promise(async( resolve: (result: any) =>void, reject: (result: any) => void) => {\n const handler = {\n onSuccess: (session: CognitoUserSession) => {\n this.sessionSource.next(session);\n this.userSource.next(this.user);\n resolve({ type: CognitoResponseType.Authenticated, session, user, request })\n },\n onFailure: (error: any)=> reject({ type: CognitoResponseType.NotAuthorized, error, user, request, session: null }),\n customChallenge: (challengeParameters: any) => resolve({ type: CognitoResponseType.OtpChallenge, user, request, challengeParameters })\n };\n \n if(ChallengeResponse) user.sendCustomChallengeAnswer(ChallengeResponse, handler);\n else user.initiateAuth(details, handler);\n });\n }\n\n public getUserInfo(url: string): Promise<ICognitoUserData | HttpErrorResponse | undefined> {\n const request = `${url}/oauth2/userInfo`\n const headers = this.headers();\n\n return this.http.get(request, { headers, withCredentials: true } ).pipe(\n map((result: any) => \n { return {\n email: result.email,\n username: result.username,\n sub: result.sub,\n firstName: result.given_name,\n lastName: result.family_name,\n accessToken: this.accessToken!,\n idToken: this.idToken!\n }}\n )\n ).toPromise();\n\n //, catchError(this.handleErrorQuietly)\n }\n\n public setUserSession(session: CognitoUserSession) {\n this.sessionSource.next(session);\n }\n\n public showForm(form: CognitoFormType | null) {\n this.formSource.next(form);\n }\n\n public logout() {\n return new Promise((resolve: (result: any) => void, reject: (result: any) => void) => {\n if(this.user) {\n this.userSource.next(null);\n this.sessionSource.next(null);\n localStorage.removeItem(\"ems_id_token\");\n localStorage.removeItem(\"ems_access_token\");\n this.user.globalSignOut({\n onSuccess: resolve,\n onFailure: () => {\n //if user is disabled, must manually clear local storage (apparently)\n for(let prop in localStorage) {\n if(prop.match(/cognito/i)) localStorage.removeItem(prop);\n }\n resolve(null);\n }\n });\n } else {\n resolve(null);\n }\n });\n \n }\n\n public authenticate(Username: string, Password: string): Promise<ICognitoResponse> {\n const details = new AuthenticationDetails({ Username, Password});\n const data = { Username, Pool: this.pool };\n const user = new CognitoUser(data);\n return new Promise((resolve: (result: any) => void, reject: (result: any) => void) => {\n if(!this.user) this.authenticateUser(user, details, resolve, reject);\n else this.getUserSession(resolve, reject)\n });\n }\n\n public createFederatedSession(IdToken: string, AccessToken: string) {\n\n const session = new CognitoUserSession({\n IdToken: new CognitoIdToken({ IdToken }),\n AccessToken: new CognitoAccessToken({ AccessToken }),\n });\n\n const Username = session.getIdToken().payload[\"cognito:username\"];\n const data = { Username, Pool: this.pool };\n this.user = new CognitoUser(data);\n this.userSource.next(this.user);\n this.sessionSource.next(session);\n }\n\n public completePasswordUpdate(password: string, user: CognitoUser, attributes: any): Promise<ICognitoResponse> {\n const request = CognitoRequestType.NewUserPasswordReset;\n return new Promise((resolve: (result: ICognitoResponse) => void, reject: (result: ICognitoResponse) => void) => {\n user.completeNewPasswordChallenge(password, attributes, {\n onSuccess: (session: CognitoUserSession) => {\n this.user = user;\n this.userSource.next(user);\n this.sessionSource.next(session);\n resolve({ type: CognitoResponseType.Authenticated, session, user, request: CognitoRequestType.Authentication });\n },\n onFailure: (error: any) => reject({ type: CognitoResponseType.NotAuthorized, error, user, request, session: null })\n })\n });\n }\n\n public requestVerificationCode(Username: string): Promise<ICognitoResponse> {\n const data = { Username, Pool: this.pool };\n const user = new CognitoUser(data);\n return this.forgotPassword(user);\n }\n\n public resetPassword(user: CognitoUser, oldPassword: string, newPassword: string): Promise<ICognitoResponse> {\n const request = CognitoRequestType.PasswordReset;\n return new Promise((resolve: (result: ICognitoResponse) => void, reject: (result: ICognitoResponse) => void) => {\n user.changePassword(oldPassword, newPassword, (error, result) => {\n if(error) reject({ type: CognitoResponseType.LimitExceededException, user, request, error, session: null});\n else resolve({ type: CognitoResponseType.Success, user, request, session: null });\n })\n });\n }\n\n public forgotPassword(user: CognitoUser): Promise<ICognitoResponse> {\n const request = CognitoRequestType.ForgotPassword;\n return new Promise((resolve: (result: ICognitoResponse) => void, reject: (result: ICognitoResponse) => void) => {\n user.forgotPassword({\n onSuccess: (response: any) => resolve({ type: CognitoResponseType.Success, user, request, session: null }),\n onFailure: (error: any) => reject({ type: CognitoResponseType.LimitExceededException, error, user, request, session: null })\n })\n });\n }\n\n public confirmPassword(user: CognitoUser, code: string, password: string): Promise<ICognitoResponse> {\n const request = CognitoRequestType.ConfirmPassword;\n return new Promise((resolve: (result: ICognitoResponse) => void, reject: (result: ICognitoResponse) => void) => {\n user.confirmPassword(code, password, {\n onSuccess: (response: any) => { resolve({ type: CognitoResponseType.Success, user, request, session: null }) },\n onFailure: (error: any) => reject({ type: CognitoResponseType.InvalidCode, error, user, request, session: null })\n })\n });\n }\n\n private authenticateUser(user: CognitoUser, details: AuthenticationDetails, resolve: (result: ICognitoResponse) => void, reject: (result: ICognitoResponse) => void ) {\n const request = CognitoRequestType.Authentication;\n user.authenticateUser(details, {\n onSuccess: (session: CognitoUserSession) => {\n this.sessionSource.next(session);\n this.userSource.next(user);\n this.user = user;\n resolve({ type: CognitoResponseType.Authenticated, session, user, request });\n },\n onFailure: (error: any) => reject({ type: CognitoResponseType.NotAuthorized, error, user, request, session: null }),\n newPasswordRequired: (userAttributes, requiredAttributes) => {\n resolve({type: CognitoResponseType.PasswordReset, userAttributes, requiredAttributes, user, request, session: null })\n }\n });\n }\n\n private getUserSession(resolve: (result: ICognitoResponse) => void, reject: (result: ICognitoResponse) => void) {\n const request = CognitoRequestType.Authentication;\n this.user!.getSession((error: Error, session: null) => {\n if(error) reject({ type: CognitoResponseType.Authenticated, session, user: this.user!, request, error });\n else {\n this.sessionSource.next(session);\n resolve({ type: CognitoResponseType.Authenticated, session, user: this.user!, request });\n }\n })\n }\n\n private handleErrorQuietly(error: HttpErrorResponse) {\n return of(error);\n }\n\n private headers(custom: any = {}) {\n const headers = { \n \"Content-Type\": \"application/json\",\n \"Authorization\": this.accessToken ? `Bearer ${this.accessToken}` : \"\"\n };\n return new HttpHeaders(headers);\n }\n}\n","export class CognitoStrings {\n\t public static onUserPasswordChangeSuccessful: string = \"Update successful. Please log in with your new password.\";\n\t public static onVerificationCodeSent: string = \"Enter your email below to generate a verification code.\";\n\t public static onNewPasswordRequired: string = \"You need to create a new password. Please check your email for a verification code and then complete the form below.\";\n\t public static onFirstLogin: string = \"Please complete the fields below to finish account creation.\";\n\t public static onTooManyAttempts: string = \"Too many attempts. Please try again in 15 minutes.\";\n\t public static onPasswordUpdated: string = \"Your password has been updated successfully.\";\n\t public static labelEmail: string = \"Email Address\";\n\t public static labelPassword: string = \"Password\";\n\t public static labelForgotPassword: string = \"Forgot Password\";\n\t public static labelNewPassword: string = \"New Password\";\n\t public static labelCurrentPassword: string = \"Current Password\";\n\t public static labelConfirmNewPassword: string = \"Confirm New Password\";\n\t public static labelSubmit: string = \"Submit\";\n\t public static labelCode: string = \"Code\";\n\t public static labelClose: string = \"Close\";\n\t public static labelUseRegularPassword: string = \"Use Standard Password\";\n\t public static labelOtp: string = \"Email me a One Time Password (OTP)\";\n\t public static labelOtpEnter: string = \"Enter the code that was just emailed to you.\";\n\t public static labelMagicLink: string = \"Email me a magic link\";\n\t public static labelPasskeys: string = \"Use a passkey\";\n\t public static labelPasskeyEnter: string = \"Enter the code that was just emailed to you.\"\n\t public static labelPasswordRequirement: string = \"Must be at least 8 characters and contain a number, special character, uppercase and lowercase letter.\";\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'labeler'\n})\n@Injectable()\nexport class LabelerPipe implements PipeTransform {\n\n\ttransform(label: string): string {\n\t\tif(label?.match(/given name/i)) return \"First Name\";\n\t\tif(label?.match(/family name/i)) return \"Last Name\";\n\t\treturn label;\n\t}\n}","import { Component, OnInit, HostBinding, AfterViewInit, Input, Output, EventEmitter } from '@angular/core';\nimport { CognitoService } from \"./cognito.service\";\nimport { CognitoUser, CognitoUserSession, CognitoIdToken, CognitoAccessToken } from 'amazon-cognito-identity-js';\nimport { ICognitoResponse, ICognitoUserData } from \"./cognito.interfaces\";\nimport { CognitoStrings } from \"./cognito.classes\";\nimport { CognitoResponseType, CognitoRequestType, CognitoFormType } from \"./cognito.types\";\nimport { unsnake, tick, params, trim } from \"./cognito.utils\";\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { startAuthentication, startRegistration } from '@simplewebauthn/browser';\n\n@Component({\n selector: 'cognito',\n templateUrl: \"./cognito.component.html\",\n styleUrls: [ \"./cognito.component.less\" ]\n})\nexport class CognitoComponent implements OnInit, AfterViewInit {\n\n\n @HostBinding(\"style\") hostStyle: Record<string, string | number> = {};\n @HostBinding(\"class.render\") showForm: boolean = false;\n @HostBinding(\"class.transitioning\") transitioning: boolean = false;\n\n @Input(\"pool-id\") poolId!: string;\n @Input(\"provider-name\") providerName: string = \"Google\";\n @Input(\"client-id\") clientId!: string;\n @Input(\"cognito-signin-url\") cognitoUrl?: string;\n @Input(\"region\") region!: string;\n @Input(\"modal-background\") modalBackground: string = \"rgba(255,255,255,0.5)\";\n @Input(\"z-index\") zIndex: number = 1000;\n @Input(\"hook\") hook?: (state: any) => Promise<boolean>;\n @Input(\"srp\") srp: boolean = true;\n @Input(\"otp\") otp: boolean = false;\n @Input(\"magic-link\") magicLink: boolean = false;\n @Input(\"magic-link-generator\") magicLinkGenerator?: Promise<boolean>;\n @Input(\"reload-after-link-authentication\") reloadAfterLinkAuthentication: boolean = true;\n @Input(\"passkeys\") passkeys: boolean = false;\n\n @Input(\"passkeys-get-user-id\") getUserId!: (username: string) => Promise<string>;\n @Input(\"passkeys-generate-authentication-options\") generateAuthenticationOptions!: (email: string) => Promise<any>;\n @Input(\"passkeys-generate-registration-options\") generateRegistrationOptions!: (token: string) => Promise<any>;\n @Input(\"passkeys-verify-registration\") verifyRegistration!: (input: any, token: string ) => Promise<any>;\n @Input(\"passkeys-verify-authentication\") verifyAuthentication!: (input: any) => Promise<any>;\n\n @Output(\"ready\") onReady: EventEmitter<any> = new EventEmitter();\n @Output(\"connecting\") onConnecting: EventEmitter<boolean> = new EventEmitter();\n @Output(\"authenticated\") onAuthenticated: EventEmitter<ICognitoUserData | null> = new EventEmitter();\n @Output(\"response\") onResponse: EventEmitter<any> = new EventEmitter(); \n @Output(\"usernameEntered\") onUsernameEntered: EventEmitter<string> = new EventEmitter();\n\n public model: any = { username: null, password: null};\n public componentStyle: Record<string, string | number> = {};\n public formType: CognitoFormType | null = null;\n public CognitoFormType = CognitoFormType;\n public rows: any[] = [];\n public error: string | null = null;\n public prompt: string | null = null;\n public cache: ICognitoResponse | null = null;\n public strings = CognitoStrings;\n public showPasswordField: boolean = true;\n public showEmailSubmitButton: boolean = true;\n\n private session: CognitoUserSession | null = null;\n private user: CognitoUser | null = null;\n public passkeyAuthOptions?: any;\n public passkeyRegOptions?: any;\n\n constructor(private cognito: CognitoService) {\n \n }\n\n ngOnInit(): void {\n \n this.cognito.initialize(this.poolId, this.clientId);\n\n this.cognito.form$.subscribe(form => {\n this.formType = form;\n this.showCurrentForm();\n });\n \n this.cognito.session$.subscribe(session => {\n this.session = session;\n });\n this.cognito.user$.subscribe(user => {\n this.user = user;\n });\n\n if(this.otp || this.magicLink) {\n this.showPasswordField = false;\n }\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.initialize());\n }\n\n onEnterUsername() {\n this.showEmailSubmitButton = false;\n this.onUsernameEntered.emit(this.model.username!.replace(/\\s+/gim,\"\"));\n }\n\n async login() {\n\n if(!this.srp && this.otp) {\n return this.getOtp();\n } else if(!this.srp && this.magicLink) {\n return this.getMagicLink();\n } else if(!this.srp && this.passkeys) {\n return this.getPasskey();\n } else if(!this.srp) {\n return this.onEnterUsername();\n }\n\n let response: ICognitoResponse;\n this.error = null;\n this.model.password = trim(this.model.password);\n\n if(this.hook) {\n const proceed = await this.hook({ \"state\": \"before-login\", model: this.model });\n if(!proceed) return;\n }\n\n try {\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n this.onConnecting.emit(true);\n response = await this.cognito.authenticate(username, this.model.password!);\n } catch(e: any) {\n response = e;\n } finally {\n this.handleResponse(response!);\n }\n }\n\n async getOtp() {\n let response: ICognitoResponse;\n this.error = null;\n\n try {\n this.onConnecting.emit(true);\n\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n const otp = this.model.otp ? trim(this.model.otp) : undefined;\n\n this.srp = false;\n this.magicLink = false;\n this.passkeys = false;\n\n if(this.hook) {\n const proceed = await this.hook({ \"state\": \"before-otp-request\", model: this.model });\n if(!proceed) return this.connectionComplete();\n }\n \n response = await this.cognito.otpAuthenticate(username, otp);\n\n if(this.hook) {\n //@ts-ignore\n const proceed = await this.hook({ \"state\": \"after-otp-request\", model: this.model, sessionId: response.user.Session });\n if(!proceed) throw new Error(\"Unable to proceed\");\n }\n } catch(e: any) {\n response = e;\n } finally {\n this.handleResponse(response!);\n }\n }\n\n async getMagicLink() {\n \n let response: ICognitoResponse;\n this.error = null;\n\n try {\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n this.onConnecting.emit(true);\n\n if(this.hook) {\n const proceed = await this.hook({ \"state\": \"before-magic-link-request\", model: this.model });\n if(!proceed) return this.connectionComplete();\n }\n\n response = await this.cognito.magicLinkAuthenticate(username);\n \n if(this.hook) {\n //@ts-ignore\n const proceed = await this.hook({ \"state\": \"after-magic-link-request\", model: this.model, sessionId: response.user.Session });\n if(!proceed) return this.connectionComplete();\n }\n } catch(e: any) {\n response = e;\n } finally {\n this.connectionComplete();\n }\n }\n\n async processMagicLink(email: string, code: string, sessionId: string) {\n try {\n this.onConnecting.emit(true);\n await this.cognito.magicLinkAuthenticate(email, code, sessionId);\n if(this.reloadAfterLinkAuthentication) {\n window.location.href = window.location.origin;\n } else {\n this.onAuthenticated.emit(this.getUserData()); //connected\n this.showForm = false;\n this.connectionComplete();\n }\n } catch(e: any) { } \n }\n\n async getPasskey() {\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n this.passkeyAuthOptions = await this.generateAuthenticationOptions(username);\n \n const credentials = this.passkeyAuthOptions?.allowCredentials ?? [];\n if(!credentials.length && !this.model.passkey) this.sendPasskeyCode();\n else if(!credentials.length) this.registerPasskey();\n else this.usePasskey();\n }\n\n private async sendPasskeyCode() {\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n const token = await this.getUserId(username);\n this.srp = false;\n this.otp = false;\n this.magicLink = false;\n this.model.showChallengeEntry = true;\n }\n\n private async usePasskey() {\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n this.onConnecting.emit(true);\n const authentication = await startAuthentication(this.passkeyAuthOptions);\n const outcome = await this.verifyAuthentication(authentication);\n await this.cognito.passkeyAuthenticate(username);\n \n if(outcome.verified) {\n await this.cognito.passkeyAuthenticate(username, outcome.uid);\n this.onAuthenticated.emit(this.getUserData());\n this.showForm = false;\n this.connectionComplete();\n }\n }\n\n private async registerPasskey() {\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n const code = this.model.passkey!.replace(/\\s+/gim,\"\");\n\n this.onConnecting.emit(true);\n const options = await this.generateRegistrationOptions(code);\n const registration = await startRegistration(options);\n const outcome = await this.verifyRegistration(registration, code);\n await this.cognito.passkeyAuthenticate(username);\n \n if(outcome.verified) {\n await this.cognito.passkeyAuthenticate(username, outcome.uid);\n this.onAuthenticated.emit(this.getUserData());\n this.showForm = false;\n this.connectionComplete();\n }\n }\n\n async onNewUser() {\n let response: ICognitoResponse;\n this.error = null;\n this.model.newPassword = trim(this.model.newPassword);\n\n if(this.hook) {\n const proceed = await this.hook({ \"state\": \"before-registration\", model: this.model });\n if(!proceed) return;\n }\n \n try {\n this.onConnecting.emit(true);\n response = await this.cognito.completePasswordUpdate(this.model.newPassword!, this.cache!.user, this.getUserAttributes());\n } catch(e: any) {\n response = e;\n } finally {\n this.handleResponse(response!);\n }\n\n }\n\n async onForcePasswordReset() {\n \n this.model.code = trim(this.model.code);\n this.model.newPassword = trim(this.model.newPassword);\n this.onConnecting.emit(true);\n\n if(this.hook) {\n const proceed = await this.hook({ \"state\": \"before-force-password-reset\", model: this.model });\n if(!proceed) return;\n }\n \n try {\n const response = await this.cognito.confirmPassword(this.cache!.user, this.model.code, this.model.newPassword);\n this.error = null;\n this.transitioning = true;\n await tick(250);\n this.formType = CognitoFormType.Login;\n this.setMessaging(response, CognitoStrings.onUserPasswordChangeSuccessful);\n await tick(0);\n this.transitioning = false;\n } catch(e: any) {\n this.setMessaging(e as ICognitoResponse);\n } finally {\n this.onConnecting.emit(false);\n }\n }\n\n async onUserPasswordReset() {\n\n this.error = null;\n this.onConnecting.emit(true);\n\n this.model.password = trim(this.model.password);\n this.model.newPassword = trim(this.model.newPassword);\n\n if(this.hook) {\n const proceed = await this.hook({ \"state\": \"before-user-password-reset\", model: this.model });\n if(!proceed) return;\n }\n \n try {\n const response = await this.cognito.resetPassword(this.user!, this.model.password!, this.model.newPassword);\n this.transitioning = true;\n await tick(250);\n this.formType = CognitoFormType.PasswordUpdateSuccessful;\n this.prompt = CognitoStrings.onPasswordUpdated;\n this.error = null;\n await tick();\n this.transitioning = false;\n } catch(e: any) {\n this.setMessaging(e as ICognitoResponse);\n } finally {\n this.onConnecting.emit(false);\n }\n\n }\n\n async onForgotPassword($event: MouseEvent) {\n $event.preventDefault();\n $event.stopImmediatePropagation();\n \n this.transitioning = true;\n await tick(250);\n this.formType = CognitoFormType.UserVerificationRequest;\n this.prompt = CognitoStrings.onVerificationCodeSent;\n this.error = null;\n await tick();\n this.transitioning = false;\n }\n\n async onRequestVerificationCode() {\n\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n const model = { username };\n\n if(this.hook) {\n const proceed = await this.hook({ \"state\": \"request-verification-code\", \"username\": username, model });\n if(!proceed) return;\n this.model.username = model.username;\n }\n\n this.onConnecting.emit(true);\n this.error = null;\n \n try {\n const response = await this.cognito.requestVerificationCode(model.username);\n this.transitioning = true;\n await tick(250);\n this.setMessaging(response, CognitoStrings.onNewPasswordRequired);\n this.showPasswordResetForm(response, false);\n } catch(e: any) {\n this.setMessaging(e as ICognitoResponse);\n } finally {\n this.connectionComplete();\n }\n }\n\n newUserFormDisabled() {\n let disabled = false;\n this.cache?.requiredAttributes?.forEach(key => {\n if(!this.model[key]) disabled = true;\n });\n\n if(!this.model.newPassword || !this.model.newPasswordConfirm) {\n disabled = true;\n }\n\n if(this.model.newPassword !== this.model.newPasswordConfirm) {\n disabled = true;\n }\n\n return disabled;\n }\n\n private async initialize() {\n\n\n try {\n if(this.cognitoUrl && localStorage.getItem(\"ems_access_token\")) {\n \n const info = await this.cognito.getUserInfo(this.cognitoUrl) as ICognitoUserData;\n\n //emulate cognito user/session for federated login\n this.session = new CognitoUserSession({\n IdToken: new CognitoIdToken({ IdToken: info.idToken }),\n AccessToken: new CognitoAccessToken({ AccessToken: info.accessToken }),\n });\n this.cognito.createFederatedSession(info.idToken, info.accessToken)\n }\n } catch (error: any) {\n } finally {\n if(this.session) {\n this.onAuthenticated.emit(this.getUserData());\n }\n }\n }\n\n private async handleResponse(response: ICognitoResponse) {\n\n this.transitioning = true;\n \n await tick(250);\n\n this.setMessaging(response);\n this.cache = response.userAttributes ? response : this.cache;\n\n if(response.error?.code === CognitoResponseType.NotAuthorized && response.request === CognitoRequestType.Authentication) {\n this.connectionComplete(); //likely bad password or too many attempts\n } else if(response.error?.code === CognitoResponseType.ForcePasswordReset && response.request === CognitoRequestType.Authentication) {\n this.initiatePasswordReset(response); //admin has forced user password reset\n } else if(response.type === CognitoResponseType.OtpChallenge) {\n this.model.showChallengeEntry = true;\n this.connectionComplete();\n } else if(response.type === CognitoResponseType.PasswordReset && response.request === CognitoRequestType.Authentication) {\n this.prompt = CognitoStrings.onFirstLogin;\n this.showPasswordResetForm(response); //new user\n } else if(!response.error?.code && (response.request === CognitoRequestType.Authentication || response.type === CognitoResponseType.Authenticated )) {\n this.onAuthenticated.emit(this.getUserData()); //connected\n this.showForm = false;\n this.connectionComplete();\n } else {\n this.connectionComplete(); //unsupported response -- hopefully described in messaging\n }\n\n this.onResponse.emit({ response, model: this.model });\n }\n\n private async initiatePasswordReset(response: ICognitoResponse) {\n this.error = null;\n try {\n const result = await this.cognito.forgotPassword(response.user);\n this.setMessaging(result, CognitoStrings.onNewPasswordRequired);\n await tick(250);\n this.showPasswordResetForm(response, false);\n } catch(e: any) {\n this.setMessaging(e as ICognitoResponse);\n } finally {\n this.connectionComplete();\n }\n }\n\n private setMessaging(response: ICognitoResponse, prompt: string | null = null) {\n if(response.error?.code === CognitoResponseType.LimitExceededException) {\n this.error = CognitoStrings.onTooManyAttempts;\n } else {\n this.error = response.error?.message ?? null;\n }\n\n this.prompt = prompt;\n }\n\n private async connectionComplete() {\n await tick();\n this.transitioning = false;\n this.onConnecting.emit(false);\n }\n\n private async showCurrentForm() {\n if(!this.formType) return;\n\n if(this.formType === CognitoFormType.GoogleSignIn) {\n return this.signInWithGoogle();\n }\n\n this.hostStyle = {\n \"background\": this.modalBackground,\n \"z-index\": this.zIndex\n }\n\n await tick();\n\n this.showForm = true;\n this.onReady.emit();\n }\n\n private async showPasswordResetForm(result: ICognitoResponse, isNewUser: boolean = true) {\n this.cache = result;\n this.rows = [];\n this.formType = isNewUser ? CognitoFormType.NewUser : CognitoFormType.ForcePasswordReset;\n \n //bubble first and last name fields to the top of the attributes list\n result.requiredAttributes?.sort((a,b) => {\n if(a === \"given_name\" && b === \"family_name\") return -1;\n if(b === \"given_name\" && a === \"family_name\") return 1;\n if(a === \"given_name\") return -1;\n if(a === \"family_name\") return - 1;\n if(b === \"given_name\") return 1;\n if(b === \"family_name\") return 1;\n return a > b ? 1 : -1;\n });\n\n //inject formrows for required attributes\n result.requiredAttributes?.forEach(key => {\n if(key.match(/^email/)) return;\n const value = result.userAttributes![key]\n this.rows.push({\n label: unsnake(key),\n key\n });\n this.model[key] = value && value.length ? value : undefined\n });\n\n await tick();\n this.connectionComplete();\n }\n\n private getUserAttributes(): Record<string,string> {\n const attributes = {} as Record<string,string>;\n if(!this.cache?.requiredAttributes) return attributes;\n this.cache!.requiredAttributes!.forEach(key => attributes[key] = this.model[key]);\n return attributes;\n }\n\n private signInWithGoogle() {\n const url = `${this.cognitoUrl}/oauth2/authorize?identity_provider=${this.providerName}&redirect_uri=${window.location.origin}&response_type=TOKEN&client_id=${this.clientId}&scope=email openid profile aws.cognito.signin.user.admin`;\n window.location.href = url;\n }\n\n private getUserData(): ICognitoUserData {\n return {\n email: this.session!.getIdToken().payload[\"email\"],\n username: this.session!.getIdToken().payload[\"cognito:username\"],\n sub: this.session!.getIdToken().payload[\"sub\"],\n firstName: this.session!.getIdToken().payload[\"given_name\"],\n lastName: this.session!.getIdToken().payload[\"family_name\"],\n idToken: this.session!.getIdToken().getJwtToken(),\n accessToken: this.session!.getAccessToken().getJwtToken(),\n }\n }\n\n}\n","<form *ngIf=\"showForm && formType === CognitoFormType.Login\" class=\"cognito-form\" (submit)=\"login()\">\n\t<button class=\"button close\" (click)=\"showForm=false\" type=\"button\"><span class=\"buttontext\">{{ strings.labelClose }}</span></button>\n\t<div *ngIf=\"prompt\" class=\"prompt\" [innerHtml]=\"prompt\"></div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"username\">{{ strings.labelEmail }}</label>\n\t\t<input id=\"username\" class=\"cognito-input cognito-text\" type=\"text\" name=\"username\" [(ngModel)]=\"model.username\"/>\n\t</div>\n\t<div *ngIf=\"!srp && !otp && !passkeys && !magicLink && showEmailSubmitButton\" class=\"cognito-buttons\">\n\t\t<button class=\"cognito-input cognito-submit cognito-button\" type=\"button\" (click)=\"onEnterUsername()\" [disabled]=\"!model.username\">{{ strings.labelSubmit }}</button>\n\t</div>\n\t<div *ngIf=\"srp && !showPasswordField\" class=\"cognito-buttons\">\n\t\t<button class=\"cognito-input cognito-submit cognito-button\" type=\"button\" (click)=\"showPasswordField = true; otp = false; magicLink = false; passkeys = false\" [disabled]=\"!model.username\">{{ strings.labelUseRegularPassword }}</button>\n\t</div>\n\t<div *ngIf=\"srp && showPasswordField\" class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"password\">{{ strings.labelPassword }}</label>\n\t\t<input id=\"password\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password\" [(ngModel)]=\"model.password\"/>\n\t</div>\n\t<div *ngIf=\"srp && showPasswordField\" class=\"cognito-buttons\">\n\t\t<button type=\"button\" class=\"a\" (click)=\"onForgotPassword($event)\">{{ strings.labelForgotPassword }}</button>\n\t\t<input class=\"cognito-input cognito-submit cognito-button\" type=\"submit\" [value]=\"strings.labelSubmit\"/>\n\t</div>\n\t<div *ngIf=\"otp && model.showChallengeEntry\" class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"otp\">{{ strings.labelOtpEnter }}</label>\n\t\t<input id=\"otp\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"text\" name=\"otp\" [(ngModel)]=\"model.otp\"/>\n\t</div>\n\t<div *ngIf=\"passkeys && model.showChallengeEntry\" class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"passkey-reg\">{{ strings.labelPasskeyEnter }}</label>\n\t\t<textarea id=\"passkey-reg\" autocomplete=\"off\" class=\"cognito-input cognito-text\" name=\"passkey-reg\" [(ngModel)]=\"model.passkey\"></textarea>\n\t</div>\n\t<div *ngIf=\"otp\" class=\"cognito-buttons\">\n\t\t<button class=\"cognito-input cognito-submit cognito-button\" type=\"button\" (click)=\"getOtp()\" [disabled]=\"!model.username\">{{ model.showChallengeEntry ? strings.labelSubmit : strings.labelOtp }}</button>\n\t</div>\t\n\t<div *ngIf=\"magicLink\" class=\"cognito-buttons\">\n\t\t<button class=\"cognito-input cognito-submit cognito-button\" type=\"button\" (click)=\"getMagicLink()\" [disabled]=\"!model.username\">{{ strings.labelMagicLink }}</button>\n\t</div>\t\n\t<div *ngIf=\"passkeys\" class=\"cognito-buttons\">\n\t\t<button class=\"cognito-input cognito-submit cognito-button\" type=\"button\" (click)=\"getPasskey()\" [disabled]=\"!model.username\">{{ model.showChallengeEntry ? strings.labelSubmit : strings.labelPasskeys }}</button>\n\t</div>\t\n\t<div *ngIf=\"error\" class=\"error\" [innerHtml]=\"error\"></div>\n</form>\n<form *ngIf=\"showForm && formType === CognitoFormType.NewUser\" class=\"cognito-form\" (submit)=\"onNewUser()\">\n\t<button class=\"button close\" (click)=\"showForm=false\" type=\"button\"><span class=\"buttontext\">{{ strings.labelClose }}</span></button>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"username\">{{ strings.labelEmail }}</label>\n\t\t<input id=\"username\" class=\"cognito-input cognito-text\" type=\"text\" name=\"username\" [(ngModel)]=\"model.username\" disabled />\n\t</div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label no-mb\" for=\"new-password\">{{ strings.labelNewPassword }}</label>\n\t\t<p class=\"cognito-sublabel\">{{ strings.labelPasswordRequirement }}</p>\n\t\t<input id=\"new-password\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password-new\" [(ngModel)]=\"model.newPassword\"/>\n\t</div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"password-confirm\">{{ strings.labelConfirmNewPassword }}</label>\n\t\t<input id=\"password-confirm\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password-confirm\" [(ngModel)]=\"model.newPasswordConfirm\"/>\n\t</div>\n\t<div class=\"cognito-formrow\" *ngFor=\"let row of rows\">\n\t\t<label class=\"cognito-label\" for=\"username\">{{ row.label|labeler }}</label>\n\t\t<input [id]=\"row.key\" class=\"cognito-input cognito-text\" type=\"text\" [name]=\"row.key\" [(ngModel)]=\"model[row.key]\"/>\n\t</div>\n\t<div class=\"cognito-buttons\">\n\t\t<input class=\"cognito-input cognito-submit cognito-button\" type=\"submit\" [disabled]=\"newUserFormDisabled()\" [value]=\"strings.labelSubmit\"/>\n\t</div>\t\n\t<div *ngIf=\"error\" class=\"error\" [innerHtml]=\"error\"></div>\n</form>\n<form *ngIf=\"showForm && formType === CognitoFormType.ForcePasswordReset\" class=\"cognito-form\" (submit)=\"onForcePasswordReset()\">\n\t<button class=\"button close\" (click)=\"showForm=false\" type=\"button\"><span class=\"buttontext\">{{ strings.labelClose }}</span></button>\n\t<div *ngIf=\"prompt\" class=\"prompt\" [innerHtml]=\"prompt\"></div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"username\">{{ strings.labelEmail }}</label>\n\t\t<input id=\"username\" class=\"cognito-input cognito-text\" type=\"text\" name=\"username\" [(ngModel)]=\"model.username\" disabled />\n\t</div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"code\">{{ strings.labelCode }}</label>\n\t\t<input id=\"code\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"text\" name=\"code\" [(ngModel)]=\"model.code\"/>\n\t</div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"new-password\">{{ strings.labelNewPassword }}</label>\n\t\t<p class=\"cognito-sublabel\">{{ strings.labelPasswordRequirement }}</p>\n\t\t<input id=\"new-password\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password-new\" [(ngModel)]=\"model.newPassword\"/>\n\t</div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"password-confirm\">{{ strings.labelConfirmNewPassword }}</label>\n\t\t<input id=\"password-confirm\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password-confirm\" [(ngModel)]=\"model.newPasswordConfirm\"/>\n\t</div>\n\t<div class=\"cognito-buttons\">\n\t\t<input class=\"cognito-input cognito-submit cognito-button\" type=\"submit\" [disabled]=\"newUserFormDisabled()\" [value]=\"strings.labelSubmit\"/>\n\t</div>\t\n\t<div *ngIf=\"error\" class=\"error\" [innerHtml]=\"error\"></div>\n</form>\n<form *ngIf=\"showForm && formType === CognitoFormType.UserVerificationRequest\" class=\"cognito-form\" (submit)=\"onRequestVerificationCode()\">\n\t<button class=\"button close\" (click)=\"showForm=false\" type=\"button\"><span class=\"buttontext\">{{ strings.labelClose }}</span></button>\n\t<div *ngIf=\"prompt\" class=\"prompt\" [innerHtml]=\"prompt\"></div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"username\">{{ strings.labelEmail }}</label>\n\t\t<input id=\"username\" class=\"cognito-input cognito-text\" type=\"text\" name=\"username\" [(ngModel)]=\"model.username\"/>\n\t</div>\n\t<div class=\"cognito-buttons\">\n\t\t<input class=\"cognito-input cognito-submit cognito-button\" type=\"submit\" [disabled]=\"!model.username\" [value]=\"strings.labelSubmit\"/>\n\t</div>\t\n\t<div *ngIf=\"error\" class=\"error\" [innerHtml]=\"error\"></div>\n</form>\n<form *ngIf=\"showForm && formType === CognitoFormType.UserPasswordReset\" class=\"cognito-form\" (submit)=\"onUserPasswordReset()\">\n\t<button class=\"button close\" (click)=\"showForm=false\" type=\"button\"><span class=\"buttontext\">{{ strings.labelClose }}</span></button>\n\t<div *ngIf=\"prompt\" class=\"prompt\" [innerHtml]=\"prompt\"></div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"current-password\">{{ strings.labelCurrentPassword }}</label>\n\t\t<input id=\"current-password\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password\" [(ngModel)]=\"model.password\"/>\n\t</div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"new-password\">{{ strings.labelNewPassword }}</label>\n\t\t<p class=\"cognito-sublabel\">{{ strings.labelPasswordRequirement }}</p>\n\t\t<input id=\"new-password\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password-new\" [(ngModel)]=\"model.newPassword\"/>\n\t</div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"password-confirm\">{{ strings.labelConfirmNewPassword }}</label>\n\t\t<input id=\"password-confirm\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password-confirm\" [(ngModel)]=\"model.newPasswordConfirm\"/>\n\t</div>\n\t<div class=\"cognito-buttons\">\n\t\t<input class=\"cognito-input cognito-submit cognito-button\" type=\"submit\" [disabled]=\"newUserFormDisabled()\" [value]=\"strings.labelSubmit\"/>\n\t</div>\t\n\t<div *ngIf=\"error\" class=\"error\" [innerHtml]=\"error\"></div>\n</form>\n<form *ngIf=\"showForm && formType === CognitoFormType.PasswordUpdateSuccessful\" class=\"cognito-form\" (submit)=\"showForm = false\">\n\t<div class=\"prompt\" [innerHtml]=\"prompt\"></div>\n\t<div class=\"cognito-buttons\">\n\t\t<input class=\"cognito-input cognito-submit cognito-button\" type=\"submit\" [value]=\"strings.labelClose\"/>\n\t</div>\t\n</form>","import { NgModule } from '@angular/core';\nimport { CognitoComponent } from './cognito.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { LabelerPipe } from \"./cognito.pipes\";\n\n\n@NgModule({\n declarations: [\n CognitoComponent,\n LabelerPipe\n ],\n imports: [\n FormsModule,\n CommonModule,\n HttpClientModule\n ],\n exports: [\n CognitoComponent\n ]\n})\nexport class CognitoModule { }\n","/*\n * Public API Surface of cognito\n */\n\nexport * from './lib/cognito.service';\nexport * from './lib/cognito.component';\nexport * from './lib/cognito.module';\nexport * from './lib/cognito.classes';\nexport { ICognitoUserData } from \"./lib/cognito.interfaces\";\nexport { CognitoFormType} from './lib/cognito.types';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CognitoService","i4.LabelerPipe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ems-web-app-cognito.mjs","sources":["../../src/lib/cognito.types.ts","../../src/lib/cognito.utils.ts","../../src/lib/cognito.service.ts","../../src/lib/cognito.classes.ts","../../src/lib/cognito.pipes.ts","../../src/lib/cognito.component.ts","../../src/lib/cognito.component.html","../../src/lib/cognito.module.ts","../../src/public-api.ts","../../src/ems-web-app-cognito.ts"],"sourcesContent":["export enum CognitoResponseType {\n\tAuthenticated = \"authenticated\",\n\tPasswordReset = \"NEW_PASSWORD_REQUIRED\",\n\tNotAuthorized = \"NotAuthorizedException\",\n\tForcePasswordReset = \"PasswordResetRequiredException\",\n\tInvalidCode = \"CodeMismatchException\",\n\tLimitExceededException = \"LimitExceededException\",\n\tOtpChallenge = \"OtpChallenge\",\n\tMagicLink = \"MagicLink\",\n\tPasskey = \"Passkey\",\n\tSuccess = \"SUCCESS\"\n}\n\nexport enum CognitoRequestType {\n\tAuthentication = \"authentication\",\n\tNewUserPasswordReset = \"new-user-password-reset\",\n\tForcePasswordReset = \"force-password-reset\",\n\tForgotPassword = \"forgot-password\",\n\tUpdatePasswordWithCode = \"update-password-with-code\",\n\tPasswordReset = \"password-reset\",\n\tConfirmPassword = \"confirm-password\",\n\tOtpChallenge = \"otp-challenge\",\n\tPasskey = \"passkey\",\n\tMagicLink = \"magic-link\"\n}\n\nexport enum CognitoFormType {\n\tLogin = \"login\",\n\tNewUser = \"new-user\",\n\tForcePasswordReset = \"force-password-reset\",\n\tUserPasswordReset = \"user-password-reset\",\n\tUserVerificationRequest = \"user-verification-request\",\n\tPasswordUpdateSuccessful = \"password-update-successful\",\n\tGoogleSignIn = \"google-sign-in\"\n}","export function unsnake(input: string = \"\"): string {\n\treturn input\n\t\t\t.split(\"_\")\n\t\t\t.map(p => p.substring(0,1).toUpperCase() + p.substring(1).toLowerCase())\n\t\t\t.join(\" \");\n}\n\nexport function tick(duration: number = 0) {\n\treturn new Promise((resolve: (value: any) => void) => {\n\t\twindow.setTimeout(() => resolve(duration), duration);\n\t});\n}\n\nexport function trim(input?: string) {\n if(!input) return input;\n return input.replace(/^\\s+/, '').replace(/\\s+$/, '');\n}\n\nexport function params(requestedProperty?: string): any {\n const vars = {} as any;\n const parts = window.location.href.replace(/[?&#]+([^=&]+)=([^&]*)/gi, ((m: any, key: string, value: any) => {\n vars[key] = value;\n }) as any);\n\n for (const prop in vars) {\n if (vars[prop].toLowerCase() === 'true') vars[prop] = true;\n else if (vars[prop].toLowerCase() === 'false') vars[prop] = false;\n else if (!isNaN(parseFloat(vars[prop])) && !vars[prop].match(/[^0-9]+/gim)) vars[prop] = parseFloat(vars[prop]);\n }\n\n if (requestedProperty) return vars[requestedProperty];\n return vars;\n}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpResponse, HttpRequest, HttpErrorResponse, HttpParams } from '@angular/common/http';\nimport { Observable, Subject, BehaviorSubject, throwError, of } from 'rxjs';\nimport { catchError, map, tap, take } from \"rxjs/operators\";\nimport 'cross-fetch/polyfill';\nimport { CognitoUser, CognitoUserPool, CognitoUserSession, CognitoIdToken, CognitoAccessToken, CognitoRefreshToken, AuthenticationDetails } from 'amazon-cognito-identity-js';\nimport { ICognitoResponse, ICognitoUserData } from \"./cognito.interfaces\";\nimport { CognitoResponseType, CognitoRequestType, CognitoFormType } from \"./cognito.types\";\nimport { params } from \"./cognito.utils\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CognitoService {\n\n private sessionSource: BehaviorSubject<CognitoUserSession | null> = new BehaviorSubject<CognitoUserSession | null>(null);\n public session$: Observable<CognitoUserSession | null> = this.sessionSource.asObservable();\n\n private userSource: BehaviorSubject<CognitoUser | null> = new BehaviorSubject<CognitoUser | null>(null);\n public user$: Observable<CognitoUser | null> = this.userSource.asObservable();\n\n private formSource: BehaviorSubject<CognitoFormType | null> = new BehaviorSubject<CognitoFormType | null>(null);\n public form$: Observable<CognitoFormType | null> = this.formSource.asObservable();\n\n\n private user: CognitoUser | null = null;\n private pool!: CognitoUserPool;\n\n private accessToken?: string;\n private idToken?: string;\n\n constructor(private http: HttpClient) {\n\n }\n\n public initialize(UserPoolId: string, ClientId: string) {\n\n //for federated users\n const access = params(\"access_token\") ?? localStorage.getItem(\"ems_access_token\") ?? null;\n const id = params(\"id_token\") ?? localStorage.getItem(\"ems_id_token\") ?? null;\n const sessionId = params(\"sessionId\") ?? null;\n const otp = params(\"otp\") ?? null;\n\n if(access && id) {\n localStorage.setItem(\"ems_access_token\", access);\n localStorage.setItem(\"ems_id_token\", id);\n window.location.hash = \"\";\n } \n\n this.accessToken = access;\n this.idToken = id;\n\n //for srp users\n this.pool = new CognitoUserPool({ UserPoolId, ClientId });\n this.user = this.pool.getCurrentUser();\n this.userSource.next(this.user);\n this.user?.getSession((e: Error, session: null) => this.sessionSource.next(session));\n }\n\n public magicLinkAuthenticate(Username: string, ChallengeResponse?: string, SessionId?: string) {\n const request = ChallengeResponse ? CognitoRequestType.MagicLink : CognitoRequestType.Authentication;\n const details = new AuthenticationDetails({ Username });\n const data = { Username, Pool: this.pool };\n const user = this.user = this.user ?? new CognitoUser(data);\n this.user.setAuthenticationFlowType('CUSTOM_AUTH');\n\n //@ts-ignore\n if(SessionId) this.user.Session = SessionId;\n\n return new Promise(async( resolve: (result: any) =>void, reject: (result: any) => void) => {\n const handler = {\n onSuccess: (session: CognitoUserSession) => {\n this.sessionSource.next(session);\n this.userSource.next(this.user);\n resolve({ type: CognitoResponseType.Authenticated, session, user, request })\n },\n onFailure: (error: any)=> reject({ type: CognitoResponseType.NotAuthorized, error, user, request, session: null }),\n customChallenge: (challengeParameters: any) => {\n resolve({ type: CognitoResponseType.MagicLink, user, request, challengeParameters });\n }\n };\n \n if(ChallengeResponse) user.sendCustomChallengeAnswer(ChallengeResponse, handler);\n else user.initiateAuth(details, handler);\n });\n }\n\n public passkeyAuthenticate(Username: string, ChallengeResponse?: string) {\n const request = ChallengeResponse ? CognitoRequestType.Passkey : CognitoRequestType.Authentication;\n const details = new AuthenticationDetails({ Username });\n const data = { Username, Pool: this.pool };\n const user = this.user = this.user ?? new CognitoUser(data);\n this.user.setAuthenticationFlowType('CUSTOM_AUTH');\n\n return new Promise(async( resolve: (result: any) =>void, reject: (result: any) => void) => {\n const handler = {\n onSuccess: (session: CognitoUserSession) => {\n this.sessionSource.next(session);\n this.userSource.next(this.user);\n resolve({ type: CognitoResponseType.Authenticated, session, user, request })\n },\n onFailure: (error: any)=> reject({ type: CognitoResponseType.NotAuthorized, error, user, request, session: null }),\n customChallenge: (challengeParameters: any) => resolve({ type: CognitoResponseType.Passkey, user, request, challengeParameters })\n };\n \n if(ChallengeResponse) user.sendCustomChallengeAnswer(ChallengeResponse, handler);\n else user.initiateAuth(details, handler);\n });\n }\n\n public otpAuthenticate(Username: string, ChallengeResponse?: string) {\n const request = ChallengeResponse ? CognitoRequestType.OtpChallenge : CognitoRequestType.Authentication;\n const details = new AuthenticationDetails({ Username });\n const data = { Username, Pool: this.pool };\n const user = this.user = this.user ?? new CognitoUser(data);\n this.user.setAuthenticationFlowType('CUSTOM_AUTH');\n\n return new Promise(async( resolve: (result: any) =>void, reject: (result: any) => void) => {\n const handler = {\n onSuccess: (session: CognitoUserSession) => {\n this.sessionSource.next(session);\n this.userSource.next(this.user);\n resolve({ type: CognitoResponseType.Authenticated, session, user, request })\n },\n onFailure: (error: any)=> reject({ type: CognitoResponseType.NotAuthorized, error, user, request, session: null }),\n customChallenge: (challengeParameters: any) => resolve({ type: CognitoResponseType.OtpChallenge, user, request, challengeParameters })\n };\n \n if(ChallengeResponse) user.sendCustomChallengeAnswer(ChallengeResponse, handler);\n else user.initiateAuth(details, handler);\n });\n }\n\n public getUserInfo(url: string): Promise<ICognitoUserData | HttpErrorResponse | undefined> {\n const request = `${url}/oauth2/userInfo`\n const headers = this.headers();\n\n return this.http.get(request, { headers, withCredentials: true } ).pipe(\n map((result: any) => \n { return {\n email: result.email,\n username: result.username,\n sub: result.sub,\n firstName: result.given_name,\n lastName: result.family_name,\n accessToken: this.accessToken!,\n idToken: this.idToken!\n }}\n )\n ).toPromise();\n\n //, catchError(this.handleErrorQuietly)\n }\n\n public setUserSession(session: CognitoUserSession) {\n this.sessionSource.next(session);\n }\n\n public showForm(form: CognitoFormType | null) {\n this.formSource.next(form);\n }\n\n public logout() {\n return new Promise((resolve: (result: any) => void, reject: (result: any) => void) => {\n if(this.user) {\n this.userSource.next(null);\n this.sessionSource.next(null);\n localStorage.removeItem(\"ems_id_token\");\n localStorage.removeItem(\"ems_access_token\");\n this.user.globalSignOut({\n onSuccess: resolve,\n onFailure: () => {\n //if user is disabled, must manually clear local storage (apparently)\n for(let prop in localStorage) {\n if(prop.match(/cognito/i)) localStorage.removeItem(prop);\n }\n resolve(null);\n }\n });\n } else {\n resolve(null);\n }\n });\n \n }\n\n public authenticate(Username: string, Password: string): Promise<ICognitoResponse> {\n const details = new AuthenticationDetails({ Username, Password});\n const data = { Username, Pool: this.pool };\n const user = new CognitoUser(data);\n return new Promise((resolve: (result: any) => void, reject: (result: any) => void) => {\n if(!this.user) this.authenticateUser(user, details, resolve, reject);\n else this.getUserSession(resolve, reject)\n });\n }\n\n public createFederatedSession(IdToken: string, AccessToken: string) {\n\n const session = new CognitoUserSession({\n IdToken: new CognitoIdToken({ IdToken }),\n AccessToken: new CognitoAccessToken({ AccessToken }),\n });\n\n const Username = session.getIdToken().payload[\"cognito:username\"];\n const data = { Username, Pool: this.pool };\n this.user = new CognitoUser(data);\n this.userSource.next(this.user);\n this.sessionSource.next(session);\n }\n\n public completePasswordUpdate(password: string, user: CognitoUser, attributes: any): Promise<ICognitoResponse> {\n const request = CognitoRequestType.NewUserPasswordReset;\n return new Promise((resolve: (result: ICognitoResponse) => void, reject: (result: ICognitoResponse) => void) => {\n user.completeNewPasswordChallenge(password, attributes, {\n onSuccess: (session: CognitoUserSession) => {\n this.user = user;\n this.userSource.next(user);\n this.sessionSource.next(session);\n resolve({ type: CognitoResponseType.Authenticated, session, user, request: CognitoRequestType.Authentication });\n },\n onFailure: (error: any) => reject({ type: CognitoResponseType.NotAuthorized, error, user, request, session: null })\n })\n });\n }\n\n public requestVerificationCode(Username: string): Promise<ICognitoResponse> {\n const data = { Username, Pool: this.pool };\n const user = new CognitoUser(data);\n return this.forgotPassword(user);\n }\n\n public resetPassword(user: CognitoUser, oldPassword: string, newPassword: string): Promise<ICognitoResponse> {\n const request = CognitoRequestType.PasswordReset;\n return new Promise((resolve: (result: ICognitoResponse) => void, reject: (result: ICognitoResponse) => void) => {\n user.changePassword(oldPassword, newPassword, (error, result) => {\n if(error) reject({ type: CognitoResponseType.LimitExceededException, user, request, error, session: null});\n else resolve({ type: CognitoResponseType.Success, user, request, session: null });\n })\n });\n }\n\n public forgotPassword(user: CognitoUser): Promise<ICognitoResponse> {\n const request = CognitoRequestType.ForgotPassword;\n return new Promise((resolve: (result: ICognitoResponse) => void, reject: (result: ICognitoResponse) => void) => {\n user.forgotPassword({\n onSuccess: (response: any) => resolve({ type: CognitoResponseType.Success, user, request, session: null }),\n onFailure: (error: any) => reject({ type: CognitoResponseType.LimitExceededException, error, user, request, session: null })\n })\n });\n }\n\n public confirmPassword(user: CognitoUser, code: string, password: string): Promise<ICognitoResponse> {\n const request = CognitoRequestType.ConfirmPassword;\n return new Promise((resolve: (result: ICognitoResponse) => void, reject: (result: ICognitoResponse) => void) => {\n user.confirmPassword(code, password, {\n onSuccess: (response: any) => { resolve({ type: CognitoResponseType.Success, user, request, session: null }) },\n onFailure: (error: any) => reject({ type: CognitoResponseType.InvalidCode, error, user, request, session: null })\n })\n });\n }\n\n private authenticateUser(user: CognitoUser, details: AuthenticationDetails, resolve: (result: ICognitoResponse) => void, reject: (result: ICognitoResponse) => void ) {\n const request = CognitoRequestType.Authentication;\n user.authenticateUser(details, {\n onSuccess: (session: CognitoUserSession) => {\n this.sessionSource.next(session);\n this.userSource.next(user);\n this.user = user;\n resolve({ type: CognitoResponseType.Authenticated, session, user, request });\n },\n onFailure: (error: any) => reject({ type: CognitoResponseType.NotAuthorized, error, user, request, session: null }),\n newPasswordRequired: (userAttributes, requiredAttributes) => {\n resolve({type: CognitoResponseType.PasswordReset, userAttributes, requiredAttributes, user, request, session: null })\n }\n });\n }\n\n private getUserSession(resolve: (result: ICognitoResponse) => void, reject: (result: ICognitoResponse) => void) {\n const request = CognitoRequestType.Authentication;\n this.user!.getSession((error: Error, session: null) => {\n if(error) reject({ type: CognitoResponseType.Authenticated, session, user: this.user!, request, error });\n else {\n this.sessionSource.next(session);\n resolve({ type: CognitoResponseType.Authenticated, session, user: this.user!, request });\n }\n })\n }\n\n private handleErrorQuietly(error: HttpErrorResponse) {\n return of(error);\n }\n\n private headers(custom: any = {}) {\n const headers = { \n \"Content-Type\": \"application/json\",\n \"Authorization\": this.accessToken ? `Bearer ${this.accessToken}` : \"\"\n };\n return new HttpHeaders(headers);\n }\n}\n","export class CognitoStrings {\n\t public static onUserPasswordChangeSuccessful: string = \"Update successful. Please log in with your new password.\";\n\t public static onVerificationCodeSent: string = \"Enter your email below to generate a verification code.\";\n\t public static onNewPasswordRequired: string = \"You need to create a new password. Please check your email for a verification code and then complete the form below.\";\n\t public static onFirstLogin: string = \"Please complete the fields below to finish account creation.\";\n\t public static onTooManyAttempts: string = \"Too many attempts. Please try again in 15 minutes.\";\n\t public static onPasswordUpdated: string = \"Your password has been updated successfully.\";\n\t public static labelEmail: string = \"Email Address\";\n\t public static labelPassword: string = \"Password\";\n\t public static labelForgotPassword: string = \"Forgot Password\";\n\t public static labelNewPassword: string = \"New Password\";\n\t public static labelCurrentPassword: string = \"Current Password\";\n\t public static labelConfirmNewPassword: string = \"Confirm New Password\";\n\t public static labelSubmit: string = \"Submit\";\n\t public static labelCode: string = \"Code\";\n\t public static labelClose: string = \"Close\";\n\t public static labelUseRegularPassword: string = \"Use Standard Password\";\n\t public static labelOtp: string = \"Email me a One Time Password (OTP)\";\n\t public static labelOtpEnter: string = \"Enter the code that was just emailed to you.\";\n\t public static labelMagicLink: string = \"Email me a magic link\";\n\t public static labelPasskeys: string = \"Use a passkey\";\n\t public static labelPasskeyEnter: string = \"Enter the code that was just emailed to you.\"\n\t public static labelPasswordRequirement: string = \"Must be at least 8 characters and contain a number, special character, uppercase and lowercase letter.\";\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'labeler'\n})\n@Injectable()\nexport class LabelerPipe implements PipeTransform {\n\n\ttransform(label: string): string {\n\t\tif(label?.match(/given name/i)) return \"First Name\";\n\t\tif(label?.match(/family name/i)) return \"Last Name\";\n\t\treturn label;\n\t}\n}","import { Component, OnInit, HostBinding, AfterViewInit, Input, Output, EventEmitter } from '@angular/core';\nimport { CognitoService } from \"./cognito.service\";\nimport { CognitoUser, CognitoUserSession, CognitoIdToken, CognitoAccessToken } from 'amazon-cognito-identity-js';\nimport { ICognitoResponse, ICognitoUserData } from \"./cognito.interfaces\";\nimport { CognitoStrings } from \"./cognito.classes\";\nimport { CognitoResponseType, CognitoRequestType, CognitoFormType } from \"./cognito.types\";\nimport { unsnake, tick, params, trim } from \"./cognito.utils\";\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { startAuthentication, startRegistration } from '@simplewebauthn/browser';\n\n@Component({\n selector: 'cognito',\n templateUrl: \"./cognito.component.html\",\n styleUrls: [ \"./cognito.component.less\" ]\n})\nexport class CognitoComponent implements OnInit, AfterViewInit {\n\n\n @HostBinding(\"style\") hostStyle: Record<string, string | number> = {};\n @HostBinding(\"class.render\") showForm: boolean = false;\n @HostBinding(\"class.transitioning\") transitioning: boolean = false;\n\n @Input(\"pool-id\") poolId!: string;\n @Input(\"provider-name\") providerName: string = \"Google\";\n @Input(\"client-id\") clientId!: string;\n @Input(\"cognito-signin-url\") cognitoUrl?: string;\n @Input(\"region\") region!: string;\n @Input(\"modal-background\") modalBackground: string = \"rgba(255,255,255,0.5)\";\n @Input(\"z-index\") zIndex: number = 1000;\n @Input(\"hook\") hook?: (state: any) => Promise<boolean>;\n @Input(\"srp\") srp: boolean = true;\n @Input(\"otp\") otp: boolean = false;\n @Input(\"magic-link\") magicLink: boolean = false;\n @Input(\"magic-link-generator\") magicLinkGenerator?: Promise<boolean>;\n @Input(\"reload-after-link-authentication\") reloadAfterLinkAuthentication: boolean = true;\n @Input(\"passkeys\") passkeys: boolean = false;\n\n @Input(\"passkeys-get-user-id\") getUserId!: (username: string) => Promise<string>;\n @Input(\"passkeys-generate-authentication-options\") generateAuthenticationOptions!: (email: string) => Promise<any>;\n @Input(\"passkeys-generate-registration-options\") generateRegistrationOptions!: (token: string) => Promise<any>;\n @Input(\"passkeys-verify-registration\") verifyRegistration!: (input: any, token: string ) => Promise<any>;\n @Input(\"passkeys-verify-authentication\") verifyAuthentication!: (input: any) => Promise<any>;\n\n @Output(\"ready\") onReady: EventEmitter<any> = new EventEmitter();\n @Output(\"connecting\") onConnecting: EventEmitter<boolean> = new EventEmitter();\n @Output(\"authenticated\") onAuthenticated: EventEmitter<ICognitoUserData | null> = new EventEmitter();\n @Output(\"response\") onResponse: EventEmitter<any> = new EventEmitter(); \n @Output(\"usernameEntered\") onUsernameEntered: EventEmitter<string> = new EventEmitter();\n\n public model: any = { username: null, password: null};\n public componentStyle: Record<string, string | number> = {};\n public formType: CognitoFormType | null = null;\n public CognitoFormType = CognitoFormType;\n public rows: any[] = [];\n public error: string | null = null;\n public prompt: string | null = null;\n public cache: ICognitoResponse | null = null;\n public strings = CognitoStrings;\n public showPasswordField: boolean = true;\n public showEmailSubmitButton: boolean = true;\n public disableUsername: boolean = false;\n\n private session: CognitoUserSession | null = null;\n private user: CognitoUser | null = null;\n public passkeyAuthOptions?: any;\n public passkeyRegOptions?: any;\n\n constructor(private cognito: CognitoService) {\n \n }\n\n ngOnInit(): void {\n \n this.cognito.initialize(this.poolId, this.clientId);\n\n this.cognito.form$.subscribe(form => {\n this.formType = form;\n this.showCurrentForm();\n });\n \n this.cognito.session$.subscribe(session => {\n this.session = session;\n });\n this.cognito.user$.subscribe(user => {\n this.user = user;\n });\n\n this.updateButtons();\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.initialize());\n }\n\n onEnterUsername() {\n this.showEmailSubmitButton = false;\n this.onUsernameEntered.emit(this.model.username!.replace(/\\s+/gim,\"\"));\n }\n\n updateButtons() {\n if(this.otp || this.magicLink || this.passkeys) {\n this.showPasswordField = false;\n }\n }\n\n async login() {\n\n if(!this.srp && this.otp) {\n return this.getOtp();\n } else if(!this.srp && this.magicLink) {\n return this.getMagicLink();\n } else if(!this.srp && this.passkeys) {\n return this.getPasskey();\n } else if(!this.srp) {\n return this.onEnterUsername();\n }\n\n let response: ICognitoResponse;\n this.error = null;\n this.model.password = trim(this.model.password);\n\n if(this.hook) {\n const proceed = await this.hook({ \"state\": \"before-login\", model: this.model });\n if(!proceed) return;\n }\n\n try {\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n this.onConnecting.emit(true);\n response = await this.cognito.authenticate(username, this.model.password!);\n } catch(e: any) {\n response = e;\n } finally {\n this.handleResponse(response!);\n }\n }\n\n async getOtp() {\n let response: ICognitoResponse;\n this.error = null;\n\n try {\n this.onConnecting.emit(true);\n\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n const otp = this.model.otp ? trim(this.model.otp) : undefined;\n\n this.srp = false;\n this.magicLink = false;\n this.passkeys = false;\n\n if(this.hook) {\n const proceed = await this.hook({ \"state\": \"before-otp-request\", model: this.model });\n if(!proceed) return this.connectionComplete();\n }\n \n response = await this.cognito.otpAuthenticate(username, otp);\n\n if(this.hook) {\n //@ts-ignore\n const proceed = await this.hook({ \"state\": \"after-otp-request\", model: this.model, sessionId: response.user.Session });\n if(!proceed) throw new Error(\"Unable to proceed\");\n }\n } catch(e: any) {\n response = e;\n } finally {\n this.handleResponse(response!);\n }\n }\n\n async getMagicLink() {\n \n let response: ICognitoResponse;\n this.error = null;\n\n try {\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n this.onConnecting.emit(true);\n\n if(this.hook) {\n const proceed = await this.hook({ \"state\": \"before-magic-link-request\", model: this.model });\n if(!proceed) return this.connectionComplete();\n }\n\n response = await this.cognito.magicLinkAuthenticate(username);\n \n if(this.hook) {\n //@ts-ignore\n const proceed = await this.hook({ \"state\": \"after-magic-link-request\", model: this.model, sessionId: response.user.Session });\n if(!proceed) return this.connectionComplete();\n }\n } catch(e: any) {\n response = e;\n } finally {\n this.connectionComplete();\n }\n }\n\n async processMagicLink(email: string, code: string, sessionId: string) {\n try {\n this.onConnecting.emit(true);\n await this.cognito.magicLinkAuthenticate(email, code, sessionId);\n if(this.reloadAfterLinkAuthentication) {\n window.location.href = window.location.origin;\n } else {\n this.onAuthenticated.emit(this.getUserData()); //connected\n this.showForm = false;\n this.connectionComplete();\n }\n } catch(e: any) { } \n }\n\n async getPasskey() {\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n this.passkeyAuthOptions = await this.generateAuthenticationOptions(username);\n \n const credentials = this.passkeyAuthOptions?.allowCredentials ?? [];\n if(!credentials.length && !this.model.passkey) this.sendPasskeyCode();\n else if(!credentials.length) this.registerPasskey();\n else this.usePasskey();\n }\n\n private async sendPasskeyCode() {\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n const token = await this.getUserId(username);\n this.srp = false;\n this.otp = false;\n this.magicLink = false;\n this.model.showChallengeEntry = true;\n }\n\n private async usePasskey() {\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n this.onConnecting.emit(true);\n const authentication = await startAuthentication(this.passkeyAuthOptions);\n const outcome = await this.verifyAuthentication(authentication);\n await this.cognito.passkeyAuthenticate(username);\n \n if(outcome.verified) {\n await this.cognito.passkeyAuthenticate(username, outcome.uid);\n this.onAuthenticated.emit(this.getUserData());\n this.showForm = false;\n this.connectionComplete();\n }\n }\n\n private async registerPasskey() {\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n const code = this.model.passkey!.replace(/\\s+/gim,\"\");\n\n this.onConnecting.emit(true);\n const options = await this.generateRegistrationOptions(code);\n const registration = await startRegistration(options);\n const outcome = await this.verifyRegistration(registration, code);\n await this.cognito.passkeyAuthenticate(username);\n \n if(outcome.verified) {\n await this.cognito.passkeyAuthenticate(username, outcome.uid);\n this.onAuthenticated.emit(this.getUserData());\n this.showForm = false;\n this.connectionComplete();\n }\n }\n\n async onNewUser() {\n let response: ICognitoResponse;\n this.error = null;\n this.model.newPassword = trim(this.model.newPassword);\n\n if(this.hook) {\n const proceed = await this.hook({ \"state\": \"before-registration\", model: this.model });\n if(!proceed) return;\n }\n \n try {\n this.onConnecting.emit(true);\n response = await this.cognito.completePasswordUpdate(this.model.newPassword!, this.cache!.user, this.getUserAttributes());\n } catch(e: any) {\n response = e;\n } finally {\n this.handleResponse(response!);\n }\n\n }\n\n async onForcePasswordReset() {\n \n this.model.code = trim(this.model.code);\n this.model.newPassword = trim(this.model.newPassword);\n this.onConnecting.emit(true);\n\n if(this.hook) {\n const proceed = await this.hook({ \"state\": \"before-force-password-reset\", model: this.model });\n if(!proceed) return;\n }\n \n try {\n const response = await this.cognito.confirmPassword(this.cache!.user, this.model.code, this.model.newPassword);\n this.error = null;\n this.transitioning = true;\n await tick(250);\n this.formType = CognitoFormType.Login;\n this.setMessaging(response, CognitoStrings.onUserPasswordChangeSuccessful);\n await tick(0);\n this.transitioning = false;\n } catch(e: any) {\n this.setMessaging(e as ICognitoResponse);\n } finally {\n this.onConnecting.emit(false);\n }\n }\n\n async onUserPasswordReset() {\n\n this.error = null;\n this.onConnecting.emit(true);\n\n this.model.password = trim(this.model.password);\n this.model.newPassword = trim(this.model.newPassword);\n\n if(this.hook) {\n const proceed = await this.hook({ \"state\": \"before-user-password-reset\", model: this.model });\n if(!proceed) return;\n }\n \n try {\n const response = await this.cognito.resetPassword(this.user!, this.model.password!, this.model.newPassword);\n this.transitioning = true;\n await tick(250);\n this.formType = CognitoFormType.PasswordUpdateSuccessful;\n this.prompt = CognitoStrings.onPasswordUpdated;\n this.error = null;\n await tick();\n this.transitioning = false;\n } catch(e: any) {\n this.setMessaging(e as ICognitoResponse);\n } finally {\n this.onConnecting.emit(false);\n }\n\n }\n\n async onForgotPassword($event: MouseEvent) {\n $event.preventDefault();\n $event.stopImmediatePropagation();\n \n this.transitioning = true;\n await tick(250);\n this.formType = CognitoFormType.UserVerificationRequest;\n this.prompt = CognitoStrings.onVerificationCodeSent;\n this.error = null;\n await tick();\n this.transitioning = false;\n }\n\n async onRequestVerificationCode() {\n\n const username = this.model.username!.replace(/\\s+/gim,\"\");\n const model = { username };\n\n if(this.hook) {\n const proceed = await this.hook({ \"state\": \"request-verification-code\", \"username\": username, model });\n if(!proceed) return;\n this.model.username = model.username;\n }\n\n this.onConnecting.emit(true);\n this.error = null;\n \n try {\n const response = await this.cognito.requestVerificationCode(model.username);\n this.transitioning = true;\n await tick(250);\n this.setMessaging(response, CognitoStrings.onNewPasswordRequired);\n this.showPasswordResetForm(response, false);\n } catch(e: any) {\n this.setMessaging(e as ICognitoResponse);\n } finally {\n this.connectionComplete();\n }\n }\n\n newUserFormDisabled() {\n let disabled = false;\n this.cache?.requiredAttributes?.forEach(key => {\n if(!this.model[key]) disabled = true;\n });\n\n if(!this.model.newPassword || !this.model.newPasswordConfirm) {\n disabled = true;\n }\n\n if(this.model.newPassword !== this.model.newPasswordConfirm) {\n disabled = true;\n }\n\n return disabled;\n }\n\n private async initialize() {\n\n\n try {\n if(this.cognitoUrl && localStorage.getItem(\"ems_access_token\")) {\n \n const info = await this.cognito.getUserInfo(this.cognitoUrl) as ICognitoUserData;\n\n //emulate cognito user/session for federated login\n this.session = new CognitoUserSession({\n IdToken: new CognitoIdToken({ IdToken: info.idToken }),\n AccessToken: new CognitoAccessToken({ AccessToken: info.accessToken }),\n });\n this.cognito.createFederatedSession(info.idToken, info.accessToken)\n }\n } catch (error: any) {\n } finally {\n if(this.session) {\n this.onAuthenticated.emit(this.getUserData());\n }\n }\n }\n\n private async handleResponse(response: ICognitoResponse) {\n\n this.transitioning = true;\n \n await tick(250);\n\n this.setMessaging(response);\n this.cache = response.userAttributes ? response : this.cache;\n\n if(response.error?.code === CognitoResponseType.NotAuthorized && response.request === CognitoRequestType.Authentication) {\n this.connectionComplete(); //likely bad password or too many attempts\n } else if(response.error?.code === CognitoResponseType.ForcePasswordReset && response.request === CognitoRequestType.Authentication) {\n this.initiatePasswordReset(response); //admin has forced user password reset\n } else if(response.type === CognitoResponseType.OtpChallenge) {\n this.model.showChallengeEntry = true;\n this.connectionComplete();\n } else if(response.type === CognitoResponseType.PasswordReset && response.request === CognitoRequestType.Authentication) {\n this.prompt = CognitoStrings.onFirstLogin;\n this.showPasswordResetForm(response); //new user\n } else if(!response.error?.code && (response.request === CognitoRequestType.Authentication || response.type === CognitoResponseType.Authenticated )) {\n this.onAuthenticated.emit(this.getUserData()); //connected\n this.showForm = false;\n this.connectionComplete();\n } else {\n this.connectionComplete(); //unsupported response -- hopefully described in messaging\n }\n\n this.onResponse.emit({ response, model: this.model });\n }\n\n private async initiatePasswordReset(response: ICognitoResponse) {\n this.error = null;\n try {\n const result = await this.cognito.forgotPassword(response.user);\n this.setMessaging(result, CognitoStrings.onNewPasswordRequired);\n await tick(250);\n this.showPasswordResetForm(response, false);\n } catch(e: any) {\n this.setMessaging(e as ICognitoResponse);\n } finally {\n this.connectionComplete();\n }\n }\n\n private setMessaging(response: ICognitoResponse, prompt: string | null = null) {\n if(response.error?.code === CognitoResponseType.LimitExceededException) {\n this.error = CognitoStrings.onTooManyAttempts;\n } else {\n this.error = response.error?.message ?? null;\n }\n\n this.prompt = prompt;\n }\n\n private async connectionComplete() {\n await tick();\n this.transitioning = false;\n this.onConnecting.emit(false);\n }\n\n private async showCurrentForm() {\n if(!this.formType) return;\n\n if(this.formType === CognitoFormType.GoogleSignIn) {\n return this.signInWithGoogle();\n }\n\n this.hostStyle = {\n \"background\": this.modalBackground,\n \"z-index\": this.zIndex\n }\n\n await tick();\n\n this.showForm = true;\n this.onReady.emit();\n }\n\n private async showPasswordResetForm(result: ICognitoResponse, isNewUser: boolean = true) {\n this.cache = result;\n this.rows = [];\n this.formType = isNewUser ? CognitoFormType.NewUser : CognitoFormType.ForcePasswordReset;\n \n //bubble first and last name fields to the top of the attributes list\n result.requiredAttributes?.sort((a,b) => {\n if(a === \"given_name\" && b === \"family_name\") return -1;\n if(b === \"given_name\" && a === \"family_name\") return 1;\n if(a === \"given_name\") return -1;\n if(a === \"family_name\") return - 1;\n if(b === \"given_name\") return 1;\n if(b === \"family_name\") return 1;\n return a > b ? 1 : -1;\n });\n\n //inject formrows for required attributes\n result.requiredAttributes?.forEach(key => {\n if(key.match(/^email/)) return;\n const value = result.userAttributes![key]\n this.rows.push({\n label: unsnake(key),\n key\n });\n this.model[key] = value && value.length ? value : undefined\n });\n\n await tick();\n this.connectionComplete();\n }\n\n private getUserAttributes(): Record<string,string> {\n const attributes = {} as Record<string,string>;\n if(!this.cache?.requiredAttributes) return attributes;\n this.cache!.requiredAttributes!.forEach(key => attributes[key] = this.model[key]);\n return attributes;\n }\n\n private signInWithGoogle() {\n const url = `${this.cognitoUrl}/oauth2/authorize?identity_provider=${this.providerName}&redirect_uri=${window.location.origin}&response_type=TOKEN&client_id=${this.clientId}&scope=email openid profile aws.cognito.signin.user.admin`;\n window.location.href = url;\n }\n\n private getUserData(): ICognitoUserData {\n return {\n email: this.session!.getIdToken().payload[\"email\"],\n username: this.session!.getIdToken().payload[\"cognito:username\"],\n sub: this.session!.getIdToken().payload[\"sub\"],\n firstName: this.session!.getIdToken().payload[\"given_name\"],\n lastName: this.session!.getIdToken().payload[\"family_name\"],\n idToken: this.session!.getIdToken().getJwtToken(),\n accessToken: this.session!.getAccessToken().getJwtToken(),\n }\n }\n\n}\n","<form *ngIf=\"showForm && formType === CognitoFormType.Login\" class=\"cognito-form\" (submit)=\"login()\">\n\t<button class=\"button close\" (click)=\"showForm=false\" type=\"button\"><span class=\"buttontext\">{{ strings.labelClose }}</span></button>\n\t<div *ngIf=\"prompt\" class=\"prompt\" [innerHtml]=\"prompt\"></div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"username\">{{ strings.labelEmail }}</label>\n\t\t<input id=\"username\" class=\"cognito-input cognito-text\" type=\"text\" name=\"username\" [(ngModel)]=\"model.username\" [disabled]=\"disableUsername\"/>\n\t</div>\n\t<div *ngIf=\"!srp && !otp && !passkeys && !magicLink && showEmailSubmitButton\" class=\"cognito-buttons\">\n\t\t<button class=\"cognito-input cognito-submit cognito-button\" type=\"button\" (click)=\"onEnterUsername()\" [disabled]=\"!model.username\">{{ strings.labelSubmit }}</button>\n\t</div>\n\t<div *ngIf=\"srp && !showPasswordField\" class=\"cognito-buttons\">\n\t\t<button class=\"cognito-input cognito-submit cognito-button\" type=\"button\" (click)=\"showPasswordField = true; otp = false; magicLink = false; passkeys = false\" [disabled]=\"!model.username\">{{ strings.labelUseRegularPassword }}</button>\n\t</div>\n\t<div *ngIf=\"srp && showPasswordField\" class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"password\">{{ strings.labelPassword }}</label>\n\t\t<input id=\"password\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password\" [(ngModel)]=\"model.password\"/>\n\t</div>\n\t<div *ngIf=\"srp && showPasswordField\" class=\"cognito-buttons\">\n\t\t<button type=\"button\" class=\"a\" (click)=\"onForgotPassword($event)\">{{ strings.labelForgotPassword }}</button>\n\t\t<input class=\"cognito-input cognito-submit cognito-button\" type=\"submit\" [value]=\"strings.labelSubmit\"/>\n\t</div>\n\t<div *ngIf=\"otp && model.showChallengeEntry\" class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"otp\">{{ strings.labelOtpEnter }}</label>\n\t\t<input id=\"otp\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"text\" name=\"otp\" [(ngModel)]=\"model.otp\"/>\n\t</div>\n\t<div *ngIf=\"passkeys && model.showChallengeEntry\" class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"passkey-reg\">{{ strings.labelPasskeyEnter }}</label>\n\t\t<textarea id=\"passkey-reg\" autocomplete=\"off\" class=\"cognito-input cognito-text\" name=\"passkey-reg\" [(ngModel)]=\"model.passkey\"></textarea>\n\t</div>\n\t<div *ngIf=\"otp\" class=\"cognito-buttons\">\n\t\t<button class=\"cognito-input cognito-submit cognito-button\" type=\"button\" (click)=\"getOtp()\" [disabled]=\"!model.username\">{{ model.showChallengeEntry ? strings.labelSubmit : strings.labelOtp }}</button>\n\t</div>\t\n\t<div *ngIf=\"magicLink\" class=\"cognito-buttons\">\n\t\t<button class=\"cognito-input cognito-submit cognito-button\" type=\"button\" (click)=\"getMagicLink()\" [disabled]=\"!model.username\">{{ strings.labelMagicLink }}</button>\n\t</div>\t\n\t<div *ngIf=\"passkeys\" class=\"cognito-buttons\">\n\t\t<button class=\"cognito-input cognito-submit cognito-button\" type=\"button\" (click)=\"getPasskey()\" [disabled]=\"!model.username\">{{ model.showChallengeEntry ? strings.labelSubmit : strings.labelPasskeys }}</button>\n\t</div>\t\n\t<div *ngIf=\"error\" class=\"error\" [innerHtml]=\"error\"></div>\n</form>\n<form *ngIf=\"showForm && formType === CognitoFormType.NewUser\" class=\"cognito-form\" (submit)=\"onNewUser()\">\n\t<button class=\"button close\" (click)=\"showForm=false\" type=\"button\"><span class=\"buttontext\">{{ strings.labelClose }}</span></button>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"username\">{{ strings.labelEmail }}</label>\n\t\t<input id=\"username\" class=\"cognito-input cognito-text\" type=\"text\" name=\"username\" [(ngModel)]=\"model.username\" disabled />\n\t</div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label no-mb\" for=\"new-password\">{{ strings.labelNewPassword }}</label>\n\t\t<p class=\"cognito-sublabel\">{{ strings.labelPasswordRequirement }}</p>\n\t\t<input id=\"new-password\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password-new\" [(ngModel)]=\"model.newPassword\"/>\n\t</div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"password-confirm\">{{ strings.labelConfirmNewPassword }}</label>\n\t\t<input id=\"password-confirm\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password-confirm\" [(ngModel)]=\"model.newPasswordConfirm\"/>\n\t</div>\n\t<div class=\"cognito-formrow\" *ngFor=\"let row of rows\">\n\t\t<label class=\"cognito-label\" for=\"username\">{{ row.label|labeler }}</label>\n\t\t<input [id]=\"row.key\" class=\"cognito-input cognito-text\" type=\"text\" [name]=\"row.key\" [(ngModel)]=\"model[row.key]\"/>\n\t</div>\n\t<div class=\"cognito-buttons\">\n\t\t<input class=\"cognito-input cognito-submit cognito-button\" type=\"submit\" [disabled]=\"newUserFormDisabled()\" [value]=\"strings.labelSubmit\"/>\n\t</div>\t\n\t<div *ngIf=\"error\" class=\"error\" [innerHtml]=\"error\"></div>\n</form>\n<form *ngIf=\"showForm && formType === CognitoFormType.ForcePasswordReset\" class=\"cognito-form\" (submit)=\"onForcePasswordReset()\">\n\t<button class=\"button close\" (click)=\"showForm=false\" type=\"button\"><span class=\"buttontext\">{{ strings.labelClose }}</span></button>\n\t<div *ngIf=\"prompt\" class=\"prompt\" [innerHtml]=\"prompt\"></div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"username\">{{ strings.labelEmail }}</label>\n\t\t<input id=\"username\" class=\"cognito-input cognito-text\" type=\"text\" name=\"username\" [(ngModel)]=\"model.username\" disabled />\n\t</div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"code\">{{ strings.labelCode }}</label>\n\t\t<input id=\"code\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"text\" name=\"code\" [(ngModel)]=\"model.code\"/>\n\t</div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"new-password\">{{ strings.labelNewPassword }}</label>\n\t\t<p class=\"cognito-sublabel\">{{ strings.labelPasswordRequirement }}</p>\n\t\t<input id=\"new-password\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password-new\" [(ngModel)]=\"model.newPassword\"/>\n\t</div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"password-confirm\">{{ strings.labelConfirmNewPassword }}</label>\n\t\t<input id=\"password-confirm\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password-confirm\" [(ngModel)]=\"model.newPasswordConfirm\"/>\n\t</div>\n\t<div class=\"cognito-buttons\">\n\t\t<input class=\"cognito-input cognito-submit cognito-button\" type=\"submit\" [disabled]=\"newUserFormDisabled()\" [value]=\"strings.labelSubmit\"/>\n\t</div>\t\n\t<div *ngIf=\"error\" class=\"error\" [innerHtml]=\"error\"></div>\n</form>\n<form *ngIf=\"showForm && formType === CognitoFormType.UserVerificationRequest\" class=\"cognito-form\" (submit)=\"onRequestVerificationCode()\">\n\t<button class=\"button close\" (click)=\"showForm=false\" type=\"button\"><span class=\"buttontext\">{{ strings.labelClose }}</span></button>\n\t<div *ngIf=\"prompt\" class=\"prompt\" [innerHtml]=\"prompt\"></div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"username\">{{ strings.labelEmail }}</label>\n\t\t<input id=\"username\" class=\"cognito-input cognito-text\" type=\"text\" name=\"username\" [(ngModel)]=\"model.username\"/>\n\t</div>\n\t<div class=\"cognito-buttons\">\n\t\t<input class=\"cognito-input cognito-submit cognito-button\" type=\"submit\" [disabled]=\"!model.username\" [value]=\"strings.labelSubmit\"/>\n\t</div>\t\n\t<div *ngIf=\"error\" class=\"error\" [innerHtml]=\"error\"></div>\n</form>\n<form *ngIf=\"showForm && formType === CognitoFormType.UserPasswordReset\" class=\"cognito-form\" (submit)=\"onUserPasswordReset()\">\n\t<button class=\"button close\" (click)=\"showForm=false\" type=\"button\"><span class=\"buttontext\">{{ strings.labelClose }}</span></button>\n\t<div *ngIf=\"prompt\" class=\"prompt\" [innerHtml]=\"prompt\"></div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"current-password\">{{ strings.labelCurrentPassword }}</label>\n\t\t<input id=\"current-password\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password\" [(ngModel)]=\"model.password\"/>\n\t</div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"new-password\">{{ strings.labelNewPassword }}</label>\n\t\t<p class=\"cognito-sublabel\">{{ strings.labelPasswordRequirement }}</p>\n\t\t<input id=\"new-password\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password-new\" [(ngModel)]=\"model.newPassword\"/>\n\t</div>\n\t<div class=\"cognito-formrow\">\n\t\t<label class=\"cognito-label\" for=\"password-confirm\">{{ strings.labelConfirmNewPassword }}</label>\n\t\t<input id=\"password-confirm\" autocomplete=\"off\" class=\"cognito-input cognito-text\" type=\"password\" name=\"password-confirm\" [(ngModel)]=\"model.newPasswordConfirm\"/>\n\t</div>\n\t<div class=\"cognito-buttons\">\n\t\t<input class=\"cognito-input cognito-submit cognito-button\" type=\"submit\" [disabled]=\"newUserFormDisabled()\" [value]=\"strings.labelSubmit\"/>\n\t</div>\t\n\t<div *ngIf=\"error\" class=\"error\" [innerHtml]=\"error\"></div>\n</form>\n<form *ngIf=\"showForm && formType === CognitoFormType.PasswordUpdateSuccessful\" class=\"cognito-form\" (submit)=\"showForm = false\">\n\t<div class=\"prompt\" [innerHtml]=\"prompt\"></div>\n\t<div class=\"cognito-buttons\">\n\t\t<input class=\"cognito-input cognito-submit cognito-button\" type=\"submit\" [value]=\"strings.labelClose\"/>\n\t</div>\t\n</form>","import { NgModule } from '@angular/core';\nimport { CognitoComponent } from './cognito.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { LabelerPipe } from \"./cognito.pipes\";\n\n\n@NgModule({\n declarations: [\n CognitoComponent,\n LabelerPipe\n ],\n imports: [\n FormsModule,\n CommonModule,\n HttpClientModule\n ],\n exports: [\n CognitoComponent\n ]\n})\nexport class CognitoModule { }\n","/*\n * Public API Surface of cognito\n */\n\nexport * from './lib/cognito.service';\nexport * from './lib/cognito.component';\nexport * from './lib/cognito.module';\nexport * from './lib/cognito.classes';\nexport { ICognitoUserData } from \"./lib/cognito.interfaces\";\nexport { CognitoFormType} from './lib/cognito.types';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CognitoService","i4.LabelerPipe"],"mappings":"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"}
|