@reformer/core 11.0.0-beta.3 → 11.0.0-beta.5

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 (130) hide show
  1. package/dist/behaviors.d.ts +1 -1
  2. package/dist/behaviors.js +37 -37
  3. package/dist/create-model-Dxh9cfLp.js +97 -0
  4. package/dist/form/behaviors/collections.d.ts +50 -0
  5. package/dist/form/behaviors/context.d.ts +23 -0
  6. package/dist/form/behaviors/index.d.ts +28 -0
  7. package/dist/form/behaviors/internals.d.ts +26 -0
  8. package/dist/form/{behaviors-node.d.ts → behaviors/node.d.ts} +3 -3
  9. package/dist/form/behaviors/operators.d.ts +51 -0
  10. package/dist/form/behaviors/types.d.ts +17 -0
  11. package/dist/form/create-core-form.d.ts +3 -3
  12. package/dist/form/create-form.d.ts +12 -10
  13. package/dist/form/factories/node-factory.d.ts +17 -16
  14. package/dist/form/index.d.ts +10 -16
  15. package/dist/form/nodes/array-node.d.ts +3 -3
  16. package/dist/form/nodes/field-node.d.ts +6 -3
  17. package/dist/form/nodes/group-node.d.ts +7 -7
  18. package/dist/form/nodes/model-array-node.d.ts +3 -3
  19. package/dist/form/types/contracts.d.ts +9 -6
  20. package/dist/form/types/deep-schema.d.ts +5 -5
  21. package/dist/form/types/validation-schema.d.ts +1 -1
  22. package/dist/form/{validation-config.d.ts → validation/config.d.ts} +3 -3
  23. package/dist/form/validation/context.d.ts +27 -0
  24. package/dist/form/{error-handler.d.ts → validation/error-handler.d.ts} +1 -1
  25. package/dist/form/validation/index.d.ts +23 -28
  26. package/dist/form/validation/operators.d.ts +42 -0
  27. package/dist/form/validation/run.d.ts +45 -0
  28. package/dist/form/{validation-strategy.d.ts → validation/strategy.d.ts} +2 -2
  29. package/dist/form/validation/types.d.ts +28 -0
  30. package/dist/form/{validation/validators → validators}/date-utils.d.ts +1 -1
  31. package/dist/form/{validation/validators → validators}/email.d.ts +6 -7
  32. package/dist/form/{validation/validators → validators}/file-type.d.ts +6 -7
  33. package/dist/form/{validation/validators → validators}/file-utils.d.ts +1 -1
  34. package/dist/form/{validation/validators → validators}/future-date.d.ts +6 -7
  35. package/dist/form/{validation/validators → validators}/index.d.ts +7 -4
  36. package/dist/form/{validation/validators → validators}/integer.d.ts +6 -7
  37. package/dist/form/{validation/validators → validators}/is-date.d.ts +6 -7
  38. package/dist/form/{validation/validators → validators}/is-number.d.ts +6 -7
  39. package/dist/form/{validation/validators → validators}/max-age.d.ts +6 -7
  40. package/dist/form/{validation/validators → validators}/max-date.d.ts +6 -7
  41. package/dist/form/{validation/validators → validators}/max-file-size.d.ts +6 -7
  42. package/dist/form/{validation/validators → validators}/max-files.d.ts +6 -7
  43. package/dist/form/{validation/validators → validators}/max-length.d.ts +7 -8
  44. package/dist/form/{validation/validators → validators}/max-total-file-size.d.ts +6 -7
  45. package/dist/form/{validation/validators → validators}/max.d.ts +7 -8
  46. package/dist/form/{validation/validators → validators}/min-age.d.ts +6 -7
  47. package/dist/form/{validation/validators → validators}/min-date.d.ts +6 -7
  48. package/dist/form/{validation/validators → validators}/min-file-size.d.ts +6 -7
  49. package/dist/form/{validation/validators → validators}/min-files.d.ts +6 -7
  50. package/dist/form/{validation/validators → validators}/min-length.d.ts +7 -8
  51. package/dist/form/{validation/validators → validators}/min.d.ts +7 -8
  52. package/dist/form/{validation/validators → validators}/multiple-of.d.ts +6 -7
  53. package/dist/form/{validation/validators → validators}/non-negative.d.ts +6 -7
  54. package/dist/form/{validation/validators → validators}/non-zero.d.ts +6 -7
  55. package/dist/form/{validation/validators → validators}/past-date.d.ts +6 -7
  56. package/dist/form/{validation/validators → validators}/pattern.d.ts +7 -15
  57. package/dist/form/{validation/validators → validators}/phone.d.ts +6 -7
  58. package/dist/form/{validation/validators → validators}/required.d.ts +8 -13
  59. package/dist/form/{validation/validators → validators}/url.d.ts +8 -13
  60. package/dist/index.d.ts +7 -4
  61. package/dist/index.js +272 -94
  62. package/dist/{state/form-model.d.ts → model/create-model.d.ts} +0 -14
  63. package/dist/{state → model}/index.d.ts +10 -11
  64. package/dist/model/model-nodes.d.ts +60 -0
  65. package/dist/model/model-signals-proxy.d.ts +32 -0
  66. package/dist/model/model-value-proxy.d.ts +3 -0
  67. package/dist/{state → model}/safe-effect.d.ts +1 -1
  68. package/dist/model-signals-proxy-mV3WGdlO.js +233 -0
  69. package/dist/model.d.ts +2 -0
  70. package/dist/model.js +21 -0
  71. package/dist/{form → platforms/react}/hooks/types.d.ts +1 -1
  72. package/dist/{form → platforms/react}/hooks/use-form-bundle.d.ts +1 -1
  73. package/dist/{form → platforms/react}/hooks/use-form-validation.d.ts +3 -3
  74. package/dist/{form → platforms/react}/hooks/useArrayLength.d.ts +1 -1
  75. package/dist/{form → platforms/react}/hooks/useFormControl.d.ts +3 -3
  76. package/dist/{form → platforms/react}/hooks/useFormControlValue.d.ts +2 -2
  77. package/dist/platforms/react/index.d.ts +23 -0
  78. package/dist/signals.d.ts +1 -1
  79. package/dist/strategy-DA3JwxsR.js +170 -0
  80. package/dist/validation.d.ts +1 -1
  81. package/dist/validation.js +10 -165
  82. package/dist/validators/email.d.ts +1 -1
  83. package/dist/validators/future-date.d.ts +1 -1
  84. package/dist/validators/integer.d.ts +1 -1
  85. package/dist/validators/is-date.d.ts +1 -1
  86. package/dist/validators/is-number.d.ts +1 -1
  87. package/dist/validators/max-age.d.ts +1 -1
  88. package/dist/validators/max-date.d.ts +1 -1
  89. package/dist/validators/max-length.d.ts +1 -1
  90. package/dist/validators/max.d.ts +1 -1
  91. package/dist/validators/min-age.d.ts +1 -1
  92. package/dist/validators/min-date.d.ts +1 -1
  93. package/dist/validators/min-length.d.ts +1 -1
  94. package/dist/validators/min.d.ts +1 -1
  95. package/dist/validators/multiple-of.d.ts +1 -1
  96. package/dist/validators/non-negative.d.ts +1 -1
  97. package/dist/validators/non-zero.d.ts +1 -1
  98. package/dist/validators/past-date.d.ts +1 -1
  99. package/dist/validators/pattern.d.ts +1 -1
  100. package/dist/validators/phone.d.ts +1 -1
  101. package/dist/validators/required.d.ts +1 -1
  102. package/dist/validators/url.d.ts +1 -1
  103. package/dist/validators.d.ts +1 -1
  104. package/docs/llms/02-quick-start.md +6 -6
  105. package/docs/llms/03-api-signatures.md +3 -3
  106. package/docs/llms/05-common-mistakes.md +1 -1
  107. package/docs/llms/09-formschema.md +11 -11
  108. package/docs/llms/10-arrays.md +4 -4
  109. package/docs/llms/14-extended-mistakes.md +1 -1
  110. package/docs/llms/15-project-structure.md +8 -7
  111. package/docs/llms/16-ui-components.md +6 -6
  112. package/docs/llms/17-nonexistent-api.md +2 -2
  113. package/docs/llms/29-async-preload.md +4 -4
  114. package/docs/llms/30-type-safety-recipes.md +1 -1
  115. package/llms-index.json +1 -0
  116. package/llms.txt +2102 -262
  117. package/package.json +5 -4
  118. package/dist/form/behaviors.d.ts +0 -133
  119. package/dist/form/validation-schema.d.ts +0 -106
  120. package/dist/form/validators.d.ts +0 -11
  121. package/dist/form-model-DhW2HZOB.js +0 -323
  122. package/dist/state.d.ts +0 -2
  123. package/dist/state.js +0 -21
  124. package/dist/subscription-manager-705bls97.js +0 -171
  125. /package/dist/{state → form/nodes}/subscription-manager.d.ts +0 -0
  126. /package/dist/{state → model}/behaviors-value.d.ts +0 -0
  127. /package/dist/{state → model}/derived-registry.d.ts +0 -0
  128. /package/dist/{state → model}/types.d.ts +0 -0
  129. /package/dist/{behaviors-node-DGEFMTQu.js → node-DGEFMTQu.js} +0 -0
  130. /package/dist/{form → platforms/react}/hooks/useSignalSubscription.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { Validator, ValidateOptions } from '../../types/validation-schema';
