@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.
Files changed (58) hide show
  1. package/README.md +150 -0
  2. package/core/utils/index.d.ts +4 -0
  3. package/core/utils/index.js +4 -0
  4. package/core/utils/isFullNameValidCharacters/index.d.ts +1 -0
  5. package/core/utils/isFullNameValidCharacters/index.js +1 -0
  6. package/core/utils/isFullNameValidCharacters/isFullNameValidCharacters.d.ts +5 -0
  7. package/core/utils/isFullNameValidCharacters/isFullNameValidCharacters.js +5 -0
  8. package/core/utils/isHasConsecutiveChars/index.d.ts +1 -0
  9. package/core/utils/isHasConsecutiveChars/index.js +1 -0
  10. package/core/utils/isHasConsecutiveChars/isHasConsecutiveChars.d.ts +4 -0
  11. package/core/utils/isHasConsecutiveChars/isHasConsecutiveChars.js +4 -0
  12. package/core/utils/isStartsWithAndEndsWithLetter/index.d.ts +1 -0
  13. package/core/utils/isStartsWithAndEndsWithLetter/index.js +1 -0
  14. package/core/utils/isStartsWithAndEndsWithLetter/isStartsWithAndEndsWithLetter.d.ts +4 -0
  15. package/core/utils/isStartsWithAndEndsWithLetter/isStartsWithAndEndsWithLetter.js +4 -0
  16. package/core/utils/isValidFullNameLength/index.d.ts +1 -0
  17. package/core/utils/isValidFullNameLength/index.js +1 -0
  18. package/core/utils/isValidFullNameLength/isValidFullNameLength.d.ts +4 -0
  19. package/core/utils/isValidFullNameLength/isValidFullNameLength.js +4 -0
  20. package/index.d.ts +6 -0
  21. package/index.js +6 -0
  22. package/package.json +1 -1
  23. package/passportCode/constants.d.ts +4 -0
  24. package/passportCode/constants.js +13 -0
  25. package/passportCode/index.d.ts +2 -0
  26. package/passportCode/index.js +2 -0
  27. package/passportCode/passportCode.d.ts +17 -0
  28. package/passportCode/passportCode.js +38 -0
  29. package/passportNumber/constants.d.ts +4 -0
  30. package/passportNumber/constants.js +13 -0
  31. package/passportNumber/index.d.ts +2 -0
  32. package/passportNumber/index.js +2 -0
  33. package/passportNumber/passportNumber.d.ts +17 -0
  34. package/passportNumber/passportNumber.js +32 -0
  35. package/passportSeries/constants.d.ts +4 -0
  36. package/passportSeries/constants.js +13 -0
  37. package/passportSeries/index.d.ts +2 -0
  38. package/passportSeries/index.js +2 -0
  39. package/passportSeries/passportSeries.d.ts +17 -0
  40. package/passportSeries/passportSeries.js +32 -0
  41. package/personName/constants.d.ts +2 -0
  42. package/personName/constants.js +5 -0
  43. package/personName/index.d.ts +2 -0
  44. package/personName/index.js +2 -0
  45. package/personName/personName.d.ts +17 -0
  46. package/personName/personName.js +29 -0
  47. package/personPatronymic/constants.d.ts +2 -0
  48. package/personPatronymic/constants.js +5 -0
  49. package/personPatronymic/index.d.ts +2 -0
  50. package/personPatronymic/index.js +2 -0
  51. package/personPatronymic/personPatronymic.d.ts +17 -0
  52. package/personPatronymic/personPatronymic.js +29 -0
  53. package/personSurname/constants.d.ts +2 -0
  54. package/personSurname/constants.js +5 -0
  55. package/personSurname/index.d.ts +2 -0
  56. package/personSurname/index.js +2 -0
  57. package/personSurname/personSurname.d.ts +17 -0
  58. 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
  - Возвращает ошибку если:
