From dac0f758ef108ad1b795ac4419e3b9f2afb546b7 Mon Sep 17 00:00:00 2001 From: Shuotian Cheng Date: Thu, 9 Jan 2025 16:00:10 -0800 Subject: [PATCH] Use email-validator to validate email --- package.json | 1 + src/objects/serverside/utils.js | 8 +++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 47e43cb1..37781646 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "dependencies": { "axios": "^1.4.0", "currency-codes": "^1.5.1", + "email-validator": "^2.0.4", "iso-3166-1": "^2.1.1", "js-sha256": "^0.9.0", "mixwith": "~0.1.1" diff --git a/src/objects/serverside/utils.js b/src/objects/serverside/utils.js index 36448af6..8e591c6e 100644 --- a/src/objects/serverside/utils.js +++ b/src/objects/serverside/utils.js @@ -7,6 +7,7 @@ * @flow */ +import validator from 'email-validator'; import DeliveryCategory from './delivery-category.js'; const sha256 = require('js-sha256'); @@ -153,15 +154,12 @@ export default class ServerSideUtils { } /** - * Normalizes the given email to RFC 822 standard and returns acceptable email value * @param {String} [email] email value to be normalized. * @return {String} Normalized email value. */ static normalizeEmail (email: string) { - // RFC 2822 REGEX approximation - const EMAIL_RE = /^[\w!#\$%&'\*\+\/\=\?\^`\{\|\}~\-]+(:?\.[\w!#\$%&'\*\+\/\=\?\^`\{\|\}~\-]+)*@(?:[a-z0-9](?:[a-z0-9\-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9\-]*[a-z0-9])?$/i; - - if (!EMAIL_RE.test(email)) { + // Use email-validator to validate the email format + if (!validator.validate(email)) { throw new Error("Invalid email format for the passed email:'" + email + "'.Please check the passed email format."); }