fix(email): validate using RFC5322 regex and remove redundant Zod check

This commit is contained in:
Nawaz Dhandala
2025-11-06 11:55:14 +00:00
parent 12364415aa
commit 20a3eab3a0

View File

@@ -52,11 +52,16 @@ export default class Email extends DatabaseProperty {
}
public static isValid(value: string): boolean {
if (!value) {
// from https://datatracker.ietf.org/doc/html/rfc5322
const re: RegExp =
// eslint-disable-next-line no-control-regex
/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/i;
const isValid: boolean = re.test(value);
if (!isValid) {
return false;
}
return Zod.string().email().safeParse(value).success;
return true;
}
public override toJSON(): JSONObject {