@@ -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';
@@ -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,4 @@
1
+ /**
2
+ * @description Проверяет, что текст не может содержать последовательно два спецсимвола/пробела
3
+ */
4
+ export declare const isHasConsecutiveChars: (value: string) => boolean;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @description Проверяет, что текст не может содержать последовательно два спецсимвола/пробела
3
+ */
4
+ export const isHasConsecutiveChars = (value) => /([`~!@#$%^&*()\-_=+[{\]}\|;:'",<.>/?])\1|\s{2}/.test(value);
@@ -0,0 +1 @@
1
+ export * from './isStartsWithAndEndsWithLetter';
@@ -0,0 +1 @@
1
+ export * from './isStartsWithAndEndsWithLetter';
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @description Проверяет, что текст начинается с буквы и заканчивается буквой, кроме скобок ()
3
+ */
4
+ export declare const isStartsWithAndEndsWithLetter: (value: string) => boolean;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @description Проверяет, что текст начинается с буквы и заканчивается буквой, кроме скобок ()
3
+ */
4
+ export const isStartsWithAndEndsWithLetter = (value) => !/^[IV а-яёА-ЯЁ()](?:.*[IV а-яёА-ЯЁ()])?$/.test(value);
@@ -0,0 +1 @@
1
+ export * from './isValidFullNameLength';
@@ -0,0 +1 @@
1
+ export * from './isValidFullNameLength';
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @description Проверяет, что длина значения находится в допустимом диапазоне от 1 до 200 символов
3
+ */
4
+ export declare const isValidFullNameLength: (value: string) => boolean;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @description Проверяет, что длина значения находится в допустимом диапазоне от 1 до 200 символов
3
+ */
4
+ export const isValidFullNameLength = (value) => value.length < 1 || value.length > 200;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astral/validations",
3
- "version": "4.0.0",
3
+ "version": "4.2.0",
4
4
  "browser": "./index.js",
5
5
  "main": "./index.js",
6
6
  "dependencies": {
@@ -0,0 +1,4 @@
1
+ import { ErrorInfo } from '../core';
2
+ export declare const PASSPORT_CODE_ERROR_INFO: ErrorInfo;
3
+ export declare const PASSPORT_CODE_LENGTH_ERROR_INFO: ErrorInfo;
4
+ export declare const PASSPORT_CODE_ONLY_DIGITS_ERROR_INFO: ErrorInfo;
@@ -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,2 @@
1
+ export * from './constants';
2
+ export * from './passportCode';
@@ -0,0 +1,2 @@
1
+ export * from './constants';
2
+ export * from './passportCode';
@@ -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,4 @@
1
+ import { ErrorInfo } from '../core';
2
+ export declare const PASSPORT_NUMBER_ERROR_INFO: ErrorInfo;
3
+ export declare const PASSPORT_NUMBER_LENGTH_ERROR_INFO: ErrorInfo;
4
+ export declare const PASSPORT_NUMBER_ONLY_DIGITS_ERROR_INFO: ErrorInfo;
@@ -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,2 @@
1
+ export * from './constants';
2
+ export * from './passportNumber';
@@ -0,0 +1,2 @@
1
+ export * from './constants';
2
+ export * from './passportNumber';
@@ -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,4 @@
1
+ import { ErrorInfo } from '../core';
2
+ export declare const PASSPORT_SERIES_ERROR_INFO: ErrorInfo;
3
+ export declare const PASSPORT_SERIES_ERROR_LENGTH_INFO: ErrorInfo;
4
+ export declare const PASSPORT_SERIES_ONLY_DIGITS_ERROR_INFO: ErrorInfo;
@@ -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,2 @@
1
+ export * from './constants';
2
+ export * from './passportSeries';
@@ -0,0 +1,2 @@
1
+ export * from './constants';
2
+ export * from './passportSeries';
@@ -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,2 @@
1
+ import { ErrorInfo } from '../core';
2
+ export declare const PERSON_NAME_ERROR_INFO: ErrorInfo;
@@ -0,0 +1,5 @@
1
+ import { createErrorCode } from '../core';
2
+ export const PERSON_NAME_ERROR_INFO = {
3
+ code: createErrorCode('personName'),
4
+ message: 'Проверьте имя',
5
+ };
@@ -0,0 +1,2 @@
1
+ export * from './constants';
2
+ export * from './personName';
@@ -0,0 +1,2 @@
1
+ export * from './constants';
2
+ export * from './personName';
@@ -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,2 @@
1
+ import { ErrorInfo } from '../core';
2
+ export declare const PERSON_PATRONYMIC_ERROR_INFO: ErrorInfo;
@@ -0,0 +1,5 @@
1
+ import { createErrorCode } from '../core';
2
+ export const PERSON_PATRONYMIC_ERROR_INFO = {
3
+ code: createErrorCode('personPatronymic'),
4
+ message: 'Проверьте отчество',
5
+ };
@@ -0,0 +1,2 @@
1
+ export * from './constants';
2
+ export * from './personPatronymic';
@@ -0,0 +1,2 @@
1
+ export * from './constants';
2
+ export * from './personPatronymic';
@@ -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,2 @@
1
+ import { ErrorInfo } from '../core';
2
+ export declare const PERSON_SURNAME_ERROR_INFO: ErrorInfo;
@@ -0,0 +1,5 @@
1
+ import { createErrorCode } from '../core';
2
+ export const PERSON_SURNAME_ERROR_INFO = {
3
+ code: createErrorCode('personSurname'),
4
+ message: 'Проверьте фамилию',
5
+ };
@@ -0,0 +1,2 @@
1
+ export * from './constants';
2
+ export * from './personSurname';
@@ -0,0 +1,2 @@
1
+ export * from './constants';
2
+ export * from './personSurname';
@@ -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 });