import { MAX_PASSWORD_LENGTH, MIN_PASSWORD_LENGTH, PASSWORD_STRENGTH_ACME } from '@/config/validation' import { object, string } from 'zod' // all translations is implemented in '@/components/ui/form' via TranslateClientFragment const minPasswordMessage = JSON.stringify(['schema.password.length.min', { min: MIN_PASSWORD_LENGTH }]) const maxPasswordMessage = JSON.stringify(['schema.password.length.max', { max: MAX_PASSWORD_LENGTH }]) const maxPasswordStrength = JSON.stringify( ['schema.password.strength.acme', { min: MIN_PASSWORD_LENGTH, max: MAX_PASSWORD_LENGTH }]) const email = string().trim().toLowerCase().email({ message: 'schema.email.required' }) const password = string().trim().regex(new RegExp(PASSWORD_STRENGTH_ACME, 'mg'), { message: maxPasswordStrength }).min(MIN_PASSWORD_LENGTH, { message: minPasswordMessage }). max(MAX_PASSWORD_LENGTH, { message: maxPasswordMessage }) export const LoginSchema = object({ email, password: string().trim().min(1, { message: 'schema.password.required' }), }) export const RegisterSchema = object({ email, password, name: string().trim().min(1, { message: 'schema.name.required' }), }) export const ResetSchema = object({ email, }) export const NewPasswordSchema = object({ password, })