2024-01-02 16:58:47 +01:00
|
|
|
import { env } from ".."
|
|
|
|
|
2024-01-02 16:38:58 +01:00
|
|
|
export const PASSWORD_MIN_LENGTH = 8
|
|
|
|
export const PASSWORD_MAX_LENGTH = 512
|
2024-01-02 12:29:27 +01:00
|
|
|
|
|
|
|
export function validatePassword(
|
|
|
|
password: string
|
|
|
|
): { valid: true } | { valid: false; error: string } {
|
2024-01-02 16:58:47 +01:00
|
|
|
if (env.isDev() && !env.isTest() && password) {
|
|
|
|
// We accept any password while on development
|
|
|
|
return { valid: true }
|
|
|
|
}
|
|
|
|
|
2024-01-02 16:38:58 +01:00
|
|
|
if (!password || password.length < PASSWORD_MIN_LENGTH) {
|
2024-01-02 13:22:38 +01:00
|
|
|
return {
|
|
|
|
valid: false,
|
|
|
|
error: "Password invalid. Minimum eight characters.",
|
|
|
|
}
|
2024-01-02 12:29:27 +01:00
|
|
|
}
|
|
|
|
|
2024-01-02 16:38:58 +01:00
|
|
|
if (password.length > PASSWORD_MAX_LENGTH) {
|
2024-01-02 15:16:09 +01:00
|
|
|
return {
|
|
|
|
valid: false,
|
2024-01-02 16:38:58 +01:00
|
|
|
error: `Password invalid. Maximum ${PASSWORD_MAX_LENGTH} characters.`,
|
2024-01-02 15:16:09 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-01-02 12:29:27 +01:00
|
|
|
return { valid: true }
|
|
|
|
}
|