@astral/validations 4.0.0 → 4.1.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/README.md +69 -0
- package/core/utils/index.d.ts +4 -0
- package/core/utils/index.js +4 -0
- package/core/utils/isFullNameValidCharacters/index.d.ts +1 -0
- package/core/utils/isFullNameValidCharacters/index.js +1 -0
- package/core/utils/isFullNameValidCharacters/isFullNameValidCharacters.d.ts +5 -0
- package/core/utils/isFullNameValidCharacters/isFullNameValidCharacters.js +5 -0
- package/core/utils/isHasConsecutiveChars/index.d.ts +1 -0
- package/core/utils/isHasConsecutiveChars/index.js +1 -0
- package/core/utils/isHasConsecutiveChars/isHasConsecutiveChars.d.ts +4 -0
- package/core/utils/isHasConsecutiveChars/isHasConsecutiveChars.js +4 -0
- package/core/utils/isStartsWithAndEndsWithLetter/index.d.ts +1 -0
- package/core/utils/isStartsWithAndEndsWithLetter/index.js +1 -0
- package/core/utils/isStartsWithAndEndsWithLetter/isStartsWithAndEndsWithLetter.d.ts +4 -0
- package/core/utils/isStartsWithAndEndsWithLetter/isStartsWithAndEndsWithLetter.js +4 -0
- package/core/utils/isValidFullNameLength/index.d.ts +1 -0
- package/core/utils/isValidFullNameLength/index.js +1 -0
- package/core/utils/isValidFullNameLength/isValidFullNameLength.d.ts +4 -0
- package/core/utils/isValidFullNameLength/isValidFullNameLength.js +4 -0
- package/index.d.ts +3 -0
- package/index.js +3 -0
- package/package.json +1 -1
- package/personName/constants.d.ts +2 -0
- package/personName/constants.js +5 -0
- package/personName/index.d.ts +2 -0
- package/personName/index.js +2 -0
- package/personName/personName.d.ts +17 -0
- package/personName/personName.js +29 -0
- package/personPatronymic/constants.d.ts +2 -0
- package/personPatronymic/constants.js +5 -0
- package/personPatronymic/index.d.ts +2 -0
- package/personPatronymic/index.js +2 -0
- package/personPatronymic/personPatronymic.d.ts +17 -0
- package/personPatronymic/personPatronymic.js +29 -0
- package/personSurname/constants.d.ts +2 -0
- package/personSurname/constants.js +5 -0
- package/personSurname/index.d.ts +2 -0
- package/personSurname/index.js +2 -0
- package/personSurname/personSurname.d.ts +17 -0
- package/personSurname/personSurname.js +29 -0
package/README.md
CHANGED
@@ -34,6 +34,9 @@
|
|
34
34
|
- [kpp](#kpp)
|
35
35
|
- [ogrnIP](#ogrnIP)
|
36
36
|
- [ogrnUL](#ogrnUL)
|
37
|
+
- [personName](#personName)
|
38
|
+
- [personSurname](#personSurname)
|
39
|
+
- [personPatronymic](#personPatronymic)
|
37
40
|
- [date](#date)
|
38
41
|
- [min](#min-date)
|
39
42
|
- [max](#max-date)
|
@@ -573,6 +576,72 @@ validate('1-22-33-5555555-6')
|
|
573
576
|
|
574
577
|
---
|
575
578
|
|
579
|
+
### personName
|
580
|
+
|
581
|
+
Проверяет валидно ли имя
|
582
|
+
|
583
|
+
#### [Требования на реализацию](https://track.astral.ru/soft/wiki/pages/viewpage.action?pageId=3813152849#id-Требованиянареализацию-Требование5.Поле"Имя")
|
584
|
+
|
585
|
+
```ts
|
586
|
+
import { string, personName } from '@astral/validations';
|
587
|
+
|
588
|
+
const validate = string(personName());
|
589
|
+
|
590
|
+
// undefined
|
591
|
+
validate('Иван');
|
592
|
+
validate('иван');
|
593
|
+
|
594
|
+
// { message: 'Проверьте имя' }
|
595
|
+
validate('');
|
596
|
+
validate('Иван--Иван');
|
597
|
+
```
|
598
|
+
|
599
|
+
---
|
600
|
+
|
601
|
+
### personSurname
|
602
|
+
|
603
|
+
Проверяет валидно ли фамилия
|
604
|
+
|
605
|
+
#### [Требования на реализацию](https://track.astral.ru/soft/wiki/pages/viewpage.action?pageId=3813152849#id-Требованиянареализацию-Требование4.Поле"Фамилия")
|
606
|
+
|
607
|
+
```ts
|
608
|
+
import { string, personSurname } from '@astral/validations';
|
609
|
+
|
610
|
+
const validate = string(personSurname());
|
611
|
+
|
612
|
+
// undefined
|
613
|
+
validate('Иванов');
|
614
|
+
validate('иванов');
|
615
|
+
|
616
|
+
// { message: 'Проверьте фамилию' }
|
617
|
+
validate('');
|
618
|
+
validate('Иванов--иванов');
|
619
|
+
```
|
620
|
+
|
621
|
+
---
|
622
|
+
|
623
|
+
### personPatronymic
|
624
|
+
|
625
|
+
Проверяет валидно ли отчество
|
626
|
+
|
627
|
+
#### [Требования на реализацию](https://track.astral.ru/soft/wiki/pages/viewpage.action?pageId=3813152849#id-Требованиянареализацию-Требование6.Поле"Отчество")
|
628
|
+
|
629
|
+
```ts
|
630
|
+
import { string, personPatronymic } from '@astral/validations';
|
631
|
+
|
632
|
+
const validate = string(personPatronymic());
|
633
|
+
|
634
|
+
// undefined
|
635
|
+
validate('Иванович');
|
636
|
+
validate('иванович');
|
637
|
+
|
638
|
+
|
639
|
+
// { message: 'Проверьте отчество' }
|
640
|
+
validate('');
|
641
|
+
validate('Иванович--Иванович');
|
642
|
+
```
|
643
|
+
|
644
|
+
|
576
645
|
## date
|
577
646
|
|
578
647
|
- Возвращает ошибку если:
|
package/core/utils/index.d.ts
CHANGED
@@ -1,3 +1,7 @@
|
|
1
1
|
export * from './isStringOfZeros';
|
2
2
|
export * from './isNoDoubleZeroStart';
|
3
3
|
export * from './resetTime';
|
4
|
+
export * from './isStartsWithAndEndsWithLetter';
|
5
|
+
export * from './isHasConsecutiveChars';
|
6
|
+
export * from './isFullNameValidCharacters';
|
7
|
+
export * from './isValidFullNameLength';
|
package/core/utils/index.js
CHANGED
@@ -1,3 +1,7 @@
|
|
1
1
|
export * from './isStringOfZeros';
|
2
2
|
export * from './isNoDoubleZeroStart';
|
3
3
|
export * from './resetTime';
|
4
|
+
export * from './isStartsWithAndEndsWithLetter';
|
5
|
+
export * from './isHasConsecutiveChars';
|
6
|
+
export * from './isFullNameValidCharacters';
|
7
|
+
export * from './isValidFullNameLength';
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './isFullNameValidCharacters';
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './isFullNameValidCharacters';
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* @description Проверяет, что разрешенные символы в тексте: прописные (большие) и строчные буквы (включая ё) русского алфавита,
|
3
|
+
прописные (большие) буквы I и V латинского алфавита, -, пробел, точка, апостроф, запятая, открывающая и закрывающая скобка
|
4
|
+
*/
|
5
|
+
export declare const isFullNameValidCharacters: (value: string) => boolean;
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* @description Проверяет, что разрешенные символы в тексте: прописные (большие) и строчные буквы (включая ё) русского алфавита,
|
3
|
+
прописные (большие) буквы I и V латинского алфавита, -, пробел, точка, апостроф, запятая, открывающая и закрывающая скобка
|
4
|
+
*/
|
5
|
+
export const isFullNameValidCharacters = (value) => !/^([а-яёА-ЯЁIV ё.,'’()\-\s]+)$/.test(value);
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './isHasConsecutiveChars';
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './isHasConsecutiveChars';
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './isStartsWithAndEndsWithLetter';
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './isStartsWithAndEndsWithLetter';
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './isValidFullNameLength';
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './isValidFullNameLength';
|
package/index.d.ts
CHANGED
@@ -24,6 +24,9 @@ export { snils, SNILS_ERROR_INFO } from './snils';
|
|
24
24
|
export { createRule, REQUIRED_ERROR_INFO, type ValidationRule } from './core';
|
25
25
|
export { ogrnUL, OGRN_UL_ERROR_INFO } from './ogrnUL';
|
26
26
|
export { ogrnIP, OGRN_IP_ERROR_INFO } from './ogrnIP';
|
27
|
+
export { personName, PERSON_NAME_ERROR_INFO } from './personName';
|
28
|
+
export { personSurname, PERSON_SURNAME_ERROR_INFO } from './personSurname';
|
29
|
+
export { personPatronymic, PERSON_PATRONYMIC_ERROR_INFO, } from './personPatronymic';
|
27
30
|
export { any } from './any';
|
28
31
|
export { when } from './when';
|
29
32
|
export { toPrettyError } from './toPrettyError';
|
package/index.js
CHANGED
@@ -24,6 +24,9 @@ export { snils, SNILS_ERROR_INFO } from './snils';
|
|
24
24
|
export { createRule, REQUIRED_ERROR_INFO } from './core';
|
25
25
|
export { ogrnUL, OGRN_UL_ERROR_INFO } from './ogrnUL';
|
26
26
|
export { ogrnIP, OGRN_IP_ERROR_INFO } from './ogrnIP';
|
27
|
+
export { personName, PERSON_NAME_ERROR_INFO } from './personName';
|
28
|
+
export { personSurname, PERSON_SURNAME_ERROR_INFO } from './personSurname';
|
29
|
+
export { personPatronymic, PERSON_PATRONYMIC_ERROR_INFO, } from './personPatronymic';
|
27
30
|
export { any } from './any';
|
28
31
|
export { when } from './when';
|
29
32
|
export { toPrettyError } from './toPrettyError';
|
package/package.json
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
import { CommonRuleParams } from '../core';
|
2
|
+
type PersonNameParams = CommonRuleParams<string> & {
|
3
|
+
/**
|
4
|
+
* @description Замена стандартного сообщения ошибки.
|
5
|
+
*/
|
6
|
+
message?: string;
|
7
|
+
};
|
8
|
+
/**
|
9
|
+
* @description Проверяет валидно ли имя
|
10
|
+
* @example
|
11
|
+
* ```ts
|
12
|
+
* const validate = string(personName());
|
13
|
+
* validate("Иван");
|
14
|
+
* ```
|
15
|
+
*/
|
16
|
+
export declare const personName: <TLastSchemaValues extends Record<string, unknown>>(params?: PersonNameParams) => (value: string, prevCtx?: import("../core").ValidationContext<TLastSchemaValues> | undefined) => import("../core").ValidationResult;
|
17
|
+
export {};
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { createRule, isFullNameValidCharacters, isHasConsecutiveChars, isStartsWithAndEndsWithLetter, isValidFullNameLength, } from '../core';
|
2
|
+
import { PERSON_NAME_ERROR_INFO } from './constants';
|
3
|
+
/**
|
4
|
+
* @description Проверяет валидно ли имя
|
5
|
+
* @example
|
6
|
+
* ```ts
|
7
|
+
* const validate = string(personName());
|
8
|
+
* validate("Иван");
|
9
|
+
* ```
|
10
|
+
*/
|
11
|
+
export const personName = (params) => createRule((value, ctx) => {
|
12
|
+
const createPersonNameError = () => ctx.createError({
|
13
|
+
message: (params === null || params === void 0 ? void 0 : params.message) || PERSON_NAME_ERROR_INFO.message,
|
14
|
+
code: PERSON_NAME_ERROR_INFO.code,
|
15
|
+
});
|
16
|
+
if (isValidFullNameLength(value)) {
|
17
|
+
return createPersonNameError();
|
18
|
+
}
|
19
|
+
if (isFullNameValidCharacters(value)) {
|
20
|
+
return createPersonNameError();
|
21
|
+
}
|
22
|
+
if (isStartsWithAndEndsWithLetter(value)) {
|
23
|
+
return createPersonNameError();
|
24
|
+
}
|
25
|
+
if (isHasConsecutiveChars(value)) {
|
26
|
+
return createPersonNameError();
|
27
|
+
}
|
28
|
+
return undefined;
|
29
|
+
}, { exclude: params === null || params === void 0 ? void 0 : params.exclude });
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { CommonRuleParams } from '../core';
|
2
|
+
type PersonPatronymicParams = CommonRuleParams<string> & {
|
3
|
+
/**
|
4
|
+
* @description Замена стандартного сообщения ошибки.
|
5
|
+
*/
|
6
|
+
message?: string;
|
7
|
+
};
|
8
|
+
/**
|
9
|
+
* @description Проверяет валидно ли отчество
|
10
|
+
* @example
|
11
|
+
* ```ts
|
12
|
+
* const validate = string(personPatronymic());
|
13
|
+
* validate("Иванович");
|
14
|
+
* ```
|
15
|
+
*/
|
16
|
+
export declare const personPatronymic: <TLastSchemaValues extends Record<string, unknown>>(params?: PersonPatronymicParams) => (value: string, prevCtx?: import("../core").ValidationContext<TLastSchemaValues> | undefined) => import("../core").ValidationResult;
|
17
|
+
export {};
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { createRule, isFullNameValidCharacters, isHasConsecutiveChars, isStartsWithAndEndsWithLetter, isValidFullNameLength, } from '../core';
|
2
|
+
import { PERSON_PATRONYMIC_ERROR_INFO } from './constants';
|
3
|
+
/**
|
4
|
+
* @description Проверяет валидно ли отчество
|
5
|
+
* @example
|
6
|
+
* ```ts
|
7
|
+
* const validate = string(personPatronymic());
|
8
|
+
* validate("Иванович");
|
9
|
+
* ```
|
10
|
+
*/
|
11
|
+
export const personPatronymic = (params) => createRule((value, ctx) => {
|
12
|
+
const createPersonPatronymicError = () => ctx.createError({
|
13
|
+
message: (params === null || params === void 0 ? void 0 : params.message) || PERSON_PATRONYMIC_ERROR_INFO.message,
|
14
|
+
code: PERSON_PATRONYMIC_ERROR_INFO.code,
|
15
|
+
});
|
16
|
+
if (isValidFullNameLength(value)) {
|
17
|
+
return createPersonPatronymicError();
|
18
|
+
}
|
19
|
+
if (isFullNameValidCharacters(value)) {
|
20
|
+
return createPersonPatronymicError();
|
21
|
+
}
|
22
|
+
if (isStartsWithAndEndsWithLetter(value)) {
|
23
|
+
return createPersonPatronymicError();
|
24
|
+
}
|
25
|
+
if (isHasConsecutiveChars(value)) {
|
26
|
+
return createPersonPatronymicError();
|
27
|
+
}
|
28
|
+
return undefined;
|
29
|
+
}, { exclude: params === null || params === void 0 ? void 0 : params.exclude });
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { CommonRuleParams } from '../core';
|
2
|
+
type PersonSurnameParams = CommonRuleParams<string> & {
|
3
|
+
/**
|
4
|
+
* @description Замена стандартного сообщения ошибки.
|
5
|
+
*/
|
6
|
+
message?: string;
|
7
|
+
};
|
8
|
+
/**
|
9
|
+
* @description Проверяет валидно ли фамилия
|
10
|
+
* @example
|
11
|
+
* ```ts
|
12
|
+
* const validate = string(personSurname());
|
13
|
+
* validate("Иванов");
|
14
|
+
* ```
|
15
|
+
*/
|
16
|
+
export declare const personSurname: <TLastSchemaValues extends Record<string, unknown>>(params?: PersonSurnameParams) => (value: string, prevCtx?: import("../core").ValidationContext<TLastSchemaValues> | undefined) => import("../core").ValidationResult;
|
17
|
+
export {};
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { createRule, isFullNameValidCharacters, isHasConsecutiveChars, isStartsWithAndEndsWithLetter, isValidFullNameLength, } from '../core';
|
2
|
+
import { PERSON_SURNAME_ERROR_INFO } from './constants';
|
3
|
+
/**
|
4
|
+
* @description Проверяет валидно ли фамилия
|
5
|
+
* @example
|
6
|
+
* ```ts
|
7
|
+
* const validate = string(personSurname());
|
8
|
+
* validate("Иванов");
|
9
|
+
* ```
|
10
|
+
*/
|
11
|
+
export const personSurname = (params) => createRule((value, ctx) => {
|
12
|
+
const createPersonSurnameError = () => ctx.createError({
|
13
|
+
message: (params === null || params === void 0 ? void 0 : params.message) || PERSON_SURNAME_ERROR_INFO.message,
|
14
|
+
code: PERSON_SURNAME_ERROR_INFO.code,
|
15
|
+
});
|
16
|
+
if (isValidFullNameLength(value)) {
|
17
|
+
return createPersonSurnameError();
|
18
|
+
}
|
19
|
+
if (isFullNameValidCharacters(value)) {
|
20
|
+
return createPersonSurnameError();
|
21
|
+
}
|
22
|
+
if (isStartsWithAndEndsWithLetter(value)) {
|
23
|
+
return createPersonSurnameError();
|
24
|
+
}
|
25
|
+
if (isHasConsecutiveChars(value)) {
|
26
|
+
return createPersonSurnameError();
|
27
|
+
}
|
28
|
+
return undefined;
|
29
|
+
}, { exclude: params === null || params === void 0 ? void 0 : params.exclude });
|