@annalib/anna-cognito-lib 0.3.0 → 0.3.1

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.
@@ -18,7 +18,7 @@ export class UsernameInfo {
18
18
  export class UserState {
19
19
  constructor(userState) {
20
20
  this.userStatus = userState;
21
- this.isUserWithTempPassword = (userState == 'FORCE_CHANGE_PASSWORD' || userState == 'RESET_REQUIRED');
21
+ this.isUserWithTempPassword = userState == 'FORCE_CHANGE_PASSWORD';
22
22
  }
23
23
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL2xpYi9tb2RlbHMvYXV0aC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLFlBQVksUUFBZ0IsRUFBRSxRQUFnQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLFlBQVksVUFBa0IsRUFBRSxRQUFnQjtRQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sWUFBWTtJQUV2QixZQUFZLE1BQXdDO1FBQ2hELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUM7SUFDMUQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFNBQVM7SUFHcEIsWUFBWSxTQUFpQjtRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixJQUFJLENBQUMsc0JBQXNCLEdBQUcsQ0FBQyxTQUFTLElBQUksdUJBQXVCLElBQUksU0FBUyxJQUFJLGdCQUFnQixDQUFDLENBQUM7SUFDMUcsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uRGF0YSB7XHJcbiAgVXNlcm5hbWU6IHN0cmluZztcclxuICBQYXNzd29yZDogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKFVzZXJuYW1lOiBzdHJpbmcsIFBhc3N3b3JkOiBzdHJpbmcpIHtcclxuICAgICAgdGhpcy5Vc2VybmFtZSA9IFVzZXJuYW1lO1xyXG4gICAgICB0aGlzLlBhc3N3b3JkID0gUGFzc3dvcmQ7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlclBvb2xJbmZvcm1hdGlvbiB7XHJcbiAgVXNlclBvb2xJZDogc3RyaW5nO1xyXG4gIENsaWVudElkOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoVXNlclBvb2xJZDogc3RyaW5nLCBDbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICAgIHRoaXMuVXNlclBvb2xJZCA9IFVzZXJQb29sSWQ7XHJcbiAgICAgIHRoaXMuQ2xpZW50SWQgPSBDbGllbnRJZDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBVc2VybmFtZUluZm8ge1xyXG4gIGlzVXNlcm5hbWVBdmFpbGFibGU6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3Iob2JqZWN0OiB7IGlzVXNlcm5hbWVBdmFpbGFibGU6IGJvb2xlYW4gfSkge1xyXG4gICAgICB0aGlzLmlzVXNlcm5hbWVBdmFpbGFibGUgPSBvYmplY3QuaXNVc2VybmFtZUF2YWlsYWJsZTtcclxuICB9XHJcbn0gXHJcblxyXG5leHBvcnQgY2xhc3MgVXNlclN0YXRlIHtcclxuICB1c2VyU3RhdHVzOiBzdHJpbmc7XHJcbiAgaXNVc2VyV2l0aFRlbXBQYXNzd29yZDogYm9vbGVhbjtcclxuICBjb25zdHJ1Y3Rvcih1c2VyU3RhdGU6IHN0cmluZyApIHtcclxuICAgICAgdGhpcy51c2VyU3RhdHVzID0gdXNlclN0YXRlO1xyXG4gICAgICB0aGlzLmlzVXNlcldpdGhUZW1wUGFzc3dvcmQgPSAodXNlclN0YXRlID09ICdGT1JDRV9DSEFOR0VfUEFTU1dPUkQnIHx8IHVzZXJTdGF0ZSA9PSAnUkVTRVRfUkVRVUlSRUQnKTtcclxuICB9XHJcbn0iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL2xpYi9tb2RlbHMvYXV0aC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLFlBQVksUUFBZ0IsRUFBRSxRQUFnQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLFlBQVksVUFBa0IsRUFBRSxRQUFnQjtRQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sWUFBWTtJQUV2QixZQUFZLE1BQXdDO1FBQ2hELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUM7SUFDMUQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFNBQVM7SUFHcEIsWUFBWSxTQUFpQjtRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixJQUFJLENBQUMsc0JBQXNCLEdBQUcsU0FBUyxJQUFJLHVCQUF1QixDQUFDO0lBQ3ZFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvbkRhdGEge1xyXG4gIFVzZXJuYW1lOiBzdHJpbmc7XHJcbiAgUGFzc3dvcmQ6IHN0cmluZztcclxuICBjb25zdHJ1Y3RvcihVc2VybmFtZTogc3RyaW5nLCBQYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICAgIHRoaXMuVXNlcm5hbWUgPSBVc2VybmFtZTtcclxuICAgICAgdGhpcy5QYXNzd29yZCA9IFBhc3N3b3JkO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJQb29sSW5mb3JtYXRpb24ge1xyXG4gIFVzZXJQb29sSWQ6IHN0cmluZztcclxuICBDbGllbnRJZDogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKFVzZXJQb29sSWQ6IHN0cmluZywgQ2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgICB0aGlzLlVzZXJQb29sSWQgPSBVc2VyUG9vbElkO1xyXG4gICAgICB0aGlzLkNsaWVudElkID0gQ2xpZW50SWQ7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlcm5hbWVJbmZvIHtcclxuICBpc1VzZXJuYW1lQXZhaWxhYmxlOiBib29sZWFuO1xyXG4gIGNvbnN0cnVjdG9yKG9iamVjdDogeyBpc1VzZXJuYW1lQXZhaWxhYmxlOiBib29sZWFuIH0pIHtcclxuICAgICAgdGhpcy5pc1VzZXJuYW1lQXZhaWxhYmxlID0gb2JqZWN0LmlzVXNlcm5hbWVBdmFpbGFibGU7XHJcbiAgfVxyXG59IFxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJTdGF0ZSB7XHJcbiAgdXNlclN0YXR1czogc3RyaW5nO1xyXG4gIGlzVXNlcldpdGhUZW1wUGFzc3dvcmQ6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3IodXNlclN0YXRlOiBzdHJpbmcgKSB7XHJcbiAgICAgIHRoaXMudXNlclN0YXR1cyA9IHVzZXJTdGF0ZTtcclxuICAgICAgdGhpcy5pc1VzZXJXaXRoVGVtcFBhc3N3b3JkID0gdXNlclN0YXRlID09ICdGT1JDRV9DSEFOR0VfUEFTU1dPUkQnO1xyXG4gIH1cclxufSJdfQ==
@@ -82,7 +82,7 @@ class UsernameInfo {
82
82
  class UserState {
83
83
  constructor(userState) {
84
84
  this.userStatus = userState;
85
- this.isUserWithTempPassword = (userState == 'FORCE_CHANGE_PASSWORD' || userState == 'RESET_REQUIRED');
85
+ this.isUserWithTempPassword = userState == 'FORCE_CHANGE_PASSWORD';
86
86
  }
87
87
  }
88
88
 
@@ -1 +1 @@
1
- {"version":3,"file":"annalib-anna-cognito-lib.mjs","sources":["../../../projects/anna-cognito-lib/src/lib/constants/loginConstant.ts","../../../projects/anna-cognito-lib/src/lib/models/auth.model.ts","../../../projects/anna-cognito-lib/src/lib/config/auth-service.token.ts","../../../projects/anna-cognito-lib/src/lib/config/acl-service.token.ts","../../../projects/anna-cognito-lib/src/lib/services/acl.service.ts","../../../projects/anna-cognito-lib/src/lib/config/library.config.ts","../../../projects/anna-cognito-lib/src/lib/services/auth.service.ts","../../../projects/anna-cognito-lib/src/lib/directives/spinner-button/spinner-button.directive.ts","../../../projects/anna-cognito-lib/src/lib/components/login/login.component.ts","../../../projects/anna-cognito-lib/src/lib/components/login/login.component.html","../../../projects/anna-cognito-lib/src/lib/components/password-matching/password-matching.component.ts","../../../projects/anna-cognito-lib/src/lib/components/password-matching/password-matching.component.html","../../../projects/anna-cognito-lib/src/lib/components/set-new-password/set-new-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/set-new-password/set-new-password.component.html","../../../projects/anna-cognito-lib/src/lib/components/forgot-password/forgot-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/forgot-password/forgot-password.component.html","../../../projects/anna-cognito-lib/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.html","../../../projects/anna-cognito-lib/src/lib/anna-cognito-lib.module.ts","../../../projects/anna-cognito-lib/src/public-api.ts","../../../projects/anna-cognito-lib/src/annalib-anna-cognito-lib.ts"],"sourcesContent":["export class LoginConstant {\r\n // Login page\r\n static readonly enterEmail = \"Enter your username\";\r\n static readonly password = \"Password\";\r\n static readonly confirmPassword = \"Confirm Password\";\r\n static readonly login = \"Login\";\r\n static readonly otp = \"OTP\";\r\n static readonly forgotPassword = \"Forgot \" + LoginConstant.password.toLowerCase() + \"?\";\r\n\r\n // set new password\r\n static readonly setNewPasswordHeading = \"Set new \" + LoginConstant.password.toLowerCase();\r\n static readonly setNewPasswordButton = \"Set and \" + LoginConstant.login.toLowerCase() + \" again\";\r\n static readonly passwordMustContain = \"The password must contain:\";\r\n static readonly minimumCharacter = \"Minimum 8 characters\";\r\n static readonly oneUppercase = \"1 Uppercase\";\r\n static readonly oneLowercase = \"1 Lowercase\";\r\n static readonly oneNumber = \"1 Numerical\";\r\n static readonly specialCharacter = \"1 Special character\";\r\n static readonly passwordNotMatching = \"The passwords do not match. Please try again.\";\r\n static readonly userNamePasswordIncorrect = \"Incorrect username or password\";\r\n static readonly userNotFound = \"No registered user found\";\r\n static readonly loginAgain = LoginConstant.login + \" again\";\r\n static readonly firstTimeLoginUserTempPasswordMsg = \"You are logging in for the first time. Kindly use the temporary password provided in the welcome email, to login to your account. \";\r\n static readonly tempPasswordExpiryError = \"Temporary password has expired and must be reset by an administrator.\"\r\n static readonly tempPasswordOnExpiryErrorMsg = \"Password has expired. A new password has been sent to your registered email. Kindly login again with new link and credentials.\";\r\n\r\n // verify OTP & set new password\r\n static readonly verifyAndSetNewPasswordheading = \"Enter \" + LoginConstant.otp + \" & set new password\";\r\n static readonly verifyAndSetNewPasswordMessage = \"An \" + LoginConstant.otp + \" has been succesfully emailed to \";\r\n static readonly pleaseEnterItBelow = \". Please enter it below.\";\r\n static readonly regenerateOtp = \"Regenerate \" + LoginConstant.otp;\r\n static readonly enterOtp = \"Enter \" + LoginConstant.otp;\r\n static readonly submit = \"Submit\";\r\n static readonly attempt = \"Attempt\";\r\n static readonly attemptLimitExceeded =\r\n \"You have exceeded the maximum number of allowed attempts. Please try again after 15 minutes.\";\r\n static readonly attemptMessage = \" of 5. The OTP entered is incorrect. Please try again with the right one.\";\r\n static readonly sessionExpired = \"The session has expired. Please try again.\";\r\n\r\n // forgot password\r\n static readonly forgotPasswordHeading = \"Forgot your password?\";\r\n static readonly forgotPasswordMessage = \"Please enter your username.\";\r\n static readonly forgotPasswordButton = \"Get \" + LoginConstant.otp;\r\n static readonly apiFailErrorMessage = \"Unable to connect to server right now. Please try after some time.\";\r\n\r\n //url\r\n static readonly setNewPasswordUrl = \"/set-new-password\";\r\n static readonly forgortPasswordPageUrl = \"/forgot-password\";\r\n static readonly verifyAndSetNewPasswordUrl = \"/verify-and-set-new-password\";\r\n static readonly loginPageUrl = \"/login\";\r\n static readonly homePageUrl = \"/home\";\r\n static readonly stationSettingUrl = \"/station-settings\";\r\n}\r\n","export class AuthenticationData {\r\n Username: string;\r\n Password: string;\r\n constructor(Username: string, Password: string) {\r\n this.Username = Username;\r\n this.Password = Password;\r\n }\r\n}\r\n\r\nexport class UserPoolInformation {\r\n UserPoolId: string;\r\n ClientId: string;\r\n constructor(UserPoolId: string, ClientId: string) {\r\n this.UserPoolId = UserPoolId;\r\n this.ClientId = ClientId;\r\n }\r\n}\r\n\r\nexport class UsernameInfo {\r\n isUsernameAvailable: boolean;\r\n constructor(object: { isUsernameAvailable: boolean }) {\r\n this.isUsernameAvailable = object.isUsernameAvailable;\r\n }\r\n} \r\n\r\nexport class UserState {\r\n userStatus: string;\r\n isUserWithTempPassword: boolean;\r\n constructor(userState: string ) {\r\n this.userStatus = userState;\r\n this.isUserWithTempPassword = (userState == 'FORCE_CHANGE_PASSWORD' || userState == 'RESET_REQUIRED');\r\n }\r\n}","import { InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n/** Token to inject the auth service */\r\nexport const AUTH_SERVICE_TOKEN:\r\n InjectionToken<IAuthService> =\r\n new InjectionToken<IAuthService>('Auth service token');\r\n\r\nexport interface IAuthService {\r\n isLoggingIn: boolean; \r\n onSuccessfulAuthenticatingUser(result: any): void;\r\n isUsernameAvailable(username: string): Observable<any>;\r\n getUserState(username: string): Observable<any>;\r\n navigateBasedOnUserRole(loginUserData: any): void;\r\n getPublicIp(): string;\r\n sendRegenerationEmail(userCode:string):void;\r\n}","import { InjectionToken } from '@angular/core';\r\n\r\n/** Token to inject the acl service */\r\nexport const ACL_SERVICE_TOKEN:\r\n InjectionToken<IAclService> =\r\n new InjectionToken<IAclService>('ACL service token');\r\n\r\nexport interface IAclService {\r\n urlToCognitoPrivilegeMap: {[key: string]: string};\r\n DAILY_REVISION_REPORT_WRITE: string;\r\n LUR_SETTINGS_WRITE: string;\r\n MANAGE_BUSINESS_RULES_WRITE: string;\r\n MANAGE_USERS_WRITE: string;\r\n ORDER_BIZ_RULES_WRITE: string;\r\n ORDER_REVISIONS_WRITE: string;\r\n ORDER_SPOTS_REPORT_WRITE: string;\r\n RATE_CARD_WRITE: string;\r\n STATION_SYSTEM_SETTINGS_WRITE: string;\r\n POLITICAL_WINDOW_WRITE: string;\r\n \r\n isUserAuthoriseToAcessManageUser(): boolean;\r\n}","import { Inject, Injectable } from \"@angular/core\";\r\nimport { IAclService, ACL_SERVICE_TOKEN } from '../config/acl-service.token';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AnnaLibAclService {\r\n constructor(@Inject(ACL_SERVICE_TOKEN) public consumingProjectAclService: IAclService) {}\r\n\r\n userGroupsInCognitoJWT: string[];\r\n isUserAuthorisedToAccessPage(url: string): boolean {\r\n let privilegeName = this.consumingProjectAclService.urlToCognitoPrivilegeMap[url];\r\n return this.userGroupsInCognitoJWT.includes(privilegeName);\r\n }\r\n\r\n isUserAuthorisedToAccessElement(privilege: string): boolean {\r\n return this.userGroupsInCognitoJWT.includes(privilege);\r\n }\r\n\r\n isUserAuthoriseToAcessManageUser(): boolean {\r\n return this.consumingProjectAclService.isUserAuthoriseToAcessManageUser();\r\n }\r\n\r\n}\r\n","export class LibraryConfig { \r\n loginPageLogoImgUrl: string = '';\r\n cognito : {\r\n userPoolId: string;\r\n clientId: string; \r\n }\r\n \r\n}","// Angular import statements\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n// Third party import statements\r\nimport { CognitoUserPool, CognitoUser, AuthenticationDetails, CognitoUserSession } from \"amazon-cognito-identity-js\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../constants/loginConstant\";\r\nimport { AuthenticationData, UserPoolInformation } from \"../models/auth.model\";\r\nimport { AnnaLibAclService } from './acl.service';\r\nimport { LibraryConfig } from '../config/library.config';\r\nimport { IAuthService, AUTH_SERVICE_TOKEN } from '../config/auth-service.token';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AnnaLibAuthService {\r\n poolData: UserPoolInformation;\r\n userPool: CognitoUserPool;\r\n cognitoUser: CognitoUser;\r\n authenticationDetails: AuthenticationDetails;\r\n tokenValid: boolean;\r\n accessToken: string;\r\n userAttribute: any;\r\n loginErrorMessage: string | null;\r\n setNewPasswordErrorMessage: string;\r\n setNewPasswordButtonMessage: string;\r\n verifyAndSetNewPasswordErrorMessage: string;\r\n verifyAndSetNewPasswordMessage: string;\r\n verifyAndSetNewPasswordButton: string;\r\n noOfAttempts = 0;\r\n sessionLocked = false;\r\n userName: any;\r\n accessTokenTimerId: any;\r\n IdToken: any;\r\n forgotPasswordAndGlobalSignoutLoader: boolean;\r\n\r\n constructor(\r\n private router: Router,\r\n public aclService: AnnaLibAclService,\r\n public libraryConfig: LibraryConfig,\r\n public httpClient:HttpClient,\r\n @Inject(AUTH_SERVICE_TOKEN) public consumingProjectAuthService: IAuthService) {\r\n if(!consumingProjectAuthService) {\r\n throw new Error('You must provide a authService');\r\n }\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n /***\r\n 1. takes user pool data (userPool ID and client ID)\r\n 2. if current user is null then it means user already logged out then simply return Promise<false>\r\n 3. if current user present check if token is valid for it.\r\n */\r\n isUserLoggedIn(): Promise<boolean> {\r\n let currentUser = this.getCurrentUserDetails();\r\n if (currentUser) {\r\n return new Promise((resolve, reject) => {\r\n currentUser && currentUser.getSession((error: Error, token: CognitoUserSession | null) => {\r\n if (token) {\r\n this.getAllCognitoTokenAndGroups(token);\r\n resolve(true);\r\n } else {\r\n this.sessionTimeout();\r\n resolve(false);\r\n }\r\n });\r\n });\r\n } else {\r\n return new Promise((resolve) => {\r\n clearInterval(this.accessTokenTimerId);\r\n resolve(false);\r\n });\r\n }\r\n }\r\n\r\n sessionTimeout() {\r\n localStorage.clear();\r\n clearInterval(this.accessTokenTimerId);\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n }\r\n\r\n refreshAccessToken() {\r\n let currentUser = this.getCurrentUserDetails();\r\n let accessTokenExpiration = localStorage.getItem(\"accessTokenExpiration\");\r\n let expTime = accessTokenExpiration ? parseInt(accessTokenExpiration) : 0;\r\n this.accessTokenTimerId = setInterval(() => {\r\n let counter = 1000;\r\n let delayFunction = setTimeout(() => {\r\n currentUser && currentUser.getSession((error: any, token: CognitoUserSession | null) => {\r\n if (token) {\r\n this.getAllCognitoTokenAndGroups(token);\r\n let newExpTime = this.computeTokenExpiration(this.IdToken);\r\n\r\n if (newExpTime <= 0) {\r\n newExpTime = 1000;\r\n counter = 0;\r\n if (delayFunction) {\r\n clearInterval(delayFunction);\r\n }\r\n }\r\n expTime = newExpTime;\r\n localStorage.setItem(\"accessTokenExpiration\", newExpTime.toString());\r\n clearInterval(this.accessTokenTimerId);\r\n this.refreshAccessToken();\r\n } else if (error.code === \"NotAuthorizedException\") {\r\n this.sessionTimeout();\r\n }\r\n });\r\n }, counter);\r\n }, expTime);\r\n }\r\n\r\n computeTokenExpiration(token: any) {\r\n let currentTime = Math.floor(Date.now() / 1000);\r\n let tokenTime = token.payload.exp;\r\n let expTime = (tokenTime - currentTime) * 1000;\r\n return expTime;\r\n }\r\n\r\n\r\n getCurrentUserDetails() {\r\n let poolData = new UserPoolInformation(this.libraryConfig.cognito.userPoolId, this.libraryConfig.cognito.clientId);\r\n let userPool = new CognitoUserPool(poolData);\r\n return userPool.getCurrentUser();\r\n }\r\n\r\n getCognitoUserDetails(email: string): CognitoUser {\r\n this.poolData = new UserPoolInformation(this.libraryConfig.cognito.userPoolId, this.libraryConfig.cognito.clientId);\r\n this.userPool = new CognitoUserPool(this.poolData);\r\n\r\n let userData = {\r\n Username: email,\r\n Pool: this.userPool,\r\n };\r\n let cognitoUser = new CognitoUser(userData);\r\n return cognitoUser;\r\n }\r\n\r\n authenticate(email: string, password: string) {\r\n this.loginErrorMessage = null;\r\n let authData = new AuthenticationData(email, password);\r\n this.authenticationDetails = new AuthenticationDetails(authData);\r\n\r\n this.cognitoUser = this.getCognitoUserDetails(email);\r\n this.CognitoAuthentication(this.authenticationDetails);\r\n }\r\n\r\n CognitoAuthentication(authenticationDetails: AuthenticationDetails) {\r\n this.cognitoUser.authenticateUser(authenticationDetails, {\r\n onSuccess: async (result) => {\r\n this.getAllCognitoTokenAndGroups(result);\r\n await this.consumingProjectAuthService.onSuccessfulAuthenticatingUser(result);\r\n },\r\n onFailure: (err) => {\r\n this.consumingProjectAuthService.isLoggingIn = false;\r\n if (err.message == LoginConstant.tempPasswordExpiryError) {\r\n this.loginErrorMessage = LoginConstant.tempPasswordOnExpiryErrorMsg;\r\n this.consumingProjectAuthService.sendRegenerationEmail(this.authenticationDetails.getUsername());\r\n }\r\n else if (err.message === \"Password attempts exceeded\") {\r\n this.loginErrorMessage = LoginConstant.attemptLimitExceeded;\r\n } else {\r\n this.loginErrorMessage = LoginConstant.userNamePasswordIncorrect;\r\n }\r\n },\r\n newPasswordRequired: (data:any) => {\r\n this.consumingProjectAuthService.isLoggingIn = false;\r\n this.userAttribute = data;\r\n this.router.navigate([LoginConstant.setNewPasswordUrl]);\r\n },\r\n });\r\n }\r\n\r\n \r\n setNewPassword(newPassword: any) {\r\n delete this.userAttribute.email;\r\n delete this.userAttribute.email_verified;\r\n delete this.userAttribute.phone_number_verified;\r\n this.cognitoUser.completeNewPasswordChallenge(newPassword, this.userAttribute, {\r\n onSuccess: (result) => {\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n },\r\n onFailure: (error) => {\r\n this.setNewPasswordErrorMessage = LoginConstant.sessionExpired;\r\n this.setNewPasswordButtonMessage = LoginConstant.loginAgain;\r\n },\r\n });\r\n }\r\n\r\n onForgotPasswordGenerateOTP(email: string) {\r\n this.userName = email;\r\n this.cognitoUser = this.getCognitoUserDetails(email);\r\n this.cognitoUser.forgotPassword({\r\n onSuccess: (result) => {\r\n this.verifyAndSetNewPasswordMessage =\r\n LoginConstant.verifyAndSetNewPasswordMessage +\r\n result.CodeDeliveryDetails.Destination +\r\n LoginConstant.pleaseEnterItBelow;\r\n this.router.navigate([LoginConstant.verifyAndSetNewPasswordUrl]);\r\n },\r\n onFailure: (err) => {},\r\n });\r\n }\r\n\r\n verifyCode(verificationCode: string, newPassword: string) {\r\n this.cognitoUser.confirmPassword(verificationCode, newPassword, {\r\n onFailure: (error) => {\r\n this.noOfAttempts = this.noOfAttempts + 1;\r\n this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(error, this.noOfAttempts);\r\n this.forgotPasswordAndGlobalSignoutLoader = false;\r\n },\r\n onSuccess: () => {\r\n this.expiryAllExistingCurrentSession(newPassword);\r\n },\r\n });\r\n }\r\n\r\n forgotPasswordError(err: any, noOfAttempts: number) {\r\n let errorMessage;\r\n switch (err.code) {\r\n case \"LimitExceededException\":\r\n this.sessionLocked = true;\r\n errorMessage = LoginConstant.attemptLimitExceeded;\r\n break;\r\n case \"ExpiredCodeException\":\r\n errorMessage = LoginConstant.sessionExpired;\r\n this.verifyAndSetNewPasswordButton = LoginConstant.regenerateOtp;\r\n break;\r\n default:\r\n errorMessage = LoginConstant.attempt + \" \" + noOfAttempts + LoginConstant.attemptMessage;\r\n }\r\n return errorMessage;\r\n }\r\n\r\n getAllCognitoTokenAndGroups(token: CognitoUserSession) {\r\n this.accessToken = token.getAccessToken().getJwtToken();\r\n this.IdToken = token.getIdToken();\r\n if (\"cognito:groups\" in token.getAccessToken().payload) {\r\n this.aclService.userGroupsInCognitoJWT = token.getAccessToken().payload[\"cognito:groups\"];\r\n } else {\r\n this.aclService.userGroupsInCognitoJWT = [];\r\n }\r\n }\r\n\r\n expiryAllExistingCurrentSession(newPassword: string){\r\n let username = this.cognitoUser.getUsername();\r\n this.setUserDetails(username, newPassword);\r\n this.onLoginInCogntioToGetAccessToken();\r\n }\r\n\r\n setUserDetails(username: string, newPassword: string){\r\n this.loginErrorMessage = null;\r\n let authData = new AuthenticationData(username, newPassword);\r\n this.authenticationDetails = new AuthenticationDetails(authData);\r\n this.cognitoUser = this.getCognitoUserDetails(username);\r\n }\r\n\r\n onLoginInCogntioToGetAccessToken(){\r\n this.cognitoUser.authenticateUser(this.authenticationDetails, {\r\n onSuccess: async (result: CognitoUserSession) => {\r\n this.getAllCognitoTokenAndGroups(result);\r\n this.onCallGlobalSignout();\r\n },\r\n onFailure: (err) => {},\r\n newPasswordRequired: (data:any) => {},\r\n });\r\n }\r\n\r\n onCallGlobalSignout(){\r\n this.cognitoUser.globalSignOut({\r\n onSuccess: (result) => \r\n { \r\n console.log(result); \r\n this.forgotPasswordAndGlobalSignoutLoader = false;\r\n this.router.navigate([LoginConstant.loginPageUrl]); \r\n },\r\n onFailure: (err) => {}\r\n });\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, Renderer2, SimpleChanges, OnChanges, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[anna-cognito-lib-SpinnerButton]\",\r\n})\r\nexport class SpinnerButtonDirective implements OnInit, OnChanges {\r\n @Input(\"anna-cognito-lib-SpinnerButton\") loading: boolean;\r\n @Input(\"spinnerButtonText\") spinnerButtonText: string;\r\n child: HTMLDivElement;\r\n button: any;\r\n\r\n constructor(\r\n private el: ElementRef, \r\n private renderer: Renderer2) {\r\n this.button = this.el.nativeElement;\r\n this.child = document.createElement(\"div\");\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['spinnerButtonText'] && changes['spinnerButtonText'].currentValue) {\r\n this.button.innerHTML = this.spinnerButtonText;\r\n }\r\n if (changes['loading'] && changes['loading'].currentValue) {\r\n this.button.innerHTML = \"\";\r\n this.button.setAttribute(\"disabled\", \"true\");\r\n this.child.classList.add(\"spinner-for-button-directive\");\r\n this.renderer.appendChild(this.button, this.child);\r\n } else {\r\n this.child.classList.remove(\"spinner-for-button-directive\");\r\n this.button.removeAttribute(\"disabled\");\r\n this.button.innerHTML = this.spinnerButtonText;\r\n }\r\n }\r\n}\r\n","// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { AnnaLibAuthService } from '../../services/auth.service';\r\nimport { LibraryConfig } from '../../config/library.config';\r\n\r\n@Component({\r\n selector: \"anna-cognito-lib-login\",\r\n templateUrl: \"./login.component.html\",\r\n styleUrls: [\"./login.component.scss\"],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n loginForm: FormGroup;\r\n constants: typeof LoginConstant;\r\n \r\n constructor(\r\n public authService: AnnaLibAuthService,\r\n private fb: FormBuilder,\r\n public libraryConfig: LibraryConfig\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.onIntialiseForm();\r\n }\r\n\r\n onIntialiseForm() {\r\n this.loginForm = this.fb.group({\r\n username: [null],\r\n password: [null],\r\n });\r\n }\r\n\r\n OnLogin() {\r\n this.authService.consumingProjectAuthService.isLoggingIn = true;\r\n const username = this.loginForm.controls['username'].value;\r\n const password = this.loginForm.controls['password'].value;\r\n this.authService.authenticate(username, password);\r\n }\r\n\r\n \r\n}\r\n","<div class=\"main\">\r\n <!-- Load login page when all constant variable are intiated otherwise it will show a glitch. that's why ngIf check of constants.forgotPassword -->\r\n <section *ngIf=\"constants.forgotPassword\">\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" loading=\"eager\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"OnLogin()\">\r\n <div id=\"alert-div\" *ngIf=\"authService.loginErrorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p>{{ authService.loginErrorMessage }}</p>\r\n </div>\r\n\r\n <input\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"username\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"constants.enterEmail\"\r\n autocomplete=\"username\"\r\n autofocus\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"constants.password\"\r\n autocomplete=\"current-password\"\r\n autofocus\r\n />\r\n\r\n <a tabindex=\"4\" [routerLink]=\"constants.forgortPasswordPageUrl\">{{ constants.forgotPassword }}</a>\r\n <button\r\n tabindex=\"3\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"authService.consumingProjectAuthService.isLoggingIn\"\r\n [spinnerButtonText]=\"constants.login\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","// Angular import statements\r\nimport { EventEmitter, Inject, Input, Output } from \"@angular/core\";\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { AbstractControl, FormBuilder, FormGroup, ValidationErrors, ValidatorFn, Validators } from \"@angular/forms\";\r\n\r\n// Third party import statements\r\nimport { debounceTime } from \"rxjs/operators\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-password-matching',\r\n templateUrl: './password-matching.component.html',\r\n styleUrls: ['./password-matching.component.scss']\r\n})\r\nexport class PasswordMatchingComponent implements OnInit {\r\n @Output() passwordChange = new EventEmitter();\r\n @Output() confirmPasswordChange = new EventEmitter();\r\n\r\n @Input() passwordNotMatching: boolean;\r\n passwordForm: FormGroup;\r\n constants: typeof LoginConstant;\r\n constructor(@Inject(FormBuilder) private fb: FormBuilder) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.createGroup();\r\n this.formValueChanged();\r\n }\r\n\r\n formValueChanged() {\r\n const password = this.passwordForm.get(\"password\");\r\n const confirmPassword = this.passwordForm.get(\"confirmPassword\");\r\n\r\n password && password.valueChanges.subscribe(() => {\r\n password && password.setValidators([\r\n Validators.required,\r\n this.regexValidator(new RegExp(\".{8,}\"), { minLength: true }),\r\n this.regexValidator(new RegExp(\"[a-z]\"), { lowercase: true }),\r\n this.regexValidator(new RegExp(\"[A-Z]\"), { uppercase: true }),\r\n this.regexValidator(new RegExp(\"[0-9]\"), { number: true }),\r\n this.regexValidator(new RegExp(\"[^a-zA-Z0-9]\"), { specialCharacter: true }),\r\n ]);\r\n password.updateValueAndValidity({ emitEvent: false });\r\n this.onPasswordChange();\r\n });\r\n\r\n if(confirmPassword){\r\n confirmPassword.valueChanges.pipe(debounceTime(300)).subscribe(() => {\r\n confirmPassword.setValidators([Validators.required]);\r\n confirmPassword.updateValueAndValidity({ emitEvent: false });\r\n this.onConfirmPasswordChange();\r\n });\r\n }\r\n \r\n }\r\n\r\n onPasswordChange() {\r\n let result = {\r\n value: this.passwordForm.value.password,\r\n status: this.passwordForm.controls['password'].status,\r\n };\r\n this.passwordChange.emit(result);\r\n }\r\n\r\n onConfirmPasswordChange() {\r\n let result = {\r\n value: this.passwordForm.value.confirmPassword,\r\n status: this.passwordForm.controls['confirmPassword'].status,\r\n };\r\n this.confirmPasswordChange.emit(result);\r\n }\r\n\r\n createGroup() {\r\n this.passwordForm = this.fb.group({\r\n password: [null],\r\n confirmPassword: [null],\r\n });\r\n return this.passwordForm;\r\n }\r\n\r\n // TODO: check the return again\r\n regexValidator(regex: RegExp, error: ValidationErrors): any\r\n {\r\n return (control: AbstractControl): { [key: string]: boolean } => {\r\n const valid = regex.test(control.value);\r\n return (valid ? null : error) as any;\r\n };\r\n }\r\n\r\n}\r\n","<form [formGroup]=\"passwordForm\">\r\n <div id=\"alert-div\" *ngIf=\"passwordNotMatching\">\r\n <div id=\"icon-div\">\r\n <span class=\"material-icons\">report</span>\r\n </div>\r\n <p>{{ constants.passwordNotMatching }}</p>\r\n </div>\r\n <div class=\"password-policies\">\r\n <ng-container *ngIf=\"!passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }} </b>\r\n </p>\r\n <p>{{ constants.minimumCharacter }}</p>\r\n <p>{{ constants.oneUppercase }}</p>\r\n <p>{{ constants.oneLowercase }}</p>\r\n <p>{{ constants.oneNumber }}</p>\r\n <p>{{ constants.specialCharacter }}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }}</b>\r\n </p>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('minLength') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('minLength')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('minLength')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.minimumCharacter }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('uppercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('uppercase')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('uppercase')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneUppercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('lowercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('lowercase')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('lowercase')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneLowercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('number') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('number')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('number')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneNumber }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('specialCharacter') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('specialCharacter')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('specialCharacter')\">\r\n check_circle\r\n </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.specialCharacter }}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [placeholder]=\"constants.password\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"3\"\r\n formControlName=\"confirmPassword\"\r\n [placeholder]=\"constants.confirmPassword\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n</form>\r\n","\r\n// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// User defined import statements\r\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { LibraryConfig } from '../../config/library.config';\r\ntype passwordType = { value: string | null, status: string | null };\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-set-new-password',\r\n templateUrl: './set-new-password.component.html',\r\n styleUrls: ['./set-new-password.component.scss']\r\n})\r\nexport class SetNewPasswordComponent implements OnInit {\r\n passwordNotMatching = false;\r\n \r\n password: passwordType = { value: null, status: null };\r\n confirmPassword: passwordType = { value: null, status: null };\r\n constants: typeof LoginConstant;\r\n\r\n constructor(public authService: AnnaLibAuthService, \r\n private router: Router,\r\n public libraryConfig: LibraryConfig) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.authService.setNewPasswordButtonMessage = LoginConstant.setNewPasswordButton;\r\n }\r\n\r\n isFormValid() {\r\n return this.password.status === \"VALID\" && this.confirmPassword.status === \"VALID\";\r\n }\r\n onPasswordChange($event: passwordType) {\r\n this.password = $event;\r\n }\r\n\r\n onConfirmPasswordChange($event: passwordType) {\r\n this.confirmPassword = $event;\r\n }\r\n\r\n onSettingNewPassword() {\r\n if (this.password.value != this.confirmPassword.value) {\r\n this.passwordNotMatching = true;\r\n } else {\r\n this.passwordNotMatching = false;\r\n if (this.authService.setNewPasswordButtonMessage === LoginConstant.loginAgain) {\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n } else {\r\n this.authService.setNewPassword(this.password.value);\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"main\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form>\r\n <div id=\"heading\">\r\n {{ constants.setNewPasswordHeading }}\r\n </div>\r\n\r\n <div id=\"alert-div\" *ngIf=\"authService.setNewPasswordErrorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p>{{ authService.setNewPasswordErrorMessage }}</p>\r\n </div>\r\n <anna-cognito-lib-password-matching\r\n (passwordChange)=\"onPasswordChange($event)\"\r\n (confirmPasswordChange)=\"onConfirmPasswordChange($event)\"\r\n [passwordNotMatching]=\"passwordNotMatching\"\r\n >\r\n </anna-cognito-lib-password-matching>\r\n <button tabindex=\"3\" class=\"login-btn\" [disabled]=\"!isFormValid()\" (click)=\"onSettingNewPassword()\">\r\n {{ authService.setNewPasswordButtonMessage }}\r\n </button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\r\n\r\n// Third party import statements\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { forkJoin, catchError, pipe, map } from \"rxjs\";\r\n\r\n// User defined import statements\r\nimport { UsernameInfo, UserState } from \"../../models/auth.model\";\r\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { LibraryConfig } from '../../config/library.config';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-forgot-password',\r\n templateUrl: './forgot-password.component.html',\r\n styleUrls: ['./forgot-password.component.scss']\r\n})\r\nexport class ForgotPasswordComponent implements OnInit {\r\n errorMessage: string;\r\n verifyRegisteredEmail: FormGroup;\r\n passwordNotMatching = false;\r\n constants: typeof LoginConstant;\r\n password:any = { value: null, status: null };\r\n confirmPassword:any = { value: null, status: null };\r\n infoMessageToRedirectLogin: string = null;\r\n isLoading: boolean = false;\r\n\r\n constructor(\r\n private authService: AnnaLibAuthService,\r\n private fb: FormBuilder,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n public libraryConfig: LibraryConfig\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.infoMessageToRedirectLogin = null;\r\n this.constants = LoginConstant;\r\n this.onIntialiseForm();\r\n if (this.authService.userName) {\r\n this.onUpdateForm();\r\n }\r\n }\r\n\r\n onIntialiseForm() {\r\n this.verifyRegisteredEmail = this.fb.group({\r\n email: [null, [Validators.required]],\r\n });\r\n }\r\n\r\n onUpdateForm() {\r\n this.verifyRegisteredEmail.patchValue({\r\n email: this.authService.userName,\r\n });\r\n }\r\n\r\n isFormValid() {\r\n return this.verifyRegisteredEmail.valid;\r\n }\r\n\r\n onLoginOrGetOtpButtonClick(){\r\n if(this.infoMessageToRedirectLogin){\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n }\r\n else {\r\n this.onVerifyRegisteredEmail();\r\n }\r\n }\r\n\r\n onVerifyRegisteredEmail() {\r\n this.isLoading = true;\r\n this.errorMessage = null;\r\n this.infoMessageToRedirectLogin = null;\r\n let username = this.verifyRegisteredEmail.controls['email'].value;\r\n\r\n let isUsernameAvailable = this.authService.consumingProjectAuthService.isUsernameAvailable(username);\r\n let isUsernameTempPasswordSet = this.authService.consumingProjectAuthService.getUserState(username);\r\n\r\n forkJoin([isUsernameAvailable, isUsernameTempPasswordSet]).subscribe(\r\n { next: (result) => {\r\n let isUsernameAvailable = new UsernameInfo(result[0]).isUsernameAvailable;\r\n let isUserWithTempPassword = new UserState(result[1]).isUserWithTempPassword;\r\n this.onGettingUserStatus(isUsernameAvailable,isUserWithTempPassword,username);\r\n this.isLoading = false;\r\n },\r\n error: (error) => {\r\n if(error.status == 400){\r\n this.errorMessage = this.constants.userNotFound;\r\n }\r\n else {\r\n this.toastr.error(LoginConstant.apiFailErrorMessage);\r\n }\r\n this.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n onGettingUserStatus(isUsernameAvailable: boolean, isUserWithTempPassword: boolean, username: string){\r\n if(!isUsernameAvailable){\r\n if(!isUserWithTempPassword){\r\n this.authService.onForgotPasswordGenerateOTP(username);\r\n }\r\n else {\r\n this.infoMessageToRedirectLogin = this.constants.firstTimeLoginUserTempPasswordMsg;\r\n }\r\n }\r\n else {\r\n this.errorMessage = this.constants.userNotFound;\r\n }\r\n }\r\n}\r\n","<div class=\"main\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{ constants.forgotPasswordMessage }}\r\n </p>\r\n </ng-container>\r\n <div id=\"alert-div\" *ngIf=\"errorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div id=\"info-div\" *ngIf=\"infoMessageToRedirectLogin\">\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"constants.enterEmail\"\r\n [ngClass]=\"{\r\n 'input-invalid': verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { AnnaLibAuthService } from '../../services/auth.service';\r\nimport { LibraryConfig } from '../../config/library.config';\r\ntype passwordType = { value: string | null, status: string | null };\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-verify-and-set-new-password',\r\n templateUrl: './verify-and-set-new-password.component.html',\r\n styleUrls: ['./verify-and-set-new-password.component.scss']\r\n})\r\nexport class VerifyAndSetNewPasswordComponent implements OnInit {\r\n verifyOtpForm: FormGroup;\r\n passwordNotMatching = false;\r\n constants: typeof LoginConstant;\r\n password: passwordType = { value: null, status: null };\r\n confirmPassword: passwordType = { value: null, status: null };\r\n\r\n constructor(\r\n public authService: AnnaLibAuthService,\r\n private fb: FormBuilder,\r\n private router: Router,\r\n public libraryConfig: LibraryConfig\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.authService.verifyAndSetNewPasswordButton = LoginConstant.setNewPasswordButton;\r\n this.onIntialiseForm();\r\n }\r\n\r\n onIntialiseForm() {\r\n this.verifyOtpForm = this.fb.group({\r\n otp: [null, [Validators.required]],\r\n });\r\n }\r\n\r\n isFormValid() {\r\n if (\r\n this.password.status === \"VALID\" &&\r\n this.confirmPassword.status === \"VALID\" &&\r\n this.verifyOtpForm.controls['otp'].valid\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n onPasswordChange($event: passwordType) {\r\n this.password = $event;\r\n }\r\n\r\n onConfirmPasswordChange($event: passwordType) {\r\n this.confirmPassword = $event;\r\n }\r\n\r\n onVerifyOtpSettingNewPassword() {\r\n if (this.password.value != this.confirmPassword.value) {\r\n this.passwordNotMatching = true;\r\n } else {\r\n this.passwordNotMatching = false;\r\n this.authService.forgotPasswordAndGlobalSignoutLoader = true;\r\n if (this.authService.verifyAndSetNewPasswordButton === LoginConstant.regenerateOtp) {\r\n this.router.navigate([LoginConstant.forgortPasswordPageUrl]);\r\n } else {\r\n this.password.value && this.authService.verifyCode(this.verifyOtpForm.controls['otp'].value, this.password.value);\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\n","<div class=\"main\" [ngClass]=\"{ 'main-height': authService.verifyAndSetNewPasswordErrorMessage }\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <span class=\"back-btn\" [routerLink]=\"constants.forgortPasswordPageUrl\">\r\n <i class=\"mdi mdi-arrow-left\"></i>\r\n </span>\r\n\r\n <form [formGroup]=\"verifyOtpForm\">\r\n <div class=\"pull-left\" id=\"heading\">\r\n {{ constants.verifyAndSetNewPasswordheading }}\r\n </div>\r\n <p>{{ authService.verifyAndSetNewPasswordMessage }}</p>\r\n\r\n <div id=\"alert-div\" *ngIf=\"authService.verifyAndSetNewPasswordErrorMessage\">\r\n <div id=\"icon-div\">\r\n <span class=\"material-icons\">report</span>\r\n </div>\r\n <p id=\"display-block-msg\">{{ authService.verifyAndSetNewPasswordErrorMessage }}</p>\r\n </div>\r\n\r\n <input\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"otp\"\r\n [placeholder]=\"constants.enterOtp\"\r\n autocomplete=\"new-field-name\"\r\n [ngClass]=\"{ 'input-invalid': authService.verifyAndSetNewPasswordErrorMessage }\"\r\n />\r\n\r\n <anna-cognito-lib-password-matching\r\n (passwordChange)=\"onPasswordChange($event)\"\r\n (confirmPasswordChange)=\"onConfirmPasswordChange($event)\"\r\n [passwordNotMatching]=\"passwordNotMatching\"\r\n >\r\n </anna-cognito-lib-password-matching>\r\n <button\r\n tabindex=\"4\"\r\n class=\"login-btn\"\r\n type=\"submit\"\r\n [disabled]=\"authService.sessionLocked || !isFormValid()\"\r\n (click)=\"onVerifyOtpSettingNewPassword()\"\r\n [anna-cognito-lib-SpinnerButton]=\"authService.forgotPasswordAndGlobalSignoutLoader\"\r\n [spinnerButtonText]=\"authService.verifyAndSetNewPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { SpinnerButtonDirective } from './directives/spinner-button';\r\nimport { LibraryConfig } from './config/library.config';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SetNewPasswordComponent } from './components/set-new-password/set-new-password.component';\r\nimport { PasswordMatchingComponent } from './components/password-matching/password-matching.component';\r\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\r\nimport { VerifyAndSetNewPasswordComponent } from './components/verify-and-set-new-password/verify-and-set-new-password.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n LoginComponent,\r\n SetNewPasswordComponent,\r\n PasswordMatchingComponent,\r\n ForgotPasswordComponent,\r\n VerifyAndSetNewPasswordComponent,\r\n SpinnerButtonDirective,\r\n ],\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n CommonModule\r\n ],\r\n exports: [\r\n LoginComponent,\r\n SetNewPasswordComponent,\r\n PasswordMatchingComponent,\r\n ForgotPasswordComponent,\r\n VerifyAndSetNewPasswordComponent,\r\n SpinnerButtonDirective\r\n ]\r\n})\r\nexport class AnnaCognitoLibModule {\r\n public static forRoot(configuration: LibraryConfig): ModuleWithProviders<AnnaCognitoLibModule> {\r\n return {\r\n ngModule: AnnaCognitoLibModule,\r\n providers: [\r\n {\r\n provide: LibraryConfig, \r\n useValue: configuration\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of anna-cognito-lib\r\n */\r\n\r\nexport * from './lib/anna-cognito-lib.module';\r\n\r\n//COMPONENTS \r\nexport * from './lib/components/login/login.component';\r\nexport * from './lib/components/forgot-password/forgot-password.component';\r\nexport * from './lib/components/set-new-password/set-new-password.component';\r\nexport * from './lib/components/password-matching/password-matching.component';\r\nexport * from './lib/components/verify-and-set-new-password/verify-and-set-new-password.component';\r\n\r\n//SERVICES \r\nexport * from './lib/services/auth.service';\r\nexport * from './lib/services/acl.service';\r\nexport * from './lib/config/auth-service.token';\r\nexport * from './lib/config/acl-service.token';\r\nexport * from './lib/config/library.config';\r\n\r\n//DIRECTIVES \r\nexport * from './lib/directives/spinner-button';\r\n\r\n//CONSTANTS \r\nexport * from './lib/constants/loginConstant';\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AnnaLibAuthService","i3.LibraryConfig","i4","i5","i6.SpinnerButtonDirective","i1","i2","i4.PasswordMatchingComponent","i3","i5.LibraryConfig","i7.SpinnerButtonDirective","i4.LibraryConfig","i5.PasswordMatchingComponent"],"mappings":"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"}
1
+ {"version":3,"file":"annalib-anna-cognito-lib.mjs","sources":["../../../projects/anna-cognito-lib/src/lib/constants/loginConstant.ts","../../../projects/anna-cognito-lib/src/lib/models/auth.model.ts","../../../projects/anna-cognito-lib/src/lib/config/auth-service.token.ts","../../../projects/anna-cognito-lib/src/lib/config/acl-service.token.ts","../../../projects/anna-cognito-lib/src/lib/services/acl.service.ts","../../../projects/anna-cognito-lib/src/lib/config/library.config.ts","../../../projects/anna-cognito-lib/src/lib/services/auth.service.ts","../../../projects/anna-cognito-lib/src/lib/directives/spinner-button/spinner-button.directive.ts","../../../projects/anna-cognito-lib/src/lib/components/login/login.component.ts","../../../projects/anna-cognito-lib/src/lib/components/login/login.component.html","../../../projects/anna-cognito-lib/src/lib/components/password-matching/password-matching.component.ts","../../../projects/anna-cognito-lib/src/lib/components/password-matching/password-matching.component.html","../../../projects/anna-cognito-lib/src/lib/components/set-new-password/set-new-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/set-new-password/set-new-password.component.html","../../../projects/anna-cognito-lib/src/lib/components/forgot-password/forgot-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/forgot-password/forgot-password.component.html","../../../projects/anna-cognito-lib/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.html","../../../projects/anna-cognito-lib/src/lib/anna-cognito-lib.module.ts","../../../projects/anna-cognito-lib/src/public-api.ts","../../../projects/anna-cognito-lib/src/annalib-anna-cognito-lib.ts"],"sourcesContent":["export class LoginConstant {\r\n // Login page\r\n static readonly enterEmail = \"Enter your username\";\r\n static readonly password = \"Password\";\r\n static readonly confirmPassword = \"Confirm Password\";\r\n static readonly login = \"Login\";\r\n static readonly otp = \"OTP\";\r\n static readonly forgotPassword = \"Forgot \" + LoginConstant.password.toLowerCase() + \"?\";\r\n\r\n // set new password\r\n static readonly setNewPasswordHeading = \"Set new \" + LoginConstant.password.toLowerCase();\r\n static readonly setNewPasswordButton = \"Set and \" + LoginConstant.login.toLowerCase() + \" again\";\r\n static readonly passwordMustContain = \"The password must contain:\";\r\n static readonly minimumCharacter = \"Minimum 8 characters\";\r\n static readonly oneUppercase = \"1 Uppercase\";\r\n static readonly oneLowercase = \"1 Lowercase\";\r\n static readonly oneNumber = \"1 Numerical\";\r\n static readonly specialCharacter = \"1 Special character\";\r\n static readonly passwordNotMatching = \"The passwords do not match. Please try again.\";\r\n static readonly userNamePasswordIncorrect = \"Incorrect username or password\";\r\n static readonly userNotFound = \"No registered user found\";\r\n static readonly loginAgain = LoginConstant.login + \" again\";\r\n static readonly firstTimeLoginUserTempPasswordMsg = \"You are logging in for the first time. Kindly use the temporary password provided in the welcome email, to login to your account. \";\r\n static readonly tempPasswordExpiryError = \"Temporary password has expired and must be reset by an administrator.\"\r\n static readonly tempPasswordOnExpiryErrorMsg = \"Password has expired. A new password has been sent to your registered email. Kindly login again with new link and credentials.\";\r\n\r\n // verify OTP & set new password\r\n static readonly verifyAndSetNewPasswordheading = \"Enter \" + LoginConstant.otp + \" & set new password\";\r\n static readonly verifyAndSetNewPasswordMessage = \"An \" + LoginConstant.otp + \" has been succesfully emailed to \";\r\n static readonly pleaseEnterItBelow = \". Please enter it below.\";\r\n static readonly regenerateOtp = \"Regenerate \" + LoginConstant.otp;\r\n static readonly enterOtp = \"Enter \" + LoginConstant.otp;\r\n static readonly submit = \"Submit\";\r\n static readonly attempt = \"Attempt\";\r\n static readonly attemptLimitExceeded =\r\n \"You have exceeded the maximum number of allowed attempts. Please try again after 15 minutes.\";\r\n static readonly attemptMessage = \" of 5. The OTP entered is incorrect. Please try again with the right one.\";\r\n static readonly sessionExpired = \"The session has expired. Please try again.\";\r\n\r\n // forgot password\r\n static readonly forgotPasswordHeading = \"Forgot your password?\";\r\n static readonly forgotPasswordMessage = \"Please enter your username.\";\r\n static readonly forgotPasswordButton = \"Get \" + LoginConstant.otp;\r\n static readonly apiFailErrorMessage = \"Unable to connect to server right now. Please try after some time.\";\r\n\r\n //url\r\n static readonly setNewPasswordUrl = \"/set-new-password\";\r\n static readonly forgortPasswordPageUrl = \"/forgot-password\";\r\n static readonly verifyAndSetNewPasswordUrl = \"/verify-and-set-new-password\";\r\n static readonly loginPageUrl = \"/login\";\r\n static readonly homePageUrl = \"/home\";\r\n static readonly stationSettingUrl = \"/station-settings\";\r\n}\r\n","export class AuthenticationData {\r\n Username: string;\r\n Password: string;\r\n constructor(Username: string, Password: string) {\r\n this.Username = Username;\r\n this.Password = Password;\r\n }\r\n}\r\n\r\nexport class UserPoolInformation {\r\n UserPoolId: string;\r\n ClientId: string;\r\n constructor(UserPoolId: string, ClientId: string) {\r\n this.UserPoolId = UserPoolId;\r\n this.ClientId = ClientId;\r\n }\r\n}\r\n\r\nexport class UsernameInfo {\r\n isUsernameAvailable: boolean;\r\n constructor(object: { isUsernameAvailable: boolean }) {\r\n this.isUsernameAvailable = object.isUsernameAvailable;\r\n }\r\n} \r\n\r\nexport class UserState {\r\n userStatus: string;\r\n isUserWithTempPassword: boolean;\r\n constructor(userState: string ) {\r\n this.userStatus = userState;\r\n this.isUserWithTempPassword = userState == 'FORCE_CHANGE_PASSWORD';\r\n }\r\n}","import { InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n/** Token to inject the auth service */\r\nexport const AUTH_SERVICE_TOKEN:\r\n InjectionToken<IAuthService> =\r\n new InjectionToken<IAuthService>('Auth service token');\r\n\r\nexport interface IAuthService {\r\n isLoggingIn: boolean; \r\n onSuccessfulAuthenticatingUser(result: any): void;\r\n isUsernameAvailable(username: string): Observable<any>;\r\n getUserState(username: string): Observable<any>;\r\n navigateBasedOnUserRole(loginUserData: any): void;\r\n getPublicIp(): string;\r\n sendRegenerationEmail(userCode:string):void;\r\n}","import { InjectionToken } from '@angular/core';\r\n\r\n/** Token to inject the acl service */\r\nexport const ACL_SERVICE_TOKEN:\r\n InjectionToken<IAclService> =\r\n new InjectionToken<IAclService>('ACL service token');\r\n\r\nexport interface IAclService {\r\n urlToCognitoPrivilegeMap: {[key: string]: string};\r\n DAILY_REVISION_REPORT_WRITE: string;\r\n LUR_SETTINGS_WRITE: string;\r\n MANAGE_BUSINESS_RULES_WRITE: string;\r\n MANAGE_USERS_WRITE: string;\r\n ORDER_BIZ_RULES_WRITE: string;\r\n ORDER_REVISIONS_WRITE: string;\r\n ORDER_SPOTS_REPORT_WRITE: string;\r\n RATE_CARD_WRITE: string;\r\n STATION_SYSTEM_SETTINGS_WRITE: string;\r\n POLITICAL_WINDOW_WRITE: string;\r\n \r\n isUserAuthoriseToAcessManageUser(): boolean;\r\n}","import { Inject, Injectable } from \"@angular/core\";\r\nimport { IAclService, ACL_SERVICE_TOKEN } from '../config/acl-service.token';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AnnaLibAclService {\r\n constructor(@Inject(ACL_SERVICE_TOKEN) public consumingProjectAclService: IAclService) {}\r\n\r\n userGroupsInCognitoJWT: string[];\r\n isUserAuthorisedToAccessPage(url: string): boolean {\r\n let privilegeName = this.consumingProjectAclService.urlToCognitoPrivilegeMap[url];\r\n return this.userGroupsInCognitoJWT.includes(privilegeName);\r\n }\r\n\r\n isUserAuthorisedToAccessElement(privilege: string): boolean {\r\n return this.userGroupsInCognitoJWT.includes(privilege);\r\n }\r\n\r\n isUserAuthoriseToAcessManageUser(): boolean {\r\n return this.consumingProjectAclService.isUserAuthoriseToAcessManageUser();\r\n }\r\n\r\n}\r\n","export class LibraryConfig { \r\n loginPageLogoImgUrl: string = '';\r\n cognito : {\r\n userPoolId: string;\r\n clientId: string; \r\n }\r\n \r\n}","// Angular import statements\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n// Third party import statements\r\nimport { CognitoUserPool, CognitoUser, AuthenticationDetails, CognitoUserSession } from \"amazon-cognito-identity-js\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../constants/loginConstant\";\r\nimport { AuthenticationData, UserPoolInformation } from \"../models/auth.model\";\r\nimport { AnnaLibAclService } from './acl.service';\r\nimport { LibraryConfig } from '../config/library.config';\r\nimport { IAuthService, AUTH_SERVICE_TOKEN } from '../config/auth-service.token';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AnnaLibAuthService {\r\n poolData: UserPoolInformation;\r\n userPool: CognitoUserPool;\r\n cognitoUser: CognitoUser;\r\n authenticationDetails: AuthenticationDetails;\r\n tokenValid: boolean;\r\n accessToken: string;\r\n userAttribute: any;\r\n loginErrorMessage: string | null;\r\n setNewPasswordErrorMessage: string;\r\n setNewPasswordButtonMessage: string;\r\n verifyAndSetNewPasswordErrorMessage: string;\r\n verifyAndSetNewPasswordMessage: string;\r\n verifyAndSetNewPasswordButton: string;\r\n noOfAttempts = 0;\r\n sessionLocked = false;\r\n userName: any;\r\n accessTokenTimerId: any;\r\n IdToken: any;\r\n forgotPasswordAndGlobalSignoutLoader: boolean;\r\n\r\n constructor(\r\n private router: Router,\r\n public aclService: AnnaLibAclService,\r\n public libraryConfig: LibraryConfig,\r\n public httpClient:HttpClient,\r\n @Inject(AUTH_SERVICE_TOKEN) public consumingProjectAuthService: IAuthService) {\r\n if(!consumingProjectAuthService) {\r\n throw new Error('You must provide a authService');\r\n }\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n /***\r\n 1. takes user pool data (userPool ID and client ID)\r\n 2. if current user is null then it means user already logged out then simply return Promise<false>\r\n 3. if current user present check if token is valid for it.\r\n */\r\n isUserLoggedIn(): Promise<boolean> {\r\n let currentUser = this.getCurrentUserDetails();\r\n if (currentUser) {\r\n return new Promise((resolve, reject) => {\r\n currentUser && currentUser.getSession((error: Error, token: CognitoUserSession | null) => {\r\n if (token) {\r\n this.getAllCognitoTokenAndGroups(token);\r\n resolve(true);\r\n } else {\r\n this.sessionTimeout();\r\n resolve(false);\r\n }\r\n });\r\n });\r\n } else {\r\n return new Promise((resolve) => {\r\n clearInterval(this.accessTokenTimerId);\r\n resolve(false);\r\n });\r\n }\r\n }\r\n\r\n sessionTimeout() {\r\n localStorage.clear();\r\n clearInterval(this.accessTokenTimerId);\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n }\r\n\r\n refreshAccessToken() {\r\n let currentUser = this.getCurrentUserDetails();\r\n let accessTokenExpiration = localStorage.getItem(\"accessTokenExpiration\");\r\n let expTime = accessTokenExpiration ? parseInt(accessTokenExpiration) : 0;\r\n this.accessTokenTimerId = setInterval(() => {\r\n let counter = 1000;\r\n let delayFunction = setTimeout(() => {\r\n currentUser && currentUser.getSession((error: any, token: CognitoUserSession | null) => {\r\n if (token) {\r\n this.getAllCognitoTokenAndGroups(token);\r\n let newExpTime = this.computeTokenExpiration(this.IdToken);\r\n\r\n if (newExpTime <= 0) {\r\n newExpTime = 1000;\r\n counter = 0;\r\n if (delayFunction) {\r\n clearInterval(delayFunction);\r\n }\r\n }\r\n expTime = newExpTime;\r\n localStorage.setItem(\"accessTokenExpiration\", newExpTime.toString());\r\n clearInterval(this.accessTokenTimerId);\r\n this.refreshAccessToken();\r\n } else if (error.code === \"NotAuthorizedException\") {\r\n this.sessionTimeout();\r\n }\r\n });\r\n }, counter);\r\n }, expTime);\r\n }\r\n\r\n computeTokenExpiration(token: any) {\r\n let currentTime = Math.floor(Date.now() / 1000);\r\n let tokenTime = token.payload.exp;\r\n let expTime = (tokenTime - currentTime) * 1000;\r\n return expTime;\r\n }\r\n\r\n\r\n getCurrentUserDetails() {\r\n let poolData = new UserPoolInformation(this.libraryConfig.cognito.userPoolId, this.libraryConfig.cognito.clientId);\r\n let userPool = new CognitoUserPool(poolData);\r\n return userPool.getCurrentUser();\r\n }\r\n\r\n getCognitoUserDetails(email: string): CognitoUser {\r\n this.poolData = new UserPoolInformation(this.libraryConfig.cognito.userPoolId, this.libraryConfig.cognito.clientId);\r\n this.userPool = new CognitoUserPool(this.poolData);\r\n\r\n let userData = {\r\n Username: email,\r\n Pool: this.userPool,\r\n };\r\n let cognitoUser = new CognitoUser(userData);\r\n return cognitoUser;\r\n }\r\n\r\n authenticate(email: string, password: string) {\r\n this.loginErrorMessage = null;\r\n let authData = new AuthenticationData(email, password);\r\n this.authenticationDetails = new AuthenticationDetails(authData);\r\n\r\n this.cognitoUser = this.getCognitoUserDetails(email);\r\n this.CognitoAuthentication(this.authenticationDetails);\r\n }\r\n\r\n CognitoAuthentication(authenticationDetails: AuthenticationDetails) {\r\n this.cognitoUser.authenticateUser(authenticationDetails, {\r\n onSuccess: async (result) => {\r\n this.getAllCognitoTokenAndGroups(result);\r\n await this.consumingProjectAuthService.onSuccessfulAuthenticatingUser(result);\r\n },\r\n onFailure: (err) => {\r\n this.consumingProjectAuthService.isLoggingIn = false;\r\n if (err.message == LoginConstant.tempPasswordExpiryError) {\r\n this.loginErrorMessage = LoginConstant.tempPasswordOnExpiryErrorMsg;\r\n this.consumingProjectAuthService.sendRegenerationEmail(this.authenticationDetails.getUsername());\r\n }\r\n else if (err.message === \"Password attempts exceeded\") {\r\n this.loginErrorMessage = LoginConstant.attemptLimitExceeded;\r\n } else {\r\n this.loginErrorMessage = LoginConstant.userNamePasswordIncorrect;\r\n }\r\n },\r\n newPasswordRequired: (data:any) => {\r\n this.consumingProjectAuthService.isLoggingIn = false;\r\n this.userAttribute = data;\r\n this.router.navigate([LoginConstant.setNewPasswordUrl]);\r\n },\r\n });\r\n }\r\n\r\n \r\n setNewPassword(newPassword: any) {\r\n delete this.userAttribute.email;\r\n delete this.userAttribute.email_verified;\r\n delete this.userAttribute.phone_number_verified;\r\n this.cognitoUser.completeNewPasswordChallenge(newPassword, this.userAttribute, {\r\n onSuccess: (result) => {\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n },\r\n onFailure: (error) => {\r\n this.setNewPasswordErrorMessage = LoginConstant.sessionExpired;\r\n this.setNewPasswordButtonMessage = LoginConstant.loginAgain;\r\n },\r\n });\r\n }\r\n\r\n onForgotPasswordGenerateOTP(email: string) {\r\n this.userName = email;\r\n this.cognitoUser = this.getCognitoUserDetails(email);\r\n this.cognitoUser.forgotPassword({\r\n onSuccess: (result) => {\r\n this.verifyAndSetNewPasswordMessage =\r\n LoginConstant.verifyAndSetNewPasswordMessage +\r\n result.CodeDeliveryDetails.Destination +\r\n LoginConstant.pleaseEnterItBelow;\r\n this.router.navigate([LoginConstant.verifyAndSetNewPasswordUrl]);\r\n },\r\n onFailure: (err) => {},\r\n });\r\n }\r\n\r\n verifyCode(verificationCode: string, newPassword: string) {\r\n this.cognitoUser.confirmPassword(verificationCode, newPassword, {\r\n onFailure: (error) => {\r\n this.noOfAttempts = this.noOfAttempts + 1;\r\n this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(error, this.noOfAttempts);\r\n this.forgotPasswordAndGlobalSignoutLoader = false;\r\n },\r\n onSuccess: () => {\r\n this.expiryAllExistingCurrentSession(newPassword);\r\n },\r\n });\r\n }\r\n\r\n forgotPasswordError(err: any, noOfAttempts: number) {\r\n let errorMessage;\r\n switch (err.code) {\r\n case \"LimitExceededException\":\r\n this.sessionLocked = true;\r\n errorMessage = LoginConstant.attemptLimitExceeded;\r\n break;\r\n case \"ExpiredCodeException\":\r\n errorMessage = LoginConstant.sessionExpired;\r\n this.verifyAndSetNewPasswordButton = LoginConstant.regenerateOtp;\r\n break;\r\n default:\r\n errorMessage = LoginConstant.attempt + \" \" + noOfAttempts + LoginConstant.attemptMessage;\r\n }\r\n return errorMessage;\r\n }\r\n\r\n getAllCognitoTokenAndGroups(token: CognitoUserSession) {\r\n this.accessToken = token.getAccessToken().getJwtToken();\r\n this.IdToken = token.getIdToken();\r\n if (\"cognito:groups\" in token.getAccessToken().payload) {\r\n this.aclService.userGroupsInCognitoJWT = token.getAccessToken().payload[\"cognito:groups\"];\r\n } else {\r\n this.aclService.userGroupsInCognitoJWT = [];\r\n }\r\n }\r\n\r\n expiryAllExistingCurrentSession(newPassword: string){\r\n let username = this.cognitoUser.getUsername();\r\n this.setUserDetails(username, newPassword);\r\n this.onLoginInCogntioToGetAccessToken();\r\n }\r\n\r\n setUserDetails(username: string, newPassword: string){\r\n this.loginErrorMessage = null;\r\n let authData = new AuthenticationData(username, newPassword);\r\n this.authenticationDetails = new AuthenticationDetails(authData);\r\n this.cognitoUser = this.getCognitoUserDetails(username);\r\n }\r\n\r\n onLoginInCogntioToGetAccessToken(){\r\n this.cognitoUser.authenticateUser(this.authenticationDetails, {\r\n onSuccess: async (result: CognitoUserSession) => {\r\n this.getAllCognitoTokenAndGroups(result);\r\n this.onCallGlobalSignout();\r\n },\r\n onFailure: (err) => {},\r\n newPasswordRequired: (data:any) => {},\r\n });\r\n }\r\n\r\n onCallGlobalSignout(){\r\n this.cognitoUser.globalSignOut({\r\n onSuccess: (result) => \r\n { \r\n console.log(result); \r\n this.forgotPasswordAndGlobalSignoutLoader = false;\r\n this.router.navigate([LoginConstant.loginPageUrl]); \r\n },\r\n onFailure: (err) => {}\r\n });\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, Renderer2, SimpleChanges, OnChanges, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[anna-cognito-lib-SpinnerButton]\",\r\n})\r\nexport class SpinnerButtonDirective implements OnInit, OnChanges {\r\n @Input(\"anna-cognito-lib-SpinnerButton\") loading: boolean;\r\n @Input(\"spinnerButtonText\") spinnerButtonText: string;\r\n child: HTMLDivElement;\r\n button: any;\r\n\r\n constructor(\r\n private el: ElementRef, \r\n private renderer: Renderer2) {\r\n this.button = this.el.nativeElement;\r\n this.child = document.createElement(\"div\");\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['spinnerButtonText'] && changes['spinnerButtonText'].currentValue) {\r\n this.button.innerHTML = this.spinnerButtonText;\r\n }\r\n if (changes['loading'] && changes['loading'].currentValue) {\r\n this.button.innerHTML = \"\";\r\n this.button.setAttribute(\"disabled\", \"true\");\r\n this.child.classList.add(\"spinner-for-button-directive\");\r\n this.renderer.appendChild(this.button, this.child);\r\n } else {\r\n this.child.classList.remove(\"spinner-for-button-directive\");\r\n this.button.removeAttribute(\"disabled\");\r\n this.button.innerHTML = this.spinnerButtonText;\r\n }\r\n }\r\n}\r\n","// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { AnnaLibAuthService } from '../../services/auth.service';\r\nimport { LibraryConfig } from '../../config/library.config';\r\n\r\n@Component({\r\n selector: \"anna-cognito-lib-login\",\r\n templateUrl: \"./login.component.html\",\r\n styleUrls: [\"./login.component.scss\"],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n loginForm: FormGroup;\r\n constants: typeof LoginConstant;\r\n \r\n constructor(\r\n public authService: AnnaLibAuthService,\r\n private fb: FormBuilder,\r\n public libraryConfig: LibraryConfig\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.onIntialiseForm();\r\n }\r\n\r\n onIntialiseForm() {\r\n this.loginForm = this.fb.group({\r\n username: [null],\r\n password: [null],\r\n });\r\n }\r\n\r\n OnLogin() {\r\n this.authService.consumingProjectAuthService.isLoggingIn = true;\r\n const username = this.loginForm.controls['username'].value;\r\n const password = this.loginForm.controls['password'].value;\r\n this.authService.authenticate(username, password);\r\n }\r\n\r\n \r\n}\r\n","<div class=\"main\">\r\n <!-- Load login page when all constant variable are intiated otherwise it will show a glitch. that's why ngIf check of constants.forgotPassword -->\r\n <section *ngIf=\"constants.forgotPassword\">\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" loading=\"eager\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"OnLogin()\">\r\n <div id=\"alert-div\" *ngIf=\"authService.loginErrorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p>{{ authService.loginErrorMessage }}</p>\r\n </div>\r\n\r\n <input\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"username\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"constants.enterEmail\"\r\n autocomplete=\"username\"\r\n autofocus\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"constants.password\"\r\n autocomplete=\"current-password\"\r\n autofocus\r\n />\r\n\r\n <a tabindex=\"4\" [routerLink]=\"constants.forgortPasswordPageUrl\">{{ constants.forgotPassword }}</a>\r\n <button\r\n tabindex=\"3\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"authService.consumingProjectAuthService.isLoggingIn\"\r\n [spinnerButtonText]=\"constants.login\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","// Angular import statements\r\nimport { EventEmitter, Inject, Input, Output } from \"@angular/core\";\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { AbstractControl, FormBuilder, FormGroup, ValidationErrors, ValidatorFn, Validators } from \"@angular/forms\";\r\n\r\n// Third party import statements\r\nimport { debounceTime } from \"rxjs/operators\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-password-matching',\r\n templateUrl: './password-matching.component.html',\r\n styleUrls: ['./password-matching.component.scss']\r\n})\r\nexport class PasswordMatchingComponent implements OnInit {\r\n @Output() passwordChange = new EventEmitter();\r\n @Output() confirmPasswordChange = new EventEmitter();\r\n\r\n @Input() passwordNotMatching: boolean;\r\n passwordForm: FormGroup;\r\n constants: typeof LoginConstant;\r\n constructor(@Inject(FormBuilder) private fb: FormBuilder) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.createGroup();\r\n this.formValueChanged();\r\n }\r\n\r\n formValueChanged() {\r\n const password = this.passwordForm.get(\"password\");\r\n const confirmPassword = this.passwordForm.get(\"confirmPassword\");\r\n\r\n password && password.valueChanges.subscribe(() => {\r\n password && password.setValidators([\r\n Validators.required,\r\n this.regexValidator(new RegExp(\".{8,}\"), { minLength: true }),\r\n this.regexValidator(new RegExp(\"[a-z]\"), { lowercase: true }),\r\n this.regexValidator(new RegExp(\"[A-Z]\"), { uppercase: true }),\r\n this.regexValidator(new RegExp(\"[0-9]\"), { number: true }),\r\n this.regexValidator(new RegExp(\"[^a-zA-Z0-9]\"), { specialCharacter: true }),\r\n ]);\r\n password.updateValueAndValidity({ emitEvent: false });\r\n this.onPasswordChange();\r\n });\r\n\r\n if(confirmPassword){\r\n confirmPassword.valueChanges.pipe(debounceTime(300)).subscribe(() => {\r\n confirmPassword.setValidators([Validators.required]);\r\n confirmPassword.updateValueAndValidity({ emitEvent: false });\r\n this.onConfirmPasswordChange();\r\n });\r\n }\r\n \r\n }\r\n\r\n onPasswordChange() {\r\n let result = {\r\n value: this.passwordForm.value.password,\r\n status: this.passwordForm.controls['password'].status,\r\n };\r\n this.passwordChange.emit(result);\r\n }\r\n\r\n onConfirmPasswordChange() {\r\n let result = {\r\n value: this.passwordForm.value.confirmPassword,\r\n status: this.passwordForm.controls['confirmPassword'].status,\r\n };\r\n this.confirmPasswordChange.emit(result);\r\n }\r\n\r\n createGroup() {\r\n this.passwordForm = this.fb.group({\r\n password: [null],\r\n confirmPassword: [null],\r\n });\r\n return this.passwordForm;\r\n }\r\n\r\n // TODO: check the return again\r\n regexValidator(regex: RegExp, error: ValidationErrors): any\r\n {\r\n return (control: AbstractControl): { [key: string]: boolean } => {\r\n const valid = regex.test(control.value);\r\n return (valid ? null : error) as any;\r\n };\r\n }\r\n\r\n}\r\n","<form [formGroup]=\"passwordForm\">\r\n <div id=\"alert-div\" *ngIf=\"passwordNotMatching\">\r\n <div id=\"icon-div\">\r\n <span class=\"material-icons\">report</span>\r\n </div>\r\n <p>{{ constants.passwordNotMatching }}</p>\r\n </div>\r\n <div class=\"password-policies\">\r\n <ng-container *ngIf=\"!passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }} </b>\r\n </p>\r\n <p>{{ constants.minimumCharacter }}</p>\r\n <p>{{ constants.oneUppercase }}</p>\r\n <p>{{ constants.oneLowercase }}</p>\r\n <p>{{ constants.oneNumber }}</p>\r\n <p>{{ constants.specialCharacter }}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }}</b>\r\n </p>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('minLength') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('minLength')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('minLength')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.minimumCharacter }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('uppercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('uppercase')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('uppercase')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneUppercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('lowercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('lowercase')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('lowercase')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneLowercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('number') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('number')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('number')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneNumber }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('specialCharacter') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('specialCharacter')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('specialCharacter')\">\r\n check_circle\r\n </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.specialCharacter }}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [placeholder]=\"constants.password\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"3\"\r\n formControlName=\"confirmPassword\"\r\n [placeholder]=\"constants.confirmPassword\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n</form>\r\n","\r\n// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// User defined import statements\r\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { LibraryConfig } from '../../config/library.config';\r\ntype passwordType = { value: string | null, status: string | null };\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-set-new-password',\r\n templateUrl: './set-new-password.component.html',\r\n styleUrls: ['./set-new-password.component.scss']\r\n})\r\nexport class SetNewPasswordComponent implements OnInit {\r\n passwordNotMatching = false;\r\n \r\n password: passwordType = { value: null, status: null };\r\n confirmPassword: passwordType = { value: null, status: null };\r\n constants: typeof LoginConstant;\r\n\r\n constructor(public authService: AnnaLibAuthService, \r\n private router: Router,\r\n public libraryConfig: LibraryConfig) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.authService.setNewPasswordButtonMessage = LoginConstant.setNewPasswordButton;\r\n }\r\n\r\n isFormValid() {\r\n return this.password.status === \"VALID\" && this.confirmPassword.status === \"VALID\";\r\n }\r\n onPasswordChange($event: passwordType) {\r\n this.password = $event;\r\n }\r\n\r\n onConfirmPasswordChange($event: passwordType) {\r\n this.confirmPassword = $event;\r\n }\r\n\r\n onSettingNewPassword() {\r\n if (this.password.value != this.confirmPassword.value) {\r\n this.passwordNotMatching = true;\r\n } else {\r\n this.passwordNotMatching = false;\r\n if (this.authService.setNewPasswordButtonMessage === LoginConstant.loginAgain) {\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n } else {\r\n this.authService.setNewPassword(this.password.value);\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"main\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form>\r\n <div id=\"heading\">\r\n {{ constants.setNewPasswordHeading }}\r\n </div>\r\n\r\n <div id=\"alert-div\" *ngIf=\"authService.setNewPasswordErrorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p>{{ authService.setNewPasswordErrorMessage }}</p>\r\n </div>\r\n <anna-cognito-lib-password-matching\r\n (passwordChange)=\"onPasswordChange($event)\"\r\n (confirmPasswordChange)=\"onConfirmPasswordChange($event)\"\r\n [passwordNotMatching]=\"passwordNotMatching\"\r\n >\r\n </anna-cognito-lib-password-matching>\r\n <button tabindex=\"3\" class=\"login-btn\" [disabled]=\"!isFormValid()\" (click)=\"onSettingNewPassword()\">\r\n {{ authService.setNewPasswordButtonMessage }}\r\n </button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\r\n\r\n// Third party import statements\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { forkJoin, catchError, pipe, map } from \"rxjs\";\r\n\r\n// User defined import statements\r\nimport { UsernameInfo, UserState } from \"../../models/auth.model\";\r\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { LibraryConfig } from '../../config/library.config';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-forgot-password',\r\n templateUrl: './forgot-password.component.html',\r\n styleUrls: ['./forgot-password.component.scss']\r\n})\r\nexport class ForgotPasswordComponent implements OnInit {\r\n errorMessage: string;\r\n verifyRegisteredEmail: FormGroup;\r\n passwordNotMatching = false;\r\n constants: typeof LoginConstant;\r\n password:any = { value: null, status: null };\r\n confirmPassword:any = { value: null, status: null };\r\n infoMessageToRedirectLogin: string = null;\r\n isLoading: boolean = false;\r\n\r\n constructor(\r\n private authService: AnnaLibAuthService,\r\n private fb: FormBuilder,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n public libraryConfig: LibraryConfig\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.infoMessageToRedirectLogin = null;\r\n this.constants = LoginConstant;\r\n this.onIntialiseForm();\r\n if (this.authService.userName) {\r\n this.onUpdateForm();\r\n }\r\n }\r\n\r\n onIntialiseForm() {\r\n this.verifyRegisteredEmail = this.fb.group({\r\n email: [null, [Validators.required]],\r\n });\r\n }\r\n\r\n onUpdateForm() {\r\n this.verifyRegisteredEmail.patchValue({\r\n email: this.authService.userName,\r\n });\r\n }\r\n\r\n isFormValid() {\r\n return this.verifyRegisteredEmail.valid;\r\n }\r\n\r\n onLoginOrGetOtpButtonClick(){\r\n if(this.infoMessageToRedirectLogin){\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n }\r\n else {\r\n this.onVerifyRegisteredEmail();\r\n }\r\n }\r\n\r\n onVerifyRegisteredEmail() {\r\n this.isLoading = true;\r\n this.errorMessage = null;\r\n this.infoMessageToRedirectLogin = null;\r\n let username = this.verifyRegisteredEmail.controls['email'].value;\r\n\r\n let isUsernameAvailable = this.authService.consumingProjectAuthService.isUsernameAvailable(username);\r\n let isUsernameTempPasswordSet = this.authService.consumingProjectAuthService.getUserState(username);\r\n\r\n forkJoin([isUsernameAvailable, isUsernameTempPasswordSet]).subscribe(\r\n { next: (result) => {\r\n let isUsernameAvailable = new UsernameInfo(result[0]).isUsernameAvailable;\r\n let isUserWithTempPassword = new UserState(result[1]).isUserWithTempPassword;\r\n this.onGettingUserStatus(isUsernameAvailable,isUserWithTempPassword,username);\r\n this.isLoading = false;\r\n },\r\n error: (error) => {\r\n if(error.status == 400){\r\n this.errorMessage = this.constants.userNotFound;\r\n }\r\n else {\r\n this.toastr.error(LoginConstant.apiFailErrorMessage);\r\n }\r\n this.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n onGettingUserStatus(isUsernameAvailable: boolean, isUserWithTempPassword: boolean, username: string){\r\n if(!isUsernameAvailable){\r\n if(!isUserWithTempPassword){\r\n this.authService.onForgotPasswordGenerateOTP(username);\r\n }\r\n else {\r\n this.infoMessageToRedirectLogin = this.constants.firstTimeLoginUserTempPasswordMsg;\r\n }\r\n }\r\n else {\r\n this.errorMessage = this.constants.userNotFound;\r\n }\r\n }\r\n}\r\n","<div class=\"main\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{ constants.forgotPasswordMessage }}\r\n </p>\r\n </ng-container>\r\n <div id=\"alert-div\" *ngIf=\"errorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div id=\"info-div\" *ngIf=\"infoMessageToRedirectLogin\">\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"constants.enterEmail\"\r\n [ngClass]=\"{\r\n 'input-invalid': verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { AnnaLibAuthService } from '../../services/auth.service';\r\nimport { LibraryConfig } from '../../config/library.config';\r\ntype passwordType = { value: string | null, status: string | null };\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-verify-and-set-new-password',\r\n templateUrl: './verify-and-set-new-password.component.html',\r\n styleUrls: ['./verify-and-set-new-password.component.scss']\r\n})\r\nexport class VerifyAndSetNewPasswordComponent implements OnInit {\r\n verifyOtpForm: FormGroup;\r\n passwordNotMatching = false;\r\n constants: typeof LoginConstant;\r\n password: passwordType = { value: null, status: null };\r\n confirmPassword: passwordType = { value: null, status: null };\r\n\r\n constructor(\r\n public authService: AnnaLibAuthService,\r\n private fb: FormBuilder,\r\n private router: Router,\r\n public libraryConfig: LibraryConfig\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.authService.verifyAndSetNewPasswordButton = LoginConstant.setNewPasswordButton;\r\n this.onIntialiseForm();\r\n }\r\n\r\n onIntialiseForm() {\r\n this.verifyOtpForm = this.fb.group({\r\n otp: [null, [Validators.required]],\r\n });\r\n }\r\n\r\n isFormValid() {\r\n if (\r\n this.password.status === \"VALID\" &&\r\n this.confirmPassword.status === \"VALID\" &&\r\n this.verifyOtpForm.controls['otp'].valid\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n onPasswordChange($event: passwordType) {\r\n this.password = $event;\r\n }\r\n\r\n onConfirmPasswordChange($event: passwordType) {\r\n this.confirmPassword = $event;\r\n }\r\n\r\n onVerifyOtpSettingNewPassword() {\r\n if (this.password.value != this.confirmPassword.value) {\r\n this.passwordNotMatching = true;\r\n } else {\r\n this.passwordNotMatching = false;\r\n this.authService.forgotPasswordAndGlobalSignoutLoader = true;\r\n if (this.authService.verifyAndSetNewPasswordButton === LoginConstant.regenerateOtp) {\r\n this.router.navigate([LoginConstant.forgortPasswordPageUrl]);\r\n } else {\r\n this.password.value && this.authService.verifyCode(this.verifyOtpForm.controls['otp'].value, this.password.value);\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\n","<div class=\"main\" [ngClass]=\"{ 'main-height': authService.verifyAndSetNewPasswordErrorMessage }\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <span class=\"back-btn\" [routerLink]=\"constants.forgortPasswordPageUrl\">\r\n <i class=\"mdi mdi-arrow-left\"></i>\r\n </span>\r\n\r\n <form [formGroup]=\"verifyOtpForm\">\r\n <div class=\"pull-left\" id=\"heading\">\r\n {{ constants.verifyAndSetNewPasswordheading }}\r\n </div>\r\n <p>{{ authService.verifyAndSetNewPasswordMessage }}</p>\r\n\r\n <div id=\"alert-div\" *ngIf=\"authService.verifyAndSetNewPasswordErrorMessage\">\r\n <div id=\"icon-div\">\r\n <span class=\"material-icons\">report</span>\r\n </div>\r\n <p id=\"display-block-msg\">{{ authService.verifyAndSetNewPasswordErrorMessage }}</p>\r\n </div>\r\n\r\n <input\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"otp\"\r\n [placeholder]=\"constants.enterOtp\"\r\n autocomplete=\"new-field-name\"\r\n [ngClass]=\"{ 'input-invalid': authService.verifyAndSetNewPasswordErrorMessage }\"\r\n />\r\n\r\n <anna-cognito-lib-password-matching\r\n (passwordChange)=\"onPasswordChange($event)\"\r\n (confirmPasswordChange)=\"onConfirmPasswordChange($event)\"\r\n [passwordNotMatching]=\"passwordNotMatching\"\r\n >\r\n </anna-cognito-lib-password-matching>\r\n <button\r\n tabindex=\"4\"\r\n class=\"login-btn\"\r\n type=\"submit\"\r\n [disabled]=\"authService.sessionLocked || !isFormValid()\"\r\n (click)=\"onVerifyOtpSettingNewPassword()\"\r\n [anna-cognito-lib-SpinnerButton]=\"authService.forgotPasswordAndGlobalSignoutLoader\"\r\n [spinnerButtonText]=\"authService.verifyAndSetNewPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { SpinnerButtonDirective } from './directives/spinner-button';\r\nimport { LibraryConfig } from './config/library.config';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SetNewPasswordComponent } from './components/set-new-password/set-new-password.component';\r\nimport { PasswordMatchingComponent } from './components/password-matching/password-matching.component';\r\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\r\nimport { VerifyAndSetNewPasswordComponent } from './components/verify-and-set-new-password/verify-and-set-new-password.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n LoginComponent,\r\n SetNewPasswordComponent,\r\n PasswordMatchingComponent,\r\n ForgotPasswordComponent,\r\n VerifyAndSetNewPasswordComponent,\r\n SpinnerButtonDirective,\r\n ],\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n CommonModule\r\n ],\r\n exports: [\r\n LoginComponent,\r\n SetNewPasswordComponent,\r\n PasswordMatchingComponent,\r\n ForgotPasswordComponent,\r\n VerifyAndSetNewPasswordComponent,\r\n SpinnerButtonDirective\r\n ]\r\n})\r\nexport class AnnaCognitoLibModule {\r\n public static forRoot(configuration: LibraryConfig): ModuleWithProviders<AnnaCognitoLibModule> {\r\n return {\r\n ngModule: AnnaCognitoLibModule,\r\n providers: [\r\n {\r\n provide: LibraryConfig, \r\n useValue: configuration\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of anna-cognito-lib\r\n */\r\n\r\nexport * from './lib/anna-cognito-lib.module';\r\n\r\n//COMPONENTS \r\nexport * from './lib/components/login/login.component';\r\nexport * from './lib/components/forgot-password/forgot-password.component';\r\nexport * from './lib/components/set-new-password/set-new-password.component';\r\nexport * from './lib/components/password-matching/password-matching.component';\r\nexport * from './lib/components/verify-and-set-new-password/verify-and-set-new-password.component';\r\n\r\n//SERVICES \r\nexport * from './lib/services/auth.service';\r\nexport * from './lib/services/acl.service';\r\nexport * from './lib/config/auth-service.token';\r\nexport * from './lib/config/acl-service.token';\r\nexport * from './lib/config/library.config';\r\n\r\n//DIRECTIVES \r\nexport * from './lib/directives/spinner-button';\r\n\r\n//CONSTANTS \r\nexport * from './lib/constants/loginConstant';\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AnnaLibAuthService","i3.LibraryConfig","i4","i5","i6.SpinnerButtonDirective","i1","i2","i4.PasswordMatchingComponent","i3","i5.LibraryConfig","i7.SpinnerButtonDirective","i4.LibraryConfig","i5.PasswordMatchingComponent"],"mappings":"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"}
@@ -81,7 +81,7 @@ class UsernameInfo {
81
81
  class UserState {
82
82
  constructor(userState) {
83
83
  this.userStatus = userState;
84
- this.isUserWithTempPassword = (userState == 'FORCE_CHANGE_PASSWORD' || userState == 'RESET_REQUIRED');
84
+ this.isUserWithTempPassword = userState == 'FORCE_CHANGE_PASSWORD';
85
85
  }
86
86
  }
87
87
 
@@ -1 +1 @@
1
- {"version":3,"file":"annalib-anna-cognito-lib.mjs","sources":["../../../projects/anna-cognito-lib/src/lib/constants/loginConstant.ts","../../../projects/anna-cognito-lib/src/lib/models/auth.model.ts","../../../projects/anna-cognito-lib/src/lib/config/acl-service.token.ts","../../../projects/anna-cognito-lib/src/lib/services/acl.service.ts","../../../projects/anna-cognito-lib/src/lib/config/library.config.ts","../../../projects/anna-cognito-lib/src/lib/config/auth-service.token.ts","../../../projects/anna-cognito-lib/src/lib/services/auth.service.ts","../../../projects/anna-cognito-lib/src/lib/directives/spinner-button/spinner-button.directive.ts","../../../projects/anna-cognito-lib/src/lib/components/login/login.component.ts","../../../projects/anna-cognito-lib/src/lib/components/login/login.component.html","../../../projects/anna-cognito-lib/src/lib/components/password-matching/password-matching.component.ts","../../../projects/anna-cognito-lib/src/lib/components/password-matching/password-matching.component.html","../../../projects/anna-cognito-lib/src/lib/components/set-new-password/set-new-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/set-new-password/set-new-password.component.html","../../../projects/anna-cognito-lib/src/lib/components/forgot-password/forgot-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/forgot-password/forgot-password.component.html","../../../projects/anna-cognito-lib/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.html","../../../projects/anna-cognito-lib/src/lib/anna-cognito-lib.module.ts","../../../projects/anna-cognito-lib/src/public-api.ts","../../../projects/anna-cognito-lib/src/annalib-anna-cognito-lib.ts"],"sourcesContent":["export class LoginConstant {\r\n // Login page\r\n static readonly enterEmail = \"Enter your username\";\r\n static readonly password = \"Password\";\r\n static readonly confirmPassword = \"Confirm Password\";\r\n static readonly login = \"Login\";\r\n static readonly otp = \"OTP\";\r\n static readonly forgotPassword = \"Forgot \" + LoginConstant.password.toLowerCase() + \"?\";\r\n\r\n // set new password\r\n static readonly setNewPasswordHeading = \"Set new \" + LoginConstant.password.toLowerCase();\r\n static readonly setNewPasswordButton = \"Set and \" + LoginConstant.login.toLowerCase() + \" again\";\r\n static readonly passwordMustContain = \"The password must contain:\";\r\n static readonly minimumCharacter = \"Minimum 8 characters\";\r\n static readonly oneUppercase = \"1 Uppercase\";\r\n static readonly oneLowercase = \"1 Lowercase\";\r\n static readonly oneNumber = \"1 Numerical\";\r\n static readonly specialCharacter = \"1 Special character\";\r\n static readonly passwordNotMatching = \"The passwords do not match. Please try again.\";\r\n static readonly userNamePasswordIncorrect = \"Incorrect username or password\";\r\n static readonly userNotFound = \"No registered user found\";\r\n static readonly loginAgain = LoginConstant.login + \" again\";\r\n static readonly firstTimeLoginUserTempPasswordMsg = \"You are logging in for the first time. Kindly use the temporary password provided in the welcome email, to login to your account. \";\r\n static readonly tempPasswordExpiryError = \"Temporary password has expired and must be reset by an administrator.\"\r\n static readonly tempPasswordOnExpiryErrorMsg = \"Password has expired. A new password has been sent to your registered email. Kindly login again with new link and credentials.\";\r\n\r\n // verify OTP & set new password\r\n static readonly verifyAndSetNewPasswordheading = \"Enter \" + LoginConstant.otp + \" & set new password\";\r\n static readonly verifyAndSetNewPasswordMessage = \"An \" + LoginConstant.otp + \" has been succesfully emailed to \";\r\n static readonly pleaseEnterItBelow = \". Please enter it below.\";\r\n static readonly regenerateOtp = \"Regenerate \" + LoginConstant.otp;\r\n static readonly enterOtp = \"Enter \" + LoginConstant.otp;\r\n static readonly submit = \"Submit\";\r\n static readonly attempt = \"Attempt\";\r\n static readonly attemptLimitExceeded =\r\n \"You have exceeded the maximum number of allowed attempts. Please try again after 15 minutes.\";\r\n static readonly attemptMessage = \" of 5. The OTP entered is incorrect. Please try again with the right one.\";\r\n static readonly sessionExpired = \"The session has expired. Please try again.\";\r\n\r\n // forgot password\r\n static readonly forgotPasswordHeading = \"Forgot your password?\";\r\n static readonly forgotPasswordMessage = \"Please enter your username.\";\r\n static readonly forgotPasswordButton = \"Get \" + LoginConstant.otp;\r\n static readonly apiFailErrorMessage = \"Unable to connect to server right now. Please try after some time.\";\r\n\r\n //url\r\n static readonly setNewPasswordUrl = \"/set-new-password\";\r\n static readonly forgortPasswordPageUrl = \"/forgot-password\";\r\n static readonly verifyAndSetNewPasswordUrl = \"/verify-and-set-new-password\";\r\n static readonly loginPageUrl = \"/login\";\r\n static readonly homePageUrl = \"/home\";\r\n static readonly stationSettingUrl = \"/station-settings\";\r\n}\r\n","export class AuthenticationData {\r\n Username: string;\r\n Password: string;\r\n constructor(Username: string, Password: string) {\r\n this.Username = Username;\r\n this.Password = Password;\r\n }\r\n}\r\n\r\nexport class UserPoolInformation {\r\n UserPoolId: string;\r\n ClientId: string;\r\n constructor(UserPoolId: string, ClientId: string) {\r\n this.UserPoolId = UserPoolId;\r\n this.ClientId = ClientId;\r\n }\r\n}\r\n\r\nexport class UsernameInfo {\r\n isUsernameAvailable: boolean;\r\n constructor(object: { isUsernameAvailable: boolean }) {\r\n this.isUsernameAvailable = object.isUsernameAvailable;\r\n }\r\n} \r\n\r\nexport class UserState {\r\n userStatus: string;\r\n isUserWithTempPassword: boolean;\r\n constructor(userState: string ) {\r\n this.userStatus = userState;\r\n this.isUserWithTempPassword = (userState == 'FORCE_CHANGE_PASSWORD' || userState == 'RESET_REQUIRED');\r\n }\r\n}","import { InjectionToken } from '@angular/core';\r\n\r\n/** Token to inject the acl service */\r\nexport const ACL_SERVICE_TOKEN:\r\n InjectionToken<IAclService> =\r\n new InjectionToken<IAclService>('ACL service token');\r\n\r\nexport interface IAclService {\r\n urlToCognitoPrivilegeMap: {[key: string]: string};\r\n DAILY_REVISION_REPORT_WRITE: string;\r\n LUR_SETTINGS_WRITE: string;\r\n MANAGE_BUSINESS_RULES_WRITE: string;\r\n MANAGE_USERS_WRITE: string;\r\n ORDER_BIZ_RULES_WRITE: string;\r\n ORDER_REVISIONS_WRITE: string;\r\n ORDER_SPOTS_REPORT_WRITE: string;\r\n RATE_CARD_WRITE: string;\r\n STATION_SYSTEM_SETTINGS_WRITE: string;\r\n POLITICAL_WINDOW_WRITE: string;\r\n \r\n isUserAuthoriseToAcessManageUser(): boolean;\r\n}","import { Inject, Injectable } from \"@angular/core\";\r\nimport { IAclService, ACL_SERVICE_TOKEN } from '../config/acl-service.token';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AnnaLibAclService {\r\n constructor(@Inject(ACL_SERVICE_TOKEN) public consumingProjectAclService: IAclService) {}\r\n\r\n userGroupsInCognitoJWT: string[];\r\n isUserAuthorisedToAccessPage(url: string): boolean {\r\n let privilegeName = this.consumingProjectAclService.urlToCognitoPrivilegeMap[url];\r\n return this.userGroupsInCognitoJWT.includes(privilegeName);\r\n }\r\n\r\n isUserAuthorisedToAccessElement(privilege: string): boolean {\r\n return this.userGroupsInCognitoJWT.includes(privilege);\r\n }\r\n\r\n isUserAuthoriseToAcessManageUser(): boolean {\r\n return this.consumingProjectAclService.isUserAuthoriseToAcessManageUser();\r\n }\r\n\r\n}\r\n","export class LibraryConfig { \r\n loginPageLogoImgUrl: string = '';\r\n cognito : {\r\n userPoolId: string;\r\n clientId: string; \r\n }\r\n \r\n}","import { InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n/** Token to inject the auth service */\r\nexport const AUTH_SERVICE_TOKEN:\r\n InjectionToken<IAuthService> =\r\n new InjectionToken<IAuthService>('Auth service token');\r\n\r\nexport interface IAuthService {\r\n isLoggingIn: boolean; \r\n onSuccessfulAuthenticatingUser(result: any): void;\r\n isUsernameAvailable(username: string): Observable<any>;\r\n getUserState(username: string): Observable<any>;\r\n navigateBasedOnUserRole(loginUserData: any): void;\r\n getPublicIp(): string;\r\n sendRegenerationEmail(userCode:string):void;\r\n}","// Angular import statements\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n// Third party import statements\r\nimport { CognitoUserPool, CognitoUser, AuthenticationDetails, CognitoUserSession } from \"amazon-cognito-identity-js\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../constants/loginConstant\";\r\nimport { AuthenticationData, UserPoolInformation } from \"../models/auth.model\";\r\nimport { AnnaLibAclService } from './acl.service';\r\nimport { LibraryConfig } from '../config/library.config';\r\nimport { IAuthService, AUTH_SERVICE_TOKEN } from '../config/auth-service.token';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AnnaLibAuthService {\r\n poolData: UserPoolInformation;\r\n userPool: CognitoUserPool;\r\n cognitoUser: CognitoUser;\r\n authenticationDetails: AuthenticationDetails;\r\n tokenValid: boolean;\r\n accessToken: string;\r\n userAttribute: any;\r\n loginErrorMessage: string | null;\r\n setNewPasswordErrorMessage: string;\r\n setNewPasswordButtonMessage: string;\r\n verifyAndSetNewPasswordErrorMessage: string;\r\n verifyAndSetNewPasswordMessage: string;\r\n verifyAndSetNewPasswordButton: string;\r\n noOfAttempts = 0;\r\n sessionLocked = false;\r\n userName: any;\r\n accessTokenTimerId: any;\r\n IdToken: any;\r\n forgotPasswordAndGlobalSignoutLoader: boolean;\r\n\r\n constructor(\r\n private router: Router,\r\n public aclService: AnnaLibAclService,\r\n public libraryConfig: LibraryConfig,\r\n public httpClient:HttpClient,\r\n @Inject(AUTH_SERVICE_TOKEN) public consumingProjectAuthService: IAuthService) {\r\n if(!consumingProjectAuthService) {\r\n throw new Error('You must provide a authService');\r\n }\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n /***\r\n 1. takes user pool data (userPool ID and client ID)\r\n 2. if current user is null then it means user already logged out then simply return Promise<false>\r\n 3. if current user present check if token is valid for it.\r\n */\r\n isUserLoggedIn(): Promise<boolean> {\r\n let currentUser = this.getCurrentUserDetails();\r\n if (currentUser) {\r\n return new Promise((resolve, reject) => {\r\n currentUser && currentUser.getSession((error: Error, token: CognitoUserSession | null) => {\r\n if (token) {\r\n this.getAllCognitoTokenAndGroups(token);\r\n resolve(true);\r\n } else {\r\n this.sessionTimeout();\r\n resolve(false);\r\n }\r\n });\r\n });\r\n } else {\r\n return new Promise((resolve) => {\r\n clearInterval(this.accessTokenTimerId);\r\n resolve(false);\r\n });\r\n }\r\n }\r\n\r\n sessionTimeout() {\r\n localStorage.clear();\r\n clearInterval(this.accessTokenTimerId);\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n }\r\n\r\n refreshAccessToken() {\r\n let currentUser = this.getCurrentUserDetails();\r\n let accessTokenExpiration = localStorage.getItem(\"accessTokenExpiration\");\r\n let expTime = accessTokenExpiration ? parseInt(accessTokenExpiration) : 0;\r\n this.accessTokenTimerId = setInterval(() => {\r\n let counter = 1000;\r\n let delayFunction = setTimeout(() => {\r\n currentUser && currentUser.getSession((error: any, token: CognitoUserSession | null) => {\r\n if (token) {\r\n this.getAllCognitoTokenAndGroups(token);\r\n let newExpTime = this.computeTokenExpiration(this.IdToken);\r\n\r\n if (newExpTime <= 0) {\r\n newExpTime = 1000;\r\n counter = 0;\r\n if (delayFunction) {\r\n clearInterval(delayFunction);\r\n }\r\n }\r\n expTime = newExpTime;\r\n localStorage.setItem(\"accessTokenExpiration\", newExpTime.toString());\r\n clearInterval(this.accessTokenTimerId);\r\n this.refreshAccessToken();\r\n } else if (error.code === \"NotAuthorizedException\") {\r\n this.sessionTimeout();\r\n }\r\n });\r\n }, counter);\r\n }, expTime);\r\n }\r\n\r\n computeTokenExpiration(token: any) {\r\n let currentTime = Math.floor(Date.now() / 1000);\r\n let tokenTime = token.payload.exp;\r\n let expTime = (tokenTime - currentTime) * 1000;\r\n return expTime;\r\n }\r\n\r\n\r\n getCurrentUserDetails() {\r\n let poolData = new UserPoolInformation(this.libraryConfig.cognito.userPoolId, this.libraryConfig.cognito.clientId);\r\n let userPool = new CognitoUserPool(poolData);\r\n return userPool.getCurrentUser();\r\n }\r\n\r\n getCognitoUserDetails(email: string): CognitoUser {\r\n this.poolData = new UserPoolInformation(this.libraryConfig.cognito.userPoolId, this.libraryConfig.cognito.clientId);\r\n this.userPool = new CognitoUserPool(this.poolData);\r\n\r\n let userData = {\r\n Username: email,\r\n Pool: this.userPool,\r\n };\r\n let cognitoUser = new CognitoUser(userData);\r\n return cognitoUser;\r\n }\r\n\r\n authenticate(email: string, password: string) {\r\n this.loginErrorMessage = null;\r\n let authData = new AuthenticationData(email, password);\r\n this.authenticationDetails = new AuthenticationDetails(authData);\r\n\r\n this.cognitoUser = this.getCognitoUserDetails(email);\r\n this.CognitoAuthentication(this.authenticationDetails);\r\n }\r\n\r\n CognitoAuthentication(authenticationDetails: AuthenticationDetails) {\r\n this.cognitoUser.authenticateUser(authenticationDetails, {\r\n onSuccess: async (result) => {\r\n this.getAllCognitoTokenAndGroups(result);\r\n await this.consumingProjectAuthService.onSuccessfulAuthenticatingUser(result);\r\n },\r\n onFailure: (err) => {\r\n this.consumingProjectAuthService.isLoggingIn = false;\r\n if (err.message == LoginConstant.tempPasswordExpiryError) {\r\n this.loginErrorMessage = LoginConstant.tempPasswordOnExpiryErrorMsg;\r\n this.consumingProjectAuthService.sendRegenerationEmail(this.authenticationDetails.getUsername());\r\n }\r\n else if (err.message === \"Password attempts exceeded\") {\r\n this.loginErrorMessage = LoginConstant.attemptLimitExceeded;\r\n } else {\r\n this.loginErrorMessage = LoginConstant.userNamePasswordIncorrect;\r\n }\r\n },\r\n newPasswordRequired: (data:any) => {\r\n this.consumingProjectAuthService.isLoggingIn = false;\r\n this.userAttribute = data;\r\n this.router.navigate([LoginConstant.setNewPasswordUrl]);\r\n },\r\n });\r\n }\r\n\r\n \r\n setNewPassword(newPassword: any) {\r\n delete this.userAttribute.email;\r\n delete this.userAttribute.email_verified;\r\n delete this.userAttribute.phone_number_verified;\r\n this.cognitoUser.completeNewPasswordChallenge(newPassword, this.userAttribute, {\r\n onSuccess: (result) => {\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n },\r\n onFailure: (error) => {\r\n this.setNewPasswordErrorMessage = LoginConstant.sessionExpired;\r\n this.setNewPasswordButtonMessage = LoginConstant.loginAgain;\r\n },\r\n });\r\n }\r\n\r\n onForgotPasswordGenerateOTP(email: string) {\r\n this.userName = email;\r\n this.cognitoUser = this.getCognitoUserDetails(email);\r\n this.cognitoUser.forgotPassword({\r\n onSuccess: (result) => {\r\n this.verifyAndSetNewPasswordMessage =\r\n LoginConstant.verifyAndSetNewPasswordMessage +\r\n result.CodeDeliveryDetails.Destination +\r\n LoginConstant.pleaseEnterItBelow;\r\n this.router.navigate([LoginConstant.verifyAndSetNewPasswordUrl]);\r\n },\r\n onFailure: (err) => {},\r\n });\r\n }\r\n\r\n verifyCode(verificationCode: string, newPassword: string) {\r\n this.cognitoUser.confirmPassword(verificationCode, newPassword, {\r\n onFailure: (error) => {\r\n this.noOfAttempts = this.noOfAttempts + 1;\r\n this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(error, this.noOfAttempts);\r\n this.forgotPasswordAndGlobalSignoutLoader = false;\r\n },\r\n onSuccess: () => {\r\n this.expiryAllExistingCurrentSession(newPassword);\r\n },\r\n });\r\n }\r\n\r\n forgotPasswordError(err: any, noOfAttempts: number) {\r\n let errorMessage;\r\n switch (err.code) {\r\n case \"LimitExceededException\":\r\n this.sessionLocked = true;\r\n errorMessage = LoginConstant.attemptLimitExceeded;\r\n break;\r\n case \"ExpiredCodeException\":\r\n errorMessage = LoginConstant.sessionExpired;\r\n this.verifyAndSetNewPasswordButton = LoginConstant.regenerateOtp;\r\n break;\r\n default:\r\n errorMessage = LoginConstant.attempt + \" \" + noOfAttempts + LoginConstant.attemptMessage;\r\n }\r\n return errorMessage;\r\n }\r\n\r\n getAllCognitoTokenAndGroups(token: CognitoUserSession) {\r\n this.accessToken = token.getAccessToken().getJwtToken();\r\n this.IdToken = token.getIdToken();\r\n if (\"cognito:groups\" in token.getAccessToken().payload) {\r\n this.aclService.userGroupsInCognitoJWT = token.getAccessToken().payload[\"cognito:groups\"];\r\n } else {\r\n this.aclService.userGroupsInCognitoJWT = [];\r\n }\r\n }\r\n\r\n expiryAllExistingCurrentSession(newPassword: string){\r\n let username = this.cognitoUser.getUsername();\r\n this.setUserDetails(username, newPassword);\r\n this.onLoginInCogntioToGetAccessToken();\r\n }\r\n\r\n setUserDetails(username: string, newPassword: string){\r\n this.loginErrorMessage = null;\r\n let authData = new AuthenticationData(username, newPassword);\r\n this.authenticationDetails = new AuthenticationDetails(authData);\r\n this.cognitoUser = this.getCognitoUserDetails(username);\r\n }\r\n\r\n onLoginInCogntioToGetAccessToken(){\r\n this.cognitoUser.authenticateUser(this.authenticationDetails, {\r\n onSuccess: async (result: CognitoUserSession) => {\r\n this.getAllCognitoTokenAndGroups(result);\r\n this.onCallGlobalSignout();\r\n },\r\n onFailure: (err) => {},\r\n newPasswordRequired: (data:any) => {},\r\n });\r\n }\r\n\r\n onCallGlobalSignout(){\r\n this.cognitoUser.globalSignOut({\r\n onSuccess: (result) => \r\n { \r\n console.log(result); \r\n this.forgotPasswordAndGlobalSignoutLoader = false;\r\n this.router.navigate([LoginConstant.loginPageUrl]); \r\n },\r\n onFailure: (err) => {}\r\n });\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, Renderer2, SimpleChanges, OnChanges, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[anna-cognito-lib-SpinnerButton]\",\r\n})\r\nexport class SpinnerButtonDirective implements OnInit, OnChanges {\r\n @Input(\"anna-cognito-lib-SpinnerButton\") loading: boolean;\r\n @Input(\"spinnerButtonText\") spinnerButtonText: string;\r\n child: HTMLDivElement;\r\n button: any;\r\n\r\n constructor(\r\n private el: ElementRef, \r\n private renderer: Renderer2) {\r\n this.button = this.el.nativeElement;\r\n this.child = document.createElement(\"div\");\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['spinnerButtonText'] && changes['spinnerButtonText'].currentValue) {\r\n this.button.innerHTML = this.spinnerButtonText;\r\n }\r\n if (changes['loading'] && changes['loading'].currentValue) {\r\n this.button.innerHTML = \"\";\r\n this.button.setAttribute(\"disabled\", \"true\");\r\n this.child.classList.add(\"spinner-for-button-directive\");\r\n this.renderer.appendChild(this.button, this.child);\r\n } else {\r\n this.child.classList.remove(\"spinner-for-button-directive\");\r\n this.button.removeAttribute(\"disabled\");\r\n this.button.innerHTML = this.spinnerButtonText;\r\n }\r\n }\r\n}\r\n","// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { AnnaLibAuthService } from '../../services/auth.service';\r\nimport { LibraryConfig } from '../../config/library.config';\r\n\r\n@Component({\r\n selector: \"anna-cognito-lib-login\",\r\n templateUrl: \"./login.component.html\",\r\n styleUrls: [\"./login.component.scss\"],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n loginForm: FormGroup;\r\n constants: typeof LoginConstant;\r\n \r\n constructor(\r\n public authService: AnnaLibAuthService,\r\n private fb: FormBuilder,\r\n public libraryConfig: LibraryConfig\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.onIntialiseForm();\r\n }\r\n\r\n onIntialiseForm() {\r\n this.loginForm = this.fb.group({\r\n username: [null],\r\n password: [null],\r\n });\r\n }\r\n\r\n OnLogin() {\r\n this.authService.consumingProjectAuthService.isLoggingIn = true;\r\n const username = this.loginForm.controls['username'].value;\r\n const password = this.loginForm.controls['password'].value;\r\n this.authService.authenticate(username, password);\r\n }\r\n\r\n \r\n}\r\n","<div class=\"main\">\r\n <!-- Load login page when all constant variable are intiated otherwise it will show a glitch. that's why ngIf check of constants.forgotPassword -->\r\n <section *ngIf=\"constants.forgotPassword\">\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" loading=\"eager\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"OnLogin()\">\r\n <div id=\"alert-div\" *ngIf=\"authService.loginErrorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p>{{ authService.loginErrorMessage }}</p>\r\n </div>\r\n\r\n <input\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"username\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"constants.enterEmail\"\r\n autocomplete=\"username\"\r\n autofocus\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"constants.password\"\r\n autocomplete=\"current-password\"\r\n autofocus\r\n />\r\n\r\n <a tabindex=\"4\" [routerLink]=\"constants.forgortPasswordPageUrl\">{{ constants.forgotPassword }}</a>\r\n <button\r\n tabindex=\"3\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"authService.consumingProjectAuthService.isLoggingIn\"\r\n [spinnerButtonText]=\"constants.login\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","// Angular import statements\r\nimport { EventEmitter, Inject, Input, Output } from \"@angular/core\";\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { AbstractControl, FormBuilder, FormGroup, ValidationErrors, ValidatorFn, Validators } from \"@angular/forms\";\r\n\r\n// Third party import statements\r\nimport { debounceTime } from \"rxjs/operators\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-password-matching',\r\n templateUrl: './password-matching.component.html',\r\n styleUrls: ['./password-matching.component.scss']\r\n})\r\nexport class PasswordMatchingComponent implements OnInit {\r\n @Output() passwordChange = new EventEmitter();\r\n @Output() confirmPasswordChange = new EventEmitter();\r\n\r\n @Input() passwordNotMatching: boolean;\r\n passwordForm: FormGroup;\r\n constants: typeof LoginConstant;\r\n constructor(@Inject(FormBuilder) private fb: FormBuilder) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.createGroup();\r\n this.formValueChanged();\r\n }\r\n\r\n formValueChanged() {\r\n const password = this.passwordForm.get(\"password\");\r\n const confirmPassword = this.passwordForm.get(\"confirmPassword\");\r\n\r\n password && password.valueChanges.subscribe(() => {\r\n password && password.setValidators([\r\n Validators.required,\r\n this.regexValidator(new RegExp(\".{8,}\"), { minLength: true }),\r\n this.regexValidator(new RegExp(\"[a-z]\"), { lowercase: true }),\r\n this.regexValidator(new RegExp(\"[A-Z]\"), { uppercase: true }),\r\n this.regexValidator(new RegExp(\"[0-9]\"), { number: true }),\r\n this.regexValidator(new RegExp(\"[^a-zA-Z0-9]\"), { specialCharacter: true }),\r\n ]);\r\n password.updateValueAndValidity({ emitEvent: false });\r\n this.onPasswordChange();\r\n });\r\n\r\n if(confirmPassword){\r\n confirmPassword.valueChanges.pipe(debounceTime(300)).subscribe(() => {\r\n confirmPassword.setValidators([Validators.required]);\r\n confirmPassword.updateValueAndValidity({ emitEvent: false });\r\n this.onConfirmPasswordChange();\r\n });\r\n }\r\n \r\n }\r\n\r\n onPasswordChange() {\r\n let result = {\r\n value: this.passwordForm.value.password,\r\n status: this.passwordForm.controls['password'].status,\r\n };\r\n this.passwordChange.emit(result);\r\n }\r\n\r\n onConfirmPasswordChange() {\r\n let result = {\r\n value: this.passwordForm.value.confirmPassword,\r\n status: this.passwordForm.controls['confirmPassword'].status,\r\n };\r\n this.confirmPasswordChange.emit(result);\r\n }\r\n\r\n createGroup() {\r\n this.passwordForm = this.fb.group({\r\n password: [null],\r\n confirmPassword: [null],\r\n });\r\n return this.passwordForm;\r\n }\r\n\r\n // TODO: check the return again\r\n regexValidator(regex: RegExp, error: ValidationErrors): any\r\n {\r\n return (control: AbstractControl): { [key: string]: boolean } => {\r\n const valid = regex.test(control.value);\r\n return (valid ? null : error) as any;\r\n };\r\n }\r\n\r\n}\r\n","<form [formGroup]=\"passwordForm\">\r\n <div id=\"alert-div\" *ngIf=\"passwordNotMatching\">\r\n <div id=\"icon-div\">\r\n <span class=\"material-icons\">report</span>\r\n </div>\r\n <p>{{ constants.passwordNotMatching }}</p>\r\n </div>\r\n <div class=\"password-policies\">\r\n <ng-container *ngIf=\"!passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }} </b>\r\n </p>\r\n <p>{{ constants.minimumCharacter }}</p>\r\n <p>{{ constants.oneUppercase }}</p>\r\n <p>{{ constants.oneLowercase }}</p>\r\n <p>{{ constants.oneNumber }}</p>\r\n <p>{{ constants.specialCharacter }}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }}</b>\r\n </p>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('minLength') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('minLength')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('minLength')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.minimumCharacter }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('uppercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('uppercase')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('uppercase')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneUppercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('lowercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('lowercase')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('lowercase')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneLowercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('number') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('number')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('number')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneNumber }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('specialCharacter') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('specialCharacter')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('specialCharacter')\">\r\n check_circle\r\n </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.specialCharacter }}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [placeholder]=\"constants.password\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"3\"\r\n formControlName=\"confirmPassword\"\r\n [placeholder]=\"constants.confirmPassword\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n</form>\r\n","\r\n// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// User defined import statements\r\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { LibraryConfig } from '../../config/library.config';\r\ntype passwordType = { value: string | null, status: string | null };\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-set-new-password',\r\n templateUrl: './set-new-password.component.html',\r\n styleUrls: ['./set-new-password.component.scss']\r\n})\r\nexport class SetNewPasswordComponent implements OnInit {\r\n passwordNotMatching = false;\r\n \r\n password: passwordType = { value: null, status: null };\r\n confirmPassword: passwordType = { value: null, status: null };\r\n constants: typeof LoginConstant;\r\n\r\n constructor(public authService: AnnaLibAuthService, \r\n private router: Router,\r\n public libraryConfig: LibraryConfig) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.authService.setNewPasswordButtonMessage = LoginConstant.setNewPasswordButton;\r\n }\r\n\r\n isFormValid() {\r\n return this.password.status === \"VALID\" && this.confirmPassword.status === \"VALID\";\r\n }\r\n onPasswordChange($event: passwordType) {\r\n this.password = $event;\r\n }\r\n\r\n onConfirmPasswordChange($event: passwordType) {\r\n this.confirmPassword = $event;\r\n }\r\n\r\n onSettingNewPassword() {\r\n if (this.password.value != this.confirmPassword.value) {\r\n this.passwordNotMatching = true;\r\n } else {\r\n this.passwordNotMatching = false;\r\n if (this.authService.setNewPasswordButtonMessage === LoginConstant.loginAgain) {\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n } else {\r\n this.authService.setNewPassword(this.password.value);\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"main\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form>\r\n <div id=\"heading\">\r\n {{ constants.setNewPasswordHeading }}\r\n </div>\r\n\r\n <div id=\"alert-div\" *ngIf=\"authService.setNewPasswordErrorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p>{{ authService.setNewPasswordErrorMessage }}</p>\r\n </div>\r\n <anna-cognito-lib-password-matching\r\n (passwordChange)=\"onPasswordChange($event)\"\r\n (confirmPasswordChange)=\"onConfirmPasswordChange($event)\"\r\n [passwordNotMatching]=\"passwordNotMatching\"\r\n >\r\n </anna-cognito-lib-password-matching>\r\n <button tabindex=\"3\" class=\"login-btn\" [disabled]=\"!isFormValid()\" (click)=\"onSettingNewPassword()\">\r\n {{ authService.setNewPasswordButtonMessage }}\r\n </button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\r\n\r\n// Third party import statements\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { forkJoin, catchError, pipe, map } from \"rxjs\";\r\n\r\n// User defined import statements\r\nimport { UsernameInfo, UserState } from \"../../models/auth.model\";\r\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { LibraryConfig } from '../../config/library.config';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-forgot-password',\r\n templateUrl: './forgot-password.component.html',\r\n styleUrls: ['./forgot-password.component.scss']\r\n})\r\nexport class ForgotPasswordComponent implements OnInit {\r\n errorMessage: string;\r\n verifyRegisteredEmail: FormGroup;\r\n passwordNotMatching = false;\r\n constants: typeof LoginConstant;\r\n password:any = { value: null, status: null };\r\n confirmPassword:any = { value: null, status: null };\r\n infoMessageToRedirectLogin: string = null;\r\n isLoading: boolean = false;\r\n\r\n constructor(\r\n private authService: AnnaLibAuthService,\r\n private fb: FormBuilder,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n public libraryConfig: LibraryConfig\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.infoMessageToRedirectLogin = null;\r\n this.constants = LoginConstant;\r\n this.onIntialiseForm();\r\n if (this.authService.userName) {\r\n this.onUpdateForm();\r\n }\r\n }\r\n\r\n onIntialiseForm() {\r\n this.verifyRegisteredEmail = this.fb.group({\r\n email: [null, [Validators.required]],\r\n });\r\n }\r\n\r\n onUpdateForm() {\r\n this.verifyRegisteredEmail.patchValue({\r\n email: this.authService.userName,\r\n });\r\n }\r\n\r\n isFormValid() {\r\n return this.verifyRegisteredEmail.valid;\r\n }\r\n\r\n onLoginOrGetOtpButtonClick(){\r\n if(this.infoMessageToRedirectLogin){\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n }\r\n else {\r\n this.onVerifyRegisteredEmail();\r\n }\r\n }\r\n\r\n onVerifyRegisteredEmail() {\r\n this.isLoading = true;\r\n this.errorMessage = null;\r\n this.infoMessageToRedirectLogin = null;\r\n let username = this.verifyRegisteredEmail.controls['email'].value;\r\n\r\n let isUsernameAvailable = this.authService.consumingProjectAuthService.isUsernameAvailable(username);\r\n let isUsernameTempPasswordSet = this.authService.consumingProjectAuthService.getUserState(username);\r\n\r\n forkJoin([isUsernameAvailable, isUsernameTempPasswordSet]).subscribe(\r\n { next: (result) => {\r\n let isUsernameAvailable = new UsernameInfo(result[0]).isUsernameAvailable;\r\n let isUserWithTempPassword = new UserState(result[1]).isUserWithTempPassword;\r\n this.onGettingUserStatus(isUsernameAvailable,isUserWithTempPassword,username);\r\n this.isLoading = false;\r\n },\r\n error: (error) => {\r\n if(error.status == 400){\r\n this.errorMessage = this.constants.userNotFound;\r\n }\r\n else {\r\n this.toastr.error(LoginConstant.apiFailErrorMessage);\r\n }\r\n this.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n onGettingUserStatus(isUsernameAvailable: boolean, isUserWithTempPassword: boolean, username: string){\r\n if(!isUsernameAvailable){\r\n if(!isUserWithTempPassword){\r\n this.authService.onForgotPasswordGenerateOTP(username);\r\n }\r\n else {\r\n this.infoMessageToRedirectLogin = this.constants.firstTimeLoginUserTempPasswordMsg;\r\n }\r\n }\r\n else {\r\n this.errorMessage = this.constants.userNotFound;\r\n }\r\n }\r\n}\r\n","<div class=\"main\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{ constants.forgotPasswordMessage }}\r\n </p>\r\n </ng-container>\r\n <div id=\"alert-div\" *ngIf=\"errorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div id=\"info-div\" *ngIf=\"infoMessageToRedirectLogin\">\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"constants.enterEmail\"\r\n [ngClass]=\"{\r\n 'input-invalid': verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { AnnaLibAuthService } from '../../services/auth.service';\r\nimport { LibraryConfig } from '../../config/library.config';\r\ntype passwordType = { value: string | null, status: string | null };\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-verify-and-set-new-password',\r\n templateUrl: './verify-and-set-new-password.component.html',\r\n styleUrls: ['./verify-and-set-new-password.component.scss']\r\n})\r\nexport class VerifyAndSetNewPasswordComponent implements OnInit {\r\n verifyOtpForm: FormGroup;\r\n passwordNotMatching = false;\r\n constants: typeof LoginConstant;\r\n password: passwordType = { value: null, status: null };\r\n confirmPassword: passwordType = { value: null, status: null };\r\n\r\n constructor(\r\n public authService: AnnaLibAuthService,\r\n private fb: FormBuilder,\r\n private router: Router,\r\n public libraryConfig: LibraryConfig\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.authService.verifyAndSetNewPasswordButton = LoginConstant.setNewPasswordButton;\r\n this.onIntialiseForm();\r\n }\r\n\r\n onIntialiseForm() {\r\n this.verifyOtpForm = this.fb.group({\r\n otp: [null, [Validators.required]],\r\n });\r\n }\r\n\r\n isFormValid() {\r\n if (\r\n this.password.status === \"VALID\" &&\r\n this.confirmPassword.status === \"VALID\" &&\r\n this.verifyOtpForm.controls['otp'].valid\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n onPasswordChange($event: passwordType) {\r\n this.password = $event;\r\n }\r\n\r\n onConfirmPasswordChange($event: passwordType) {\r\n this.confirmPassword = $event;\r\n }\r\n\r\n onVerifyOtpSettingNewPassword() {\r\n if (this.password.value != this.confirmPassword.value) {\r\n this.passwordNotMatching = true;\r\n } else {\r\n this.passwordNotMatching = false;\r\n this.authService.forgotPasswordAndGlobalSignoutLoader = true;\r\n if (this.authService.verifyAndSetNewPasswordButton === LoginConstant.regenerateOtp) {\r\n this.router.navigate([LoginConstant.forgortPasswordPageUrl]);\r\n } else {\r\n this.password.value && this.authService.verifyCode(this.verifyOtpForm.controls['otp'].value, this.password.value);\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\n","<div class=\"main\" [ngClass]=\"{ 'main-height': authService.verifyAndSetNewPasswordErrorMessage }\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <span class=\"back-btn\" [routerLink]=\"constants.forgortPasswordPageUrl\">\r\n <i class=\"mdi mdi-arrow-left\"></i>\r\n </span>\r\n\r\n <form [formGroup]=\"verifyOtpForm\">\r\n <div class=\"pull-left\" id=\"heading\">\r\n {{ constants.verifyAndSetNewPasswordheading }}\r\n </div>\r\n <p>{{ authService.verifyAndSetNewPasswordMessage }}</p>\r\n\r\n <div id=\"alert-div\" *ngIf=\"authService.verifyAndSetNewPasswordErrorMessage\">\r\n <div id=\"icon-div\">\r\n <span class=\"material-icons\">report</span>\r\n </div>\r\n <p id=\"display-block-msg\">{{ authService.verifyAndSetNewPasswordErrorMessage }}</p>\r\n </div>\r\n\r\n <input\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"otp\"\r\n [placeholder]=\"constants.enterOtp\"\r\n autocomplete=\"new-field-name\"\r\n [ngClass]=\"{ 'input-invalid': authService.verifyAndSetNewPasswordErrorMessage }\"\r\n />\r\n\r\n <anna-cognito-lib-password-matching\r\n (passwordChange)=\"onPasswordChange($event)\"\r\n (confirmPasswordChange)=\"onConfirmPasswordChange($event)\"\r\n [passwordNotMatching]=\"passwordNotMatching\"\r\n >\r\n </anna-cognito-lib-password-matching>\r\n <button\r\n tabindex=\"4\"\r\n class=\"login-btn\"\r\n type=\"submit\"\r\n [disabled]=\"authService.sessionLocked || !isFormValid()\"\r\n (click)=\"onVerifyOtpSettingNewPassword()\"\r\n [anna-cognito-lib-SpinnerButton]=\"authService.forgotPasswordAndGlobalSignoutLoader\"\r\n [spinnerButtonText]=\"authService.verifyAndSetNewPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { SpinnerButtonDirective } from './directives/spinner-button';\r\nimport { LibraryConfig } from './config/library.config';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SetNewPasswordComponent } from './components/set-new-password/set-new-password.component';\r\nimport { PasswordMatchingComponent } from './components/password-matching/password-matching.component';\r\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\r\nimport { VerifyAndSetNewPasswordComponent } from './components/verify-and-set-new-password/verify-and-set-new-password.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n LoginComponent,\r\n SetNewPasswordComponent,\r\n PasswordMatchingComponent,\r\n ForgotPasswordComponent,\r\n VerifyAndSetNewPasswordComponent,\r\n SpinnerButtonDirective,\r\n ],\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n CommonModule\r\n ],\r\n exports: [\r\n LoginComponent,\r\n SetNewPasswordComponent,\r\n PasswordMatchingComponent,\r\n ForgotPasswordComponent,\r\n VerifyAndSetNewPasswordComponent,\r\n SpinnerButtonDirective\r\n ]\r\n})\r\nexport class AnnaCognitoLibModule {\r\n public static forRoot(configuration: LibraryConfig): ModuleWithProviders<AnnaCognitoLibModule> {\r\n return {\r\n ngModule: AnnaCognitoLibModule,\r\n providers: [\r\n {\r\n provide: LibraryConfig, \r\n useValue: configuration\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of anna-cognito-lib\r\n */\r\n\r\nexport * from './lib/anna-cognito-lib.module';\r\n\r\n//COMPONENTS \r\nexport * from './lib/components/login/login.component';\r\nexport * from './lib/components/forgot-password/forgot-password.component';\r\nexport * from './lib/components/set-new-password/set-new-password.component';\r\nexport * from './lib/components/password-matching/password-matching.component';\r\nexport * from './lib/components/verify-and-set-new-password/verify-and-set-new-password.component';\r\n\r\n//SERVICES \r\nexport * from './lib/services/auth.service';\r\nexport * from './lib/services/acl.service';\r\nexport * from './lib/config/auth-service.token';\r\nexport * from './lib/config/acl-service.token';\r\nexport * from './lib/config/library.config';\r\n\r\n//DIRECTIVES \r\nexport * from './lib/directives/spinner-button';\r\n\r\n//CONSTANTS \r\nexport * from './lib/constants/loginConstant';\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AnnaLibAuthService","i3.LibraryConfig","i4","i5","i6.SpinnerButtonDirective","i1","i2","i4.PasswordMatchingComponent","i3","i5.LibraryConfig","i7.SpinnerButtonDirective","i4.LibraryConfig","i5.PasswordMatchingComponent"],"mappings":"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"}
1
+ {"version":3,"file":"annalib-anna-cognito-lib.mjs","sources":["../../../projects/anna-cognito-lib/src/lib/constants/loginConstant.ts","../../../projects/anna-cognito-lib/src/lib/models/auth.model.ts","../../../projects/anna-cognito-lib/src/lib/config/acl-service.token.ts","../../../projects/anna-cognito-lib/src/lib/services/acl.service.ts","../../../projects/anna-cognito-lib/src/lib/config/library.config.ts","../../../projects/anna-cognito-lib/src/lib/config/auth-service.token.ts","../../../projects/anna-cognito-lib/src/lib/services/auth.service.ts","../../../projects/anna-cognito-lib/src/lib/directives/spinner-button/spinner-button.directive.ts","../../../projects/anna-cognito-lib/src/lib/components/login/login.component.ts","../../../projects/anna-cognito-lib/src/lib/components/login/login.component.html","../../../projects/anna-cognito-lib/src/lib/components/password-matching/password-matching.component.ts","../../../projects/anna-cognito-lib/src/lib/components/password-matching/password-matching.component.html","../../../projects/anna-cognito-lib/src/lib/components/set-new-password/set-new-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/set-new-password/set-new-password.component.html","../../../projects/anna-cognito-lib/src/lib/components/forgot-password/forgot-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/forgot-password/forgot-password.component.html","../../../projects/anna-cognito-lib/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.html","../../../projects/anna-cognito-lib/src/lib/anna-cognito-lib.module.ts","../../../projects/anna-cognito-lib/src/public-api.ts","../../../projects/anna-cognito-lib/src/annalib-anna-cognito-lib.ts"],"sourcesContent":["export class LoginConstant {\r\n // Login page\r\n static readonly enterEmail = \"Enter your username\";\r\n static readonly password = \"Password\";\r\n static readonly confirmPassword = \"Confirm Password\";\r\n static readonly login = \"Login\";\r\n static readonly otp = \"OTP\";\r\n static readonly forgotPassword = \"Forgot \" + LoginConstant.password.toLowerCase() + \"?\";\r\n\r\n // set new password\r\n static readonly setNewPasswordHeading = \"Set new \" + LoginConstant.password.toLowerCase();\r\n static readonly setNewPasswordButton = \"Set and \" + LoginConstant.login.toLowerCase() + \" again\";\r\n static readonly passwordMustContain = \"The password must contain:\";\r\n static readonly minimumCharacter = \"Minimum 8 characters\";\r\n static readonly oneUppercase = \"1 Uppercase\";\r\n static readonly oneLowercase = \"1 Lowercase\";\r\n static readonly oneNumber = \"1 Numerical\";\r\n static readonly specialCharacter = \"1 Special character\";\r\n static readonly passwordNotMatching = \"The passwords do not match. Please try again.\";\r\n static readonly userNamePasswordIncorrect = \"Incorrect username or password\";\r\n static readonly userNotFound = \"No registered user found\";\r\n static readonly loginAgain = LoginConstant.login + \" again\";\r\n static readonly firstTimeLoginUserTempPasswordMsg = \"You are logging in for the first time. Kindly use the temporary password provided in the welcome email, to login to your account. \";\r\n static readonly tempPasswordExpiryError = \"Temporary password has expired and must be reset by an administrator.\"\r\n static readonly tempPasswordOnExpiryErrorMsg = \"Password has expired. A new password has been sent to your registered email. Kindly login again with new link and credentials.\";\r\n\r\n // verify OTP & set new password\r\n static readonly verifyAndSetNewPasswordheading = \"Enter \" + LoginConstant.otp + \" & set new password\";\r\n static readonly verifyAndSetNewPasswordMessage = \"An \" + LoginConstant.otp + \" has been succesfully emailed to \";\r\n static readonly pleaseEnterItBelow = \". Please enter it below.\";\r\n static readonly regenerateOtp = \"Regenerate \" + LoginConstant.otp;\r\n static readonly enterOtp = \"Enter \" + LoginConstant.otp;\r\n static readonly submit = \"Submit\";\r\n static readonly attempt = \"Attempt\";\r\n static readonly attemptLimitExceeded =\r\n \"You have exceeded the maximum number of allowed attempts. Please try again after 15 minutes.\";\r\n static readonly attemptMessage = \" of 5. The OTP entered is incorrect. Please try again with the right one.\";\r\n static readonly sessionExpired = \"The session has expired. Please try again.\";\r\n\r\n // forgot password\r\n static readonly forgotPasswordHeading = \"Forgot your password?\";\r\n static readonly forgotPasswordMessage = \"Please enter your username.\";\r\n static readonly forgotPasswordButton = \"Get \" + LoginConstant.otp;\r\n static readonly apiFailErrorMessage = \"Unable to connect to server right now. Please try after some time.\";\r\n\r\n //url\r\n static readonly setNewPasswordUrl = \"/set-new-password\";\r\n static readonly forgortPasswordPageUrl = \"/forgot-password\";\r\n static readonly verifyAndSetNewPasswordUrl = \"/verify-and-set-new-password\";\r\n static readonly loginPageUrl = \"/login\";\r\n static readonly homePageUrl = \"/home\";\r\n static readonly stationSettingUrl = \"/station-settings\";\r\n}\r\n","export class AuthenticationData {\r\n Username: string;\r\n Password: string;\r\n constructor(Username: string, Password: string) {\r\n this.Username = Username;\r\n this.Password = Password;\r\n }\r\n}\r\n\r\nexport class UserPoolInformation {\r\n UserPoolId: string;\r\n ClientId: string;\r\n constructor(UserPoolId: string, ClientId: string) {\r\n this.UserPoolId = UserPoolId;\r\n this.ClientId = ClientId;\r\n }\r\n}\r\n\r\nexport class UsernameInfo {\r\n isUsernameAvailable: boolean;\r\n constructor(object: { isUsernameAvailable: boolean }) {\r\n this.isUsernameAvailable = object.isUsernameAvailable;\r\n }\r\n} \r\n\r\nexport class UserState {\r\n userStatus: string;\r\n isUserWithTempPassword: boolean;\r\n constructor(userState: string ) {\r\n this.userStatus = userState;\r\n this.isUserWithTempPassword = userState == 'FORCE_CHANGE_PASSWORD';\r\n }\r\n}","import { InjectionToken } from '@angular/core';\r\n\r\n/** Token to inject the acl service */\r\nexport const ACL_SERVICE_TOKEN:\r\n InjectionToken<IAclService> =\r\n new InjectionToken<IAclService>('ACL service token');\r\n\r\nexport interface IAclService {\r\n urlToCognitoPrivilegeMap: {[key: string]: string};\r\n DAILY_REVISION_REPORT_WRITE: string;\r\n LUR_SETTINGS_WRITE: string;\r\n MANAGE_BUSINESS_RULES_WRITE: string;\r\n MANAGE_USERS_WRITE: string;\r\n ORDER_BIZ_RULES_WRITE: string;\r\n ORDER_REVISIONS_WRITE: string;\r\n ORDER_SPOTS_REPORT_WRITE: string;\r\n RATE_CARD_WRITE: string;\r\n STATION_SYSTEM_SETTINGS_WRITE: string;\r\n POLITICAL_WINDOW_WRITE: string;\r\n \r\n isUserAuthoriseToAcessManageUser(): boolean;\r\n}","import { Inject, Injectable } from \"@angular/core\";\r\nimport { IAclService, ACL_SERVICE_TOKEN } from '../config/acl-service.token';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AnnaLibAclService {\r\n constructor(@Inject(ACL_SERVICE_TOKEN) public consumingProjectAclService: IAclService) {}\r\n\r\n userGroupsInCognitoJWT: string[];\r\n isUserAuthorisedToAccessPage(url: string): boolean {\r\n let privilegeName = this.consumingProjectAclService.urlToCognitoPrivilegeMap[url];\r\n return this.userGroupsInCognitoJWT.includes(privilegeName);\r\n }\r\n\r\n isUserAuthorisedToAccessElement(privilege: string): boolean {\r\n return this.userGroupsInCognitoJWT.includes(privilege);\r\n }\r\n\r\n isUserAuthoriseToAcessManageUser(): boolean {\r\n return this.consumingProjectAclService.isUserAuthoriseToAcessManageUser();\r\n }\r\n\r\n}\r\n","export class LibraryConfig { \r\n loginPageLogoImgUrl: string = '';\r\n cognito : {\r\n userPoolId: string;\r\n clientId: string; \r\n }\r\n \r\n}","import { InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n/** Token to inject the auth service */\r\nexport const AUTH_SERVICE_TOKEN:\r\n InjectionToken<IAuthService> =\r\n new InjectionToken<IAuthService>('Auth service token');\r\n\r\nexport interface IAuthService {\r\n isLoggingIn: boolean; \r\n onSuccessfulAuthenticatingUser(result: any): void;\r\n isUsernameAvailable(username: string): Observable<any>;\r\n getUserState(username: string): Observable<any>;\r\n navigateBasedOnUserRole(loginUserData: any): void;\r\n getPublicIp(): string;\r\n sendRegenerationEmail(userCode:string):void;\r\n}","// Angular import statements\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n// Third party import statements\r\nimport { CognitoUserPool, CognitoUser, AuthenticationDetails, CognitoUserSession } from \"amazon-cognito-identity-js\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../constants/loginConstant\";\r\nimport { AuthenticationData, UserPoolInformation } from \"../models/auth.model\";\r\nimport { AnnaLibAclService } from './acl.service';\r\nimport { LibraryConfig } from '../config/library.config';\r\nimport { IAuthService, AUTH_SERVICE_TOKEN } from '../config/auth-service.token';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AnnaLibAuthService {\r\n poolData: UserPoolInformation;\r\n userPool: CognitoUserPool;\r\n cognitoUser: CognitoUser;\r\n authenticationDetails: AuthenticationDetails;\r\n tokenValid: boolean;\r\n accessToken: string;\r\n userAttribute: any;\r\n loginErrorMessage: string | null;\r\n setNewPasswordErrorMessage: string;\r\n setNewPasswordButtonMessage: string;\r\n verifyAndSetNewPasswordErrorMessage: string;\r\n verifyAndSetNewPasswordMessage: string;\r\n verifyAndSetNewPasswordButton: string;\r\n noOfAttempts = 0;\r\n sessionLocked = false;\r\n userName: any;\r\n accessTokenTimerId: any;\r\n IdToken: any;\r\n forgotPasswordAndGlobalSignoutLoader: boolean;\r\n\r\n constructor(\r\n private router: Router,\r\n public aclService: AnnaLibAclService,\r\n public libraryConfig: LibraryConfig,\r\n public httpClient:HttpClient,\r\n @Inject(AUTH_SERVICE_TOKEN) public consumingProjectAuthService: IAuthService) {\r\n if(!consumingProjectAuthService) {\r\n throw new Error('You must provide a authService');\r\n }\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n /***\r\n 1. takes user pool data (userPool ID and client ID)\r\n 2. if current user is null then it means user already logged out then simply return Promise<false>\r\n 3. if current user present check if token is valid for it.\r\n */\r\n isUserLoggedIn(): Promise<boolean> {\r\n let currentUser = this.getCurrentUserDetails();\r\n if (currentUser) {\r\n return new Promise((resolve, reject) => {\r\n currentUser && currentUser.getSession((error: Error, token: CognitoUserSession | null) => {\r\n if (token) {\r\n this.getAllCognitoTokenAndGroups(token);\r\n resolve(true);\r\n } else {\r\n this.sessionTimeout();\r\n resolve(false);\r\n }\r\n });\r\n });\r\n } else {\r\n return new Promise((resolve) => {\r\n clearInterval(this.accessTokenTimerId);\r\n resolve(false);\r\n });\r\n }\r\n }\r\n\r\n sessionTimeout() {\r\n localStorage.clear();\r\n clearInterval(this.accessTokenTimerId);\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n }\r\n\r\n refreshAccessToken() {\r\n let currentUser = this.getCurrentUserDetails();\r\n let accessTokenExpiration = localStorage.getItem(\"accessTokenExpiration\");\r\n let expTime = accessTokenExpiration ? parseInt(accessTokenExpiration) : 0;\r\n this.accessTokenTimerId = setInterval(() => {\r\n let counter = 1000;\r\n let delayFunction = setTimeout(() => {\r\n currentUser && currentUser.getSession((error: any, token: CognitoUserSession | null) => {\r\n if (token) {\r\n this.getAllCognitoTokenAndGroups(token);\r\n let newExpTime = this.computeTokenExpiration(this.IdToken);\r\n\r\n if (newExpTime <= 0) {\r\n newExpTime = 1000;\r\n counter = 0;\r\n if (delayFunction) {\r\n clearInterval(delayFunction);\r\n }\r\n }\r\n expTime = newExpTime;\r\n localStorage.setItem(\"accessTokenExpiration\", newExpTime.toString());\r\n clearInterval(this.accessTokenTimerId);\r\n this.refreshAccessToken();\r\n } else if (error.code === \"NotAuthorizedException\") {\r\n this.sessionTimeout();\r\n }\r\n });\r\n }, counter);\r\n }, expTime);\r\n }\r\n\r\n computeTokenExpiration(token: any) {\r\n let currentTime = Math.floor(Date.now() / 1000);\r\n let tokenTime = token.payload.exp;\r\n let expTime = (tokenTime - currentTime) * 1000;\r\n return expTime;\r\n }\r\n\r\n\r\n getCurrentUserDetails() {\r\n let poolData = new UserPoolInformation(this.libraryConfig.cognito.userPoolId, this.libraryConfig.cognito.clientId);\r\n let userPool = new CognitoUserPool(poolData);\r\n return userPool.getCurrentUser();\r\n }\r\n\r\n getCognitoUserDetails(email: string): CognitoUser {\r\n this.poolData = new UserPoolInformation(this.libraryConfig.cognito.userPoolId, this.libraryConfig.cognito.clientId);\r\n this.userPool = new CognitoUserPool(this.poolData);\r\n\r\n let userData = {\r\n Username: email,\r\n Pool: this.userPool,\r\n };\r\n let cognitoUser = new CognitoUser(userData);\r\n return cognitoUser;\r\n }\r\n\r\n authenticate(email: string, password: string) {\r\n this.loginErrorMessage = null;\r\n let authData = new AuthenticationData(email, password);\r\n this.authenticationDetails = new AuthenticationDetails(authData);\r\n\r\n this.cognitoUser = this.getCognitoUserDetails(email);\r\n this.CognitoAuthentication(this.authenticationDetails);\r\n }\r\n\r\n CognitoAuthentication(authenticationDetails: AuthenticationDetails) {\r\n this.cognitoUser.authenticateUser(authenticationDetails, {\r\n onSuccess: async (result) => {\r\n this.getAllCognitoTokenAndGroups(result);\r\n await this.consumingProjectAuthService.onSuccessfulAuthenticatingUser(result);\r\n },\r\n onFailure: (err) => {\r\n this.consumingProjectAuthService.isLoggingIn = false;\r\n if (err.message == LoginConstant.tempPasswordExpiryError) {\r\n this.loginErrorMessage = LoginConstant.tempPasswordOnExpiryErrorMsg;\r\n this.consumingProjectAuthService.sendRegenerationEmail(this.authenticationDetails.getUsername());\r\n }\r\n else if (err.message === \"Password attempts exceeded\") {\r\n this.loginErrorMessage = LoginConstant.attemptLimitExceeded;\r\n } else {\r\n this.loginErrorMessage = LoginConstant.userNamePasswordIncorrect;\r\n }\r\n },\r\n newPasswordRequired: (data:any) => {\r\n this.consumingProjectAuthService.isLoggingIn = false;\r\n this.userAttribute = data;\r\n this.router.navigate([LoginConstant.setNewPasswordUrl]);\r\n },\r\n });\r\n }\r\n\r\n \r\n setNewPassword(newPassword: any) {\r\n delete this.userAttribute.email;\r\n delete this.userAttribute.email_verified;\r\n delete this.userAttribute.phone_number_verified;\r\n this.cognitoUser.completeNewPasswordChallenge(newPassword, this.userAttribute, {\r\n onSuccess: (result) => {\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n },\r\n onFailure: (error) => {\r\n this.setNewPasswordErrorMessage = LoginConstant.sessionExpired;\r\n this.setNewPasswordButtonMessage = LoginConstant.loginAgain;\r\n },\r\n });\r\n }\r\n\r\n onForgotPasswordGenerateOTP(email: string) {\r\n this.userName = email;\r\n this.cognitoUser = this.getCognitoUserDetails(email);\r\n this.cognitoUser.forgotPassword({\r\n onSuccess: (result) => {\r\n this.verifyAndSetNewPasswordMessage =\r\n LoginConstant.verifyAndSetNewPasswordMessage +\r\n result.CodeDeliveryDetails.Destination +\r\n LoginConstant.pleaseEnterItBelow;\r\n this.router.navigate([LoginConstant.verifyAndSetNewPasswordUrl]);\r\n },\r\n onFailure: (err) => {},\r\n });\r\n }\r\n\r\n verifyCode(verificationCode: string, newPassword: string) {\r\n this.cognitoUser.confirmPassword(verificationCode, newPassword, {\r\n onFailure: (error) => {\r\n this.noOfAttempts = this.noOfAttempts + 1;\r\n this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(error, this.noOfAttempts);\r\n this.forgotPasswordAndGlobalSignoutLoader = false;\r\n },\r\n onSuccess: () => {\r\n this.expiryAllExistingCurrentSession(newPassword);\r\n },\r\n });\r\n }\r\n\r\n forgotPasswordError(err: any, noOfAttempts: number) {\r\n let errorMessage;\r\n switch (err.code) {\r\n case \"LimitExceededException\":\r\n this.sessionLocked = true;\r\n errorMessage = LoginConstant.attemptLimitExceeded;\r\n break;\r\n case \"ExpiredCodeException\":\r\n errorMessage = LoginConstant.sessionExpired;\r\n this.verifyAndSetNewPasswordButton = LoginConstant.regenerateOtp;\r\n break;\r\n default:\r\n errorMessage = LoginConstant.attempt + \" \" + noOfAttempts + LoginConstant.attemptMessage;\r\n }\r\n return errorMessage;\r\n }\r\n\r\n getAllCognitoTokenAndGroups(token: CognitoUserSession) {\r\n this.accessToken = token.getAccessToken().getJwtToken();\r\n this.IdToken = token.getIdToken();\r\n if (\"cognito:groups\" in token.getAccessToken().payload) {\r\n this.aclService.userGroupsInCognitoJWT = token.getAccessToken().payload[\"cognito:groups\"];\r\n } else {\r\n this.aclService.userGroupsInCognitoJWT = [];\r\n }\r\n }\r\n\r\n expiryAllExistingCurrentSession(newPassword: string){\r\n let username = this.cognitoUser.getUsername();\r\n this.setUserDetails(username, newPassword);\r\n this.onLoginInCogntioToGetAccessToken();\r\n }\r\n\r\n setUserDetails(username: string, newPassword: string){\r\n this.loginErrorMessage = null;\r\n let authData = new AuthenticationData(username, newPassword);\r\n this.authenticationDetails = new AuthenticationDetails(authData);\r\n this.cognitoUser = this.getCognitoUserDetails(username);\r\n }\r\n\r\n onLoginInCogntioToGetAccessToken(){\r\n this.cognitoUser.authenticateUser(this.authenticationDetails, {\r\n onSuccess: async (result: CognitoUserSession) => {\r\n this.getAllCognitoTokenAndGroups(result);\r\n this.onCallGlobalSignout();\r\n },\r\n onFailure: (err) => {},\r\n newPasswordRequired: (data:any) => {},\r\n });\r\n }\r\n\r\n onCallGlobalSignout(){\r\n this.cognitoUser.globalSignOut({\r\n onSuccess: (result) => \r\n { \r\n console.log(result); \r\n this.forgotPasswordAndGlobalSignoutLoader = false;\r\n this.router.navigate([LoginConstant.loginPageUrl]); \r\n },\r\n onFailure: (err) => {}\r\n });\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, Renderer2, SimpleChanges, OnChanges, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[anna-cognito-lib-SpinnerButton]\",\r\n})\r\nexport class SpinnerButtonDirective implements OnInit, OnChanges {\r\n @Input(\"anna-cognito-lib-SpinnerButton\") loading: boolean;\r\n @Input(\"spinnerButtonText\") spinnerButtonText: string;\r\n child: HTMLDivElement;\r\n button: any;\r\n\r\n constructor(\r\n private el: ElementRef, \r\n private renderer: Renderer2) {\r\n this.button = this.el.nativeElement;\r\n this.child = document.createElement(\"div\");\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['spinnerButtonText'] && changes['spinnerButtonText'].currentValue) {\r\n this.button.innerHTML = this.spinnerButtonText;\r\n }\r\n if (changes['loading'] && changes['loading'].currentValue) {\r\n this.button.innerHTML = \"\";\r\n this.button.setAttribute(\"disabled\", \"true\");\r\n this.child.classList.add(\"spinner-for-button-directive\");\r\n this.renderer.appendChild(this.button, this.child);\r\n } else {\r\n this.child.classList.remove(\"spinner-for-button-directive\");\r\n this.button.removeAttribute(\"disabled\");\r\n this.button.innerHTML = this.spinnerButtonText;\r\n }\r\n }\r\n}\r\n","// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { AnnaLibAuthService } from '../../services/auth.service';\r\nimport { LibraryConfig } from '../../config/library.config';\r\n\r\n@Component({\r\n selector: \"anna-cognito-lib-login\",\r\n templateUrl: \"./login.component.html\",\r\n styleUrls: [\"./login.component.scss\"],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n loginForm: FormGroup;\r\n constants: typeof LoginConstant;\r\n \r\n constructor(\r\n public authService: AnnaLibAuthService,\r\n private fb: FormBuilder,\r\n public libraryConfig: LibraryConfig\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.onIntialiseForm();\r\n }\r\n\r\n onIntialiseForm() {\r\n this.loginForm = this.fb.group({\r\n username: [null],\r\n password: [null],\r\n });\r\n }\r\n\r\n OnLogin() {\r\n this.authService.consumingProjectAuthService.isLoggingIn = true;\r\n const username = this.loginForm.controls['username'].value;\r\n const password = this.loginForm.controls['password'].value;\r\n this.authService.authenticate(username, password);\r\n }\r\n\r\n \r\n}\r\n","<div class=\"main\">\r\n <!-- Load login page when all constant variable are intiated otherwise it will show a glitch. that's why ngIf check of constants.forgotPassword -->\r\n <section *ngIf=\"constants.forgotPassword\">\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" loading=\"eager\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"OnLogin()\">\r\n <div id=\"alert-div\" *ngIf=\"authService.loginErrorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p>{{ authService.loginErrorMessage }}</p>\r\n </div>\r\n\r\n <input\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"username\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"constants.enterEmail\"\r\n autocomplete=\"username\"\r\n autofocus\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"constants.password\"\r\n autocomplete=\"current-password\"\r\n autofocus\r\n />\r\n\r\n <a tabindex=\"4\" [routerLink]=\"constants.forgortPasswordPageUrl\">{{ constants.forgotPassword }}</a>\r\n <button\r\n tabindex=\"3\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"authService.consumingProjectAuthService.isLoggingIn\"\r\n [spinnerButtonText]=\"constants.login\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","// Angular import statements\r\nimport { EventEmitter, Inject, Input, Output } from \"@angular/core\";\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { AbstractControl, FormBuilder, FormGroup, ValidationErrors, ValidatorFn, Validators } from \"@angular/forms\";\r\n\r\n// Third party import statements\r\nimport { debounceTime } from \"rxjs/operators\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-password-matching',\r\n templateUrl: './password-matching.component.html',\r\n styleUrls: ['./password-matching.component.scss']\r\n})\r\nexport class PasswordMatchingComponent implements OnInit {\r\n @Output() passwordChange = new EventEmitter();\r\n @Output() confirmPasswordChange = new EventEmitter();\r\n\r\n @Input() passwordNotMatching: boolean;\r\n passwordForm: FormGroup;\r\n constants: typeof LoginConstant;\r\n constructor(@Inject(FormBuilder) private fb: FormBuilder) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.createGroup();\r\n this.formValueChanged();\r\n }\r\n\r\n formValueChanged() {\r\n const password = this.passwordForm.get(\"password\");\r\n const confirmPassword = this.passwordForm.get(\"confirmPassword\");\r\n\r\n password && password.valueChanges.subscribe(() => {\r\n password && password.setValidators([\r\n Validators.required,\r\n this.regexValidator(new RegExp(\".{8,}\"), { minLength: true }),\r\n this.regexValidator(new RegExp(\"[a-z]\"), { lowercase: true }),\r\n this.regexValidator(new RegExp(\"[A-Z]\"), { uppercase: true }),\r\n this.regexValidator(new RegExp(\"[0-9]\"), { number: true }),\r\n this.regexValidator(new RegExp(\"[^a-zA-Z0-9]\"), { specialCharacter: true }),\r\n ]);\r\n password.updateValueAndValidity({ emitEvent: false });\r\n this.onPasswordChange();\r\n });\r\n\r\n if(confirmPassword){\r\n confirmPassword.valueChanges.pipe(debounceTime(300)).subscribe(() => {\r\n confirmPassword.setValidators([Validators.required]);\r\n confirmPassword.updateValueAndValidity({ emitEvent: false });\r\n this.onConfirmPasswordChange();\r\n });\r\n }\r\n \r\n }\r\n\r\n onPasswordChange() {\r\n let result = {\r\n value: this.passwordForm.value.password,\r\n status: this.passwordForm.controls['password'].status,\r\n };\r\n this.passwordChange.emit(result);\r\n }\r\n\r\n onConfirmPasswordChange() {\r\n let result = {\r\n value: this.passwordForm.value.confirmPassword,\r\n status: this.passwordForm.controls['confirmPassword'].status,\r\n };\r\n this.confirmPasswordChange.emit(result);\r\n }\r\n\r\n createGroup() {\r\n this.passwordForm = this.fb.group({\r\n password: [null],\r\n confirmPassword: [null],\r\n });\r\n return this.passwordForm;\r\n }\r\n\r\n // TODO: check the return again\r\n regexValidator(regex: RegExp, error: ValidationErrors): any\r\n {\r\n return (control: AbstractControl): { [key: string]: boolean } => {\r\n const valid = regex.test(control.value);\r\n return (valid ? null : error) as any;\r\n };\r\n }\r\n\r\n}\r\n","<form [formGroup]=\"passwordForm\">\r\n <div id=\"alert-div\" *ngIf=\"passwordNotMatching\">\r\n <div id=\"icon-div\">\r\n <span class=\"material-icons\">report</span>\r\n </div>\r\n <p>{{ constants.passwordNotMatching }}</p>\r\n </div>\r\n <div class=\"password-policies\">\r\n <ng-container *ngIf=\"!passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }} </b>\r\n </p>\r\n <p>{{ constants.minimumCharacter }}</p>\r\n <p>{{ constants.oneUppercase }}</p>\r\n <p>{{ constants.oneLowercase }}</p>\r\n <p>{{ constants.oneNumber }}</p>\r\n <p>{{ constants.specialCharacter }}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }}</b>\r\n </p>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('minLength') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('minLength')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('minLength')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.minimumCharacter }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('uppercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('uppercase')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('uppercase')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneUppercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('lowercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('lowercase')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('lowercase')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneLowercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('number') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('number')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('number')\"> check_circle </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneNumber }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('specialCharacter') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"material-icons\" *ngIf=\"passwordForm.get('password')?.hasError('specialCharacter')\"> cancel </span>\r\n <span class=\"material-icons\" *ngIf=\"!passwordForm.get('password')?.hasError('specialCharacter')\">\r\n check_circle\r\n </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.specialCharacter }}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [placeholder]=\"constants.password\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"3\"\r\n formControlName=\"confirmPassword\"\r\n [placeholder]=\"constants.confirmPassword\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n</form>\r\n","\r\n// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// User defined import statements\r\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { LibraryConfig } from '../../config/library.config';\r\ntype passwordType = { value: string | null, status: string | null };\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-set-new-password',\r\n templateUrl: './set-new-password.component.html',\r\n styleUrls: ['./set-new-password.component.scss']\r\n})\r\nexport class SetNewPasswordComponent implements OnInit {\r\n passwordNotMatching = false;\r\n \r\n password: passwordType = { value: null, status: null };\r\n confirmPassword: passwordType = { value: null, status: null };\r\n constants: typeof LoginConstant;\r\n\r\n constructor(public authService: AnnaLibAuthService, \r\n private router: Router,\r\n public libraryConfig: LibraryConfig) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.authService.setNewPasswordButtonMessage = LoginConstant.setNewPasswordButton;\r\n }\r\n\r\n isFormValid() {\r\n return this.password.status === \"VALID\" && this.confirmPassword.status === \"VALID\";\r\n }\r\n onPasswordChange($event: passwordType) {\r\n this.password = $event;\r\n }\r\n\r\n onConfirmPasswordChange($event: passwordType) {\r\n this.confirmPassword = $event;\r\n }\r\n\r\n onSettingNewPassword() {\r\n if (this.password.value != this.confirmPassword.value) {\r\n this.passwordNotMatching = true;\r\n } else {\r\n this.passwordNotMatching = false;\r\n if (this.authService.setNewPasswordButtonMessage === LoginConstant.loginAgain) {\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n } else {\r\n this.authService.setNewPassword(this.password.value);\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"main\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form>\r\n <div id=\"heading\">\r\n {{ constants.setNewPasswordHeading }}\r\n </div>\r\n\r\n <div id=\"alert-div\" *ngIf=\"authService.setNewPasswordErrorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p>{{ authService.setNewPasswordErrorMessage }}</p>\r\n </div>\r\n <anna-cognito-lib-password-matching\r\n (passwordChange)=\"onPasswordChange($event)\"\r\n (confirmPasswordChange)=\"onConfirmPasswordChange($event)\"\r\n [passwordNotMatching]=\"passwordNotMatching\"\r\n >\r\n </anna-cognito-lib-password-matching>\r\n <button tabindex=\"3\" class=\"login-btn\" [disabled]=\"!isFormValid()\" (click)=\"onSettingNewPassword()\">\r\n {{ authService.setNewPasswordButtonMessage }}\r\n </button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\r\n\r\n// Third party import statements\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { forkJoin, catchError, pipe, map } from \"rxjs\";\r\n\r\n// User defined import statements\r\nimport { UsernameInfo, UserState } from \"../../models/auth.model\";\r\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { LibraryConfig } from '../../config/library.config';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-forgot-password',\r\n templateUrl: './forgot-password.component.html',\r\n styleUrls: ['./forgot-password.component.scss']\r\n})\r\nexport class ForgotPasswordComponent implements OnInit {\r\n errorMessage: string;\r\n verifyRegisteredEmail: FormGroup;\r\n passwordNotMatching = false;\r\n constants: typeof LoginConstant;\r\n password:any = { value: null, status: null };\r\n confirmPassword:any = { value: null, status: null };\r\n infoMessageToRedirectLogin: string = null;\r\n isLoading: boolean = false;\r\n\r\n constructor(\r\n private authService: AnnaLibAuthService,\r\n private fb: FormBuilder,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n public libraryConfig: LibraryConfig\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.infoMessageToRedirectLogin = null;\r\n this.constants = LoginConstant;\r\n this.onIntialiseForm();\r\n if (this.authService.userName) {\r\n this.onUpdateForm();\r\n }\r\n }\r\n\r\n onIntialiseForm() {\r\n this.verifyRegisteredEmail = this.fb.group({\r\n email: [null, [Validators.required]],\r\n });\r\n }\r\n\r\n onUpdateForm() {\r\n this.verifyRegisteredEmail.patchValue({\r\n email: this.authService.userName,\r\n });\r\n }\r\n\r\n isFormValid() {\r\n return this.verifyRegisteredEmail.valid;\r\n }\r\n\r\n onLoginOrGetOtpButtonClick(){\r\n if(this.infoMessageToRedirectLogin){\r\n this.router.navigate([LoginConstant.loginPageUrl]);\r\n }\r\n else {\r\n this.onVerifyRegisteredEmail();\r\n }\r\n }\r\n\r\n onVerifyRegisteredEmail() {\r\n this.isLoading = true;\r\n this.errorMessage = null;\r\n this.infoMessageToRedirectLogin = null;\r\n let username = this.verifyRegisteredEmail.controls['email'].value;\r\n\r\n let isUsernameAvailable = this.authService.consumingProjectAuthService.isUsernameAvailable(username);\r\n let isUsernameTempPasswordSet = this.authService.consumingProjectAuthService.getUserState(username);\r\n\r\n forkJoin([isUsernameAvailable, isUsernameTempPasswordSet]).subscribe(\r\n { next: (result) => {\r\n let isUsernameAvailable = new UsernameInfo(result[0]).isUsernameAvailable;\r\n let isUserWithTempPassword = new UserState(result[1]).isUserWithTempPassword;\r\n this.onGettingUserStatus(isUsernameAvailable,isUserWithTempPassword,username);\r\n this.isLoading = false;\r\n },\r\n error: (error) => {\r\n if(error.status == 400){\r\n this.errorMessage = this.constants.userNotFound;\r\n }\r\n else {\r\n this.toastr.error(LoginConstant.apiFailErrorMessage);\r\n }\r\n this.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n onGettingUserStatus(isUsernameAvailable: boolean, isUserWithTempPassword: boolean, username: string){\r\n if(!isUsernameAvailable){\r\n if(!isUserWithTempPassword){\r\n this.authService.onForgotPasswordGenerateOTP(username);\r\n }\r\n else {\r\n this.infoMessageToRedirectLogin = this.constants.firstTimeLoginUserTempPasswordMsg;\r\n }\r\n }\r\n else {\r\n this.errorMessage = this.constants.userNotFound;\r\n }\r\n }\r\n}\r\n","<div class=\"main\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{ constants.forgotPasswordMessage }}\r\n </p>\r\n </ng-container>\r\n <div id=\"alert-div\" *ngIf=\"errorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div id=\"info-div\" *ngIf=\"infoMessageToRedirectLogin\">\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"constants.enterEmail\"\r\n [ngClass]=\"{\r\n 'input-invalid': verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","// Angular import statements\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// User defined import statements\r\nimport { LoginConstant } from \"../../constants/loginConstant\";\r\nimport { AnnaLibAuthService } from '../../services/auth.service';\r\nimport { LibraryConfig } from '../../config/library.config';\r\ntype passwordType = { value: string | null, status: string | null };\r\n\r\n@Component({\r\n selector: 'anna-cognito-lib-verify-and-set-new-password',\r\n templateUrl: './verify-and-set-new-password.component.html',\r\n styleUrls: ['./verify-and-set-new-password.component.scss']\r\n})\r\nexport class VerifyAndSetNewPasswordComponent implements OnInit {\r\n verifyOtpForm: FormGroup;\r\n passwordNotMatching = false;\r\n constants: typeof LoginConstant;\r\n password: passwordType = { value: null, status: null };\r\n confirmPassword: passwordType = { value: null, status: null };\r\n\r\n constructor(\r\n public authService: AnnaLibAuthService,\r\n private fb: FormBuilder,\r\n private router: Router,\r\n public libraryConfig: LibraryConfig\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.constants = LoginConstant;\r\n this.authService.verifyAndSetNewPasswordButton = LoginConstant.setNewPasswordButton;\r\n this.onIntialiseForm();\r\n }\r\n\r\n onIntialiseForm() {\r\n this.verifyOtpForm = this.fb.group({\r\n otp: [null, [Validators.required]],\r\n });\r\n }\r\n\r\n isFormValid() {\r\n if (\r\n this.password.status === \"VALID\" &&\r\n this.confirmPassword.status === \"VALID\" &&\r\n this.verifyOtpForm.controls['otp'].valid\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n onPasswordChange($event: passwordType) {\r\n this.password = $event;\r\n }\r\n\r\n onConfirmPasswordChange($event: passwordType) {\r\n this.confirmPassword = $event;\r\n }\r\n\r\n onVerifyOtpSettingNewPassword() {\r\n if (this.password.value != this.confirmPassword.value) {\r\n this.passwordNotMatching = true;\r\n } else {\r\n this.passwordNotMatching = false;\r\n this.authService.forgotPasswordAndGlobalSignoutLoader = true;\r\n if (this.authService.verifyAndSetNewPasswordButton === LoginConstant.regenerateOtp) {\r\n this.router.navigate([LoginConstant.forgortPasswordPageUrl]);\r\n } else {\r\n this.password.value && this.authService.verifyCode(this.verifyOtpForm.controls['otp'].value, this.password.value);\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\n","<div class=\"main\" [ngClass]=\"{ 'main-height': authService.verifyAndSetNewPasswordErrorMessage }\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <span class=\"back-btn\" [routerLink]=\"constants.forgortPasswordPageUrl\">\r\n <i class=\"mdi mdi-arrow-left\"></i>\r\n </span>\r\n\r\n <form [formGroup]=\"verifyOtpForm\">\r\n <div class=\"pull-left\" id=\"heading\">\r\n {{ constants.verifyAndSetNewPasswordheading }}\r\n </div>\r\n <p>{{ authService.verifyAndSetNewPasswordMessage }}</p>\r\n\r\n <div id=\"alert-div\" *ngIf=\"authService.verifyAndSetNewPasswordErrorMessage\">\r\n <div id=\"icon-div\">\r\n <span class=\"material-icons\">report</span>\r\n </div>\r\n <p id=\"display-block-msg\">{{ authService.verifyAndSetNewPasswordErrorMessage }}</p>\r\n </div>\r\n\r\n <input\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"otp\"\r\n [placeholder]=\"constants.enterOtp\"\r\n autocomplete=\"new-field-name\"\r\n [ngClass]=\"{ 'input-invalid': authService.verifyAndSetNewPasswordErrorMessage }\"\r\n />\r\n\r\n <anna-cognito-lib-password-matching\r\n (passwordChange)=\"onPasswordChange($event)\"\r\n (confirmPasswordChange)=\"onConfirmPasswordChange($event)\"\r\n [passwordNotMatching]=\"passwordNotMatching\"\r\n >\r\n </anna-cognito-lib-password-matching>\r\n <button\r\n tabindex=\"4\"\r\n class=\"login-btn\"\r\n type=\"submit\"\r\n [disabled]=\"authService.sessionLocked || !isFormValid()\"\r\n (click)=\"onVerifyOtpSettingNewPassword()\"\r\n [anna-cognito-lib-SpinnerButton]=\"authService.forgotPasswordAndGlobalSignoutLoader\"\r\n [spinnerButtonText]=\"authService.verifyAndSetNewPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <img src=\"assets/images/powered-by-surewaves-min.png\" loading=\"eager\" alt=\"Powered by surwaves\" />\r\n </footer>\r\n </section>\r\n</div>\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { SpinnerButtonDirective } from './directives/spinner-button';\r\nimport { LibraryConfig } from './config/library.config';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SetNewPasswordComponent } from './components/set-new-password/set-new-password.component';\r\nimport { PasswordMatchingComponent } from './components/password-matching/password-matching.component';\r\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\r\nimport { VerifyAndSetNewPasswordComponent } from './components/verify-and-set-new-password/verify-and-set-new-password.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n LoginComponent,\r\n SetNewPasswordComponent,\r\n PasswordMatchingComponent,\r\n ForgotPasswordComponent,\r\n VerifyAndSetNewPasswordComponent,\r\n SpinnerButtonDirective,\r\n ],\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n CommonModule\r\n ],\r\n exports: [\r\n LoginComponent,\r\n SetNewPasswordComponent,\r\n PasswordMatchingComponent,\r\n ForgotPasswordComponent,\r\n VerifyAndSetNewPasswordComponent,\r\n SpinnerButtonDirective\r\n ]\r\n})\r\nexport class AnnaCognitoLibModule {\r\n public static forRoot(configuration: LibraryConfig): ModuleWithProviders<AnnaCognitoLibModule> {\r\n return {\r\n ngModule: AnnaCognitoLibModule,\r\n providers: [\r\n {\r\n provide: LibraryConfig, \r\n useValue: configuration\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of anna-cognito-lib\r\n */\r\n\r\nexport * from './lib/anna-cognito-lib.module';\r\n\r\n//COMPONENTS \r\nexport * from './lib/components/login/login.component';\r\nexport * from './lib/components/forgot-password/forgot-password.component';\r\nexport * from './lib/components/set-new-password/set-new-password.component';\r\nexport * from './lib/components/password-matching/password-matching.component';\r\nexport * from './lib/components/verify-and-set-new-password/verify-and-set-new-password.component';\r\n\r\n//SERVICES \r\nexport * from './lib/services/auth.service';\r\nexport * from './lib/services/acl.service';\r\nexport * from './lib/config/auth-service.token';\r\nexport * from './lib/config/acl-service.token';\r\nexport * from './lib/config/library.config';\r\n\r\n//DIRECTIVES \r\nexport * from './lib/directives/spinner-button';\r\n\r\n//CONSTANTS \r\nexport * from './lib/constants/loginConstant';\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AnnaLibAuthService","i3.LibraryConfig","i4","i5","i6.SpinnerButtonDirective","i1","i2","i4.PasswordMatchingComponent","i3","i5.LibraryConfig","i7.SpinnerButtonDirective","i4.LibraryConfig","i5.PasswordMatchingComponent"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@annalib/anna-cognito-lib",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.2.0",
6
6
  "@angular/core": "^13.2.0",