1
+ import { Validator, ValidateOptions } from '../types/validation-schema';
2
2
  /**
3
3
  * Формат проверки номера телефона для валидатора {@link phone}.
4
4
  *
@@ -28,14 +28,13 @@ export interface PhoneValidatorOptions extends ValidateOptions {
28
28
  *
29
29
  * @example Проверка номера телефона
30
30
  * ```typescript
31
+ * import { defineValidationSchema, validate } from '@reformer/core/validation';
31
32
  * import { required, phone } from '@reformer/core/validators';
32
33
  *
33
- * // Внутри FieldConfig схемы формы:
34
- * phone: {
35
- * value: model.$.phone,
36
- * component: Input,
37
- * validators: [required(), phone({ format: 'ru' })],
38
- * },
34
+ * // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
35
+ * const validation = defineValidationSchema<MyForm>(({ model }) => {
36
+ * validate(model.$.phone, [required(), phone({ format: 'ru' })]);
37
+ * });
39
38
  * ```
40
39
  */
41
40
  export declare function phone<TForm = unknown, TField extends string | null | undefined = string>(options?: PhoneValidatorOptions): Validator<TForm, TField>;
@@ -1,4 +1,4 @@
1
- import { Validator, ValidateOptions } from '../../types/validation-schema';
1
+ import { Validator, ValidateOptions } from '../types/validation-schema';
2
2
  /**
3
3
  * Фабрика валидатора обязательного поля.
4
4
  *
@@ -13,20 +13,15 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
13
13
  *
14
14
  * @example Обязательные поля в схеме формы
15
15
  * ```typescript
16
+ * import { defineValidationSchema, validate } from '@reformer/core/validation';
16
17
  * import { required } from '@reformer/core/validators';
17
18
  *
18
- * // Внутри FieldConfig схемы формы:
19
- * email: { value: model.$.email, component: Input, validators: [required()] },
20
- * phone: {
21
- * value: model.$.phone,
22
- * component: Input,
23
- * validators: [required({ message: 'Укажите номер телефона' })],
24
- * },
25
- * agreeToTerms: {
26
- * value: model.$.agreeToTerms,
27
- * component: Checkbox,
28
- * validators: [required({ message: 'Необходимо принять условия' })],
29
- * },
19
+ * // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
20
+ * const validation = defineValidationSchema<MyForm>(({ model }) => {
21
+ * validate(model.$.email, [required()]);
22
+ * validate(model.$.phone, [required({ message: 'Укажите номер телефона' })]);
23
+ * validate(model.$.agreeToTerms, [required({ message: 'Необходимо принять условия' })]);
24
+ * });
30
25
  * ```
31
26
  */
