@astral/validations 4.0.0 → 4.2.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 +150 -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 +6 -0
- package/index.js +6 -0
- package/package.json +1 -1
- package/passportCode/constants.d.ts +4 -0
- package/passportCode/constants.js +13 -0
- package/passportCode/index.d.ts +2 -0
- package/passportCode/index.js +2 -0
- package/passportCode/passportCode.d.ts +17 -0
- package/passportCode/passportCode.js +38 -0
- package/passportNumber/constants.d.ts +4 -0
- package/passportNumber/constants.js +13 -0
- package/passportNumber/index.d.ts +2 -0
- package/passportNumber/index.js +2 -0
- package/passportNumber/passportNumber.d.ts +17 -0
- package/passportNumber/passportNumber.js +32 -0
- package/passportSeries/constants.d.ts +4 -0
- package/passportSeries/constants.js +13 -0
- package/passportSeries/index.d.ts +2 -0
- package/passportSeries/index.js +2 -0
- package/passportSeries/passportSeries.d.ts +17 -0
- package/passportSeries/passportSeries.js +32 -0
- 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,12 @@
|
|
34
34
|
- [kpp](#kpp)
|
35
35
|
- [ogrnIP](#ogrnIP)
|
36
36
|
- [ogrnUL](#ogrnUL)
|
37
|
+
- [personName](#personName)
|
38
|
+
- [personSurname](#personSurname)
|
39
|
+
- [personPatronymic](#personPatronymic)
|
40
|
+
- [passportSeries](#passportSeries)
|
41
|
+
- [passportNumber](#passportNumber)
|
42
|
+
- [passportCode](#passportCode)
|
37
43
|
- [date](#date)
|
38
44
|
- [min](#min-date)
|
39
45
|
- [max](#max-date)
|
@@ -573,6 +579,150 @@ validate('1-22-33-5555555-6')
|
|
573
579
|
|
574
580
|
---
|
575
581
|
|
582
|
+
### personName
|
583
|
+
|
584
|
+
Проверяет валидно ли имя
|
585
|
+
|
586
|
+
#### [Требования на реализацию](https://track.astral.ru/soft/wiki/pages/viewpage.action?pageId=3813152849#id-Требованиянареализацию-Требование5.Поле"Имя")
|
587
|
+
|
588
|
+
```ts
|
589
|
+
import { string, personName } from '@astral/validations';
|
590
|
+
|
591
|
+
const validate = string(personName());
|
592
|
+
|
593
|
+
// undefined
|
594
|
+
validate('Иван');
|
595
|
+
validate('иван');
|
596
|
+
|
597
|
+
// { message: 'Проверьте имя' }
|
598
|
+
validate('');
|
599
|
+
validate('Иван--Иван');
|
600
|
+
```
|
601
|
+
|
602
|
+
---
|
603
|
+
|
604
|
+
### personSurname
|
605
|
+
|
606
|
+
Проверяет валидно ли фамилия
|
607
|
+
|
608
|
+
#### [Требования на реализацию](https://track.astral.ru/soft/wiki/pages/viewpage.action?pageId=3813152849#id-Требованиянареализацию-Требование4.Поле"Фамилия")
|
609
|
+
|
610
|
+
```ts
|
611
|
+
import { string, personSurname } from '@astral/validations';
|
612
|
+
|
613
|
+
const validate = string(personSurname());
|
614
|
+
|
615
|
+
// undefined
|
616
|
+
validate('Иванов');
|
617
|
+
validate('иванов');
|
618
|
+
|
619
|
+
// { message: 'Проверьте фамилию' }
|
620
|
+
validate('');
|
621
|
+
validate('Иванов--иванов');
|
622
|
+
```
|
623
|
+
|
624
|
+
---
|
625
|
+
|
626
|
+
### personPatronymic
|
627
|
+
|
628
|
+
Проверяет валидно ли отчество
|
629
|
+
|
630
|
+
#### [Требования на реализацию](https://track.astral.ru/soft/wiki/pages/viewpage.action?pageId=3813152849#id-Требованиянареализацию-Требование6.Поле"Отчество")
|
631
|
+
|
632
|
+
```ts
|
633
|
+
import { string, personPatronymic } from '@astral/validations';
|
634
|
+
|
635
|
+
const validate = string(personPatronymic());
|
636
|
+
|
637
|
+
// undefined
|
638
|
+
validate('Иванович');
|
639
|
+
validate('иванович');
|
640
|
+
|
641
|
+
|
642
|
+
// { message: 'Проверьте отчество' }
|
643
|
+
validate('');
|
644
|
+
validate('Иванович--Иванович');
|
645
|
+
```
|
646
|
+
|
647
|
+
---
|
648
|
+
|
649
|
+
### passportSeries
|
650
|
+
|
651
|
+
Проверяет валидна ли серия паспорта
|
652
|
+
|
653
|
+
#### [Требования на реализацию](https://track.astral.ru/soft/wiki/pages/viewpage.action?pageId=3813152849#id-Требованиянареализацию-8.1.Серияпаспорта)
|
654
|
+
|
655
|
+
```ts
|
656
|
+
import { string, passportSeries } from '@astral/validations';
|
657
|
+
|
658
|
+
const validate = string(passportSeries());
|
659
|
+
|
660
|
+
// undefined
|
661
|
+
validate('9217');
|
662
|
+
|
663
|
+
// { message: 'Проверьте серию' }
|
664
|
+
validate('0017');
|
665
|
+
|
666
|
+
// { message: 'Длина поля должна быть равна 4 символам' }
|
667
|
+
validate('917');
|
668
|
+
|
669
|
+
// { message: 'Только цифры' }
|
670
|
+
validate('91а7');
|
671
|
+
```
|
672
|
+
|
673
|
+
---
|
674
|
+
|
675
|
+
### passportNumber
|
676
|
+
|
677
|
+
Проверяет валиден ли номер паспорта
|
678
|
+
|
679
|
+
#### [Требования на реализацию](https://track.astral.ru/soft/wiki/pages/viewpage.action?pageId=3813152849#id-Требованиянареализацию-8.2.Номерпаспорта)
|
680
|
+
|
681
|
+
```ts
|
682
|
+
import { string, passportNumber } from '@astral/validations';
|
683
|
+
|
684
|
+
const validate = string(passportNumber());
|
685
|
+
|
686
|
+
// undefined
|
687
|
+
validate('704564');
|
688
|
+
|
689
|
+
// { message: 'Проверьте номер' }
|
690
|
+
validate('000100');
|
691
|
+
|
692
|
+
// { message: 'Длина поля должна быть равна 6 символам' }
|
693
|
+
validate('7045');
|
694
|
+
|
695
|
+
// { message: 'Только цифры' }
|
696
|
+
validate('70а5');
|
697
|
+
```
|
698
|
+
|
699
|
+
---
|
700
|
+
|
701
|
+
### passportCode
|
702
|
+
|
703
|
+
Проверяет валиден ли код паспорта
|
704
|
+
|
705
|
+
#### [Требования на реализацию](https://track.astral.ru/soft/wiki/pages/viewpage.action?pageId=3813152849#id-Требованиянареализацию-8.3.Кодподразделения)
|
706
|
+
|
707
|
+
```ts
|
708
|
+
import { string, passportCode } from '@astral/validations';
|
709
|
+
|
710
|
+
const validate = string(passportCode());
|
711
|
+
|
712
|
+
// undefined
|
713
|
+
validate('123256');
|
714
|
+
|
715
|
+
// { message: 'Проверьте код' }
|
716
|
+
validate('000-456');
|
717
|
+
|
718
|
+
// { message: 'Длина поля должна быть равна 6 символам' }
|
719
|
+
validate('1234');
|
720
|
+
|
721
|
+
// { message: 'Только цифры' }
|
722
|
+
validate('1а3');
|
723
|
+
```
|
724
|
+
|
725
|
+
|
576
726
|
## date
|
577
727
|
|
578
728
|
- Возвращает ошибку если:
|
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,12 @@ 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 { passportSeries, PASSPORT_SERIES_ERROR_INFO, PASSPORT_SERIES_ERROR_LENGTH_INFO, PASSPORT_SERIES_ONLY_DIGITS_ERROR_INFO, } from './passportSeries';
|
30
|
+
export { passportNumber, PASSPORT_NUMBER_ERROR_INFO, PASSPORT_NUMBER_LENGTH_ERROR_INFO, PASSPORT_NUMBER_ONLY_DIGITS_ERROR_INFO, } from './passportNumber';
|
31
|
+
export { passportCode, PASSPORT_CODE_ERROR_INFO, PASSPORT_CODE_LENGTH_ERROR_INFO, PASSPORT_CODE_ONLY_DIGITS_ERROR_INFO, } from './passportCode';
|
32
|
+
export { personPatronymic, PERSON_PATRONYMIC_ERROR_INFO, } from './personPatronymic';
|
27
33
|
export { any } from './any';
|
28
34
|
export { when } from './when';
|
29
35
|
export { toPrettyError } from './toPrettyError';
|
package/index.js
CHANGED
@@ -24,6 +24,12 @@ 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 { passportSeries, PASSPORT_SERIES_ERROR_INFO, PASSPORT_SERIES_ERROR_LENGTH_INFO, PASSPORT_SERIES_ONLY_DIGITS_ERROR_INFO, } from './passportSeries';
|
30
|
+
export { passportNumber, PASSPORT_NUMBER_ERROR_INFO, PASSPORT_NUMBER_LENGTH_ERROR_INFO, PASSPORT_NUMBER_ONLY_DIGITS_ERROR_INFO, } from './passportNumber';
|
31
|
+
export { passportCode, PASSPORT_CODE_ERROR_INFO, PASSPORT_CODE_LENGTH_ERROR_INFO, PASSPORT_CODE_ONLY_DIGITS_ERROR_INFO, } from './passportCode';
|
32
|
+
export { personPatronymic, PERSON_PATRONYMIC_ERROR_INFO, } from './personPatronymic';
|
27
33
|
export { any } from './any';
|
28
34
|
export { when } from './when';
|
29
35
|
export { toPrettyError } from './toPrettyError';
|
package/package.json
CHANGED
@@ -0,0 +1,13 @@
|
|
1
|
+
import { createErrorCode } from '../core';
|
2
|
+
export const PASSPORT_CODE_ERROR_INFO = {
|
3
|
+
code: createErrorCode('passportCode'),
|
4
|
+
message: 'Проверьте код',
|
5
|
+
};
|
6
|
+
export const PASSPORT_CODE_LENGTH_ERROR_INFO = {
|
7
|
+
code: createErrorCode('passportCode'),
|
8
|
+
message: 'Длина поля должна быть равна 6 символам',
|
9
|
+
};
|
10
|
+
export const PASSPORT_CODE_ONLY_DIGITS_ERROR_INFO = {
|
11
|
+
code: createErrorCode('passportCode'),
|
12
|
+
message: 'Только цифры',
|
13
|
+
};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { CommonRuleParams } from '../core';
|
2
|
+
type PassportCodeParams = CommonRuleParams<string> & {
|
3
|
+
/**
|
4
|
+
* @description Замена стандартного сообщения ошибки.
|
5
|
+
*/
|
6
|
+
message?: string;
|
7
|
+
};
|
8
|
+
/**
|
9
|
+
* @description Проверяет валиден ли код паспорта
|
10
|
+
* @example
|
11
|
+
* ```ts
|
12
|
+
* const validate = string(passportCode());
|
13
|
+
* validate('123456');
|
14
|
+
* ```
|
15
|
+
*/
|
16
|
+
export declare const passportCode: <TLastSchemaValues extends Record<string, unknown>>(params?: PassportCodeParams) => (value: string, prevCtx?: import("../core").ValidationContext<TLastSchemaValues> | undefined) => import("../core").ValidationResult;
|
17
|
+
export {};
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { createRule, isNoDoubleZeroStart } from '../core';
|
2
|
+
import { onlyNumber } from '../onlyNumber';
|
3
|
+
import { PASSPORT_CODE_ERROR_INFO, PASSPORT_CODE_LENGTH_ERROR_INFO, PASSPORT_CODE_ONLY_DIGITS_ERROR_INFO, } from './constants';
|
4
|
+
/**
|
5
|
+
* @description Проверяет валиден ли код паспорта
|
6
|
+
* @example
|
7
|
+
* ```ts
|
8
|
+
* const validate = string(passportCode());
|
9
|
+
* validate('123456');
|
10
|
+
* ```
|
11
|
+
*/
|
12
|
+
export const passportCode = (params) => createRule((value, ctx) => {
|
13
|
+
if (onlyNumber()(value)) {
|
14
|
+
return ctx.createError({
|
15
|
+
message: (params === null || params === void 0 ? void 0 : params.message) || PASSPORT_CODE_ONLY_DIGITS_ERROR_INFO.message,
|
16
|
+
code: PASSPORT_CODE_ONLY_DIGITS_ERROR_INFO.code,
|
17
|
+
});
|
18
|
+
}
|
19
|
+
if (!isNoDoubleZeroStart(value)) {
|
20
|
+
return ctx.createError({
|
21
|
+
message: (params === null || params === void 0 ? void 0 : params.message) || PASSPORT_CODE_ERROR_INFO.message,
|
22
|
+
code: PASSPORT_CODE_ERROR_INFO.code,
|
23
|
+
});
|
24
|
+
}
|
25
|
+
if (value.length !== 6) {
|
26
|
+
return ctx.createError({
|
27
|
+
message: (params === null || params === void 0 ? void 0 : params.message) || PASSPORT_CODE_LENGTH_ERROR_INFO.message,
|
28
|
+
code: PASSPORT_CODE_LENGTH_ERROR_INFO.code,
|
29
|
+
});
|
30
|
+
}
|
31
|
+
if (!/^([0-9]{2}[0-3])/.test(value)) {
|
32
|
+
return ctx.createError({
|
33
|
+
message: (params === null || params === void 0 ? void 0 : params.message) || PASSPORT_CODE_ERROR_INFO.message,
|
34
|
+
code: PASSPORT_CODE_ERROR_INFO.code,
|
35
|
+
});
|
36
|
+
}
|
37
|
+
return undefined;
|
38
|
+
}, { exclude: params === null || params === void 0 ? void 0 : params.exclude });
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { createErrorCode } from '../core';
|
2
|
+
export const PASSPORT_NUMBER_ERROR_INFO = {
|
3
|
+
code: createErrorCode('passportNumber'),
|
4
|
+
message: 'Проверьте номер',
|
5
|
+
};
|
6
|
+
export const PASSPORT_NUMBER_LENGTH_ERROR_INFO = {
|
7
|
+
code: createErrorCode('passportNumber'),
|
8
|
+
message: 'Длина поля должна быть равна 6 символам',
|
9
|
+
};
|
10
|
+
export const PASSPORT_NUMBER_ONLY_DIGITS_ERROR_INFO = {
|
11
|
+
code: createErrorCode('passportNumber'),
|
12
|
+
message: 'Только цифры',
|
13
|
+
};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { CommonRuleParams } from '../core';
|
2
|
+
type PassportNumberParams = CommonRuleParams<string> & {
|
3
|
+
/**
|
4
|
+
* @description Замена стандартного сообщения ошибки.
|
5
|
+
*/
|
6
|
+
message?: string;
|
7
|
+
};
|
8
|
+
/**
|
9
|
+
* @description Проверяет валиден ли номер паспорта
|
10
|
+
* @example
|
11
|
+
* ```ts
|
12
|
+
* const validate = string(passportNumber());
|
13
|
+
* validate('704564');
|
14
|
+
* ```
|
15
|
+
*/
|
16
|
+
export declare const passportNumber: <TLastSchemaValues extends Record<string, unknown>>(params?: PassportNumberParams) => (value: string, prevCtx?: import("../core").ValidationContext<TLastSchemaValues> | undefined) => import("../core").ValidationResult;
|
17
|
+
export {};
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { onlyNumber } from '../onlyNumber';
|
2
|
+
import { createRule } from '../core';
|
3
|
+
import { PASSPORT_NUMBER_ERROR_INFO, PASSPORT_NUMBER_LENGTH_ERROR_INFO, PASSPORT_NUMBER_ONLY_DIGITS_ERROR_INFO, } from './constants';
|
4
|
+
/**
|
5
|
+
* @description Проверяет валиден ли номер паспорта
|
6
|
+
* @example
|
7
|
+
* ```ts
|
8
|
+
* const validate = string(passportNumber());
|
9
|
+
* validate('704564');
|
10
|
+
* ```
|
11
|
+
*/
|
12
|
+
export const passportNumber = (params) => createRule((value, ctx) => {
|
13
|
+
if (onlyNumber()(value)) {
|
14
|
+
return ctx.createError({
|
15
|
+
message: (params === null || params === void 0 ? void 0 : params.message) || PASSPORT_NUMBER_ONLY_DIGITS_ERROR_INFO.message,
|
16
|
+
code: PASSPORT_NUMBER_ONLY_DIGITS_ERROR_INFO.code,
|
17
|
+
});
|
18
|
+
}
|
19
|
+
if (value.length !== 6) {
|
20
|
+
return ctx.createError({
|
21
|
+
message: (params === null || params === void 0 ? void 0 : params.message) || PASSPORT_NUMBER_LENGTH_ERROR_INFO.message,
|
22
|
+
code: PASSPORT_NUMBER_LENGTH_ERROR_INFO.code,
|
23
|
+
});
|
24
|
+
}
|
25
|
+
if (value < '000101' || value > '999999') {
|
26
|
+
return ctx.createError({
|
27
|
+
message: (params === null || params === void 0 ? void 0 : params.message) || PASSPORT_NUMBER_ERROR_INFO.message,
|
28
|
+
code: PASSPORT_NUMBER_ERROR_INFO.code,
|
29
|
+
});
|
30
|
+
}
|
31
|
+
return undefined;
|
32
|
+
}, { exclude: params === null || params === void 0 ? void 0 : params.exclude });
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { createErrorCode } from '../core';
|
2
|
+
export const PASSPORT_SERIES_ERROR_INFO = {
|
3
|
+
code: createErrorCode('passportSeries'),
|
4
|
+
message: 'Проверьте серию',
|
5
|
+
};
|
6
|
+
export const PASSPORT_SERIES_ERROR_LENGTH_INFO = {
|
7
|
+
code: createErrorCode('passportSeries'),
|
8
|
+
message: 'Длина поля должна быть равна 4 символам',
|
9
|
+
};
|
10
|
+
export const PASSPORT_SERIES_ONLY_DIGITS_ERROR_INFO = {
|
11
|
+
code: createErrorCode('passportSeries'),
|
12
|
+
message: 'Только цифры',
|
13
|
+
};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { CommonRuleParams } from '../core';
|
2
|
+
type PassportSeriesParams = CommonRuleParams<string> & {
|
3
|
+
/**
|
4
|
+
* @description Замена стандартного сообщения ошибки.
|
5
|
+
*/
|
6
|
+
message?: string;
|
7
|
+
};
|
8
|
+
/**
|
9
|
+
* @description Проверяет валидна ли серия паспорта
|
10
|
+
* @example
|
11
|
+
* ```ts
|
12
|
+
* const validate = string(passportSeries());
|
13
|
+
* validate('9217');
|
14
|
+
* ```
|
15
|
+
*/
|
16
|
+
export declare const passportSeries: <TLastSchemaValues extends Record<string, unknown>>(params?: PassportSeriesParams) => (value: string, prevCtx?: import("../core").ValidationContext<TLastSchemaValues> | undefined) => import("../core").ValidationResult;
|
17
|
+
export {};
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { createRule, isNoDoubleZeroStart } from '../core';
|
2
|
+
import { onlyNumber } from '../onlyNumber';
|
3
|
+
import { PASSPORT_SERIES_ERROR_INFO, PASSPORT_SERIES_ERROR_LENGTH_INFO, PASSPORT_SERIES_ONLY_DIGITS_ERROR_INFO, } from './constants';
|
4
|
+
/**
|
5
|
+
* @description Проверяет валидна ли серия паспорта
|
6
|
+
* @example
|
7
|
+
* ```ts
|
8
|
+
* const validate = string(passportSeries());
|
9
|
+
* validate('9217');
|
10
|
+
* ```
|
11
|
+
*/
|
12
|
+
export const passportSeries = (params) => createRule((value, ctx) => {
|
13
|
+
if (onlyNumber()(value)) {
|
14
|
+
return ctx.createError({
|
15
|
+
message: (params === null || params === void 0 ? void 0 : params.message) || PASSPORT_SERIES_ONLY_DIGITS_ERROR_INFO.message,
|
16
|
+
code: PASSPORT_SERIES_ONLY_DIGITS_ERROR_INFO.code,
|
17
|
+
});
|
18
|
+
}
|
19
|
+
if (value.length !== 4) {
|
20
|
+
return ctx.createError({
|
21
|
+
message: (params === null || params === void 0 ? void 0 : params.message) || PASSPORT_SERIES_ERROR_LENGTH_INFO.message,
|
22
|
+
code: PASSPORT_SERIES_ERROR_LENGTH_INFO.code,
|
23
|
+
});
|
24
|
+
}
|
25
|
+
if (!isNoDoubleZeroStart(value)) {
|
26
|
+
return ctx.createError({
|
27
|
+
message: (params === null || params === void 0 ? void 0 : params.message) || PASSPORT_SERIES_ERROR_INFO.message,
|
28
|
+
code: PASSPORT_SERIES_ERROR_INFO.code,
|
29
|
+
});
|
30
|
+
}
|
31
|
+
return undefined;
|
32
|
+
}, { exclude: params === null || params === void 0 ? void 0 : params.exclude });
|
@@ -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 });
|