@reformer/core 1.0.0-beta.1
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/LICENSE +21 -0
- package/README.md +143 -0
- package/dist/behaviors/compute-from.d.ts +2 -0
- package/dist/behaviors/compute-from.js +31 -0
- package/dist/behaviors/copy-from.d.ts +2 -0
- package/dist/behaviors/copy-from.js +29 -0
- package/dist/behaviors/enable-when.d.ts +2 -0
- package/dist/behaviors/enable-when.js +25 -0
- package/dist/behaviors/reset-when.d.ts +2 -0
- package/dist/behaviors/reset-when.js +24 -0
- package/dist/behaviors/revalidate-when.d.ts +2 -0
- package/dist/behaviors/revalidate-when.js +18 -0
- package/dist/behaviors/sync-fields.d.ts +2 -0
- package/dist/behaviors/sync-fields.js +41 -0
- package/dist/behaviors/transform-value.d.ts +2 -0
- package/dist/behaviors/transform-value.js +45 -0
- package/dist/behaviors/watch-field.d.ts +2 -0
- package/dist/behaviors/watch-field.js +21 -0
- package/dist/behaviors.d.ts +6 -0
- package/dist/behaviors.js +29 -0
- package/dist/core/behavior/behavior-context.d.ts +47 -0
- package/dist/core/behavior/behavior-registry.d.ts +85 -0
- package/dist/core/behavior/behaviors/compute-from.d.ts +70 -0
- package/dist/core/behavior/behaviors/copy-from.d.ts +56 -0
- package/dist/core/behavior/behaviors/enable-when.d.ts +118 -0
- package/dist/core/behavior/behaviors/index.d.ts +11 -0
- package/dist/core/behavior/behaviors/reset-when.d.ts +64 -0
- package/dist/core/behavior/behaviors/revalidate-when.d.ts +53 -0
- package/dist/core/behavior/behaviors/sync-fields.d.ts +48 -0
- package/dist/core/behavior/behaviors/transform-value.d.ts +192 -0
- package/dist/core/behavior/behaviors/watch-field.d.ts +80 -0
- package/dist/core/behavior/compose-behavior.d.ts +96 -0
- package/dist/core/behavior/index.d.ts +11 -0
- package/dist/core/behavior/types.d.ts +146 -0
- package/dist/core/factories/index.d.ts +6 -0
- package/dist/core/factories/node-factory.d.ts +186 -0
- package/dist/core/nodes/array-node.d.ts +328 -0
- package/dist/core/nodes/field-node.d.ts +294 -0
- package/dist/core/nodes/form-node.d.ts +340 -0
- package/dist/core/nodes/group-node.d.ts +319 -0
- package/dist/core/types/deep-schema.d.ts +68 -0
- package/dist/core/types/field-path.d.ts +42 -0
- package/dist/core/types/form-context.d.ts +89 -0
- package/dist/core/types/form-proxy.d.ts +105 -0
- package/dist/core/types/index.d.ts +209 -0
- package/dist/core/types/validation-schema.d.ts +95 -0
- package/dist/core/utils/abstract-registry.d.ts +74 -0
- package/dist/core/utils/aggregate-signals.d.ts +71 -0
- package/dist/core/utils/create-form.d.ts +44 -0
- package/dist/core/utils/error-handler.d.ts +163 -0
- package/dist/core/utils/field-path-navigator.d.ts +240 -0
- package/dist/core/utils/field-path.d.ts +60 -0
- package/dist/core/utils/form-observer.d.ts +176 -0
- package/dist/core/utils/form-proxy-builder.d.ts +25 -0
- package/dist/core/utils/form-submitter.d.ts +121 -0
- package/dist/core/utils/index.d.ts +22 -0
- package/dist/core/utils/registry-helpers.d.ts +43 -0
- package/dist/core/utils/registry-stack.d.ts +69 -0
- package/dist/core/utils/safe-effect.d.ts +73 -0
- package/dist/core/utils/status-machine.d.ts +153 -0
- package/dist/core/utils/subscription-manager.d.ts +180 -0
- package/dist/core/utils/type-guards.d.ts +98 -0
- package/dist/core/utils/unique-id.d.ts +53 -0
- package/dist/core/validation/core/apply-when.d.ts +22 -0
- package/dist/core/validation/core/apply.d.ts +52 -0
- package/dist/core/validation/core/index.d.ts +8 -0
- package/dist/core/validation/core/validate-async.d.ts +36 -0
- package/dist/core/validation/core/validate-tree.d.ts +35 -0
- package/dist/core/validation/core/validate.d.ts +26 -0
- package/dist/core/validation/index.d.ts +27 -0
- package/dist/core/validation/validate-form.d.ts +48 -0
- package/dist/core/validation/validation-applicator.d.ts +70 -0
- package/dist/core/validation/validation-context.d.ts +86 -0
- package/dist/core/validation/validation-registry.d.ts +142 -0
- package/dist/core/validation/validators/array-validators.d.ts +53 -0
- package/dist/core/validation/validators/date-utils.d.ts +26 -0
- package/dist/core/validation/validators/email.d.ts +37 -0
- package/dist/core/validation/validators/future-date.d.ts +35 -0
- package/dist/core/validation/validators/index.d.ts +20 -0
- package/dist/core/validation/validators/is-date.d.ts +36 -0
- package/dist/core/validation/validators/max-age.d.ts +36 -0
- package/dist/core/validation/validators/max-date.d.ts +36 -0
- package/dist/core/validation/validators/max-length.d.ts +38 -0
- package/dist/core/validation/validators/max.d.ts +38 -0
- package/dist/core/validation/validators/min-age.d.ts +36 -0
- package/dist/core/validation/validators/min-date.d.ts +36 -0
- package/dist/core/validation/validators/min-length.d.ts +38 -0
- package/dist/core/validation/validators/min.d.ts +38 -0
- package/dist/core/validation/validators/number.d.ts +31 -0
- package/dist/core/validation/validators/past-date.d.ts +35 -0
- package/dist/core/validation/validators/pattern.d.ts +40 -0
- package/dist/core/validation/validators/phone.d.ts +27 -0
- package/dist/core/validation/validators/required.d.ts +41 -0
- package/dist/core/validation/validators/url.d.ts +22 -0
- package/dist/date-utils-xUWFslTj.js +29 -0
- package/dist/field-path-DuKdGcIE.js +66 -0
- package/dist/hooks/types.d.ts +328 -0
- package/dist/hooks/useArrayLength.d.ts +31 -0
- package/dist/hooks/useFormControl.d.ts +24 -0
- package/dist/hooks/useFormControlValue.d.ts +167 -0
- package/dist/hooks/useHiddenCondition.d.ts +25 -0
- package/dist/hooks/useSignalSubscription.d.ts +17 -0
- package/dist/index-D25LsbRm.js +73 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +3271 -0
- package/dist/registry-helpers-Bv_BJ1s-.js +615 -0
- package/dist/safe-effect-Dh8uw81c.js +20 -0
- package/dist/validate-C3XiA_zf.js +10 -0
- package/dist/validators/email.d.ts +2 -0
- package/dist/validators/email.js +13 -0
- package/dist/validators/future-date.d.ts +2 -0
- package/dist/validators/future-date.js +20 -0
- package/dist/validators/is-date.d.ts +2 -0
- package/dist/validators/is-date.js +12 -0
- package/dist/validators/max-age.d.ts +2 -0
- package/dist/validators/max-age.js +20 -0
- package/dist/validators/max-date.d.ts +2 -0
- package/dist/validators/max-date.js +20 -0
- package/dist/validators/max-length.d.ts +2 -0
- package/dist/validators/max-length.js +11 -0
- package/dist/validators/max.d.ts +2 -0
- package/dist/validators/max.js +11 -0
- package/dist/validators/min-age.d.ts +2 -0
- package/dist/validators/min-age.js +20 -0
- package/dist/validators/min-date.d.ts +2 -0
- package/dist/validators/min-date.js +20 -0
- package/dist/validators/min-length.d.ts +2 -0
- package/dist/validators/min-length.js +11 -0
- package/dist/validators/min.d.ts +2 -0
- package/dist/validators/min.js +11 -0
- package/dist/validators/number.d.ts +2 -0
- package/dist/validators/number.js +35 -0
- package/dist/validators/past-date.d.ts +2 -0
- package/dist/validators/past-date.js +20 -0
- package/dist/validators/pattern.d.ts +2 -0
- package/dist/validators/pattern.js +11 -0
- package/dist/validators/phone.d.ts +2 -0
- package/dist/validators/phone.js +35 -0
- package/dist/validators/required.d.ts +2 -0
- package/dist/validators/required.js +15 -0
- package/dist/validators/url.d.ts +2 -0
- package/dist/validators/url.js +19 -0
- package/dist/validators-BGsNOgT1.js +207 -0
- package/dist/validators.d.ts +6 -0
- package/dist/validators.js +56 -0
- package/llms.txt +9351 -0
- package/package.json +166 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
import { FieldPathNode } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Валидатор минимальной длины строки
|
|
5
|
+
*
|
|
6
|
+
* Проверяет, что длина строки не меньше указанного минимума.
|
|
7
|
+
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
8
|
+
*
|
|
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
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* // Ошибка валидации
|
|
31
|
+
* {
|
|
32
|
+
* code: 'minLength',
|
|
33
|
+
* message: 'Минимальная длина: 8 символов',
|
|
34
|
+
* params: { minLength: 8, actualLength: 3 }
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare function minLength<TForm, TField extends string | null | undefined = string>(fieldPath: FieldPathNode<TForm, TField> | undefined, minLen: number, options?: ValidateOptions): void;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
import { FieldPathNode } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Валидатор минимального числового значения
|
|
5
|
+
*
|
|
6
|
+
* Проверяет, что числовое значение не меньше указанного минимума.
|
|
7
|
+
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
8
|
+
*
|
|
9
|
+
* @group Validation
|
|
10
|
+
* @category Validators
|
|
11
|
+
*
|
|
12
|
+
* @param fieldPath - Путь к полю для валидации
|
|
13
|
+
* @param minValue - Минимально допустимое значение
|
|
14
|
+
* @param options - Опции валидации (message, params)
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // Базовое использование
|
|
19
|
+
* validationSchema: (path) => [
|
|
20
|
+
* min(path.age, 18),
|
|
21
|
+
* min(path.quantity, 1),
|
|
22
|
+
* ]
|
|
23
|
+
*
|
|
24
|
+
* // С кастомным сообщением
|
|
25
|
+
* min(path.age, 18, { message: 'Вам должно быть не менее 18 лет' })
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* // Ошибка валидации
|
|
31
|
+
* {
|
|
32
|
+
* code: 'min',
|
|
33
|
+
* message: 'Минимальное значение: 18',
|
|
34
|
+
* params: { min: 18, actual: 16 }
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare function min<TForm, TField extends number | null | undefined = number>(fieldPath: FieldPathNode<TForm, TField> | undefined, minValue: number, options?: ValidateOptions): void;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
import { FieldPathNode } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Адаптер для number валидатора
|
|
5
|
+
* Проверяет, что значение является числом и соответствует заданным ограничениям
|
|
6
|
+
*
|
|
7
|
+
* @group Validation
|
|
8
|
+
* @category Validators
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* number(path.age);
|
|
13
|
+
* number(path.price, { min: 0, max: 1000000 });
|
|
14
|
+
* number(path.percentage, { min: 0, max: 100, integer: true });
|
|
15
|
+
* number(path.rating, { min: 0, max: 5, multipleOf: 0.5 });
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function number<TForm, TField extends number | undefined = number>(fieldPath: FieldPathNode<TForm, TField> | undefined, options?: ValidateOptions & {
|
|
19
|
+
/** Минимальное значение (включительно) */
|
|
20
|
+
min?: number;
|
|
21
|
+
/** Максимальное значение (включительно) */
|
|
22
|
+
max?: number;
|
|
23
|
+
/** Требовать целое число */
|
|
24
|
+
integer?: boolean;
|
|
25
|
+
/** Значение должно быть кратно этому числу */
|
|
26
|
+
multipleOf?: number;
|
|
27
|
+
/** Разрешить отрицательные числа (по умолчанию true) */
|
|
28
|
+
allowNegative?: boolean;
|
|
29
|
+
/** Разрешить ноль (по умолчанию true) */
|
|
30
|
+
allowZero?: boolean;
|
|
31
|
+
}): void;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
import { FieldPathNode } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Проверяет, что дата находится в прошлом (не в будущем)
|
|
5
|
+
*
|
|
6
|
+
* Пустые значения и невалидные даты пропускаются (используйте `required` и `isDate`).
|
|
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
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* // Ошибка валидации
|
|
28
|
+
* {
|
|
29
|
+
* code: 'date_future',
|
|
30
|
+
* message: 'Дата не может быть в будущем',
|
|
31
|
+
* params: {}
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function pastDate<TForm, TField extends string | Date | undefined = string | Date>(fieldPath: FieldPathNode<TForm, TField> | undefined, options?: ValidateOptions): void;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
import { FieldPathNode } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Валидатор паттерна (регулярного выражения)
|
|
5
|
+
*
|
|
6
|
+
* Проверяет, что значение соответствует указанному регулярному выражению.
|
|
7
|
+
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
8
|
+
*
|
|
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
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* // Ошибка валидации
|
|
33
|
+
* {
|
|
34
|
+
* code: 'pattern',
|
|
35
|
+
* message: 'Значение не соответствует требуемому формату',
|
|
36
|
+
* params: { pattern: '^[a-z]+$' }
|
|
37
|
+
* }
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare function pattern<TForm, TField extends string | null | undefined = string>(fieldPath: FieldPathNode<TForm, TField> | undefined, regex: RegExp, options?: ValidateOptions): void;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
import { FieldPathNode } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Формат телефона для валидации
|
|
5
|
+
*
|
|
6
|
+
* @group Validation
|
|
7
|
+
* @category Validators
|
|
8
|
+
*/
|
|
9
|
+
export type PhoneFormat = 'international' | 'ru' | 'us' | 'any';
|
|
10
|
+
/**
|
|
11
|
+
* Адаптер для phone валидатора
|
|
12
|
+
* Поддерживает опциональные поля (string | undefined)
|
|
13
|
+
*
|
|
14
|
+
* @group Validation
|
|
15
|
+
* @category Validators
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* phone(path.phoneNumber);
|
|
20
|
+
* phone(path.phoneNumber, { format: 'ru' });
|
|
21
|
+
* phone(path.phoneNumber, { format: 'international', message: 'Неверный формат телефона' });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
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;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
import { FieldPathNode } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Валидатор обязательного поля
|
|
5
|
+
*
|
|
6
|
+
* Проверяет, что поле имеет непустое значение.
|
|
7
|
+
* Пустыми считаются: `null`, `undefined`, `''` (пустая строка).
|
|
8
|
+
* Для boolean полей требуется значение `true`.
|
|
9
|
+
*
|
|
10
|
+
* @group Validation
|
|
11
|
+
* @category Validators
|
|
12
|
+
*
|
|
13
|
+
* @param fieldPath - Путь к полю для валидации
|
|
14
|
+
* @param options - Опции валидации (message, params)
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // Базовое использование
|
|
19
|
+
* validationSchema: (path, { validate }) => [
|
|
20
|
+
* required(path.name),
|
|
21
|
+
* required(path.email),
|
|
22
|
+
* ]
|
|
23
|
+
*
|
|
24
|
+
* // С кастомным сообщением
|
|
25
|
+
* required(path.phone, { message: 'Укажите номер телефона' })
|
|
26
|
+
*
|
|
27
|
+
* // Для checkbox (требует true)
|
|
28
|
+
* required(path.agreeToTerms, { message: 'Необходимо принять условия' })
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* // Ошибка валидации
|
|
34
|
+
* {
|
|
35
|
+
* code: 'required',
|
|
36
|
+
* message: 'Поле обязательно для заполнения',
|
|
37
|
+
* params: {}
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function required<TForm, TField>(fieldPath: FieldPathNode<TForm, TField> | undefined, options?: ValidateOptions): void;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
import { FieldPathNode } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Адаптер для URL валидатора
|
|
5
|
+
* Поддерживает опциональные поля (string | undefined)
|
|
6
|
+
*
|
|
7
|
+
* @group Validation
|
|
8
|
+
* @category Validators
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* url(path.website);
|
|
13
|
+
* url(path.website, { message: 'Введите корректный URL' });
|
|
14
|
+
* url(path.website, { requireProtocol: true });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
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;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
function r(t) {
|
|
2
|
+
if (t == null || t === "")
|
|
3
|
+
return null;
|
|
4
|
+
if (t instanceof Date)
|
|
5
|
+
return isNaN(t.getTime()) ? null : t;
|
|
6
|
+
if (typeof t == "string") {
|
|
7
|
+
const n = new Date(t);
|
|
8
|
+
return isNaN(n.getTime()) ? null : n;
|
|
9
|
+
}
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
function e() {
|
|
13
|
+
const t = /* @__PURE__ */ new Date();
|
|
14
|
+
return t.setHours(0, 0, 0, 0), t;
|
|
15
|
+
}
|
|
16
|
+
function o(t) {
|
|
17
|
+
const n = new Date(t);
|
|
18
|
+
return n.setHours(0, 0, 0, 0), n;
|
|
19
|
+
}
|
|
20
|
+
function i(t) {
|
|
21
|
+
const n = e();
|
|
22
|
+
return Math.floor((n.getTime() - t.getTime()) / (365.25 * 24 * 60 * 60 * 1e3));
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
i as c,
|
|
26
|
+
e as g,
|
|
27
|
+
o as n,
|
|
28
|
+
r as p
|
|
29
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
function c() {
|
|
2
|
+
return _("");
|
|
3
|
+
}
|
|
4
|
+
function _(t) {
|
|
5
|
+
return new Proxy({}, {
|
|
6
|
+
get(r, i) {
|
|
7
|
+
if (typeof i == "symbol")
|
|
8
|
+
return;
|
|
9
|
+
if (i === "__path" || i === "__fieldPath")
|
|
10
|
+
return t || i;
|
|
11
|
+
if (i === "__key") {
|
|
12
|
+
const n = t.split(".");
|
|
13
|
+
return n[n.length - 1] || i;
|
|
14
|
+
}
|
|
15
|
+
if (i === "then" || i === "catch" || i === "finally" || i === "constructor" || i === "toString" || i === "valueOf" || i === "toJSON")
|
|
16
|
+
return;
|
|
17
|
+
const f = t ? `${t}.${i}` : i, a = {
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
|
+
__key: i,
|
|
20
|
+
__path: f,
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
|
+
__formType: void 0,
|
|
23
|
+
__fieldType: void 0
|
|
24
|
+
};
|
|
25
|
+
return new Proxy(a, {
|
|
26
|
+
get(n, e) {
|
|
27
|
+
if (typeof e != "symbol") {
|
|
28
|
+
if (e === "__path" || e === "__fieldPath") return f;
|
|
29
|
+
if (e === "__key") return i;
|
|
30
|
+
if (e !== "__formType" && e !== "__fieldType" && !(e === "then" || e === "catch" || e === "finally" || e === "constructor" || e === "toString" || e === "valueOf" || e === "toJSON"))
|
|
31
|
+
return _(`${f}.${e}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function u(t) {
|
|
39
|
+
if (typeof t == "string")
|
|
40
|
+
return t;
|
|
41
|
+
if (t && typeof t == "object") {
|
|
42
|
+
const r = t.__path;
|
|
43
|
+
if (typeof r == "string")
|
|
44
|
+
return r;
|
|
45
|
+
}
|
|
46
|
+
throw new Error("Invalid field path node: " + JSON.stringify(t));
|
|
47
|
+
}
|
|
48
|
+
function y(t) {
|
|
49
|
+
const r = u(t);
|
|
50
|
+
return _(r);
|
|
51
|
+
}
|
|
52
|
+
function l(t) {
|
|
53
|
+
if (t && typeof t == "object" && "__key" in t)
|
|
54
|
+
return t.__key;
|
|
55
|
+
if (typeof t == "string") {
|
|
56
|
+
const r = t.split(".");
|
|
57
|
+
return r[r.length - 1];
|
|
58
|
+
}
|
|
59
|
+
throw new Error("Invalid field path node");
|
|
60
|
+
}
|
|
61
|
+
export {
|
|
62
|
+
l as a,
|
|
63
|
+
c,
|
|
64
|
+
u as e,
|
|
65
|
+
y as t
|
|
66
|
+
};
|