diff --git a/package-lock.json b/package-lock.json index f4314bf..9004e16 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,6 @@ "cors": "^2.8.5", "crypto": "^1.0.1", "dotenv": "^16.4.5", - "email-check": "^1.1.0", "express": "^5.1.0", "express-rate-limit": "^7.5.0", "express-validator": "^7.2.1", @@ -42,11 +41,11 @@ "speakeasy": "^2.0.0", "sqlite3": "^5.1.7", "typeorm": "^0.3.20", - "uuid": "^11.1.0" + "uuid": "^11.1.0", + "validator": "^13.15.0" }, "devDependencies": { "@types/cors": "^2.8.14", - "@types/email-check": "^1.1.3", "@types/express": "^5.0.1", "@types/ip": "^1.1.3", "@types/jsonwebtoken": "^9.0.6", @@ -63,6 +62,7 @@ "@types/qrcode": "~1.5.5", "@types/speakeasy": "^2.0.10", "@types/uuid": "^10.0.0", + "@types/validator": "^13.15.0", "ts-node": "10.9.2", "typescript": "^5.8.3" } @@ -808,13 +808,6 @@ "@types/node": "*" } }, - "node_modules/@types/email-check": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@types/email-check/-/email-check-1.1.3.tgz", - "integrity": "sha512-XgU2uxm8JjfK9e/CJg389b96XeLxJbUSCfe4hZxxwTu3XYT7A70punAWfpdppFHWPDl/qNtHC9vl3TmRHom+8w==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/express": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.1.tgz", @@ -1106,6 +1099,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/validator": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.0.tgz", + "integrity": "sha512-nh7nrWhLr6CBq9ldtw0wx+z9wKnnv/uTVLA9g/3/TcOYxbpOSZE+MhKPmWqU+K0NvThjhv12uD8MuqijB0WzEA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/yauzl": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", @@ -2176,18 +2176,6 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "license": "MIT" }, - "node_modules/email-check": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/email-check/-/email-check-1.1.0.tgz", - "integrity": "sha512-VoqdsHtP/Ct+Dsl9nJRlvVXhcHicWjmmp2KvLbyg+WovdUXihe8EbDKC5u+3SlBQIlh8RK1qFD5A4RCgTrW9Wg==", - "license": "MIT", - "dependencies": { - "js-promisify": "1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -2551,6 +2539,15 @@ "node": ">= 8.0.0" } }, + "node_modules/express-validator/node_modules/validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -3164,15 +3161,6 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/js-promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/js-promisify/-/js-promisify-1.0.1.tgz", - "integrity": "sha512-/IBrGxYbrmRWA+rLtHVSiX7R92NuVqc84aSWXReEjwcj7NchYf+Wy/ShAapCmMM5ev0mvD2IhWmZIDk/7f/utQ==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -6032,9 +6020,9 @@ "license": "MIT" }, "node_modules/validator": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", - "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.0.tgz", + "integrity": "sha512-36B2ryl4+oL5QxZ3AzD0t5SsMNGvTtQHpjgFO5tbNxfXbMFkY822ktCDe1MnlqV3301QQI9SLHDNJokDI+Z9pA==", "license": "MIT", "engines": { "node": ">= 0.10" diff --git a/package.json b/package.json index 03e70f5..bbda6c1 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,6 @@ "cors": "^2.8.5", "crypto": "^1.0.1", "dotenv": "^16.4.5", - "email-check": "^1.1.0", "express": "^5.1.0", "express-rate-limit": "^7.5.0", "express-validator": "^7.2.1", @@ -58,11 +57,11 @@ "speakeasy": "^2.0.0", "sqlite3": "^5.1.7", "typeorm": "^0.3.20", - "uuid": "^11.1.0" + "uuid": "^11.1.0", + "validator": "^13.15.0" }, "devDependencies": { "@types/cors": "^2.8.14", - "@types/email-check": "^1.1.3", "@types/express": "^5.0.1", "@types/ip": "^1.1.3", "@types/jsonwebtoken": "^9.0.6", @@ -79,6 +78,7 @@ "@types/qrcode": "~1.5.5", "@types/speakeasy": "^2.0.10", "@types/uuid": "^10.0.0", + "@types/validator": "^13.15.0", "ts-node": "10.9.2", "typescript": "^5.8.3" } diff --git a/src/helpers/mailHelper.ts b/src/helpers/mailHelper.ts index b310bef..ff778b9 100644 --- a/src/helpers/mailHelper.ts +++ b/src/helpers/mailHelper.ts @@ -1,7 +1,7 @@ import { Transporter, createTransport, TransportOptions } from "nodemailer"; import { Attachment } from "nodemailer/lib/mailer"; import SettingHelper from "./settingsHelper"; -import emailCheck from "email-check"; +import validator from "validator"; export default abstract class MailHelper { private static transporter: Transporter; @@ -45,7 +45,8 @@ export default abstract class MailHelper { .then(() => { return true; }) - .catch(() => { + .catch((err) => { + console.log(err); return false; }) .finally(() => { @@ -56,13 +57,14 @@ export default abstract class MailHelper { } static async checkMail(mail: string): Promise { - return await emailCheck(mail) - .then((res) => { - return res; - }) - .catch((err) => { - return false; - }); + return validator.isEmail(mail); + // return await emailCheck(mail) + // .then((res) => { + // return res; + // }) + // .catch((err) => { + // return false; + // }); } static initialize() { diff --git a/src/helpers/settingsHelper.ts b/src/helpers/settingsHelper.ts index 15b78df..eee81b7 100644 --- a/src/helpers/settingsHelper.ts +++ b/src/helpers/settingsHelper.ts @@ -56,17 +56,12 @@ export default abstract class SettingHelper { return rawValue as unknown as SettingValueMapping[K]; } - let processedValue = rawValue; - if (typeof settingType.type === "string" && settingType.type.includes("/crypt")) { - processedValue = CodingHelper.decrypt(APPLICATION_SECRET, processedValue); - } - const baseType = typeof settingType.type === "string" ? (settingType.type.split("/")[0] as SettingTypeAtom) : (settingType.type as SettingTypeAtom); - return this.converters[baseType].fromString(processedValue) as unknown as SettingValueMapping[K]; + return this.converters[baseType].fromString(rawValue) as unknown as SettingValueMapping[K]; } /**