@reformer/core 1.0.0-beta.1 → 1.0.0-beta.2

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 (79) hide show
  1. package/dist/behaviors/compute-from.js +3 -3
  2. package/dist/behaviors/enable-when.js +5 -5
  3. package/dist/behaviors/reset-when.js +1 -1
  4. package/dist/behaviors/revalidate-when.js +1 -1
  5. package/dist/behaviors/sync-fields.js +5 -5
  6. package/dist/behaviors/watch-field.js +3 -3
  7. package/dist/behaviors.js +2 -2
  8. package/dist/core/types/field-path.d.ts +2 -2
  9. package/dist/core/types/index.d.ts +1 -1
  10. package/dist/core/types/validation-schema.d.ts +21 -50
  11. package/dist/core/validation/core/index.d.ts +0 -1
  12. package/dist/core/validation/core/validate-async.d.ts +9 -15
  13. package/dist/core/validation/core/validate.d.ts +15 -15
  14. package/dist/core/validation/index.d.ts +5 -3
  15. package/dist/core/validation/validation-applicator.d.ts +2 -56
  16. package/dist/core/validation/validation-registry.d.ts +18 -16
  17. package/dist/core/validation/validators/array-validators.d.ts +6 -31
  18. package/dist/core/validation/validators/email.d.ts +5 -29
  19. package/dist/core/validation/validators/future-date.d.ts +6 -28
  20. package/dist/core/validation/validators/index.d.ts +12 -4
  21. package/dist/core/validation/validators/integer.d.ts +13 -0
  22. package/dist/core/validation/validators/is-date.d.ts +5 -28
  23. package/dist/core/validation/validators/is-number.d.ts +14 -0
  24. package/dist/core/validation/validators/max-age.d.ts +6 -29
  25. package/dist/core/validation/validators/max-date.d.ts +6 -29
  26. package/dist/core/validation/validators/max-length.d.ts +5 -30
  27. package/dist/core/validation/validators/max.d.ts +7 -29
  28. package/dist/core/validation/validators/min-age.d.ts +6 -29
  29. package/dist/core/validation/validators/min-date.d.ts +6 -29
  30. package/dist/core/validation/validators/min-length.d.ts +5 -30
  31. package/dist/core/validation/validators/min.d.ts +7 -29
  32. package/dist/core/validation/validators/multiple-of.d.ts +13 -0
  33. package/dist/core/validation/validators/non-negative.d.ts +13 -0
  34. package/dist/core/validation/validators/non-zero.d.ts +13 -0
  35. package/dist/core/validation/validators/past-date.d.ts +5 -28
  36. package/dist/core/validation/validators/pattern.d.ts +5 -32
  37. package/dist/core/validation/validators/phone.d.ts +9 -19
  38. package/dist/core/validation/validators/required.d.ts +10 -31
  39. package/dist/core/validation/validators/url.d.ts +13 -15
  40. package/dist/{index-D25LsbRm.js → index-DLh_Ryb2.js} +1 -1
  41. package/dist/index.js +465 -397
  42. package/dist/{registry-helpers-Bv_BJ1s-.js → registry-helpers-CLPXad2B.js} +152 -292
  43. package/dist/validators/email.js +7 -9
  44. package/dist/validators/future-date.js +11 -12
  45. package/dist/validators/integer.d.ts +2 -0
  46. package/dist/validators/integer.js +10 -0
  47. package/dist/validators/is-date.js +6 -7
  48. package/dist/validators/is-number.d.ts +2 -0
  49. package/dist/validators/is-number.js +10 -0
  50. package/dist/validators/max-age.js +11 -12
  51. package/dist/validators/max-date.js +11 -12
  52. package/dist/validators/max-length.js +12 -8
  53. package/dist/validators/max.js +5 -6
  54. package/dist/validators/min-age.js +10 -11
  55. package/dist/validators/min-date.js +12 -13
  56. package/dist/validators/min-length.js +12 -8
  57. package/dist/validators/min.js +6 -7
  58. package/dist/validators/multiple-of.d.ts +2 -0
  59. package/dist/validators/multiple-of.js +10 -0
  60. package/dist/validators/non-negative.d.ts +2 -0
  61. package/dist/validators/non-negative.js +10 -0
  62. package/dist/validators/non-zero.d.ts +2 -0
  63. package/dist/validators/non-zero.js +10 -0
  64. package/dist/validators/past-date.js +11 -12
  65. package/dist/validators/pattern.js +6 -7
  66. package/dist/validators/phone.js +14 -32
  67. package/dist/validators/required.js +9 -10
  68. package/dist/validators/url.js +19 -16
  69. package/dist/validators-xJyP-jLZ.js +169 -0
  70. package/dist/validators.js +54 -50
  71. package/llms.txt +505 -790
  72. package/package.json +20 -4
  73. package/dist/core/validation/core/validate-tree.d.ts +0 -35
  74. package/dist/core/validation/validation-context.d.ts +0 -86
  75. package/dist/core/validation/validators/number.d.ts +0 -31
  76. package/dist/validate-C3XiA_zf.js +0 -10
  77. package/dist/validators/number.d.ts +0 -2
  78. package/dist/validators/number.js +0 -35
  79. package/dist/validators-BGsNOgT1.js +0 -207
@@ -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
- * Адаптер для phone валидатора
12
- * Поддерживает опциональные поля (string | undefined)
7
+ * Фабрика валидатора номера телефона.
13
8
  *
14
- * @group Validation
15
- * @category Validators
9
+ * Пустые значения пропускаются (используйте `required` для обязательности).
16
10
  *
17
11
  * @example
18
12
  * ```typescript
19
- * phone(path.phoneNumber);
20
- * phone(path.phoneNumber, { format: 'ru' });
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 | null | undefined = string>(fieldPath: FieldPathNode<TForm, TField> | undefined, options?: ValidateOptions & {
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
- * validationSchema: (path, { validate }) => [
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
- * // Для checkbox (требует true)
28
- * required(path.agreeToTerms, { message: 'Необходимо принять условия' })
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, TField>(fieldPath: FieldPathNode<TForm, TField> | undefined, options?: ValidateOptions): void;
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
- import { FieldPathNode } from '../../types';
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
- * Адаптер для URL валидатора
5
- * Поддерживает опциональные поля (string | undefined)
9
+ * Фабрика валидатора URL.
6
10
  *
7
- * @group Validation
8
- * @category Validators
11
+ * Пустые значения пропускаются (используйте `required` для обязательности).
9
12
  *
10
13
  * @example
11
14
  * ```typescript
12
- * url(path.website);
13
- * url(path.website, { message: 'Введите корректный URL' });
14
- * url(path.website, { requireProtocol: true });
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 | null | undefined = string>(fieldPath: FieldPathNode<TForm, TField> | undefined, options?: ValidateOptions & {
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>;
@@ -1,6 +1,6 @@
1
1
  import { c as f } from "./field-path-DuKdGcIE.js";
2
2
  import { watchField as m } from "./behaviors/watch-field.js";
3
- import { a as l, B as c } from "./registry-helpers-Bv_BJ1s-.js";
3
+ import { a as l, B as c } from "./registry-helpers-CLPXad2B.js";
4
4
  import { copyFrom as h } from "./behaviors/copy-from.js";
5
5
  import { disableWhen as u, enableWhen as p } from "./behaviors/enable-when.js";
6
6
  import { computeFrom as y } from "./behaviors/compute-from.js";