@astral/validations 4.17.1 → 4.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/email/constants.d.ts +2 -0
- package/email/constants.js +3 -1
- package/email/email.js +5 -1
- package/package.json +1 -1
package/email/constants.d.ts
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
import { type ErrorInfo } from '../core';
|
2
2
|
export declare const EMAIL_REGEXP: RegExp;
|
3
3
|
export declare const EMAIL_CYRILLIC_PUNYCODE_REGEXP: RegExp;
|
4
|
+
export declare const LATIN_SYMBOLS: RegExp;
|
5
|
+
export declare const CYRILLIC_SYMBOLS: RegExp;
|
4
6
|
export declare const EMAIL_MAX_LENGTH = 254;
|
5
7
|
export declare const PUNYCODE_REGEXP: RegExp;
|
6
8
|
export declare const INVALID_EMAIL_ERROR_INFO: ErrorInfo;
|
package/email/constants.js
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
import { createErrorCode } from '../core';
|
2
2
|
export const EMAIL_REGEXP = /^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,}$/;
|
3
|
-
export const EMAIL_CYRILLIC_PUNYCODE_REGEXP = /^[
|
3
|
+
export const EMAIL_CYRILLIC_PUNYCODE_REGEXP = /^([A-z0-9][-_\+A-z0-9]+)|([А-яЁё0-9][-_\+А-яЁё0-9]+)@((([A-z0-9][-_A-z0-9]+)|([А-яЁё0-9][-_А-яЁё0-9]+)|(xn--[a-z0-9]+))\.)+?(([A-zА-яЁё]{2,})|(xn--[a-z0-9]+))$/;
|
4
|
+
export const LATIN_SYMBOLS = /[a-zA-Z]/;
|
5
|
+
export const CYRILLIC_SYMBOLS = /[а-яА-ЯёЁ]/;
|
4
6
|
export const EMAIL_MAX_LENGTH = 254;
|
5
7
|
export const PUNYCODE_REGEXP = /^xn--/;
|
6
8
|
export const INVALID_EMAIL_ERROR_INFO = {
|
package/email/email.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { createRule } from '../core';
|
2
|
-
import { DOUBLE_DOTS_EMAIL_ERROR_INFO, EMAIL_CYRILLIC_PUNYCODE_REGEXP, EMAIL_MAX_LENGTH, EMAIL_REGEXP, INVALID_EMAIL_ERROR_INFO, LENGTH_EMAIL_ERROR_INFO, PUNYCODE_REGEXP, } from './constants';
|
2
|
+
import { CYRILLIC_SYMBOLS, DOUBLE_DOTS_EMAIL_ERROR_INFO, EMAIL_CYRILLIC_PUNYCODE_REGEXP, EMAIL_MAX_LENGTH, EMAIL_REGEXP, INVALID_EMAIL_ERROR_INFO, LATIN_SYMBOLS, LENGTH_EMAIL_ERROR_INFO, PUNYCODE_REGEXP, } from './constants';
|
3
3
|
/**
|
4
4
|
* Проверяет валидность email.
|
5
5
|
* Работает с русскими доменами и punycode через параметр allowCyrillic.
|
@@ -32,6 +32,10 @@ export const email = (params) => createRule((value, ctx) => {
|
|
32
32
|
return ctx.createError(Object.assign(Object.assign({}, DOUBLE_DOTS_EMAIL_ERROR_INFO), { message: (params === null || params === void 0 ? void 0 : params.doubleDotsErrorMessage) ||
|
33
33
|
DOUBLE_DOTS_EMAIL_ERROR_INFO.message }));
|
34
34
|
}
|
35
|
+
//Проверка, что не может содержать одновременно латинские и кириллические символы
|
36
|
+
if (LATIN_SYMBOLS.test(hostname) && CYRILLIC_SYMBOLS.test(hostname)) {
|
37
|
+
return invalidEmailError;
|
38
|
+
}
|
35
39
|
if (!PUNYCODE_REGEXP.test(hostname) &&
|
36
40
|
hostname[2] === '-' &&
|
37
41
|
hostname[3] === '-') {
|