32
27
  export declare function required<TForm = unknown, TField = unknown>(options?: ValidateOptions): Validator<TForm, TField>;
@@ -1,4 +1,4 @@
1
- import { Validator, ValidateOptions } from '../../types/validation-schema';
1
+ import { Validator, ValidateOptions } from '../types/validation-schema';
2
2
  /**
3
3
  * Опции валидатора {@link url}. Расширяют {@link ValidateOptions} (`message`, `params`)
4
4
  * настройками проверки протокола.
@@ -24,20 +24,15 @@ export interface UrlValidatorOptions extends ValidateOptions {
24
24
  *
25
25
  * @example Проверка URL
26
26
  * ```typescript
27
+ * import { defineValidationSchema, validate } from '@reformer/core/validation';
27
28
  * import { required, url } from '@reformer/core/validators';
28
29
  *
29
- * // Внутри FieldConfig схемы формы:
30
- * website: {
31
- * value: model.$.website,
32
- * component: Input,
33
- * validators: [required(), url({ message: 'Введите корректный URL' })],
34
- * },
35
- * // Требовать протокол и ограничить схему только https:
36
- * homepage: {
37
- * value: model.$.homepage,
38
- * component: Input,
39
- * validators: [url({ requireProtocol: true, allowedProtocols: ['https'] })],
40
- * },
30
+ * // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
31
+ * const validation = defineValidationSchema<MyForm>(({ model }) => {
32
+ * validate(model.$.website, [required(), url({ message: 'Введите корректный URL' })]);
33
+ * // Требовать протокол и ограничить схему только https:
34
+ * validate(model.$.homepage, [url({ requireProtocol: true, allowedProtocols: ['https'] })]);
35
+ * });
41
36
  * ```
42
37
  */
43
38
  export declare function url<TForm = unknown, TField extends string | null | undefined = string>(options?: UrlValidatorOptions): Validator<TForm, TField>;
package/dist/index.d.ts CHANGED
@@ -1,11 +1,14 @@
1
1
  /**
2
- * Публичный barrel `@reformer/core` — зонтик над модулями `model` (state) и `form`.
2
+ * Публичный barrel `@reformer/core` — зонтик над слоями `model`, `form` и `platforms/react`.
3
3
  *
4
- * Состав экспортов НЕ изменился при модуляризации (реорг в src/model + src/form): реализация
5
- * разложена по модулям, а этот barrel по-прежнему отдаёт единую поверхность.
4
+ * `model` — реактивная модель данных (сабпат `@reformer/core/model`); `form` — узлы, поведение и
5
+ * валидация поверх её сигналов; `platforms/react` — биндинги в React, единственный слой с
6
+ * рантайм-зависимостью от `react`. Состав экспортов зонтика не меняется при реорганизациях:
7
+ * реализация разложена по слоям, а barrel по-прежнему отдаёт единую поверхность.
6
8
  */
7
9
  export * from './form/types/index';
8
10
  export * from './form/factories/index';
9
- export * from './state/index';
11
+ export * from './model/index';
10
12
  export * from './form/index';
13
+ export * from './platforms/react/index';
11
14
  export { CORE_RUNTIME_TOKEN } from './runtime-token';