Skip to content

Commit

Permalink
Merge pull request #279 from wallotapp/249-fix-the-error-message-when…
Browse files Browse the repository at this point in the history
…-a-user-enters-a-username-with-an-uppercase-letter

Make registration form more user friendly
  • Loading branch information
kamarmack authored Feb 12, 2025
2 parents 7f6ffd5 + 7f3a86c commit af5bde5
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 13 deletions.
24 changes: 12 additions & 12 deletions packages/javascript-sdk/users/utils/password.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
import * as yup from 'yup';
import { GeneralizedFieldTypeEnum } from 'ergonomic';

export const passwordRegex =
/^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[!@#$%^&*\-+?_=])[A-Za-z\d!@#$%^&*\-+?_=]{8,}$/;
export const isPassword = (password: unknown): password is string =>
typeof password === 'string' &&
password.match(passwordRegex) !== null &&
password.length <= 40;
const specialCharacters = '!@#$%^&*-+?_=';
export const isPassword = (password: unknown): password is string => {
return (
typeof password === 'string' &&
password.length >= 7 &&
password.length <= 40 &&
password.split('').some((char) => specialCharacters.includes(char))
);
};
export const passwordRules = [
'at least 8 characters long',
'at least 7 characters long',
'at most 40 characters long',
'contain at least one uppercase letter',
'contain at least one lowercase letter',
'contain at least one number',
'contain at least one special character (!@#$%^&*-+?_=)',
`contain at least one special character (${specialCharacters})`,
];

export const passwordSchema = () =>
yup
.string()
.min(8)
.min(7)
.max(40)
.test({
message: '${path} is not a valid password',
Expand Down
2 changes: 1 addition & 1 deletion packages/javascript-sdk/users/utils/registerUserSchema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export const registerUserProperties = {
email: YupHelpers.emailAddress().required(),
password: passwordSchema().required().default(''),
redirect_uri: YupHelpers.url().nullable().default(null),
username: usernameSchema().required().default(''),
username: usernameSchema().required().default('').lowercase(),
} as const;
export const registerUserSchema = yup.object(registerUserProperties);
export const registerUserSchemaFieldSpecByFieldKey = getFieldSpecByFieldKey(
Expand Down

0 comments on commit af5bde5

Please sign in to comment.