@reformer/core 5.0.2 → 6.0.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 +7 -5
- package/dist/behaviors-O9a1Djj9.js +147 -0
- package/dist/behaviors.d.ts +131 -4
- package/dist/behaviors.js +298 -27
- package/dist/core/model/behaviors.d.ts +123 -0
- package/dist/core/model/form-model.d.ts +18 -0
- package/dist/core/model/index.d.ts +12 -0
- package/dist/core/model/types.d.ts +112 -0
- package/dist/core/model/validate-model.d.ts +46 -0
- package/dist/core/nodes/array-node.d.ts +34 -2
- package/dist/core/nodes/group-node.d.ts +19 -71
- package/dist/core/nodes/model-array-node.d.ts +71 -0
- package/dist/core/types/deep-schema.d.ts +16 -2
- package/dist/core/types/form-proxy.d.ts +17 -6
- package/dist/core/types/index.d.ts +5 -23
- package/dist/core/types/validation-schema.d.ts +15 -66
- package/dist/core/utils/create-form.d.ts +24 -0
- package/dist/core/utils/derived-registry.d.ts +5 -0
- package/dist/core/utils/index.d.ts +4 -4
- package/dist/core/utils/signal-node-registry.d.ts +12 -0
- package/dist/core/utils/type-guards.d.ts +2 -3
- package/dist/core/validation/index.d.ts +5 -11
- package/dist/core/validation/validators/email.d.ts +5 -29
- package/dist/core/validation/validators/future-date.d.ts +6 -28
- package/dist/core/validation/validators/index.d.ts +11 -4
- package/dist/core/validation/validators/integer.d.ts +13 -0
- package/dist/core/validation/validators/is-date.d.ts +5 -28
- package/dist/core/validation/validators/is-number.d.ts +14 -0
- package/dist/core/validation/validators/max-age.d.ts +6 -29
- package/dist/core/validation/validators/max-date.d.ts +6 -29
- package/dist/core/validation/validators/max-length.d.ts +5 -30
- package/dist/core/validation/validators/max.d.ts +7 -29
- package/dist/core/validation/validators/min-age.d.ts +6 -29
- package/dist/core/validation/validators/min-date.d.ts +6 -29
- package/dist/core/validation/validators/min-length.d.ts +5 -30
- package/dist/core/validation/validators/min.d.ts +7 -29
- package/dist/core/validation/validators/multiple-of.d.ts +13 -0
- package/dist/core/validation/validators/non-negative.d.ts +13 -0
- package/dist/core/validation/validators/non-zero.d.ts +13 -0
- package/dist/core/validation/validators/past-date.d.ts +5 -28
- package/dist/core/validation/validators/pattern.d.ts +5 -32
- package/dist/core/validation/validators/phone.d.ts +9 -19
- package/dist/core/validation/validators/required.d.ts +10 -31
- package/dist/core/validation/validators/url.d.ts +13 -15
- package/dist/index.d.ts +3 -4
- package/dist/index.js +1299 -875
- package/dist/validators/email.js +7 -9
- package/dist/validators/future-date.js +11 -12
- package/dist/validators/integer.d.ts +2 -0
- package/dist/validators/integer.js +10 -0
- package/dist/validators/is-date.js +6 -7
- package/dist/validators/is-number.d.ts +2 -0
- package/dist/validators/is-number.js +10 -0
- package/dist/validators/max-age.js +11 -12
- package/dist/validators/max-date.js +11 -12
- package/dist/validators/max-length.js +12 -8
- package/dist/validators/max.js +5 -6
- package/dist/validators/min-age.js +10 -11
- package/dist/validators/min-date.js +12 -13
- package/dist/validators/min-length.js +12 -8
- package/dist/validators/min.js +6 -7
- package/dist/validators/multiple-of.d.ts +2 -0
- package/dist/validators/multiple-of.js +10 -0
- package/dist/validators/non-negative.d.ts +2 -0
- package/dist/validators/non-negative.js +10 -0
- package/dist/validators/non-zero.d.ts +2 -0
- package/dist/validators/non-zero.js +10 -0
- package/dist/validators/past-date.js +11 -12
- package/dist/validators/pattern.js +6 -7
- package/dist/validators/phone.js +14 -32
- package/dist/validators/required.js +9 -10
- package/dist/validators/url.js +19 -16
- package/dist/validators.js +67 -54
- package/llms.txt +959 -2584
- package/package.json +19 -35
- package/dist/behaviors/compute-from.d.ts +0 -2
- package/dist/behaviors/compute-from.js +0 -31
- package/dist/behaviors/copy-from.d.ts +0 -2
- package/dist/behaviors/copy-from.js +0 -29
- package/dist/behaviors/enable-when.d.ts +0 -2
- package/dist/behaviors/enable-when.js +0 -25
- package/dist/behaviors/reset-when.d.ts +0 -2
- package/dist/behaviors/reset-when.js +0 -24
- package/dist/behaviors/revalidate-when.d.ts +0 -2
- package/dist/behaviors/revalidate-when.js +0 -18
- package/dist/behaviors/sync-fields.d.ts +0 -2
- package/dist/behaviors/sync-fields.js +0 -41
- package/dist/behaviors/transform-value.d.ts +0 -2
- package/dist/behaviors/transform-value.js +0 -45
- package/dist/behaviors/watch-field.d.ts +0 -2
- package/dist/behaviors/watch-field.js +0 -21
- package/dist/core/behavior/behavior-context.d.ts +0 -47
- package/dist/core/behavior/behavior-registry.d.ts +0 -85
- package/dist/core/behavior/behaviors/compute-from.d.ts +0 -70
- package/dist/core/behavior/behaviors/copy-from.d.ts +0 -56
- package/dist/core/behavior/behaviors/enable-when.d.ts +0 -118
- package/dist/core/behavior/behaviors/index.d.ts +0 -11
- package/dist/core/behavior/behaviors/reset-when.d.ts +0 -64
- package/dist/core/behavior/behaviors/revalidate-when.d.ts +0 -53
- package/dist/core/behavior/behaviors/sync-fields.d.ts +0 -48
- package/dist/core/behavior/behaviors/transform-value.d.ts +0 -192
- package/dist/core/behavior/behaviors/watch-field.d.ts +0 -80
- package/dist/core/behavior/compose-behavior.d.ts +0 -96
- package/dist/core/behavior/index.d.ts +0 -11
- package/dist/core/behavior/types.d.ts +0 -146
- package/dist/core/types/field-path.d.ts +0 -42
- package/dist/core/types/form-context.d.ts +0 -89
- package/dist/core/utils/field-path-navigator.d.ts +0 -240
- package/dist/core/utils/field-path.d.ts +0 -60
- package/dist/core/utils/registry-helpers.d.ts +0 -43
- package/dist/core/validation/core/apply-when.d.ts +0 -22
- package/dist/core/validation/core/apply.d.ts +0 -52
- package/dist/core/validation/core/index.d.ts +0 -8
- package/dist/core/validation/core/validate-async.d.ts +0 -36
- package/dist/core/validation/core/validate-tree.d.ts +0 -35
- package/dist/core/validation/core/validate.d.ts +0 -26
- package/dist/core/validation/validate-form.d.ts +0 -48
- package/dist/core/validation/validation-applicator.d.ts +0 -70
- package/dist/core/validation/validation-context.d.ts +0 -86
- package/dist/core/validation/validation-registry.d.ts +0 -142
- package/dist/core/validation/validators/array-validators.d.ts +0 -53
- package/dist/core/validation/validators/number.d.ts +0 -31
- package/dist/field-path-DuKdGcIE.js +0 -66
- package/dist/hooks/useHiddenCondition.d.ts +0 -25
- package/dist/index-D25LsbRm.js +0 -73
- package/dist/registry-helpers-Bv_BJ1s-.js +0 -615
- package/dist/safe-effect-Dh8uw81c.js +0 -20
- package/dist/validate-C3XiA_zf.js +0 -10
- package/dist/validators/number.d.ts +0 -2
- package/dist/validators/number.js +0 -35
- package/dist/validators-BGsNOgT1.js +0 -207
|
@@ -1,38 +1,16 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора максимального числового значения.
|
|
5
4
|
*
|
|
6
|
-
* Проверяет, что числовое значение не превышает указанный максимум.
|
|
7
5
|
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
8
6
|
*
|
|
9
|
-
* @group Validation
|
|
10
|
-
* @category Validators
|
|
11
|
-
*
|
|
12
|
-
* @param fieldPath - Путь к полю для валидации
|
|
13
|
-
* @param maxValue - Максимально допустимое значение
|
|
14
|
-
* @param options - Опции валидации (message, params)
|
|
15
|
-
*
|
|
16
7
|
* @example
|
|
17
8
|
* ```typescript
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* max(path.quantity, 100),
|
|
21
|
-
* max(path.discount, 50),
|
|
22
|
-
* ]
|
|
23
|
-
*
|
|
24
|
-
* // С кастомным сообщением
|
|
25
|
-
* max(path.quantity, 100, { message: 'Максимум 100 единиц' })
|
|
26
|
-
* ```
|
|
9
|
+
* import { validate } from '@reformer/core';
|
|
10
|
+
* import { max } from '@reformer/core/validators';
|
|
27
11
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* // Ошибка валидации
|
|
31
|
-
* {
|
|
32
|
-
* code: 'max',
|
|
33
|
-
* message: 'Максимальное значение: 100',
|
|
34
|
-
* params: { max: 100, actual: 150 }
|
|
35
|
-
* }
|
|
12
|
+
* validate(path.quantity, max(100));
|
|
13
|
+
* validate(path.discount, max(50, { message: 'Не более 50%' }));
|
|
36
14
|
* ```
|
|
37
15
|
*/
|
|
38
|
-
export declare function max<TForm, TField extends number |
|
|
16
|
+
export declare function max<TForm = unknown, TField extends number | undefined = number>(maxValue: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,36 +1,13 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора минимального возраста (по дате рождения).
|
|
5
4
|
*
|
|
6
|
-
* Пустые
|
|
7
|
-
*
|
|
8
|
-
* @group Validation
|
|
9
|
-
* @category Validators
|
|
10
|
-
*
|
|
11
|
-
* @param fieldPath - Путь к полю для валидации (дата рождения)
|
|
12
|
-
* @param minAgeValue - Минимально допустимый возраст в годах
|
|
13
|
-
* @param options - Опции валидации (message, params)
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* // Базовое использование - минимум 18 лет
|
|
18
|
-
* validationSchema: (path) => [
|
|
19
|
-
* minAge(path.birthDate, 18),
|
|
20
|
-
* ]
|
|
21
|
-
*
|
|
22
|
-
* // С кастомным сообщением
|
|
23
|
-
* minAge(path.birthDate, 21, { message: 'Вам должно быть не менее 21 года' })
|
|
24
|
-
* ```
|
|
5
|
+
* Пустые и невалидные даты пропускаются.
|
|
25
6
|
*
|
|
26
7
|
* @example
|
|
27
8
|
* ```typescript
|
|
28
|
-
*
|
|
29
|
-
* {
|
|
30
|
-
* code: 'date_min_age',
|
|
31
|
-
* message: 'Минимальный возраст: 18 лет',
|
|
32
|
-
* params: { minAge: 18, currentAge: 16 }
|
|
33
|
-
* }
|
|
9
|
+
* validate(path.birthDate, minAge(18));
|
|
10
|
+
* validate(path.birthDate, minAge(21, { message: 'Вам должно быть не менее 21 года' }));
|
|
34
11
|
* ```
|
|
35
12
|
*/
|
|
36
|
-
export declare function minAge<TForm, TField extends string | Date | null | undefined = string | Date>(
|
|
13
|
+
export declare function minAge<TForm = unknown, TField extends string | Date | null | undefined = string | Date>(minAgeValue: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,36 +1,13 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора минимальной даты (включительно).
|
|
5
4
|
*
|
|
6
|
-
* Пустые
|
|
7
|
-
*
|
|
8
|
-
* @group Validation
|
|
9
|
-
* @category Validators
|
|
10
|
-
*
|
|
11
|
-
* @param fieldPath - Путь к полю для валидации
|
|
12
|
-
* @param minDateValue - Минимально допустимая дата (включительно)
|
|
13
|
-
* @param options - Опции валидации (message, params)
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* // Базовое использование
|
|
18
|
-
* validationSchema: (path) => [
|
|
19
|
-
* minDate(path.eventDate, new Date('2024-01-01')),
|
|
20
|
-
* ]
|
|
21
|
-
*
|
|
22
|
-
* // С кастомным сообщением
|
|
23
|
-
* minDate(path.startDate, new Date(), { message: 'Дата должна быть не раньше сегодня' })
|
|
24
|
-
* ```
|
|
5
|
+
* Пустые и невалидные даты пропускаются (используйте `required` и `isDate`).
|
|
25
6
|
*
|
|
26
7
|
* @example
|
|
27
8
|
* ```typescript
|
|
28
|
-
*
|
|
29
|
-
* {
|
|
30
|
-
* code: 'date_min',
|
|
31
|
-
* message: 'Дата должна быть не ранее 01.01.2024',
|
|
32
|
-
* params: { minDate: Date }
|
|
33
|
-
* }
|
|
9
|
+
* validate(path.eventDate, minDate(new Date('2024-01-01')));
|
|
10
|
+
* validate(path.startDate, minDate(new Date(), { message: 'Дата должна быть не раньше сегодня' }));
|
|
34
11
|
* ```
|
|
35
12
|
*/
|
|
36
|
-
export declare function minDate<TForm, TField extends string | Date | null | undefined = string | Date>(
|
|
13
|
+
export declare function minDate<TForm = unknown, TField extends string | Date | null | undefined = string | Date>(minDateValue: Date, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,38 +1,13 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора минимальной длины строки или массива.
|
|
5
4
|
*
|
|
6
|
-
* Проверяет, что длина строки не меньше указанного минимума.
|
|
7
5
|
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
8
6
|
*
|
|
9
|
-
* @group Validation
|
|
10
|
-
* @category Validators
|
|
11
|
-
*
|
|
12
|
-
* @param fieldPath - Путь к полю для валидации
|
|
13
|
-
* @param minLen - Минимальная допустимая длина строки
|
|
14
|
-
* @param options - Опции валидации (message, params)
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* // Базовое использование
|
|
19
|
-
* validationSchema: (path) => [
|
|
20
|
-
* minLength(path.name, 2),
|
|
21
|
-
* minLength(path.password, 8),
|
|
22
|
-
* ]
|
|
23
|
-
*
|
|
24
|
-
* // С кастомным сообщением
|
|
25
|
-
* minLength(path.password, 8, { message: 'Пароль должен быть не менее 8 символов' })
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
7
|
* @example
|
|
29
8
|
* ```typescript
|
|
30
|
-
*
|
|
31
|
-
* {
|
|
32
|
-
* code: 'minLength',
|
|
33
|
-
* message: 'Минимальная длина: 8 символов',
|
|
34
|
-
* params: { minLength: 8, actualLength: 3 }
|
|
35
|
-
* }
|
|
9
|
+
* validate(path.name, minLength(2));
|
|
10
|
+
* validate(path.password, minLength(8, { message: 'Min 8 символов' }));
|
|
36
11
|
* ```
|
|
37
12
|
*/
|
|
38
|
-
export declare function minLength<TForm, TField
|
|
13
|
+
export declare function minLength<TForm = unknown, TField = unknown>(minLen: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,38 +1,16 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора минимального числового значения.
|
|
5
4
|
*
|
|
6
|
-
* Проверяет, что числовое значение не меньше указанного минимума.
|
|
7
5
|
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
8
6
|
*
|
|
9
|
-
* @group Validation
|
|
10
|
-
* @category Validators
|
|
11
|
-
*
|
|
12
|
-
* @param fieldPath - Путь к полю для валидации
|
|
13
|
-
* @param minValue - Минимально допустимое значение
|
|
14
|
-
* @param options - Опции валидации (message, params)
|
|
15
|
-
*
|
|
16
7
|
* @example
|
|
17
8
|
* ```typescript
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* min(path.age, 18),
|
|
21
|
-
* min(path.quantity, 1),
|
|
22
|
-
* ]
|
|
23
|
-
*
|
|
24
|
-
* // С кастомным сообщением
|
|
25
|
-
* min(path.age, 18, { message: 'Вам должно быть не менее 18 лет' })
|
|
26
|
-
* ```
|
|
9
|
+
* import { validate } from '@reformer/core';
|
|
10
|
+
* import { min } from '@reformer/core/validators';
|
|
27
11
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* // Ошибка валидации
|
|
31
|
-
* {
|
|
32
|
-
* code: 'min',
|
|
33
|
-
* message: 'Минимальное значение: 18',
|
|
34
|
-
* params: { min: 18, actual: 16 }
|
|
35
|
-
* }
|
|
12
|
+
* validate(path.age, min(18));
|
|
13
|
+
* validate(path.quantity, min(1, { message: 'Минимум 1' }));
|
|
36
14
|
* ```
|
|
37
15
|
*/
|
|
38
|
-
export declare function min<TForm, TField extends number |
|
|
16
|
+
export declare function min<TForm = unknown, TField extends number | undefined = number>(minValue: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
/**
|
|
3
|
+
* Фабрика валидатора, проверяющего что число кратно заданному.
|
|
4
|
+
*
|
|
5
|
+
* Пустые значения и не-числа пропускаются (используйте `required` и `isNumber`).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* validate(path.price, multipleOf(0.01));
|
|
10
|
+
* validate(path.rating, multipleOf(0.5, { message: 'Только шаг 0.5' }));
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function multipleOf<TForm = unknown, TField extends number | undefined = number>(divisor: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
/**
|
|
3
|
+
* Фабрика валидатора, проверяющего что число неотрицательное (`≥ 0`).
|
|
4
|
+
*
|
|
5
|
+
* Пустые значения и не-числа пропускаются (используйте `required` и `isNumber`).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* validate(path.quantity, nonNegative());
|
|
10
|
+
* validate(path.balance, nonNegative({ message: 'Баланс не может быть отрицательным' }));
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function nonNegative<TForm = unknown, TField extends number | undefined = number>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
/**
|
|
3
|
+
* Фабрика валидатора, проверяющего что число не равно нулю.
|
|
4
|
+
*
|
|
5
|
+
* Пустые значения и не-числа пропускаются (используйте `required` и `isNumber`).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* validate(path.quantity, nonZero());
|
|
10
|
+
* validate(path.divisor, nonZero({ message: 'Не может быть нулём' }));
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function nonZero<TForm = unknown, TField extends number | undefined = number>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,35 +1,12 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора, проверяющего что дата не в будущем.
|
|
5
4
|
*
|
|
6
|
-
* Пустые
|
|
7
|
-
*
|
|
8
|
-
* @group Validation
|
|
9
|
-
* @category Validators
|
|
10
|
-
*
|
|
11
|
-
* @param fieldPath - Путь к полю для валидации
|
|
12
|
-
* @param options - Опции валидации (message, params)
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* // Базовое использование - дата рождения не может быть в будущем
|
|
17
|
-
* validationSchema: (path) => [
|
|
18
|
-
* pastDate(path.birthDate),
|
|
19
|
-
* ]
|
|
20
|
-
*
|
|
21
|
-
* // С кастомным сообщением
|
|
22
|
-
* pastDate(path.birthDate, { message: 'Дата рождения не может быть в будущем' })
|
|
23
|
-
* ```
|
|
5
|
+
* Пустые и невалидные даты пропускаются.
|
|
24
6
|
*
|
|
25
7
|
* @example
|
|
26
8
|
* ```typescript
|
|
27
|
-
*
|
|
28
|
-
* {
|
|
29
|
-
* code: 'date_future',
|
|
30
|
-
* message: 'Дата не может быть в будущем',
|
|
31
|
-
* params: {}
|
|
32
|
-
* }
|
|
9
|
+
* validate(path.birthDate, pastDate({ message: 'Дата рождения не может быть в будущем' }));
|
|
33
10
|
* ```
|
|
34
11
|
*/
|
|
35
|
-
export declare function pastDate<TForm, TField extends string | Date | undefined = string | Date>(
|
|
12
|
+
export declare function pastDate<TForm = unknown, TField extends string | Date | undefined = string | Date>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,40 +1,13 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора регулярного выражения.
|
|
5
4
|
*
|
|
6
|
-
* Проверяет, что значение соответствует указанному регулярному выражению.
|
|
7
5
|
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
8
6
|
*
|
|
9
|
-
* @group Validation
|
|
10
|
-
* @category Validators
|
|
11
|
-
*
|
|
12
|
-
* @param fieldPath - Путь к полю для валидации
|
|
13
|
-
* @param regex - Регулярное выражение для проверки
|
|
14
|
-
* @param options - Опции валидации (message, params)
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* // Только буквы
|
|
19
|
-
* pattern(path.name, /^[а-яА-Яa-zA-Z]+$/)
|
|
20
|
-
*
|
|
21
|
-
* // Только цифры
|
|
22
|
-
* pattern(path.code, /^\d+$/)
|
|
23
|
-
*
|
|
24
|
-
* // С кастомным сообщением
|
|
25
|
-
* pattern(path.username, /^[a-z0-9_]+$/i, {
|
|
26
|
-
* message: 'Только латинские буквы, цифры и подчёркивание'
|
|
27
|
-
* })
|
|
28
|
-
* ```
|
|
29
|
-
*
|
|
30
7
|
* @example
|
|
31
8
|
* ```typescript
|
|
32
|
-
*
|
|
33
|
-
* {
|
|
34
|
-
* code: 'pattern',
|
|
35
|
-
* message: 'Значение не соответствует требуемому формату',
|
|
36
|
-
* params: { pattern: '^[a-z]+$' }
|
|
37
|
-
* }
|
|
9
|
+
* validate(path.name, pattern(/^[а-яА-Яa-zA-Z]+$/));
|
|
10
|
+
* validate(path.code, pattern(/^\d+$/, { message: 'Только цифры' }));
|
|
38
11
|
* ```
|
|
39
12
|
*/
|
|
40
|
-
export declare function pattern<TForm, TField extends string |
|
|
13
|
+
export declare function pattern<TForm = unknown, TField extends string | undefined = string>(regex: RegExp, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,27 +1,17 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
3
|
-
/**
|
|
4
|
-
* Формат телефона для валидации
|
|
5
|
-
*
|
|
6
|
-
* @group Validation
|
|
7
|
-
* @category Validators
|
|
8
|
-
*/
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
9
2
|
export type PhoneFormat = 'international' | 'ru' | 'us' | 'any';
|
|
3
|
+
export interface PhoneValidatorOptions extends ValidateOptions {
|
|
4
|
+
format?: PhoneFormat;
|
|
5
|
+
}
|
|
10
6
|
/**
|
|
11
|
-
*
|
|
12
|
-
* Поддерживает опциональные поля (string | undefined)
|
|
7
|
+
* Фабрика валидатора номера телефона.
|
|
13
8
|
*
|
|
14
|
-
*
|
|
15
|
-
* @category Validators
|
|
9
|
+
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
16
10
|
*
|
|
17
11
|
* @example
|
|
18
12
|
* ```typescript
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* phone(path.phoneNumber, { format: 'international', message: 'Неверный формат телефона' });
|
|
13
|
+
* validate(path.phone, phone());
|
|
14
|
+
* validate(path.phone, phone({ format: 'ru' }));
|
|
22
15
|
* ```
|
|
23
16
|
*/
|
|
24
|
-
export declare function phone<TForm, TField extends string |
|
|
25
|
-
/** Формат телефона */
|
|
26
|
-
format?: PhoneFormat;
|
|
27
|
-
}): void;
|
|
17
|
+
export declare function phone<TForm = unknown, TField extends string | undefined = string>(options?: PhoneValidatorOptions): Validator<TForm, TField>;
|
|
@@ -1,41 +1,20 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора обязательного поля.
|
|
4
|
+
*
|
|
5
|
+
* Возвращает чистую функцию-валидатор `(value, control, root)`. Передаётся в `validate()`.
|
|
5
6
|
*
|
|
6
|
-
* Проверяет, что поле имеет непустое значение.
|
|
7
7
|
* Пустыми считаются: `null`, `undefined`, `''` (пустая строка).
|
|
8
8
|
* Для boolean полей требуется значение `true`.
|
|
9
9
|
*
|
|
10
|
-
* @group Validation
|
|
11
|
-
* @category Validators
|
|
12
|
-
*
|
|
13
|
-
* @param fieldPath - Путь к полю для валидации
|
|
14
|
-
* @param options - Опции валидации (message, params)
|
|
15
|
-
*
|
|
16
10
|
* @example
|
|
17
11
|
* ```typescript
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* required(path.name),
|
|
21
|
-
* required(path.email),
|
|
22
|
-
* ]
|
|
23
|
-
*
|
|
24
|
-
* // С кастомным сообщением
|
|
25
|
-
* required(path.phone, { message: 'Укажите номер телефона' })
|
|
12
|
+
* import { validate } from '@reformer/core';
|
|
13
|
+
* import { required } from '@reformer/core/validators';
|
|
26
14
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* ```typescript
|
|
33
|
-
* // Ошибка валидации
|
|
34
|
-
* {
|
|
35
|
-
* code: 'required',
|
|
36
|
-
* message: 'Поле обязательно для заполнения',
|
|
37
|
-
* params: {}
|
|
38
|
-
* }
|
|
15
|
+
* validate(path.email, required());
|
|
16
|
+
* validate(path.phone, required({ message: 'Укажите номер телефона' }));
|
|
17
|
+
* validate(path.agreeToTerms, required({ message: 'Необходимо принять условия' }));
|
|
39
18
|
* ```
|
|
40
19
|
*/
|
|
41
|
-
export declare function required<TForm
|
|
20
|
+
export declare function required<TForm = unknown, TField = unknown>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
export interface UrlValidatorOptions extends ValidateOptions {
|
|
3
|
+
/** Требовать наличие протокола (http:// или https://) */
|
|
4
|
+
requireProtocol?: boolean;
|
|
5
|
+
/** Разрешенные протоколы */
|
|
6
|
+
allowedProtocols?: string[];
|
|
7
|
+
}
|
|
3
8
|
/**
|
|
4
|
-
*
|
|
5
|
-
* Поддерживает опциональные поля (string | undefined)
|
|
9
|
+
* Фабрика валидатора URL.
|
|
6
10
|
*
|
|
7
|
-
*
|
|
8
|
-
* @category Validators
|
|
11
|
+
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
9
12
|
*
|
|
10
13
|
* @example
|
|
11
14
|
* ```typescript
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
+
* validate(path.website, url());
|
|
16
|
+
* validate(path.website, url({ requireProtocol: true }));
|
|
17
|
+
* validate(path.website, url({ allowedProtocols: ['https'] }));
|
|
15
18
|
* ```
|
|
16
19
|
*/
|
|
17
|
-
export declare function url<TForm, TField extends string |
|
|
18
|
-
/** Требовать наличие протокола (http:// или https://) */
|
|
19
|
-
requireProtocol?: boolean;
|
|
20
|
-
/** Разрешенные протоколы */
|
|
21
|
-
allowedProtocols?: string[];
|
|
22
|
-
}): void;
|
|
20
|
+
export declare function url<TForm = unknown, TField extends string | undefined = string>(options?: UrlValidatorOptions): Validator<TForm, TField>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
export * from './core/types';
|
|
2
2
|
export * from './core/factories';
|
|
3
3
|
export * from './core/utils';
|
|
4
|
+
export * from './core/model';
|
|
4
5
|
export { FormNode } from './core/nodes/form-node';
|
|
5
6
|
export { FieldNode } from './core/nodes/field-node';
|
|
6
7
|
export { GroupNode } from './core/nodes/group-node';
|
|
7
8
|
export { ArrayNode } from './core/nodes/array-node';
|
|
9
|
+
export { ModelArrayNode } from './core/nodes/model-array-node';
|
|
10
|
+
export type { ModelArrayControl } from './core/nodes/model-array-node';
|
|
8
11
|
export type { SetValueOptions } from './core/nodes/form-node';
|
|
9
12
|
export { useFormControl } from './hooks/useFormControl';
|
|
10
13
|
export { useFormControlValue } from './hooks/useFormControlValue';
|
|
11
14
|
export { useArrayLength } from './hooks/useArrayLength';
|
|
12
|
-
export { useHiddenCondition } from './hooks/useHiddenCondition';
|
|
13
15
|
export type { FieldControlState, ArrayControlState } from './hooks/types';
|
|
14
|
-
export type { BehaviorSchemaFn } from './core/behavior/types';
|
|
15
|
-
export { validateForm } from './core/validation/validate-form';
|
|
16
|
-
export * as behaviors from './core/behavior';
|
|
17
16
|
export * as validators from './core/validation';
|