@scbt-ecom/ui 0.69.0 → 0.70.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/dist/{index-CheXd2Zl.js → index-Cskajs8e.js} +13238 -12187
- package/dist/index-Cskajs8e.js.map +1 -0
- package/dist/{index-BwK6Inph.js → index-lfBvBrWg.js} +3 -3
- package/dist/{index-BwK6Inph.js.map → index-lfBvBrWg.js.map} +1 -1
- package/dist/shared/utils/typeGuards.d.ts +1 -0
- package/dist/{typeGuards-Bhdr9KYW.js → typeGuards-CSiImkUY.js} +34 -31
- package/dist/{typeGuards-Bhdr9KYW.js.map → typeGuards-CSiImkUY.js.map} +1 -1
- package/dist/ui.js +4 -4
- package/dist/{utils-DyIly-dX.js → utils-k3uzuyeN.js} +2 -2
- package/dist/{utils-DyIly-dX.js.map → utils-k3uzuyeN.js.map} +1 -1
- package/dist/utils.js +55 -12
- package/dist/utils.js.map +1 -1
- package/dist/validation.js +2 -2
- package/dist/widget.js +212 -208
- package/dist/widget.js.map +1 -1
- package/dist/widgets/buttonWithHandlers/ButtonWithHandlers.d.ts +1 -1
- package/dist/widgets/calculator/model/helpers.d.ts +2 -2
- package/dist/widgets/calculator/model/utils.d.ts +2 -0
- package/dist/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoBody.d.ts +2 -2
- package/dist/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoFooter.d.ts +7 -2
- package/dist/widgets/calculator/ui/calculatorInfo/ui/InfoListItem.d.ts +6 -4
- package/package.json +5 -5
- package/dist/index-CheXd2Zl.js.map +0 -1
- package/dist/uuid-2wKG15vy.js +0 -25
- package/dist/uuid-2wKG15vy.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { z as s, f as m, D as I, p as T, i as A, s as L } from "./utils-
|
|
2
|
-
import { T as c } from "./typeGuards-
|
|
1
|
+
import { z as s, f as m, D as I, p as T, i as A, s as L } from "./utils-k3uzuyeN.js";
|
|
2
|
+
import { T as c } from "./typeGuards-CSiImkUY.js";
|
|
3
3
|
const D = (e) => {
|
|
4
4
|
const { defaultValue: t } = e || {};
|
|
5
5
|
return s.boolean().default(t ?? !1);
|
|
@@ -433,4 +433,4 @@ export {
|
|
|
433
433
|
l as b,
|
|
434
434
|
ae as z
|
|
435
435
|
};
|
|
436
|
-
//# sourceMappingURL=index-
|
|
436
|
+
//# sourceMappingURL=index-lfBvBrWg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-BwK6Inph.js","sources":["../lib/shared/validation/base/boolean.validators.ts","../lib/shared/validation/base/base.constants.ts","../lib/shared/validation/base/date.validators.ts","../lib/shared/validation/base/email.validators.ts","../lib/shared/validation/base/number.validators.ts","../lib/shared/validation/base/phone.validators.ts","../lib/shared/validation/base/select.validators.ts","../lib/shared/validation/base/string.validators.ts","../lib/shared/validation/base/union.validators.ts","../lib/shared/validation/base/url.validators.ts","../lib/shared/validation/base/base.validators.ts","../lib/shared/validation/utils/zodUtils.ts","../lib/shared/validation/dadata/dadata.constants.ts","../lib/shared/validation/dadata/fio.validators.ts","../lib/shared/validation/dadata/index.ts","../lib/shared/validation/index.ts"],"sourcesContent":["import z from 'zod'\n\nexport type BooleanValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: boolean\n message?: Partial<Record<keyof Omit<BooleanValidationOptions<Required>, 'message'>, string>>\n}\n\nconst getBooleanRequired = (props?: Omit<BooleanValidationOptions<true>, 'required'>) => {\n const { defaultValue } = props || {}\n\n const schema = z.boolean()\n\n return schema.default(defaultValue ?? false)\n}\n\ntype BooleanRequiredSchema = ReturnType<typeof getBooleanRequired>\n\nconst getBooleanOptional = (props?: Omit<BooleanValidationOptions<false>, 'required'>) => {\n return getBooleanRequired(props).optional()\n}\n\ntype BooleanOptionalSchema = ReturnType<typeof getBooleanOptional>\n\nexport function getBooleanSchema(props?: BooleanValidationOptions<true>): BooleanRequiredSchema\nexport function getBooleanSchema(props?: BooleanValidationOptions<false>): BooleanOptionalSchema\nexport function getBooleanSchema<Required extends boolean>(\n props?: BooleanValidationOptions<Required>\n): BooleanRequiredSchema | BooleanOptionalSchema {\n const { required = true, ...rest } = props || {}\n\n return required ? getBooleanRequired(rest) : getBooleanOptional(rest)\n}\n","import { type Primitive } from 'zod'\nimport { formatDateToLocaleString } from '$/shared/ui'\nimport { TypeGuards } from '$/shared/utils'\n\nexport const baseDefaultMessages = {\n NON_EMPTY: () => 'Поле не может быть пустым',\n MIN_LENGTH: (min: number) => `Поле должно содержать минимум символов: ${min}`,\n MAX_LENGTH: (max: number) => `Поле должно содержать максимум символов: ${max}`,\n FIX_LENGTH: (length: number) => `Поле должно быть фиксированной длины символов: ${length}`,\n MIN_VALUE: (min: number) => `Значение не может быть меньше чем ${min}`,\n MAX_VALUE: (max: number) => `Значение не может быть больше чем ${max}`,\n PHONE_NON_EMPTY: () => 'Номер телефона должен состоять из 11 цифр',\n PHONE_INVALID_OPERATOR: () => 'Код города/оператора должен начинаться с цифры 3, 4, 5, 6 или 9',\n EMAIL_INVALID: () => 'Email введен некорректно. Пример: example@domain.ru',\n EMAIL_NON_EMPTY: () => 'Введите адрес электронной почты',\n SELECT_NON_EMPTY: () => 'Выберите один из вариантов',\n SELECT_MULTIPLE_MIN_LENGTH: (length: number) => `Выберите не менее ${length} вариантов`,\n SELECT_MULTIPLE_MAX_LENGTH: (length: number) => `Выберите не более ${length} вариантов`,\n SELECT_FIX_LENGTH: (length: number) => `Поле должно быть фиксированного количества вариантов: ${length}`,\n DATE_INVALID_FORMAT: () => 'Дата указана некорректно',\n DATE_NON_EMPTY: () => 'Укажите дату',\n VALUE_OUT_OF_RANGE: <T extends Primitive>(range: T[]) => `Выберите один из вариантов ${range.join(', ')}`,\n DATE_MIN: (min: Date | string) => {\n const date = TypeGuards.isString(min) ? new Date(min) : min\n\n return `Выбранная дата должна быть не раньше ${formatDateToLocaleString(date)}`\n },\n DATE_MAX: (max: Date | string) => {\n const date = TypeGuards.isString(max) ? new Date(max) : max\n\n return `Выбранная дата должна быть не позже ${formatDateToLocaleString(date)}`\n },\n INVALID_URL: () => 'Ссылка введена некорректно. Пример: https://example.com, example.com'\n}\n","import { isValid, parse } from 'date-fns'\nimport z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { DATE_VISIBLE_PATTERN } from '$/shared/ui'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type DateValidationOptions<Required extends boolean> = {\n /**\n * валидация строки с учетом ISO формата\n * @default true\n */\n iso?: boolean\n /**\n * шаблон для валидации строки (будет проигнорирован, если `iso = true`)\n * @default 'dd.MM.yyyy'\n */\n pattern?: string\n /**\n * минимальная дата\n * `Date | ISO string`\n */\n min?: Date | string\n /**\n * максимальная дата\n * `Date | ISO string`\n */\n max?: Date | string\n /**\n * указывает что поле обязательное\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n min?: string\n max?: string\n invalidDate?: string\n }\n}\n\n/**\n * Схема валидации обязательного поля даты\n */\nconst getDateRequired = (props?: Omit<DateValidationOptions<boolean>, 'required'>) => {\n const { iso = true, pattern = DATE_VISIBLE_PATTERN, min, max, defaultValue, message } = props || {}\n\n return z\n .string()\n .min(8, message?.min || baseDefaultMessages.DATE_NON_EMPTY())\n .superRefine((value, context) => {\n const validSymbolsLength = pattern.replace(/\\W/g, '').length\n const cleanedValue = value.replace(/[._-]/g, '')\n\n if (cleanedValue.length < validSymbolsLength) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: validSymbolsLength,\n type: 'date',\n inclusive: true,\n message: message?.min || baseDefaultMessages.DATE_NON_EMPTY()\n })\n }\n\n if (iso) {\n let date: Date | null = null\n\n try {\n date = new Date(value)\n } catch {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date!.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date!.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n } else {\n const date = parse(value, pattern, new Date())\n\n if (!isValid(date)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n }\n })\n .default(defaultValue ?? '')\n}\ntype DateRequiredSchema = ReturnType<typeof getDateRequired>\n\n/**\n * Схема валидации опционального поля даты\n */\nconst getDateOptional = (props?: Omit<DateValidationOptions<boolean>, 'required'>) => {\n const { iso = true, pattern = DATE_VISIBLE_PATTERN, min, max, message } = props || {}\n\n return z\n .string()\n .transform((value) => (!value ? undefined : value))\n .superRefine((value, context) => {\n if (TypeGuards.isString(value) && Boolean(value.length)) {\n const validSymbolsLength = pattern.replace(/\\W/g, '').length\n const cleanedValue = value.replace(/[._-]/g, '')\n\n if (cleanedValue.length < validSymbolsLength) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: validSymbolsLength,\n type: 'date',\n inclusive: true,\n message: message?.min || baseDefaultMessages.DATE_NON_EMPTY()\n })\n }\n\n if (iso) {\n let date: Date | null = null\n\n try {\n date = new Date(value)\n } catch {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date!.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date!.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n } else {\n const date = parse(value, pattern, new Date())\n\n if (!isValid(date)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n }\n }\n })\n .optional()\n}\ntype DateOptionalSchema = ReturnType<typeof getDateOptional>\n\n/**\n * Схема валидации поля даты\n * @param {DateValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @typeParam `iso` - `boolean | undefined`\n * @typeParam `pattern` - `string | undefined`\n * @typeParam `message` - `{ [min | invalidOperator]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getDateSchema()\n * })\n * // will returns z.string()\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getDateSchema({ required: false })\n * })\n * // will returns z.string().optional()\n */\nexport function getDateSchema(props?: DateValidationOptions<true>): DateRequiredSchema\nexport function getDateSchema(props?: DateValidationOptions<false>): DateOptionalSchema\nexport function getDateSchema<Required extends boolean>(\n props?: DateValidationOptions<Required>\n): DateRequiredSchema | DateOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getDateRequired(props) : getDateOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type EmailValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * Регулярное выражение для проверки email на валидность\n */\n regexp?: RegExp | string\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n min?: string\n invalid?: string\n }\n}\n\nconst EMAIL_REGEX = /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{2,4}$/g\n\n/**\n * Схема валидации обязательного поля типа email\n */\nconst getEmailRequired = (props?: Omit<EmailValidationOptions<true>, 'required'>) => {\n const { message, defaultValue, regexp = EMAIL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return z\n .string()\n .min(1, message?.min || baseDefaultMessages.EMAIL_NON_EMPTY())\n .regex(regex, message?.invalid || baseDefaultMessages.EMAIL_INVALID())\n .default(defaultValue ?? '')\n}\ntype EmailRequiredSchema = ReturnType<typeof getEmailRequired>\n\n/**\n * Схема валидации опционального поля типа email\n */\nconst getEmailOptional = (props?: Omit<EmailValidationOptions<false>, 'required'>) => {\n const { message, regexp = EMAIL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return z\n .string()\n .refine(\n (value) => {\n if (TypeGuards.isStringEmpty(value)) return true\n return regex.test(value)\n },\n {\n message: message?.invalid || baseDefaultMessages.EMAIL_INVALID()\n }\n )\n .optional()\n .transform((value) => (value?.length === 0 ? undefined : value))\n}\ntype EmailOptionalSchema = ReturnType<typeof getEmailOptional>\n\n/**\n * Схема валидации поля типа email\n * @param {EmailValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @typeParam `regexp` - `RegExp`\n * @typeParam `message` - `{ [min | invalid]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getEmailSchema()\n * })\n * // will returns z.string().min(1).email()\n *\n * @example with optional value\n * z.object({\n * field: zodValidators.base.getEmailSchema({ required: false })\n * })\n * // will returns z.string().min(1).email().optional()\n */\nexport function getEmailSchema(props?: EmailValidationOptions<true>): EmailRequiredSchema\nexport function getEmailSchema(props?: EmailValidationOptions<false>): EmailOptionalSchema\nexport function getEmailSchema<Required extends boolean>(\n props?: EmailValidationOptions<Required>\n): EmailRequiredSchema | EmailOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getEmailRequired(props) : getEmailOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type NumberValidationOptions<Required extends boolean> = {\n /**\n * минимальное значение\n * @default 0\n */\n min?: number\n /**\n * максимальное значение\n * @default undefined\n */\n max?: number\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: number\n message?: Partial<Record<keyof Omit<NumberValidationOptions<Required>, 'message'>, string>>\n}\n\n/**\n * Схема валидации обязательного поля числового типа\n */\nconst getNumberRequired = (props?: Omit<NumberValidationOptions<true>, 'required'>) => {\n const { min, max, message, defaultValue } = props || {}\n\n let schema = z.coerce.number()\n\n if (min) {\n schema = schema.min(min, message?.min || baseDefaultMessages.MIN_VALUE(min))\n }\n\n if (max) {\n schema = schema.max(max, message?.min || baseDefaultMessages.MAX_VALUE(max))\n }\n\n return schema.default(defaultValue ?? 0)\n}\ntype NumberRequiredSchema = ReturnType<typeof getNumberRequired>\n\n/**\n * Схема валидации опционального поля числового типа\n */\nconst getNumberOptional = (props?: Omit<NumberValidationOptions<false>, 'required'>) => {\n return getNumberRequired(props)\n .optional()\n .transform((value) => (!value ? undefined : value))\n}\ntype NumberOptionalSchema = ReturnType<typeof getNumberOptional>\n\n/**\n * Схема валидации опционального поля числового типа\n * @param {NumberValidationOptions} props настройки схемы\n @typeParam `required` - `boolean`\n * @typeParam `min` - `number | undefined` `default: 1`\n * @typeParam `max` - `number | undefined` `default: undefined`\n * @typeParam `message` - `{ [min | max]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required min, max value\n * z.object({\n * field: zodValidators.base.getNumberSchema({ min: 10, max: 20 })\n * })\n * // will returns z.coerce.number().min(10).max(20)\n *\n * @example with optional min, max value\n * z.object({\n * field: zodValidators.base.getNumberSchema({ min: 10, max: 20, required: false })\n * })\n * // will returns z.coerce.number().min(10).max(20).optional()\n */\nexport function getNumberSchema(props?: NumberValidationOptions<true>): NumberRequiredSchema\nexport function getNumberSchema(props?: NumberValidationOptions<false>): NumberOptionalSchema\nexport function getNumberSchema<Required extends boolean>(\n props?: NumberValidationOptions<Required>\n): NumberRequiredSchema | NumberOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getNumberRequired(props) : getNumberOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type PhoneValidationOptions<Required extends boolean> = {\n /**\n * исключает маску в возвращаемом значении\n * @default true\n */\n ignoreMask?: boolean\n /**\n * игнорирует символы для проверки поля исключая данные символы\n * @default /[()+_ -]/g\n */\n maskSymbols?: RegExp | string\n /**\n * указывает что поле обязательное\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n min?: string\n invalidOperator?: string\n }\n /**\n * указываем валидные коды оператор\n * @default ['3', '4', '5', '6', '7', '9']\n * @param string[]\n */\n validOperatorCodes?: string[]\n}\n\n/**\n * Схема валидации обязательного поля номера телефона\n */\nconst getPhoneRequired = (props?: Omit<PhoneValidationOptions<true>, 'required'>) => {\n const {\n ignoreMask = true,\n maskSymbols = /[()+_ -]/g,\n message,\n defaultValue,\n validOperatorCodes = ['3', '4', '5', '6', '7', '9']\n } = props || {}\n\n const mask = TypeGuards.isString(maskSymbols) ? new RegExp(maskSymbols) : maskSymbols\n\n let schema = z.string().superRefine((value, context) => {\n const cleanValue = value.replace(mask, '')\n\n const operatorCode = cleanValue.charAt(1)\n\n if (!validOperatorCodes.includes(operatorCode)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: message?.invalidOperator || baseDefaultMessages.PHONE_INVALID_OPERATOR()\n })\n }\n\n if (cleanValue.length < 11) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: 11,\n inclusive: true,\n type: 'string',\n message: message?.min || baseDefaultMessages.PHONE_NON_EMPTY()\n })\n }\n })\n\n if (ignoreMask) {\n schema = schema.transform((value) => value.replace(mask, '')) as unknown as typeof schema\n }\n\n return schema.default(defaultValue ?? '')\n}\ntype PhoneRequiredSchema = ReturnType<typeof getPhoneRequired>\n\n/**\n * Схема валидации опционального поля номера телефона\n */\nconst getPhoneOptional = (props?: Omit<PhoneValidationOptions<false>, 'required'>) => {\n const {\n ignoreMask = true,\n maskSymbols = /[()+_ -]/g,\n message,\n validOperatorCodes = ['3', '4', '5', '6', '7', '9']\n } = props || {}\n\n const mask = TypeGuards.isString(maskSymbols) ? new RegExp(maskSymbols) : maskSymbols\n\n let schema = z.string().superRefine((value, context) => {\n const cleanValue = value.replace(mask, '')\n\n const operatorCode = cleanValue.charAt(1)\n\n if (!validOperatorCodes.includes(operatorCode)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: message?.invalidOperator || baseDefaultMessages.PHONE_INVALID_OPERATOR()\n })\n }\n\n if (cleanValue.length < 11) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: 11,\n inclusive: true,\n type: 'string',\n message: message?.min || baseDefaultMessages.PHONE_NON_EMPTY()\n })\n }\n })\n\n if (ignoreMask) {\n schema = schema.transform((value) => value.replace(mask, '')) as unknown as typeof schema\n }\n\n return schema.transform((value) => (!value ? undefined : value))\n}\ntype PhoneOptionalSchema = ReturnType<typeof getPhoneOptional>\n\n/**\n * Схема валидации опционального поля номера телефона\n * @param {PhoneValidationOptions} props настройки схемы\n @typeParam `required` - `boolean`\n * @typeParam `ignoreSeparators` - `boolean | undefined` `default: false`\n * @typeParam `maskSymbols` - `RegExp | undefined` `default: /[()+_ -]/g`\n * @typeParam `message` - `{ [min | invalidOperator]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getPhoneSchema()\n * })\n * // will returns z.string()\n *\n * @example with optional value\n * z.object({\n * field: zodValidators.base.getPhoneSchema({ required: false })\n * })\n * // will returns z.string().optional()\n */\nexport function getPhoneSchema(props?: PhoneValidationOptions<true>): PhoneRequiredSchema\nexport function getPhoneSchema(props?: PhoneValidationOptions<false>): PhoneOptionalSchema\nexport function getPhoneSchema<Required extends boolean>(\n props?: PhoneValidationOptions<Required>\n): PhoneRequiredSchema | PhoneOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getPhoneRequired(props) : getPhoneOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type SelectSingleValidationOptions<Required extends boolean, Multi extends boolean = false> = {\n /**\n * включает валидацию мульти селекта\n * @default false\n */\n multiple?: Multi\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n single?: string\n multiple?: string\n }\n}\n\ntype SelectMultipleValidationOptions<Required extends boolean, Multi extends boolean = true> = SelectSingleValidationOptions<\n Required,\n Multi\n> & {\n /**\n * минимальное количество элементов\n * @default 0\n */\n minLength?: number\n /**\n * максимальное количество элементов\n * @default undefined\n */\n maxLength?: number\n /**\n * фиксированное количество элементов\n * @default undefined\n */\n length?: number\n message?: SelectSingleValidationOptions<Required, Multi> & {\n minLength?: string\n maxLength?: string\n length?: string\n }\n}\n\ntype SelectValidationOptions<Required extends boolean, Multi extends boolean> = Multi extends true\n ? SelectMultipleValidationOptions<Required, Multi>\n : SelectSingleValidationOptions<Required, Multi>\n\n/**\n * Схема валидации обязательного поля типа select\n */\nconst getSelectRequired = <Required extends boolean, Multi extends boolean>(props?: SelectValidationOptions<Required, Multi>) => {\n const { message, defaultValue } = props || {}\n\n const selectSchema = z\n .string()\n .min(1, message?.single || baseDefaultMessages.SELECT_NON_EMPTY())\n .nullable()\n .refine((value) => Boolean(value), message?.single || baseDefaultMessages.SELECT_NON_EMPTY())\n .default(defaultValue ?? null)\n\n if (props?.multiple) {\n let arraySchema = z\n .array(selectSchema)\n .min(props?.minLength || 0, message?.multiple || baseDefaultMessages.SELECT_MULTIPLE_MIN_LENGTH(props?.minLength || 0))\n\n if (props?.length) {\n return arraySchema\n .length(props.length, props.message?.length || baseDefaultMessages.SELECT_FIX_LENGTH(props.length))\n .default([])\n } else if (props?.maxLength) {\n arraySchema = arraySchema.max(\n props.maxLength,\n props.message?.maxLength || baseDefaultMessages.SELECT_MULTIPLE_MAX_LENGTH(props.maxLength)\n )\n }\n\n return arraySchema.default([])\n }\n\n return selectSchema\n}\ntype SelectRequiredSchema = ReturnType<typeof getSelectRequired>\n\n/**\n * Схема валидации опционального поля типа select\n */\nfunction getSelectOptional<Required extends boolean, Multi extends boolean>(\n props?: Omit<SelectValidationOptions<Required, Multi>, 'message'>\n) {\n const selectSchema = z.string().nullable().optional()\n\n if (props?.multiple) {\n return z.array(selectSchema).optional()\n }\n\n return selectSchema\n}\ntype SelectOptionalSchema = ReturnType<typeof getSelectOptional>\n\n/**\n * Схема валидации опционального поля типа select\n * @param {SelectValidationOptions} props настройки схемы\n @typeParam `required` - `boolean`\n * @typeParam `multiple` - `boolean`\n * @typeParam `minLength` - `number | undefined`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required single value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ multiple: false })\n * })\n * // will returns z.string().nullable()\n *\n * @example with required multiple value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ multiple: true })\n * })\n * // will returns z.array(z.string().nullable())\n *\n * @example with optional single value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ required: false, multiple: false })\n * })\n * // will returns z.string().nullable().optional()\n *\n * @example with optional multiple value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ required: false, multiple: true })\n * })\n * // will returns z.array(z.string().nullable().optional()).optional()\n */\nexport function getSelectSchema<Multi extends boolean>(props?: SelectValidationOptions<true, Multi>): SelectRequiredSchema\nexport function getSelectSchema<Multi extends boolean>(props?: SelectValidationOptions<false, Multi>): SelectOptionalSchema\nexport function getSelectSchema<Multi extends boolean, Required extends boolean>(\n props?: SelectValidationOptions<Required, Multi>\n): SelectRequiredSchema | SelectOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getSelectRequired(props) : getSelectOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type StringValidationOptions<Required extends boolean> = {\n /**\n * минимальное количество символов\n * @default 1\n */\n min?: number\n /**\n * максимальное количество символов\n * @default undefined\n */\n max?: number\n /**\n * фиксированная длина символов\n */\n length?: number\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: Partial<Record<keyof Omit<StringValidationOptions<Required>, 'message'> | 'root', string>>\n}\n\n/**\n * Схема валидации обязательного поля строкового типа\n */\nconst getStringRequired = (props?: Omit<StringValidationOptions<true>, 'required'>) => {\n const { min, max, length, defaultValue, message } = props || {}\n\n let schema = z.string({ message: message?.root })\n\n if (min) {\n schema = schema.min(min, { message: message?.min || baseDefaultMessages.MIN_LENGTH(min) })\n }\n\n if (max) {\n schema = schema.max(max, { message: message?.max || baseDefaultMessages.MAX_LENGTH(max) })\n }\n\n if (length) {\n schema = schema.length(length, { message: message?.length || baseDefaultMessages.FIX_LENGTH(length) })\n }\n\n return schema\n .refine((value) => Boolean(value.length), { message: message?.min || baseDefaultMessages.NON_EMPTY() })\n .default(defaultValue ?? '')\n}\ntype StringRequiredSchema = ReturnType<typeof getStringRequired>\n\n/**\n * Схема валидации обязательного поля строкового типа\n */\nconst getStringOptional = (props?: Omit<StringValidationOptions<false>, 'required'>) => {\n const { min, max, length, message } = props || {}\n\n let schema = z.string({ message: message?.root })\n\n if (min) {\n schema = schema.min(min, { message: message?.min || baseDefaultMessages.MIN_LENGTH(min) })\n }\n\n if (max) {\n schema = schema.max(max, { message: message?.max || baseDefaultMessages.MAX_LENGTH(max) })\n }\n\n if (length) {\n schema = schema.length(length, { message: message?.length || baseDefaultMessages.FIX_LENGTH(length) })\n }\n\n return schema.optional().transform((value) => (!value?.length ? undefined : value))\n}\ntype StringOptionalSchema = ReturnType<typeof getStringOptional>\n\n/**\n * Схема валидации обязательного поля строкового типа\n * @param {StringValidationOptions} props настройки схемы\n * @typeParam `min` - `number | undefined` `default: 1`\n * @typeParam `max` - `number | undefined` `default: undefined`\n * @typeParam `message` - `{ [min | max]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required min value\n * z.object({\n * field: zodValidators.base.getStringSchema({ min: 10 })\n * })\n * // will returns z.string().min(10)\n *\n * @example with required min, max value\n * z.object({\n * field: zodValidators.base.getStringSchema({ min: 10, max: 20 })\n * })\n * // will returns z.string().min(10).max(20)\n *\n * @example with optional min value\n * z.object({\n * field: zodValidators.base.getStringSchema({ required: false, min: 10 })\n * })\n * // will returns z.string().min(10).optional()\n *\n * @example with optional min, max value\n * z.object({\n * field: zodValidators.base.getStringSchema({ required: false, min: 10, max: 20 })\n * })\n * // will returns z.string().min(10).max(20).optional()\n */\nexport function getStringSchema(props?: StringValidationOptions<true>): StringRequiredSchema\nexport function getStringSchema(props?: StringValidationOptions<false>): StringOptionalSchema\nexport function getStringSchema<Required extends boolean>(\n props?: StringValidationOptions<Required>\n): StringRequiredSchema | StringOptionalSchema {\n const { required = true, ...restProps } = props || {}\n\n return required ? getStringRequired(restProps) : getStringOptional(restProps)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type UnionValidationOptions<Required extends boolean, T extends z.Primitive> = {\n /**\n * сообщение об ошибке\n */\n message?: ((values: readonly T[]) => string) | string\n errorMap?: z.ZodErrorMap\n /**\n * сообщение об ошибке при не правильном типе значение\n */\n invalid_type_error?: string\n /**\n * сообщение об ошибке при отсутствии значения\n */\n required_error?: string\n /**\n * описание схемы\n */\n description?: string\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n}\n\n/**\n * Схема валидации обязательного поля из выборки\n */\nconst getUnionRequired = <T extends z.Primitive>(\n values: [T, T, ...T[]],\n props?: Omit<UnionValidationOptions<true, T>, 'required'>\n) => {\n const { message, ...restProps } = props || {}\n\n const [first, second, ...other] = values.map((value) => z.literal(value))\n\n const errorMessage = (() => {\n if (message) {\n return typeof message === 'function' ? message(values) : message\n }\n\n return baseDefaultMessages.VALUE_OUT_OF_RANGE(values)\n })()\n\n return z\n .union([first, second, ...other], {\n message: errorMessage,\n ...restProps\n })\n .nullable()\n .refine(Boolean, baseDefaultMessages.NON_EMPTY())\n .default(null)\n}\ntype UnionRequiredSchema<T extends z.Primitive> = ReturnType<typeof getUnionRequired<T>>\n\n/**\n * Схема валидации обязательного поля из выборки\n */\nconst getUnionOptional = <T extends z.Primitive>(values: [T, T, ...T[]], props?: UnionValidationOptions<false, T>) => {\n return getUnionRequired(values, props).optional()\n}\ntype UnionOptionalSchema<T extends z.Primitive> = ReturnType<typeof getUnionOptional<T>>\n\n/**\n * Схема валидации обязательного поля из выборки\n * @param {z.Primitive} values литералы\n * @param {z.RawCreateParams & { message: (values: z.Primitive[]) => string }} props настройки схемы\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required union value\n * z.object({\n * field: zodValidators.base.getUnionSchema(['A', 'B'] as const)\n * }) ^ it need to infer literal type\n * // will returns z.union([z.literal('A'), z.literal('B')])\n *\n * @example with optional union value\n * z.object({\n * field: zodValidators.base.getUnionSchema(['A', 'B'] as const, { required: false })\n * }) ^ it need to infer literal type\n * // will returns z.union([z.literal('A'), z.literal('B')]).optional()\n */\nexport function getUnionSchema<T extends z.Primitive>(\n values: [T, T, ...T[]],\n props?: UnionValidationOptions<true, T>\n): UnionRequiredSchema<T>\nexport function getUnionSchema<T extends z.Primitive>(\n values: [T, T, ...T[]],\n props?: UnionValidationOptions<false, T>\n): UnionOptionalSchema<T>\nexport function getUnionSchema<T extends z.Primitive, Required extends boolean>(\n values: [T, T, ...T[]],\n props?: UnionValidationOptions<Required, T>\n): UnionRequiredSchema<T> | UnionOptionalSchema<T> {\n const { required, ...restProps } = props || {}\n\n return required ? getUnionRequired(values, restProps) : getUnionOptional(values, restProps)\n}\n","import { string } from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type UrlValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * Регулярное выражение для проверки url на валидность\n */\n regexp?: RegExp | string\n /**\n * значение по умолчанию\n */\n defaultValue?: string\n message?: {\n min?: string\n invalid?: string\n }\n}\n\nconst URL_REGEX =\n /^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([-.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/\n\n/**\n * Схема валидации обязательного поля ссылки\n */\nconst getUrlRequired = (props?: Omit<UrlValidationOptions<true>, 'required'>) => {\n const { message, defaultValue, regexp = URL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return string()\n .min(1, message?.min || baseDefaultMessages.NON_EMPTY())\n .regex(regex, message?.invalid || baseDefaultMessages.INVALID_URL())\n .default(defaultValue ?? '')\n}\ntype UrlRequiredSchema = ReturnType<typeof getUrlRequired>\n\n/**\n * Схема валидации опционального поля ссылки\n */\nconst getUrlOptional = (props?: Omit<UrlValidationOptions<false>, 'required'>) => {\n const { message, regexp = URL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return string()\n .refine((value) => {\n if (TypeGuards.isStringEmpty(value)) return true\n return regex.test(value)\n }, message?.invalid || baseDefaultMessages.INVALID_URL())\n .optional()\n .transform((value) => (!value?.length ? undefined : value))\n}\ntype UrlOptionalSchema = ReturnType<typeof getUrlOptional>\n\nexport function getUrlSchema(props?: UrlValidationOptions<true>): UrlRequiredSchema\nexport function getUrlSchema(props?: UrlValidationOptions<false>): UrlOptionalSchema\n/**\n * Схема валидации поля ссылки\n * @param {UrlValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @typeParam `regexp` - `RegExp`\n * @typeParam `message` - `{ [min | invalid]: string }`\n * @returns схема валидации поля в соответствии с настройками\n */\nexport function getUrlSchema<Required extends boolean>(\n props?: UrlValidationOptions<Required>\n): UrlRequiredSchema | UrlOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getUrlRequired(props) : getUrlOptional(props)\n}\n","import { getBooleanSchema } from './boolean.validators'\nimport { getDateSchema } from './date.validators'\nimport { getEmailSchema } from './email.validators'\nimport { getNumberSchema } from './number.validators'\nimport { getPhoneSchema } from './phone.validators'\nimport { getSelectSchema } from './select.validators'\nimport { getStringSchema } from './string.validators'\nimport { getUnionSchema } from './union.validators'\nimport { getUrlSchema } from './url.validators'\n\nexport const baseValidationSchemas = {\n getStringSchema,\n getEmailSchema,\n getSelectSchema,\n getNumberSchema,\n getPhoneSchema,\n getDateSchema,\n getUnionSchema,\n getUrlSchema,\n getBooleanSchema\n}\n","import z from 'zod'\n\ntype ZodUtilsGetDefaultsOptions = {\n /**\n * Вставить в массив значение, исходя из внутренней схемы z.array\n */\n fillArrayWithValue?: boolean\n}\n\nexport class ZodUtils {\n /**\n * Функция для получения значения по умолчанию исходя из схемы\n * @param zodSchema схема формы\n * @param options настройки генерации значений по умолчанию\n * @returns объект значений по умолчанию\n *\n * @example\n * const schema = z.object({\n * name: zodValidators.base.getStringSchema(),\n * role: zodValidators.base.getUnionSchema(['UNKNOWN', 'ADMIN', 'MODERATOR', 'USER'] as const),\n * info: z.object({\n * address: zodValidators.base.getStringSchema(),\n * phone: zodValidators.base.getPhoneSchema({ ignoreMask: true }),\n * age: zodValidators.base.getNumberSchema()\n * })\n * })\n *\n * const defaultValues = ZodUtils.getZodDefaults(schema)\n *\n * // default values will be inferred from schema\n * // {\n * // name: '',\n * // role: 'UNKNOWN',\n * // info: {\n * // address: '',\n * // phone: '',\n * // age: 0\n * // }\n * // }\n */\n static getZodDefaults<ZodSchema extends z.AnyZodObject, Schema = z.TypeOf<ZodSchema>>(\n zodSchema: ZodSchema | z.ZodEffects<ZodSchema>,\n options?: ZodUtilsGetDefaultsOptions\n ): Schema {\n const { fillArrayWithValue } = options || {}\n\n const processZodEffects = (schema: z.ZodEffects<any>) => {\n const innerType = schema._def.schema\n\n if (innerType instanceof z.ZodEffects || innerType._def.typeName === 'ZodEffects') {\n return processZodEffects(innerType)\n }\n\n if (innerType instanceof z.ZodObject || innerType._def.typeName === 'ZodObject') {\n return this.getZodDefaults(innerType, options)\n }\n\n return getDefaultValue(innerType)\n }\n\n const getDefaultValue = (schema: z.ZodTypeAny): unknown => {\n if (schema instanceof z.ZodEffects || schema._def.typeName === 'ZodEffects') {\n return processZodEffects(schema as z.ZodEffects<ZodSchema>)\n }\n\n switch (true) {\n case schema._def.typeName === 'ZodDefault' || schema instanceof z.ZodDefault:\n return (schema as z.ZodDefault<ZodSchema>)._def.defaultValue()\n case schema._def.typeName === 'ZodOptional' || schema instanceof z.ZodOptional:\n return undefined\n case schema._def.typeName === 'ZodEffects':\n return processZodEffects(schema as z.ZodEffects<ZodSchema>)\n case schema._def.typeName === 'ZodNullable' || schema instanceof z.ZodNullable:\n return null\n case schema._def.typeName === 'ZodArray' || schema instanceof z.ZodArray:\n return fillArrayWithValue ? [getDefaultValue((schema as z.ZodArray<ZodSchema>).element)] : []\n case schema._def.typeName === 'ZodObject' || schema instanceof z.ZodObject:\n return this.getZodDefaults(schema as z.ZodObject<z.ZodRawShape>, options)\n case schema._def.typeName === 'ZodUnion' || schema instanceof z.ZodUnion:\n return getDefaultValue(schema._def.options[0])\n case schema._def.typeName === 'ZodLiteral' || schema instanceof z.ZodLiteral:\n return schema._def.value\n case schema._def.typeName === 'ZodDiscriminatedUnion' || schema instanceof z.ZodDiscriminatedUnion:\n return getDefaultValue(schema._def.options[0])\n case schema._def.typeName === 'ZodEnum' || schema instanceof z.ZodEnum:\n return schema._def.values[0]\n case schema._def.typeName === 'ZodString' || schema instanceof z.ZodString:\n return ''\n case schema._def.typeName === 'ZodNumber' || schema instanceof z.ZodNumber:\n return 0\n case schema._def.typeName === 'ZodBoolean' || schema instanceof z.ZodBoolean:\n return false\n case !('innerType' in schema._def):\n return undefined\n default:\n return getDefaultValue(schema._def.innerType)\n }\n }\n\n // @ts-expect-error asf\n if (zodSchema instanceof z.ZodEffects || zodSchema._def.typeName === 'ZodEffects') {\n return processZodEffects(zodSchema as unknown as z.ZodEffects<any>)\n }\n\n const defaults = {} as Schema\n\n const schemaEntries = Object.entries(zodSchema.shape) as [keyof Schema, z.ZodAny][]\n\n schemaEntries.map(([key, value]) => {\n defaults[key] = getDefaultValue(value) as Schema[keyof Schema]\n })\n\n return defaults\n }\n\n /**\n * Функция для объединения zod схождений\n * @param {ZodIntersection} zodSchema\n * @returns объединенная схема двух схождений\n *\n * @example\n * let schema = z.object({\n * foo: z.string()\n * })\n * // this will return intersection and we need\n * // to merge its left to right schema's\n * .and(\n * z.object({\n * bar: z.string()\n * })\n * )\n *\n * schema = ZodUtils.zodMergeIntersection(schema)\n *\n * // schema will be\n * z.object({\n * foo: z.string(),\n * bar: z.string()\n * })\n */\n static zodMergeIntersection<ZodLeft extends z.ZodTypeAny, ZodRight extends z.ZodTypeAny>(\n zodSchema: z.ZodIntersection<ZodLeft, ZodRight>\n ): z.ZodObject<z.objectUtil.MergeShapes<z.TypeOf<ZodLeft>, z.TypeOf<ZodRight>>> {\n const { left, right } = zodSchema._def\n\n const leftSchema =\n left instanceof z.ZodDiscriminatedUnion || left._def.typeName === 'ZodDiscriminatedUnion' ? left._def.options[0] : left\n const rightSchema =\n right instanceof z.ZodDiscriminatedUnion || right._def.typeName === 'ZodDiscriminatedUnion' ? right._def.options[0] : right\n\n if (\n (leftSchema._def.typeName === 'ZodObject' || leftSchema instanceof z.ZodObject) &&\n (rightSchema._def.typeName === 'ZodObject' || rightSchema instanceof z.ZodObject)\n ) {\n return leftSchema.merge(rightSchema)\n }\n\n throw new Error(`Cannot merge schema type ${rightSchema._def.typeName} to ${leftSchema._def.typeName}`)\n }\n}\n","export const fioDefaultMessages = {\n NON_EMPTY: () => 'Поле обязательно для заполнения',\n VALUE_NO_WHITESPACE: () => 'Укажите фамилию, имя и отчество через пробел',\n ONLY_CYRILLIC: () => 'Данные должны быть написаны кириллицей',\n NAME_OR_SURNAME_NON_EMPTY: () => 'Укажите имя и фамилию',\n INVALID_NAME: () => 'Неверно введено имя',\n INVALID_SURNAME: () => 'Неверно введена фамилия',\n INVALID_PATRONYMIC: () => 'Неверно введено отчество'\n}\n\nexport const fioRegex = {\n ONLY_CYRILLIC: /[\\u0400-\\u04FF\\u00CB\\u00EB -]/g,\n CHECK_HYPHEN: /^(?:[^-]+(?:-[^-]+){0,4}|[^-]+)$/,\n PATRONYMIC: /^[a-zA-Zа-яА-ЯёЁ]+(?:\\s*-\\s*[a-zA-Zа-яА-ЯёЁ]+){0,4}(?:\\s+[a-zA-Zа-яА-ЯёЁ]+(?:\\s*-\\s*[a-zA-Zа-яА-ЯёЁ]+){0,4})?$/i\n}\n","import z from 'zod'\nimport { fioDefaultMessages, fioRegex } from './dadata.constants'\n\nconst getFioParts = (value: string) => {\n const [surname, name, ...patronymicParts] = value.trim().replace(/\\s+/g, ' ').split(' ')\n const patronymic = patronymicParts.join(' ')\n\n return { surname, name, patronymic }\n}\n\nexport type FioValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n message?: {\n root?: string\n nameOrSurnameEmpty?: string\n invalidName?: string\n invalidSurname?: string\n invalidPatronymic?: string\n }\n}\n\n/**\n * Схема валидации обязательного поля автозаполнения ФИО\n */\nconst getFioRequired = (props?: Omit<FioValidationOptions<true>, 'required'>) => {\n const { message } = props || {}\n\n const { nameOrSurnameEmpty, invalidSurname, invalidPatronymic, invalidName } = message || {}\n\n return z\n .string()\n .superRefine((value, context) => {\n const { name, surname, patronymic } = getFioParts(value)\n\n if (!fioRegex.ONLY_CYRILLIC.test(value)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: fioDefaultMessages.ONLY_CYRILLIC()\n })\n }\n\n if (!name || !surname) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: nameOrSurnameEmpty || fioDefaultMessages.NAME_OR_SURNAME_NON_EMPTY()\n })\n }\n\n if (!fioRegex.CHECK_HYPHEN.test(name)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: invalidName || fioDefaultMessages.INVALID_NAME()\n })\n }\n\n if (!fioRegex.CHECK_HYPHEN.test(surname)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: invalidSurname || fioDefaultMessages.INVALID_SURNAME()\n })\n }\n\n if (patronymic) {\n if (!fioRegex.PATRONYMIC.test(patronymic)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: invalidPatronymic || fioDefaultMessages.INVALID_PATRONYMIC()\n })\n }\n }\n })\n .transform((value) => value.trimEnd())\n .default('')\n}\ntype FioRequiredSchema = ReturnType<typeof getFioRequired>\n\n/**\n * Схема валидации опционального поля автозаполнения ФИО\n */\nconst getFioOptional = (props?: Omit<FioValidationOptions<false>, 'required'>) => {\n return getFioRequired(props)\n .optional()\n .transform((value) => (!value?.length ? undefined : value))\n}\ntype FioOptionalSchema = ReturnType<typeof getFioOptional>\n\n/**\n * Схема валидации поля автозаполнения ФИО\n * @param {DateValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getFioSchema()\n * })\n * // will returns z.string()\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getFioSchema({ required: false })\n * })\n * // will returns z.string().optional()\n */\nexport function getFioSchema(props?: FioValidationOptions<true>): FioRequiredSchema\nexport function getFioSchema(props?: FioValidationOptions<false>): FioOptionalSchema\nexport function getFioSchema<Required extends boolean>(\n props?: FioValidationOptions<Required>\n): FioRequiredSchema | FioOptionalSchema {\n const { required = true, ...restProps } = props || {}\n\n return required ? getFioRequired(restProps) : getFioOptional(restProps)\n}\n","import { getFioSchema } from './fio.validators'\nexport type * from './fio.validators'\nexport { fioDefaultMessages } from './dadata.constants'\n\nexport const dadataValidationSchemas = {\n getFioSchema\n}\n","export * from './regExp'\nexport * from './messages'\nexport * from './zodValidation'\nexport * from './base'\nexport type * from './dadata'\nexport * from './utils'\nimport { baseValidationSchemas } from './base'\nimport { dadataValidationSchemas } from './dadata'\n\nexport const zodValidators = {\n base: baseValidationSchemas,\n dadata: dadataValidationSchemas\n}\n"],"names":["getBooleanRequired","props","defaultValue","z","getBooleanOptional","getBooleanSchema","required","rest","baseDefaultMessages","min","max","length","range","date","TypeGuards","formatDateToLocaleString","getDateRequired","iso","pattern","DATE_VISIBLE_PATTERN","message","value","context","validSymbolsLength","parse","isValid","getDateOptional","getDateSchema","EMAIL_REGEX","getEmailRequired","regexp","regex","getEmailOptional","getEmailSchema","getNumberRequired","schema","getNumberOptional","getNumberSchema","getPhoneRequired","ignoreMask","maskSymbols","validOperatorCodes","mask","cleanValue","operatorCode","getPhoneOptional","getPhoneSchema","getSelectRequired","selectSchema","arraySchema","_a","_b","getSelectOptional","getSelectSchema","getStringRequired","getStringOptional","getStringSchema","restProps","getUnionRequired","values","first","second","other","errorMessage","getUnionOptional","getUnionSchema","URL_REGEX","getUrlRequired","string","getUrlOptional","getUrlSchema","baseValidationSchemas","ZodUtils","zodSchema","options","fillArrayWithValue","processZodEffects","innerType","getDefaultValue","defaults","key","left","right","leftSchema","rightSchema","fioDefaultMessages","fioRegex","getFioParts","surname","name","patronymicParts","patronymic","getFioRequired","nameOrSurnameEmpty","invalidSurname","invalidPatronymic","invalidName","getFioOptional","getFioSchema","dadataValidationSchemas","zodValidators"],"mappings":";;AAeA,MAAMA,IAAqB,CAACC,MAA6D;AACvF,QAAM,EAAE,cAAAC,MAAiBD,KAAS,CAAC;AAI5B,SAFQE,EAAE,QAAQ,EAEX,QAAQD,KAAgB,EAAK;AAC7C,GAIME,IAAqB,CAACH,MACnBD,EAAmBC,CAAK,EAAE,SAAS;AAOrC,SAASI,EACdJ,GAC+C;AAC/C,QAAM,EAAE,UAAAK,IAAW,IAAM,GAAGC,EAAK,IAAIN,KAAS,CAAC;AAE/C,SAAOK,IAAWN,EAAmBO,CAAI,IAAIH,EAAmBG,CAAI;AACtE;ACnCO,MAAMC,IAAsB;AAAA,EACjC,WAAW,MAAM;AAAA,EACjB,YAAY,CAACC,MAAgB,2CAA2CA,CAAG;AAAA,EAC3E,YAAY,CAACC,MAAgB,4CAA4CA,CAAG;AAAA,EAC5E,YAAY,CAACC,MAAmB,kDAAkDA,CAAM;AAAA,EACxF,WAAW,CAACF,MAAgB,qCAAqCA,CAAG;AAAA,EACpE,WAAW,CAACC,MAAgB,qCAAqCA,CAAG;AAAA,EACpE,iBAAiB,MAAM;AAAA,EACvB,wBAAwB,MAAM;AAAA,EAC9B,eAAe,MAAM;AAAA,EACrB,iBAAiB,MAAM;AAAA,EACvB,kBAAkB,MAAM;AAAA,EACxB,4BAA4B,CAACC,MAAmB,qBAAqBA,CAAM;AAAA,EAC3E,4BAA4B,CAACA,MAAmB,qBAAqBA,CAAM;AAAA,EAC3E,mBAAmB,CAACA,MAAmB,yDAAyDA,CAAM;AAAA,EACtG,qBAAqB,MAAM;AAAA,EAC3B,gBAAgB,MAAM;AAAA,EACtB,oBAAoB,CAAsBC,MAAe,8BAA8BA,EAAM,KAAK,IAAI,CAAC;AAAA,EACvG,UAAU,CAACH,MAAuB;AAC1B,UAAAI,IAAOC,EAAW,SAASL,CAAG,IAAI,IAAI,KAAKA,CAAG,IAAIA;AAEjD,WAAA,wCAAwCM,EAAyBF,CAAI,CAAC;AAAA,EAC/E;AAAA,EACA,UAAU,CAACH,MAAuB;AAC1B,UAAAG,IAAOC,EAAW,SAASJ,CAAG,IAAI,IAAI,KAAKA,CAAG,IAAIA;AAEjD,WAAA,uCAAuCK,EAAyBF,CAAI,CAAC;AAAA,EAC9E;AAAA,EACA,aAAa,MAAM;AACrB,GCaMG,IAAkB,CAACf,MAA6D;AAC9E,QAAA,EAAE,KAAAgB,IAAM,IAAM,SAAAC,IAAUC,GAAsB,KAAAV,GAAK,KAAAC,GAAK,cAAAR,GAAc,SAAAkB,EAAY,IAAAnB,KAAS,CAAC;AAElG,SAAOE,EACJ,OAAA,EACA,IAAI,IAAGiB,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,eAAA,CAAgB,EAC3D,YAAY,CAACa,GAAOC,MAAY;AAC/B,UAAMC,IAAqBL,EAAQ,QAAQ,OAAO,EAAE,EAAE;AAatD,QAZqBG,EAAM,QAAQ,UAAU,EAAE,EAE9B,SAASE,KACxBD,EAAQ,SAAS;AAAA,MACf,MAAMnB,EAAE,aAAa;AAAA,MACrB,SAASoB;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,MACX,UAASH,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,eAAe;AAAA,IAAA,CAC7D,GAGCS,GAAK;AACP,UAAIJ,IAAoB;AAEpB,UAAA;AACK,QAAAA,IAAA,IAAI,KAAKQ,CAAK;AAAA,MAAA,QACf;AACN,QAAAC,EAAQ,SAAS;AAAA,UACf,MAAMnB,EAAE,aAAa;AAAA,UACrB,UAASiB,KAAA,gBAAAA,EAAS,gBAAeZ,EAAoB,oBAAoB;AAAA,QAAA,CAC1E;AAAA,MAAA;AAGH,MAAIC,KACEI,EAAM,QAAA,KAAaC,EAAW,SAASL,CAAG,IAAI,IAAI,KAAKA,CAAG,EAAE,QAAA,IAAYA,EAAI,QAAY,MAC1Fa,EAAQ,SAAS;AAAA,QACf,MAAMnB,EAAE,aAAa;AAAA,QACrB,UAASiB,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,SAASC,CAAG;AAAA,MAAA,CAC1D,GAIDC,KACEG,EAAM,QAAA,KAAaC,EAAW,SAASJ,CAAG,IAAI,IAAI,KAAKA,CAAG,EAAE,QAAA,IAAYA,EAAI,QAAY,MAC1FY,EAAQ,SAAS;AAAA,QACf,MAAMnB,EAAE,aAAa;AAAA,QACrB,UAASiB,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,SAASE,CAAG;AAAA,MAAA,CAC1D;AAAA,IAEL,OACK;AACL,YAAMG,IAAOW,EAAMH,GAAOH,GAAS,oBAAI,MAAM;AAEzC,MAACO,EAAQZ,CAAI,KACfS,EAAQ,SAAS;AAAA,QACf,MAAMnB,EAAE,aAAa;AAAA,QACrB,UAASiB,KAAA,gBAAAA,EAAS,gBAAeZ,EAAoB,oBAAoB;AAAA,MAAA,CAC1E,GAGCC,KACEI,EAAK,QAAA,KAAaC,EAAW,SAASL,CAAG,IAAI,IAAI,KAAKA,CAAG,EAAE,QAAA,IAAYA,EAAI,QAAY,MACzFa,EAAQ,SAAS;AAAA,QACf,MAAMnB,EAAE,aAAa;AAAA,QACrB,UAASiB,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,SAASC,CAAG;AAAA,MAAA,CAC1D,GAIDC,KACEG,EAAK,QAAA,KAAaC,EAAW,SAASJ,CAAG,IAAI,IAAI,KAAKA,CAAG,EAAE,QAAA,IAAYA,EAAI,QAAY,MACzFY,EAAQ,SAAS;AAAA,QACf,MAAMnB,EAAE,aAAa;AAAA,QACrB,UAASiB,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,SAASE,CAAG;AAAA,MAAA,CAC1D;AAAA,IAEL;AAAA,EACF,CACD,EACA,QAAQR,KAAgB,EAAE;AAC/B,GAMMwB,IAAkB,CAACzB,MAA6D;AAC9E,QAAA,EAAE,KAAAgB,IAAM,IAAM,SAAAC,IAAUC,GAAsB,KAAAV,GAAK,KAAAC,GAAK,SAAAU,MAAYnB,KAAS,CAAC;AAEpF,SAAOE,EACJ,OAAA,EACA,UAAU,CAACkB,MAAYA,KAAQ,MAAkB,EACjD,YAAY,CAACA,GAAOC,MAAY;AAC/B,QAAIR,EAAW,SAASO,CAAK,KAAaA,EAAM,QAAS;AACvD,YAAME,IAAqBL,EAAQ,QAAQ,OAAO,EAAE,EAAE;AAatD,UAZqBG,EAAM,QAAQ,UAAU,EAAE,EAE9B,SAASE,KACxBD,EAAQ,SAAS;AAAA,QACf,MAAMnB,EAAE,aAAa;AAAA,QACrB,SAASoB;AAAA,QACT,MAAM;AAAA,QACN,WAAW;AAAA,QACX,UAASH,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,eAAe;AAAA,MAAA,CAC7D,GAGCS,GAAK;AACP,YAAIJ,IAAoB;AAEpB,YAAA;AACK,UAAAA,IAAA,IAAI,KAAKQ,CAAK;AAAA,QAAA,QACf;AACN,UAAAC,EAAQ,SAAS;AAAA,YACf,MAAMnB,EAAE,aAAa;AAAA,YACrB,UAASiB,KAAA,gBAAAA,EAAS,gBAAeZ,EAAoB,oBAAoB;AAAA,UAAA,CAC1E;AAAA,QAAA;AAGH,QAAIC,KACEI,EAAM,QAAA,KAAaC,EAAW,SAASL,CAAG,IAAI,IAAI,KAAKA,CAAG,EAAE,QAAA,IAAYA,EAAI,QAAY,MAC1Fa,EAAQ,SAAS;AAAA,UACf,MAAMnB,EAAE,aAAa;AAAA,UACrB,UAASiB,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,SAASC,CAAG;AAAA,QAAA,CAC1D,GAIDC,KACEG,EAAM,QAAA,KAAaC,EAAW,SAASJ,CAAG,IAAI,IAAI,KAAKA,CAAG,EAAE,QAAA,IAAYA,EAAI,QAAY,MAC1FY,EAAQ,SAAS;AAAA,UACf,MAAMnB,EAAE,aAAa;AAAA,UACrB,UAASiB,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,SAASE,CAAG;AAAA,QAAA,CAC1D;AAAA,MAEL,OACK;AACL,cAAMG,IAAOW,EAAMH,GAAOH,GAAS,oBAAI,MAAM;AAEzC,QAACO,EAAQZ,CAAI,KACfS,EAAQ,SAAS;AAAA,UACf,MAAMnB,EAAE,aAAa;AAAA,UACrB,UAASiB,KAAA,gBAAAA,EAAS,gBAAeZ,EAAoB,oBAAoB;AAAA,QAAA,CAC1E,GAGCC,KACEI,EAAK,QAAA,KAAaC,EAAW,SAASL,CAAG,IAAI,IAAI,KAAKA,CAAG,EAAE,QAAA,IAAYA,EAAI,QAAY,MACzFa,EAAQ,SAAS;AAAA,UACf,MAAMnB,EAAE,aAAa;AAAA,UACrB,UAASiB,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,SAASC,CAAG;AAAA,QAAA,CAC1D,GAIDC,KACEG,EAAK,QAAA,KAAaC,EAAW,SAASJ,CAAG,IAAI,IAAI,KAAKA,CAAG,EAAE,QAAA,IAAYA,EAAI,QAAY,MACzFY,EAAQ,SAAS;AAAA,UACf,MAAMnB,EAAE,aAAa;AAAA,UACrB,UAASiB,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,SAASE,CAAG;AAAA,QAAA,CAC1D;AAAA,MAEL;AAAA,IACF;AAAA,EAEH,CAAA,EACA,SAAS;AACd;AA0BO,SAASiB,EACd1B,GACyC;AACzC,QAAM,EAAE,UAAAK,IAAW,GAAK,IAAIL,KAAS,CAAC;AAEtC,SAAOK,IAAWU,EAAgBf,CAAK,IAAIyB,EAAgBzB,CAAK;AAClE;AC3NA,MAAM2B,IAAc,oCAKdC,IAAmB,CAAC5B,MAA2D;AACnF,QAAM,EAAE,SAAAmB,GAAS,cAAAlB,GAAc,QAAA4B,IAASF,EAAY,IAAI3B,KAAS,CAAC,GAE5D8B,IAAQjB,EAAW,SAASgB,CAAM,IAAI,IAAI,OAAOA,CAAM,IAAIA;AAE1D,SAAA3B,EACJ,SACA,IAAI,IAAGiB,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,gBAAiB,CAAA,EAC5D,MAAMuB,IAAOX,KAAA,gBAAAA,EAAS,YAAWZ,EAAoB,eAAe,EACpE,QAAQN,KAAgB,EAAE;AAC/B,GAMM8B,IAAmB,CAAC/B,MAA4D;AACpF,QAAM,EAAE,SAAAmB,GAAS,QAAAU,IAASF,EAAY,IAAI3B,KAAS,CAAC,GAE9C8B,IAAQjB,EAAW,SAASgB,CAAM,IAAI,IAAI,OAAOA,CAAM,IAAIA;AAE1D,SAAA3B,EACJ,SACA;AAAA,IACC,CAACkB,MACKP,EAAW,cAAcO,CAAK,IAAU,KACrCU,EAAM,KAAKV,CAAK;AAAA,IAEzB;AAAA,MACE,UAASD,KAAA,gBAAAA,EAAS,YAAWZ,EAAoB,cAAc;AAAA,IAAA;AAAA,EACjE,EAED,SAAS,EACT,UAAU,CAACa,OAAWA,KAAA,gBAAAA,EAAO,YAAW,IAAI,SAAYA,CAAM;AACnE;AAyBO,SAASY,EACdhC,GAC2C;AAC3C,QAAM,EAAE,UAAAK,IAAW,GAAK,IAAIL,KAAS,CAAC;AAEtC,SAAOK,IAAWuB,EAAiB5B,CAAK,IAAI+B,EAAiB/B,CAAK;AACpE;ACjEA,MAAMiC,IAAoB,CAACjC,MAA4D;AACrF,QAAM,EAAE,KAAAQ,GAAK,KAAAC,GAAK,SAAAU,GAAS,cAAAlB,EAAa,IAAID,KAAS,CAAC;AAElD,MAAAkC,IAAShC,EAAE,OAAO,OAAO;AAE7B,SAAIM,MACO0B,IAAAA,EAAO,IAAI1B,IAAKW,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,UAAUC,CAAG,CAAC,IAGzEC,MACOyB,IAAAA,EAAO,IAAIzB,IAAKU,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,UAAUE,CAAG,CAAC,IAGtEyB,EAAO,QAAQjC,KAAgB,CAAC;AACzC,GAMMkC,IAAoB,CAACnC,MAClBiC,EAAkBjC,CAAK,EAC3B,WACA,UAAU,CAACoB,MAAYA,KAAQ,MAAkB;AA2B/C,SAASgB,EACdpC,GAC6C;AAC7C,QAAM,EAAE,UAAAK,IAAW,GAAK,IAAIL,KAAS,CAAC;AAEtC,SAAOK,IAAW4B,EAAkBjC,CAAK,IAAImC,EAAkBnC,CAAK;AACtE;AC/CA,MAAMqC,IAAmB,CAACrC,MAA2D;AAC7E,QAAA;AAAA,IACJ,YAAAsC,IAAa;AAAA,IACb,aAAAC,IAAc;AAAA,IACd,SAAApB;AAAA,IACA,cAAAlB;AAAA,IACA,oBAAAuC,IAAqB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAAA,EACpD,IAAIxC,KAAS,CAAC,GAERyC,IAAO5B,EAAW,SAAS0B,CAAW,IAAI,IAAI,OAAOA,CAAW,IAAIA;AAE1E,MAAIL,IAAShC,EAAE,OAAA,EAAS,YAAY,CAACkB,GAAOC,MAAY;AACtD,UAAMqB,IAAatB,EAAM,QAAQqB,GAAM,EAAE,GAEnCE,IAAeD,EAAW,OAAO,CAAC;AAExC,IAAKF,EAAmB,SAASG,CAAY,KAC3CtB,EAAQ,SAAS;AAAA,MACf,MAAMnB,EAAE,aAAa;AAAA,MACrB,YAAY;AAAA,MACZ,UAASiB,KAAA,gBAAAA,EAAS,oBAAmBZ,EAAoB,uBAAuB;AAAA,IAAA,CACjF,GAGCmC,EAAW,SAAS,MACtBrB,EAAQ,SAAS;AAAA,MACf,MAAMnB,EAAE,aAAa;AAAA,MACrB,SAAS;AAAA,MACT,WAAW;AAAA,MACX,MAAM;AAAA,MACN,UAASiB,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,gBAAgB;AAAA,IAAA,CAC9D;AAAA,EACH,CACD;AAED,SAAI+B,MACOJ,IAAAA,EAAO,UAAU,CAACd,MAAUA,EAAM,QAAQqB,GAAM,EAAE,CAAC,IAGvDP,EAAO,QAAQjC,KAAgB,EAAE;AAC1C,GAMM2C,IAAmB,CAAC5C,MAA4D;AAC9E,QAAA;AAAA,IACJ,YAAAsC,IAAa;AAAA,IACb,aAAAC,IAAc;AAAA,IACd,SAAApB;AAAA,IACA,oBAAAqB,IAAqB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAAA,EACpD,IAAIxC,KAAS,CAAC,GAERyC,IAAO5B,EAAW,SAAS0B,CAAW,IAAI,IAAI,OAAOA,CAAW,IAAIA;AAE1E,MAAIL,IAAShC,EAAE,OAAA,EAAS,YAAY,CAACkB,GAAOC,MAAY;AACtD,UAAMqB,IAAatB,EAAM,QAAQqB,GAAM,EAAE,GAEnCE,IAAeD,EAAW,OAAO,CAAC;AAExC,IAAKF,EAAmB,SAASG,CAAY,KAC3CtB,EAAQ,SAAS;AAAA,MACf,MAAMnB,EAAE,aAAa;AAAA,MACrB,YAAY;AAAA,MACZ,UAASiB,KAAA,gBAAAA,EAAS,oBAAmBZ,EAAoB,uBAAuB;AAAA,IAAA,CACjF,GAGCmC,EAAW,SAAS,MACtBrB,EAAQ,SAAS;AAAA,MACf,MAAMnB,EAAE,aAAa;AAAA,MACrB,SAAS;AAAA,MACT,WAAW;AAAA,MACX,MAAM;AAAA,MACN,UAASiB,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,gBAAgB;AAAA,IAAA,CAC9D;AAAA,EACH,CACD;AAED,SAAI+B,MACOJ,IAAAA,EAAO,UAAU,CAACd,MAAUA,EAAM,QAAQqB,GAAM,EAAE,CAAC,IAGvDP,EAAO,UAAU,CAACd,MAAYA,KAAQ,MAAkB;AACjE;AA0BO,SAASyB,EACd7C,GAC2C;AAC3C,QAAM,EAAE,UAAAK,IAAW,GAAK,IAAIL,KAAS,CAAC;AAEtC,SAAOK,IAAWgC,EAAiBrC,CAAK,IAAI4C,EAAiB5C,CAAK;AACpE;AClGA,MAAM8C,IAAoB,CAAkD9C,MAAqD;;AAC/H,QAAM,EAAE,SAAAmB,GAAS,cAAAlB,EAAa,IAAID,KAAS,CAAC,GAEtC+C,IAAe7C,EAClB,OAAO,EACP,IAAI,IAAGiB,KAAA,gBAAAA,EAAS,WAAUZ,EAAoB,iBAAkB,CAAA,EAChE,SAAS,EACT,OAAO,CAACa,MAAU,EAAQA,IAAQD,KAAA,gBAAAA,EAAS,WAAUZ,EAAoB,iBAAA,CAAkB,EAC3F,QAAQN,KAAgB,IAAI;AAE/B,MAAID,KAAA,QAAAA,EAAO,UAAU;AACnB,QAAIgD,IAAc9C,EACf,MAAM6C,CAAY,EAClB,KAAI/C,KAAA,gBAAAA,EAAO,cAAa,IAAGmB,KAAA,gBAAAA,EAAS,aAAYZ,EAAoB,4BAA2BP,KAAA,gBAAAA,EAAO,cAAa,CAAC,CAAC;AAExH,WAAIA,KAAA,QAAAA,EAAO,SACFgD,EACJ,OAAOhD,EAAM,UAAQiD,IAAAjD,EAAM,YAAN,gBAAAiD,EAAe,WAAU1C,EAAoB,kBAAkBP,EAAM,MAAM,CAAC,EACjG,QAAQ,CAAA,CAAE,KACJA,KAAA,QAAAA,EAAO,cAChBgD,IAAcA,EAAY;AAAA,MACxBhD,EAAM;AAAA,QACNkD,IAAAlD,EAAM,YAAN,gBAAAkD,EAAe,cAAa3C,EAAoB,2BAA2BP,EAAM,SAAS;AAAA,IAC5F,IAGKgD,EAAY,QAAQ,EAAE;AAAA,EAAA;AAGxB,SAAAD;AACT;AAMA,SAASI,EACPnD,GACA;AACA,QAAM+C,IAAe7C,EAAE,OAAS,EAAA,SAAA,EAAW,SAAS;AAEpD,SAAIF,KAAA,QAAAA,EAAO,WACFE,EAAE,MAAM6C,CAAY,EAAE,SAAS,IAGjCA;AACT;AAqCO,SAASK,EACdpD,GAC6C;AAC7C,QAAM,EAAE,UAAAK,IAAW,GAAK,IAAIL,KAAS,CAAC;AAEtC,SAAOK,IAAWyC,EAAkB9C,CAAK,IAAImD,EAAkBnD,CAAK;AACtE;ACjHA,MAAMqD,IAAoB,CAACrD,MAA4D;AAC/E,QAAA,EAAE,KAAAQ,GAAK,KAAAC,GAAK,QAAAC,GAAQ,cAAAT,GAAc,SAAAkB,EAAQ,IAAInB,KAAS,CAAC;AAE9D,MAAIkC,IAAShC,EAAE,OAAO,EAAE,SAASiB,KAAA,gBAAAA,EAAS,MAAM;AAEhD,SAAIX,MACO0B,IAAAA,EAAO,IAAI1B,GAAK,EAAE,UAASW,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,WAAWC,CAAG,EAAA,CAAG,IAGvFC,MACOyB,IAAAA,EAAO,IAAIzB,GAAK,EAAE,UAASU,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,WAAWE,CAAG,EAAA,CAAG,IAGvFC,MACOwB,IAAAA,EAAO,OAAOxB,GAAQ,EAAE,UAASS,KAAA,gBAAAA,EAAS,WAAUZ,EAAoB,WAAWG,CAAM,EAAA,CAAG,IAGhGwB,EACJ,OAAO,CAACd,MAAU,EAAQA,EAAM,QAAS,EAAE,UAASD,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,UAAU,EAAG,CAAA,EACrG,QAAQN,KAAgB,EAAE;AAC/B,GAMMqD,IAAoB,CAACtD,MAA6D;AACtF,QAAM,EAAE,KAAAQ,GAAK,KAAAC,GAAK,QAAAC,GAAQ,SAAAS,EAAQ,IAAInB,KAAS,CAAC;AAEhD,MAAIkC,IAAShC,EAAE,OAAO,EAAE,SAASiB,KAAA,gBAAAA,EAAS,MAAM;AAEhD,SAAIX,MACO0B,IAAAA,EAAO,IAAI1B,GAAK,EAAE,UAASW,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,WAAWC,CAAG,EAAA,CAAG,IAGvFC,MACOyB,IAAAA,EAAO,IAAIzB,GAAK,EAAE,UAASU,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,WAAWE,CAAG,EAAA,CAAG,IAGvFC,MACOwB,IAAAA,EAAO,OAAOxB,GAAQ,EAAE,UAASS,KAAA,gBAAAA,EAAS,WAAUZ,EAAoB,WAAWG,CAAM,EAAA,CAAG,IAGhGwB,EAAO,SAAS,EAAE,UAAU,CAACd,MAAYA,KAAA,QAAAA,EAAO,SAAqBA,IAAZ,MAAkB;AACpF;AAqCO,SAASmC,EACdvD,GAC6C;AAC7C,QAAM,EAAE,UAAAK,IAAW,IAAM,GAAGmD,EAAU,IAAIxD,KAAS,CAAC;AAEpD,SAAOK,IAAWgD,EAAkBG,CAAS,IAAIF,EAAkBE,CAAS;AAC9E;AC1FA,MAAMC,IAAmB,CACvBC,GACA1D,MACG;AACH,QAAM,EAAE,SAAAmB,GAAS,GAAGqC,EAAU,IAAIxD,KAAS,CAAC,GAEtC,CAAC2D,GAAOC,GAAQ,GAAGC,CAAK,IAAIH,EAAO,IAAI,CAACtC,MAAUlB,EAAE,QAAQkB,CAAK,CAAC,GAElE0C,IACA3C,IACK,OAAOA,KAAY,aAAaA,EAAQuC,CAAM,IAAIvC,IAGpDZ,EAAoB,mBAAmBmD,CAAM;AAGtD,SAAOxD,EACJ,MAAM,CAACyD,GAAOC,GAAQ,GAAGC,CAAK,GAAG;AAAA,IAChC,SAASC;AAAA,IACT,GAAGN;AAAA,EAAA,CACJ,EACA,WACA,OAAO,SAASjD,EAAoB,UAAW,CAAA,EAC/C,QAAQ,IAAI;AACjB,GAMMwD,IAAmB,CAAwBL,GAAwB1D,MAChEyD,EAAiBC,GAAQ1D,CAAK,EAAE,SAAS;AA8BlC,SAAAgE,EACdN,GACA1D,GACiD;AACjD,QAAM,EAAE,UAAAK,GAAU,GAAGmD,EAAU,IAAIxD,KAAS,CAAC;AAE7C,SAAOK,IAAWoD,EAAiBC,GAAQF,CAAS,IAAIO,EAAiBL,GAAQF,CAAS;AAC5F;AC3EA,MAAMS,IACJ,yHAKIC,IAAiB,CAAClE,MAAyD;AAC/E,QAAM,EAAE,SAAAmB,GAAS,cAAAlB,GAAc,QAAA4B,IAASoC,EAAU,IAAIjE,KAAS,CAAC,GAE1D8B,IAAQjB,EAAW,SAASgB,CAAM,IAAI,IAAI,OAAOA,CAAM,IAAIA;AAE1D,SAAAsC,EAAA,EACJ,IAAI,IAAGhD,KAAA,gBAAAA,EAAS,QAAOZ,EAAoB,WAAW,EACtD,MAAMuB,IAAOX,KAAA,gBAAAA,EAAS,YAAWZ,EAAoB,YAAA,CAAa,EAClE,QAAQN,KAAgB,EAAE;AAC/B,GAMMmE,IAAiB,CAACpE,MAA0D;AAChF,QAAM,EAAE,SAAAmB,GAAS,QAAAU,IAASoC,EAAU,IAAIjE,KAAS,CAAC,GAE5C8B,IAAQjB,EAAW,SAASgB,CAAM,IAAI,IAAI,OAAOA,CAAM,IAAIA;AAEjE,SAAOsC,EAAO,EACX,OAAO,CAAC/C,MACHP,EAAW,cAAcO,CAAK,IAAU,KACrCU,EAAM,KAAKV,CAAK,IACtBD,KAAA,gBAAAA,EAAS,YAAWZ,EAAoB,YAAA,CAAa,EACvD,SAAA,EACA,UAAU,CAACa,MAAYA,KAAA,QAAAA,EAAO,SAAqBA,IAAZ,MAAkB;AAC9D;AAaO,SAASiD,EACdrE,GACuC;AACvC,QAAM,EAAE,UAAAK,IAAW,GAAK,IAAIL,KAAS,CAAC;AAEtC,SAAOK,IAAW6D,EAAelE,CAAK,IAAIoE,EAAepE,CAAK;AAChE;AClEO,MAAMsE,IAAwB;AAAA,EACnC,iBAAAf;AAAA,EACA,gBAAAvB;AAAA,EACA,iBAAAoB;AAAA,EACA,iBAAAhB;AAAA,EACA,gBAAAS;AAAA,EACA,eAAAnB;AAAA,EACA,gBAAAsC;AAAA,EACA,cAAAK;AAAA,EACA,kBAAAjE;AACF;ACXO,MAAMmE,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA+BpB,OAAO,eACLC,GACAC,GACQ;AACR,UAAM,EAAE,oBAAAC,MAAuBD,KAAW,CAAC,GAErCE,IAAoB,CAACzC,MAA8B;AACjD,YAAA0C,IAAY1C,EAAO,KAAK;AAE9B,aAAI0C,aAAqB1E,EAAE,cAAc0E,EAAU,KAAK,aAAa,eAC5DD,EAAkBC,CAAS,IAGhCA,aAAqB1E,EAAE,aAAa0E,EAAU,KAAK,aAAa,cAC3D,KAAK,eAAeA,GAAWH,CAAO,IAGxCI,EAAgBD,CAAS;AAAA,IAClC,GAEMC,IAAkB,CAAC3C,MAAkC;AACzD,UAAIA,aAAkBhC,EAAE,cAAcgC,EAAO,KAAK,aAAa;AAC7D,eAAOyC,EAAkBzC,CAAiC;AAG5D,cAAQ,IAAM;AAAA,QACZ,MAAKA,EAAO,KAAK,aAAa,gBAAgBA,aAAkBhC,EAAE;AACxD,iBAAAgC,EAAmC,KAAK,aAAa;AAAA,QAC/D,MAAKA,EAAO,KAAK,aAAa,iBAAiBA,aAAkBhC,EAAE;AAC1D;AAAA,QACT,KAAKgC,EAAO,KAAK,aAAa;AAC5B,iBAAOyC,EAAkBzC,CAAiC;AAAA,QAC5D,MAAKA,EAAO,KAAK,aAAa,iBAAiBA,aAAkBhC,EAAE;AAC1D,iBAAA;AAAA,QACT,MAAKgC,EAAO,KAAK,aAAa,cAAcA,aAAkBhC,EAAE;AAC9D,iBAAOwE,IAAqB,CAACG,EAAiB3C,EAAiC,OAAO,CAAC,IAAI,CAAC;AAAA,QAC9F,MAAKA,EAAO,KAAK,aAAa,eAAeA,aAAkBhC,EAAE;AACxD,iBAAA,KAAK,eAAegC,GAAsCuC,CAAO;AAAA,QAC1E,MAAKvC,EAAO,KAAK,aAAa,cAAcA,aAAkBhC,EAAE;AAC9D,iBAAO2E,EAAgB3C,EAAO,KAAK,QAAQ,CAAC,CAAC;AAAA,QAC/C,MAAKA,EAAO,KAAK,aAAa,gBAAgBA,aAAkBhC,EAAE;AAChE,iBAAOgC,EAAO,KAAK;AAAA,QACrB,MAAKA,EAAO,KAAK,aAAa,2BAA2BA,aAAkBhC,EAAE;AAC3E,iBAAO2E,EAAgB3C,EAAO,KAAK,QAAQ,CAAC,CAAC;AAAA,QAC/C,MAAKA,EAAO,KAAK,aAAa,aAAaA,aAAkBhC,EAAE;AACtD,iBAAAgC,EAAO,KAAK,OAAO,CAAC;AAAA,QAC7B,MAAKA,EAAO,KAAK,aAAa,eAAeA,aAAkBhC,EAAE;AACxD,iBAAA;AAAA,QACT,MAAKgC,EAAO,KAAK,aAAa,eAAeA,aAAkBhC,EAAE;AACxD,iBAAA;AAAA,QACT,MAAKgC,EAAO,KAAK,aAAa,gBAAgBA,aAAkBhC,EAAE;AACzD,iBAAA;AAAA,QACT,KAAK,EAAE,eAAegC,EAAO;AACpB;AAAA,QACT;AACS,iBAAA2C,EAAgB3C,EAAO,KAAK,SAAS;AAAA,MAAA;AAAA,IAElD;AAGA,QAAIsC,aAAqBtE,EAAE,cAAcsE,EAAU,KAAK,aAAa;AACnE,aAAOG,EAAkBH,CAAyC;AAGpE,UAAMM,IAAW,CAAC;AAIlB,WAFsB,OAAO,QAAQN,EAAU,KAAK,EAEtC,IAAI,CAAC,CAACO,GAAK3D,CAAK,MAAM;AACzB,MAAA0D,EAAAC,CAAG,IAAIF,EAAgBzD,CAAK;AAAA,IAAA,CACtC,GAEM0D;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4BT,OAAO,qBACLN,GAC8E;AAC9E,UAAM,EAAE,MAAAQ,GAAM,OAAAC,EAAM,IAAIT,EAAU,MAE5BU,IACJF,aAAgB9E,EAAE,yBAAyB8E,EAAK,KAAK,aAAa,0BAA0BA,EAAK,KAAK,QAAQ,CAAC,IAAIA,GAC/GG,IACJF,aAAiB/E,EAAE,yBAAyB+E,EAAM,KAAK,aAAa,0BAA0BA,EAAM,KAAK,QAAQ,CAAC,IAAIA;AAExH,SACGC,EAAW,KAAK,aAAa,eAAeA,aAAsBhF,EAAE,eACpEiF,EAAY,KAAK,aAAa,eAAeA,aAAuBjF,EAAE;AAEhE,aAAAgF,EAAW,MAAMC,CAAW;AAG/B,UAAA,IAAI,MAAM,4BAA4BA,EAAY,KAAK,QAAQ,OAAOD,EAAW,KAAK,QAAQ,EAAE;AAAA,EAAA;AAE1G;AC/JO,MAAME,IAAqB;AAAA,EAChC,WAAW,MAAM;AAAA,EACjB,qBAAqB,MAAM;AAAA,EAC3B,eAAe,MAAM;AAAA,EACrB,2BAA2B,MAAM;AAAA,EACjC,cAAc,MAAM;AAAA,EACpB,iBAAiB,MAAM;AAAA,EACvB,oBAAoB,MAAM;AAC5B,GAEaC,IAAW;AAAA,EACtB,eAAe;AAAA,EACf,cAAc;AAAA,EACd,YAAY;AACd,GCXMC,IAAc,CAAClE,MAAkB;AACrC,QAAM,CAACmE,GAASC,GAAM,GAAGC,CAAe,IAAIrE,EAAM,KAAK,EAAE,QAAQ,QAAQ,GAAG,EAAE,MAAM,GAAG,GACjFsE,IAAaD,EAAgB,KAAK,GAAG;AAEpC,SAAA,EAAE,SAAAF,GAAS,MAAAC,GAAM,YAAAE,EAAW;AACrC,GAoBMC,IAAiB,CAAC3F,MAAyD;AAC/E,QAAM,EAAE,SAAAmB,MAAYnB,KAAS,CAAC,GAExB,EAAE,oBAAA4F,GAAoB,gBAAAC,GAAgB,mBAAAC,GAAmB,aAAAC,EAAY,IAAI5E,KAAW,CAAC;AAE3F,SAAOjB,EACJ,OAAO,EACP,YAAY,CAACkB,GAAOC,MAAY;AAC/B,UAAM,EAAE,MAAAmE,GAAM,SAAAD,GAAS,YAAAG,EAAW,IAAIJ,EAAYlE,CAAK;AAEvD,IAAKiE,EAAS,cAAc,KAAKjE,CAAK,KACpCC,EAAQ,SAAS;AAAA,MACf,MAAMnB,EAAE,aAAa;AAAA,MACrB,YAAY;AAAA,MACZ,SAASkF,EAAmB,cAAc;AAAA,IAAA,CAC3C,IAGC,CAACI,KAAQ,CAACD,MACZlE,EAAQ,SAAS;AAAA,MACf,MAAMnB,EAAE,aAAa;AAAA,MACrB,YAAY;AAAA,MACZ,SAAS0F,KAAsBR,EAAmB,0BAA0B;AAAA,IAAA,CAC7E,GAGEC,EAAS,aAAa,KAAKG,CAAI,KAClCnE,EAAQ,SAAS;AAAA,MACf,MAAMnB,EAAE,aAAa;AAAA,MACrB,YAAY;AAAA,MACZ,SAAS6F,KAAeX,EAAmB,aAAa;AAAA,IAAA,CACzD,GAGEC,EAAS,aAAa,KAAKE,CAAO,KACrClE,EAAQ,SAAS;AAAA,MACf,MAAMnB,EAAE,aAAa;AAAA,MACrB,YAAY;AAAA,MACZ,SAAS2F,KAAkBT,EAAmB,gBAAgB;AAAA,IAAA,CAC/D,GAGCM,MACGL,EAAS,WAAW,KAAKK,CAAU,KACtCrE,EAAQ,SAAS;AAAA,MACf,MAAMnB,EAAE,aAAa;AAAA,MACrB,YAAY;AAAA,MACZ,SAAS4F,KAAqBV,EAAmB,mBAAmB;AAAA,IAAA,CACrE;AAAA,EAEL,CACD,EACA,UAAU,CAAChE,MAAUA,EAAM,SAAS,EACpC,QAAQ,EAAE;AACf,GAMM4E,KAAiB,CAAChG,MACf2F,EAAe3F,CAAK,EACxB,SACA,EAAA,UAAU,CAACoB,MAAYA,KAAA,QAAAA,EAAO,SAAqBA,IAAZ,MAAkB;AAwBvD,SAAS6E,GACdjG,GACuC;AACvC,QAAM,EAAE,UAAAK,IAAW,IAAM,GAAGmD,EAAU,IAAIxD,KAAS,CAAC;AAEpD,SAAOK,IAAWsF,EAAenC,CAAS,IAAIwC,GAAexC,CAAS;AACxE;ACrHO,MAAM0C,KAA0B;AAAA,EACrC,cAAAD;AACF,GCGaE,KAAgB;AAAA,EAC3B,MAAM7B;AAAA,EACN,QAAQ4B;AACV;"}
|
|
1
|
+
{"version":3,"file":"index-lfBvBrWg.js","sources":["../lib/shared/validation/base/boolean.validators.ts","../lib/shared/validation/base/base.constants.ts","../lib/shared/validation/base/date.validators.ts","../lib/shared/validation/base/email.validators.ts","../lib/shared/validation/base/number.validators.ts","../lib/shared/validation/base/phone.validators.ts","../lib/shared/validation/base/select.validators.ts","../lib/shared/validation/base/string.validators.ts","../lib/shared/validation/base/union.validators.ts","../lib/shared/validation/base/url.validators.ts","../lib/shared/validation/base/base.validators.ts","../lib/shared/validation/utils/zodUtils.ts","../lib/shared/validation/dadata/dadata.constants.ts","../lib/shared/validation/dadata/fio.validators.ts","../lib/shared/validation/dadata/index.ts","../lib/shared/validation/index.ts"],"sourcesContent":["import z from 'zod'\n\nexport type BooleanValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: boolean\n message?: Partial<Record<keyof Omit<BooleanValidationOptions<Required>, 'message'>, string>>\n}\n\nconst getBooleanRequired = (props?: Omit<BooleanValidationOptions<true>, 'required'>) => {\n const { defaultValue } = props || {}\n\n const schema = z.boolean()\n\n return schema.default(defaultValue ?? false)\n}\n\ntype BooleanRequiredSchema = ReturnType<typeof getBooleanRequired>\n\nconst getBooleanOptional = (props?: Omit<BooleanValidationOptions<false>, 'required'>) => {\n return getBooleanRequired(props).optional()\n}\n\ntype BooleanOptionalSchema = ReturnType<typeof getBooleanOptional>\n\nexport function getBooleanSchema(props?: BooleanValidationOptions<true>): BooleanRequiredSchema\nexport function getBooleanSchema(props?: BooleanValidationOptions<false>): BooleanOptionalSchema\nexport function getBooleanSchema<Required extends boolean>(\n props?: BooleanValidationOptions<Required>\n): BooleanRequiredSchema | BooleanOptionalSchema {\n const { required = true, ...rest } = props || {}\n\n return required ? getBooleanRequired(rest) : getBooleanOptional(rest)\n}\n","import { type Primitive } from 'zod'\nimport { formatDateToLocaleString } from '$/shared/ui'\nimport { TypeGuards } from '$/shared/utils'\n\nexport const baseDefaultMessages = {\n NON_EMPTY: () => 'Поле не может быть пустым',\n MIN_LENGTH: (min: number) => `Поле должно содержать минимум символов: ${min}`,\n MAX_LENGTH: (max: number) => `Поле должно содержать максимум символов: ${max}`,\n FIX_LENGTH: (length: number) => `Поле должно быть фиксированной длины символов: ${length}`,\n MIN_VALUE: (min: number) => `Значение не может быть меньше чем ${min}`,\n MAX_VALUE: (max: number) => `Значение не может быть больше чем ${max}`,\n PHONE_NON_EMPTY: () => 'Номер телефона должен состоять из 11 цифр',\n PHONE_INVALID_OPERATOR: () => 'Код города/оператора должен начинаться с цифры 3, 4, 5, 6 или 9',\n EMAIL_INVALID: () => 'Email введен некорректно. Пример: example@domain.ru',\n EMAIL_NON_EMPTY: () => 'Введите адрес электронной почты',\n SELECT_NON_EMPTY: () => 'Выберите один из вариантов',\n SELECT_MULTIPLE_MIN_LENGTH: (length: number) => `Выберите не менее ${length} вариантов`,\n SELECT_MULTIPLE_MAX_LENGTH: (length: number) => `Выберите не более ${length} вариантов`,\n SELECT_FIX_LENGTH: (length: number) => `Поле должно быть фиксированного количества вариантов: ${length}`,\n DATE_INVALID_FORMAT: () => 'Дата указана некорректно',\n DATE_NON_EMPTY: () => 'Укажите дату',\n VALUE_OUT_OF_RANGE: <T extends Primitive>(range: T[]) => `Выберите один из вариантов ${range.join(', ')}`,\n DATE_MIN: (min: Date | string) => {\n const date = TypeGuards.isString(min) ? new Date(min) : min\n\n return `Выбранная дата должна быть не раньше ${formatDateToLocaleString(date)}`\n },\n DATE_MAX: (max: Date | string) => {\n const date = TypeGuards.isString(max) ? new Date(max) : max\n\n return `Выбранная дата должна быть не позже ${formatDateToLocaleString(date)}`\n },\n INVALID_URL: () => 'Ссылка введена некорректно. Пример: https://example.com, example.com'\n}\n","import { isValid, parse } from 'date-fns'\nimport z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { DATE_VISIBLE_PATTERN } from '$/shared/ui'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type DateValidationOptions<Required extends boolean> = {\n /**\n * валидация строки с учетом ISO формата\n * @default true\n */\n iso?: boolean\n /**\n * шаблон для валидации строки (будет проигнорирован, если `iso = true`)\n * @default 'dd.MM.yyyy'\n */\n pattern?: string\n /**\n * минимальная дата\n * `Date | ISO string`\n */\n min?: Date | string\n /**\n * максимальная дата\n * `Date | ISO string`\n */\n max?: Date | string\n /**\n * указывает что поле обязательное\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n min?: string\n max?: string\n invalidDate?: string\n }\n}\n\n/**\n * Схема валидации обязательного поля даты\n */\nconst getDateRequired = (props?: Omit<DateValidationOptions<boolean>, 'required'>) => {\n const { iso = true, pattern = DATE_VISIBLE_PATTERN, min, max, defaultValue, message } = props || {}\n\n return z\n .string()\n .min(8, message?.min || baseDefaultMessages.DATE_NON_EMPTY())\n .superRefine((value, context) => {\n const validSymbolsLength = pattern.replace(/\\W/g, '').length\n const cleanedValue = value.replace(/[._-]/g, '')\n\n if (cleanedValue.length < validSymbolsLength) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: validSymbolsLength,\n type: 'date',\n inclusive: true,\n message: message?.min || baseDefaultMessages.DATE_NON_EMPTY()\n })\n }\n\n if (iso) {\n let date: Date | null = null\n\n try {\n date = new Date(value)\n } catch {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date!.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date!.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n } else {\n const date = parse(value, pattern, new Date())\n\n if (!isValid(date)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n }\n })\n .default(defaultValue ?? '')\n}\ntype DateRequiredSchema = ReturnType<typeof getDateRequired>\n\n/**\n * Схема валидации опционального поля даты\n */\nconst getDateOptional = (props?: Omit<DateValidationOptions<boolean>, 'required'>) => {\n const { iso = true, pattern = DATE_VISIBLE_PATTERN, min, max, message } = props || {}\n\n return z\n .string()\n .transform((value) => (!value ? undefined : value))\n .superRefine((value, context) => {\n if (TypeGuards.isString(value) && Boolean(value.length)) {\n const validSymbolsLength = pattern.replace(/\\W/g, '').length\n const cleanedValue = value.replace(/[._-]/g, '')\n\n if (cleanedValue.length < validSymbolsLength) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: validSymbolsLength,\n type: 'date',\n inclusive: true,\n message: message?.min || baseDefaultMessages.DATE_NON_EMPTY()\n })\n }\n\n if (iso) {\n let date: Date | null = null\n\n try {\n date = new Date(value)\n } catch {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date!.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date!.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n } else {\n const date = parse(value, pattern, new Date())\n\n if (!isValid(date)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n }\n }\n })\n .optional()\n}\ntype DateOptionalSchema = ReturnType<typeof getDateOptional>\n\n/**\n * Схема валидации поля даты\n * @param {DateValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @typeParam `iso` - `boolean | undefined`\n * @typeParam `pattern` - `string | undefined`\n * @typeParam `message` - `{ [min | invalidOperator]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getDateSchema()\n * })\n * // will returns z.string()\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getDateSchema({ required: false })\n * })\n * // will returns z.string().optional()\n */\nexport function getDateSchema(props?: DateValidationOptions<true>): DateRequiredSchema\nexport function getDateSchema(props?: DateValidationOptions<false>): DateOptionalSchema\nexport function getDateSchema<Required extends boolean>(\n props?: DateValidationOptions<Required>\n): DateRequiredSchema | DateOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getDateRequired(props) : getDateOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type EmailValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * Регулярное выражение для проверки email на валидность\n */\n regexp?: RegExp | string\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n min?: string\n invalid?: string\n }\n}\n\nconst EMAIL_REGEX = /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{2,4}$/g\n\n/**\n * Схема валидации обязательного поля типа email\n */\nconst getEmailRequired = (props?: Omit<EmailValidationOptions<true>, 'required'>) => {\n const { message, defaultValue, regexp = EMAIL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return z\n .string()\n .min(1, message?.min || baseDefaultMessages.EMAIL_NON_EMPTY())\n .regex(regex, message?.invalid || baseDefaultMessages.EMAIL_INVALID())\n .default(defaultValue ?? '')\n}\ntype EmailRequiredSchema = ReturnType<typeof getEmailRequired>\n\n/**\n * Схема валидации опционального поля типа email\n */\nconst getEmailOptional = (props?: Omit<EmailValidationOptions<false>, 'required'>) => {\n const { message, regexp = EMAIL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return z\n .string()\n .refine(\n (value) => {\n if (TypeGuards.isStringEmpty(value)) return true\n return regex.test(value)\n },\n {\n message: message?.invalid || baseDefaultMessages.EMAIL_INVALID()\n }\n )\n .optional()\n .transform((value) => (value?.length === 0 ? undefined : value))\n}\ntype EmailOptionalSchema = ReturnType<typeof getEmailOptional>\n\n/**\n * Схема валидации поля типа email\n * @param {EmailValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @typeParam `regexp` - `RegExp`\n * @typeParam `message` - `{ [min | invalid]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getEmailSchema()\n * })\n * // will returns z.string().min(1).email()\n *\n * @example with optional value\n * z.object({\n * field: zodValidators.base.getEmailSchema({ required: false })\n * })\n * // will returns z.string().min(1).email().optional()\n */\nexport function getEmailSchema(props?: EmailValidationOptions<true>): EmailRequiredSchema\nexport function getEmailSchema(props?: EmailValidationOptions<false>): EmailOptionalSchema\nexport function getEmailSchema<Required extends boolean>(\n props?: EmailValidationOptions<Required>\n): EmailRequiredSchema | EmailOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getEmailRequired(props) : getEmailOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type NumberValidationOptions<Required extends boolean> = {\n /**\n * минимальное значение\n * @default 0\n */\n min?: number\n /**\n * максимальное значение\n * @default undefined\n */\n max?: number\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: number\n message?: Partial<Record<keyof Omit<NumberValidationOptions<Required>, 'message'>, string>>\n}\n\n/**\n * Схема валидации обязательного поля числового типа\n */\nconst getNumberRequired = (props?: Omit<NumberValidationOptions<true>, 'required'>) => {\n const { min, max, message, defaultValue } = props || {}\n\n let schema = z.coerce.number()\n\n if (min) {\n schema = schema.min(min, message?.min || baseDefaultMessages.MIN_VALUE(min))\n }\n\n if (max) {\n schema = schema.max(max, message?.min || baseDefaultMessages.MAX_VALUE(max))\n }\n\n return schema.default(defaultValue ?? 0)\n}\ntype NumberRequiredSchema = ReturnType<typeof getNumberRequired>\n\n/**\n * Схема валидации опционального поля числового типа\n */\nconst getNumberOptional = (props?: Omit<NumberValidationOptions<false>, 'required'>) => {\n return getNumberRequired(props)\n .optional()\n .transform((value) => (!value ? undefined : value))\n}\ntype NumberOptionalSchema = ReturnType<typeof getNumberOptional>\n\n/**\n * Схема валидации опционального поля числового типа\n * @param {NumberValidationOptions} props настройки схемы\n @typeParam `required` - `boolean`\n * @typeParam `min` - `number | undefined` `default: 1`\n * @typeParam `max` - `number | undefined` `default: undefined`\n * @typeParam `message` - `{ [min | max]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required min, max value\n * z.object({\n * field: zodValidators.base.getNumberSchema({ min: 10, max: 20 })\n * })\n * // will returns z.coerce.number().min(10).max(20)\n *\n * @example with optional min, max value\n * z.object({\n * field: zodValidators.base.getNumberSchema({ min: 10, max: 20, required: false })\n * })\n * // will returns z.coerce.number().min(10).max(20).optional()\n */\nexport function getNumberSchema(props?: NumberValidationOptions<true>): NumberRequiredSchema\nexport function getNumberSchema(props?: NumberValidationOptions<false>): NumberOptionalSchema\nexport function getNumberSchema<Required extends boolean>(\n props?: NumberValidationOptions<Required>\n): NumberRequiredSchema | NumberOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getNumberRequired(props) : getNumberOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type PhoneValidationOptions<Required extends boolean> = {\n /**\n * исключает маску в возвращаемом значении\n * @default true\n */\n ignoreMask?: boolean\n /**\n * игнорирует символы для проверки поля исключая данные символы\n * @default /[()+_ -]/g\n */\n maskSymbols?: RegExp | string\n /**\n * указывает что поле обязательное\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n min?: string\n invalidOperator?: string\n }\n /**\n * указываем валидные коды оператор\n * @default ['3', '4', '5', '6', '7', '9']\n * @param string[]\n */\n validOperatorCodes?: string[]\n}\n\n/**\n * Схема валидации обязательного поля номера телефона\n */\nconst getPhoneRequired = (props?: Omit<PhoneValidationOptions<true>, 'required'>) => {\n const {\n ignoreMask = true,\n maskSymbols = /[()+_ -]/g,\n message,\n defaultValue,\n validOperatorCodes = ['3', '4', '5', '6', '7', '9']\n } = props || {}\n\n const mask = TypeGuards.isString(maskSymbols) ? new RegExp(maskSymbols) : maskSymbols\n\n let schema = z.string().superRefine((value, context) => {\n const cleanValue = value.replace(mask, '')\n\n const operatorCode = cleanValue.charAt(1)\n\n if (!validOperatorCodes.includes(operatorCode)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: message?.invalidOperator || baseDefaultMessages.PHONE_INVALID_OPERATOR()\n })\n }\n\n if (cleanValue.length < 11) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: 11,\n inclusive: true,\n type: 'string',\n message: message?.min || baseDefaultMessages.PHONE_NON_EMPTY()\n })\n }\n })\n\n if (ignoreMask) {\n schema = schema.transform((value) => value.replace(mask, '')) as unknown as typeof schema\n }\n\n return schema.default(defaultValue ?? '')\n}\ntype PhoneRequiredSchema = ReturnType<typeof getPhoneRequired>\n\n/**\n * Схема валидации опционального поля номера телефона\n */\nconst getPhoneOptional = (props?: Omit<PhoneValidationOptions<false>, 'required'>) => {\n const {\n ignoreMask = true,\n maskSymbols = /[()+_ -]/g,\n message,\n validOperatorCodes = ['3', '4', '5', '6', '7', '9']\n } = props || {}\n\n const mask = TypeGuards.isString(maskSymbols) ? new RegExp(maskSymbols) : maskSymbols\n\n let schema = z.string().superRefine((value, context) => {\n const cleanValue = value.replace(mask, '')\n\n const operatorCode = cleanValue.charAt(1)\n\n if (!validOperatorCodes.includes(operatorCode)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: message?.invalidOperator || baseDefaultMessages.PHONE_INVALID_OPERATOR()\n })\n }\n\n if (cleanValue.length < 11) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: 11,\n inclusive: true,\n type: 'string',\n message: message?.min || baseDefaultMessages.PHONE_NON_EMPTY()\n })\n }\n })\n\n if (ignoreMask) {\n schema = schema.transform((value) => value.replace(mask, '')) as unknown as typeof schema\n }\n\n return schema.transform((value) => (!value ? undefined : value))\n}\ntype PhoneOptionalSchema = ReturnType<typeof getPhoneOptional>\n\n/**\n * Схема валидации опционального поля номера телефона\n * @param {PhoneValidationOptions} props настройки схемы\n @typeParam `required` - `boolean`\n * @typeParam `ignoreSeparators` - `boolean | undefined` `default: false`\n * @typeParam `maskSymbols` - `RegExp | undefined` `default: /[()+_ -]/g`\n * @typeParam `message` - `{ [min | invalidOperator]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getPhoneSchema()\n * })\n * // will returns z.string()\n *\n * @example with optional value\n * z.object({\n * field: zodValidators.base.getPhoneSchema({ required: false })\n * })\n * // will returns z.string().optional()\n */\nexport function getPhoneSchema(props?: PhoneValidationOptions<true>): PhoneRequiredSchema\nexport function getPhoneSchema(props?: PhoneValidationOptions<false>): PhoneOptionalSchema\nexport function getPhoneSchema<Required extends boolean>(\n props?: PhoneValidationOptions<Required>\n): PhoneRequiredSchema | PhoneOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getPhoneRequired(props) : getPhoneOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type SelectSingleValidationOptions<Required extends boolean, Multi extends boolean = false> = {\n /**\n * включает валидацию мульти селекта\n * @default false\n */\n multiple?: Multi\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n single?: string\n multiple?: string\n }\n}\n\ntype SelectMultipleValidationOptions<Required extends boolean, Multi extends boolean = true> = SelectSingleValidationOptions<\n Required,\n Multi\n> & {\n /**\n * минимальное количество элементов\n * @default 0\n */\n minLength?: number\n /**\n * максимальное количество элементов\n * @default undefined\n */\n maxLength?: number\n /**\n * фиксированное количество элементов\n * @default undefined\n */\n length?: number\n message?: SelectSingleValidationOptions<Required, Multi> & {\n minLength?: string\n maxLength?: string\n length?: string\n }\n}\n\ntype SelectValidationOptions<Required extends boolean, Multi extends boolean> = Multi extends true\n ? SelectMultipleValidationOptions<Required, Multi>\n : SelectSingleValidationOptions<Required, Multi>\n\n/**\n * Схема валидации обязательного поля типа select\n */\nconst getSelectRequired = <Required extends boolean, Multi extends boolean>(props?: SelectValidationOptions<Required, Multi>) => {\n const { message, defaultValue } = props || {}\n\n const selectSchema = z\n .string()\n .min(1, message?.single || baseDefaultMessages.SELECT_NON_EMPTY())\n .nullable()\n .refine((value) => Boolean(value), message?.single || baseDefaultMessages.SELECT_NON_EMPTY())\n .default(defaultValue ?? null)\n\n if (props?.multiple) {\n let arraySchema = z\n .array(selectSchema)\n .min(props?.minLength || 0, message?.multiple || baseDefaultMessages.SELECT_MULTIPLE_MIN_LENGTH(props?.minLength || 0))\n\n if (props?.length) {\n return arraySchema\n .length(props.length, props.message?.length || baseDefaultMessages.SELECT_FIX_LENGTH(props.length))\n .default([])\n } else if (props?.maxLength) {\n arraySchema = arraySchema.max(\n props.maxLength,\n props.message?.maxLength || baseDefaultMessages.SELECT_MULTIPLE_MAX_LENGTH(props.maxLength)\n )\n }\n\n return arraySchema.default([])\n }\n\n return selectSchema\n}\ntype SelectRequiredSchema = ReturnType<typeof getSelectRequired>\n\n/**\n * Схема валидации опционального поля типа select\n */\nfunction getSelectOptional<Required extends boolean, Multi extends boolean>(\n props?: Omit<SelectValidationOptions<Required, Multi>, 'message'>\n) {\n const selectSchema = z.string().nullable().optional()\n\n if (props?.multiple) {\n return z.array(selectSchema).optional()\n }\n\n return selectSchema\n}\ntype SelectOptionalSchema = ReturnType<typeof getSelectOptional>\n\n/**\n * Схема валидации опционального поля типа select\n * @param {SelectValidationOptions} props настройки схемы\n @typeParam `required` - `boolean`\n * @typeParam `multiple` - `boolean`\n * @typeParam `minLength` - `number | undefined`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required single value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ multiple: false })\n * })\n * // will returns z.string().nullable()\n *\n * @example with required multiple value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ multiple: true })\n * })\n * // will returns z.array(z.string().nullable())\n *\n * @example with optional single value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ required: false, multiple: false })\n * })\n * // will returns z.string().nullable().optional()\n *\n * @example with optional multiple value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ required: false, multiple: true })\n * })\n * // will returns z.array(z.string().nullable().optional()).optional()\n */\nexport function getSelectSchema<Multi extends boolean>(props?: SelectValidationOptions<true, Multi>): SelectRequiredSchema\nexport function getSelectSchema<Multi extends boolean>(props?: SelectValidationOptions<false, Multi>): SelectOptionalSchema\nexport function getSelectSchema<Multi extends boolean, Required extends boolean>(\n props?: SelectValidationOptions<Required, Multi>\n): SelectRequiredSchema | SelectOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getSelectRequired(props) : getSelectOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type StringValidationOptions<Required extends boolean> = {\n /**\n * минимальное количество символов\n * @default 1\n */\n min?: number\n /**\n * максимальное количество символов\n * @default undefined\n */\n max?: number\n /**\n * фиксированная длина символов\n */\n length?: number\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: Partial<Record<keyof Omit<StringValidationOptions<Required>, 'message'> | 'root', string>>\n}\n\n/**\n * Схема валидации обязательного поля строкового типа\n */\nconst getStringRequired = (props?: Omit<StringValidationOptions<true>, 'required'>) => {\n const { min, max, length, defaultValue, message } = props || {}\n\n let schema = z.string({ message: message?.root })\n\n if (min) {\n schema = schema.min(min, { message: message?.min || baseDefaultMessages.MIN_LENGTH(min) })\n }\n\n if (max) {\n schema = schema.max(max, { message: message?.max || baseDefaultMessages.MAX_LENGTH(max) })\n }\n\n if (length) {\n schema = schema.length(length, { message: message?.length || baseDefaultMessages.FIX_LENGTH(length) })\n }\n\n return schema\n .refine((value) => Boolean(value.length), { message: message?.min || baseDefaultMessages.NON_EMPTY() })\n .default(defaultValue ?? '')\n}\ntype StringRequiredSchema = ReturnType<typeof getStringRequired>\n\n/**\n * Схема валидации обязательного поля строкового типа\n */\nconst getStringOptional = (props?: Omit<StringValidationOptions<false>, 'required'>) => {\n const { min, max, length, message } = props || {}\n\n let schema = z.string({ message: message?.root })\n\n if (min) {\n schema = schema.min(min, { message: message?.min || baseDefaultMessages.MIN_LENGTH(min) })\n }\n\n if (max) {\n schema = schema.max(max, { message: message?.max || baseDefaultMessages.MAX_LENGTH(max) })\n }\n\n if (length) {\n schema = schema.length(length, { message: message?.length || baseDefaultMessages.FIX_LENGTH(length) })\n }\n\n return schema.optional().transform((value) => (!value?.length ? undefined : value))\n}\ntype StringOptionalSchema = ReturnType<typeof getStringOptional>\n\n/**\n * Схема валидации обязательного поля строкового типа\n * @param {StringValidationOptions} props настройки схемы\n * @typeParam `min` - `number | undefined` `default: 1`\n * @typeParam `max` - `number | undefined` `default: undefined`\n * @typeParam `message` - `{ [min | max]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required min value\n * z.object({\n * field: zodValidators.base.getStringSchema({ min: 10 })\n * })\n * // will returns z.string().min(10)\n *\n * @example with required min, max value\n * z.object({\n * field: zodValidators.base.getStringSchema({ min: 10, max: 20 })\n * })\n * // will returns z.string().min(10).max(20)\n *\n * @example with optional min value\n * z.object({\n * field: zodValidators.base.getStringSchema({ required: false, min: 10 })\n * })\n * // will returns z.string().min(10).optional()\n *\n * @example with optional min, max value\n * z.object({\n * field: zodValidators.base.getStringSchema({ required: false, min: 10, max: 20 })\n * })\n * // will returns z.string().min(10).max(20).optional()\n */\nexport function getStringSchema(props?: StringValidationOptions<true>): StringRequiredSchema\nexport function getStringSchema(props?: StringValidationOptions<false>): StringOptionalSchema\nexport function getStringSchema<Required extends boolean>(\n props?: StringValidationOptions<Required>\n): StringRequiredSchema | StringOptionalSchema {\n const { required = true, ...restProps } = props || {}\n\n return required ? getStringRequired(restProps) : getStringOptional(restProps)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type UnionValidationOptions<Required extends boolean, T extends z.Primitive> = {\n /**\n * сообщение об ошибке\n */\n message?: ((values: readonly T[]) => string) | string\n errorMap?: z.ZodErrorMap\n /**\n * сообщение об ошибке при не правильном типе значение\n */\n invalid_type_error?: string\n /**\n * сообщение об ошибке при отсутствии значения\n */\n required_error?: string\n /**\n * описание схемы\n */\n description?: string\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n}\n\n/**\n * Схема валидации обязательного поля из выборки\n */\nconst getUnionRequired = <T extends z.Primitive>(\n values: [T, T, ...T[]],\n props?: Omit<UnionValidationOptions<true, T>, 'required'>\n) => {\n const { message, ...restProps } = props || {}\n\n const [first, second, ...other] = values.map((value) => z.literal(value))\n\n const errorMessage = (() => {\n if (message) {\n return typeof message === 'function' ? message(values) : message\n }\n\n return baseDefaultMessages.VALUE_OUT_OF_RANGE(values)\n })()\n\n return z\n .union([first, second, ...other], {\n message: errorMessage,\n ...restProps\n })\n .nullable()\n .refine(Boolean, baseDefaultMessages.NON_EMPTY())\n .default(null)\n}\ntype UnionRequiredSchema<T extends z.Primitive> = ReturnType<typeof getUnionRequired<T>>\n\n/**\n * Схема валидации обязательного поля из выборки\n */\nconst getUnionOptional = <T extends z.Primitive>(values: [T, T, ...T[]], props?: UnionValidationOptions<false, T>) => {\n return getUnionRequired(values, props).optional()\n}\ntype UnionOptionalSchema<T extends z.Primitive> = ReturnType<typeof getUnionOptional<T>>\n\n/**\n * Схема валидации обязательного поля из выборки\n * @param {z.Primitive} values литералы\n * @param {z.RawCreateParams & { message: (values: z.Primitive[]) => string }} props настройки схемы\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required union value\n * z.object({\n * field: zodValidators.base.getUnionSchema(['A', 'B'] as const)\n * }) ^ it need to infer literal type\n * // will returns z.union([z.literal('A'), z.literal('B')])\n *\n * @example with optional union value\n * z.object({\n * field: zodValidators.base.getUnionSchema(['A', 'B'] as const, { required: false })\n * }) ^ it need to infer literal type\n * // will returns z.union([z.literal('A'), z.literal('B')]).optional()\n */\nexport function getUnionSchema<T extends z.Primitive>(\n values: [T, T, ...T[]],\n props?: UnionValidationOptions<true, T>\n): UnionRequiredSchema<T>\nexport function getUnionSchema<T extends z.Primitive>(\n values: [T, T, ...T[]],\n props?: UnionValidationOptions<false, T>\n): UnionOptionalSchema<T>\nexport function getUnionSchema<T extends z.Primitive, Required extends boolean>(\n values: [T, T, ...T[]],\n props?: UnionValidationOptions<Required, T>\n): UnionRequiredSchema<T> | UnionOptionalSchema<T> {\n const { required, ...restProps } = props || {}\n\n return required ? getUnionRequired(values, restProps) : getUnionOptional(values, restProps)\n}\n","import { string } from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type UrlValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * Регулярное выражение для проверки url на валидность\n */\n regexp?: RegExp | string\n /**\n * значение по умолчанию\n */\n defaultValue?: string\n message?: {\n min?: string\n invalid?: string\n }\n}\n\nconst URL_REGEX =\n /^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([-.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/\n\n/**\n * Схема валидации обязательного поля ссылки\n */\nconst getUrlRequired = (props?: Omit<UrlValidationOptions<true>, 'required'>) => {\n const { message, defaultValue, regexp = URL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return string()\n .min(1, message?.min || baseDefaultMessages.NON_EMPTY())\n .regex(regex, message?.invalid || baseDefaultMessages.INVALID_URL())\n .default(defaultValue ?? '')\n}\ntype UrlRequiredSchema = ReturnType<typeof getUrlRequired>\n\n/**\n * Схема валидации опционального поля ссылки\n */\nconst getUrlOptional = (props?: Omit<UrlValidationOptions<false>, 'required'>) => {\n const { message, regexp = URL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return string()\n .refine((value) => {\n if (TypeGuards.isStringEmpty(value)) return true\n return regex.test(value)\n }, message?.invalid || baseDefaultMessages.INVALID_URL())\n .optional()\n .transform((value) => (!value?.length ? undefined : value))\n}\ntype UrlOptionalSchema = ReturnType<typeof getUrlOptional>\n\nexport function getUrlSchema(props?: UrlValidationOptions<true>): UrlRequiredSchema\nexport function getUrlSchema(props?: UrlValidationOptions<false>): UrlOptionalSchema\n/**\n * Схема валидации поля ссылки\n * @param {UrlValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @typeParam `regexp` - `RegExp`\n * @typeParam `message` - `{ [min | invalid]: string }`\n * @returns схема валидации поля в соответствии с настройками\n */\nexport function getUrlSchema<Required extends boolean>(\n props?: UrlValidationOptions<Required>\n): UrlRequiredSchema | UrlOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getUrlRequired(props) : getUrlOptional(props)\n}\n","import { getBooleanSchema } from './boolean.validators'\nimport { getDateSchema } from './date.validators'\nimport { getEmailSchema } from './email.validators'\nimport { getNumberSchema } from './number.validators'\nimport { getPhoneSchema } from './phone.validators'\nimport { getSelectSchema } from './select.validators'\nimport { getStringSchema } from './string.validators'\nimport { getUnionSchema } from './union.validators'\nimport { getUrlSchema } from './url.validators'\n\nexport const baseValidationSchemas = {\n getStringSchema,\n getEmailSchema,\n getSelectSchema,\n getNumberSchema,\n getPhoneSchema,\n getDateSchema,\n getUnionSchema,\n getUrlSchema,\n getBooleanSchema\n}\n","import z from 'zod'\n\ntype ZodUtilsGetDefaultsOptions = {\n /**\n * Вставить в массив значение, исходя из внутренней схемы z.array\n */\n fillArrayWithValue?: boolean\n}\n\nexport class ZodUtils {\n /**\n * Функция для получения значения по умолчанию исходя из схемы\n * @param zodSchema схема формы\n * @param options настройки генерации значений по умолчанию\n * @returns объект значений по умолчанию\n *\n * @example\n * const schema = z.object({\n * name: zodValidators.base.getStringSchema(),\n * role: zodValidators.base.getUnionSchema(['UNKNOWN', 'ADMIN', 'MODERATOR', 'USER'] as const),\n * info: z.object({\n * address: zodValidators.base.getStringSchema(),\n * phone: zodValidators.base.getPhoneSchema({ ignoreMask: true }),\n * age: zodValidators.base.getNumberSchema()\n * })\n * })\n *\n * const defaultValues = ZodUtils.getZodDefaults(schema)\n *\n * // default values will be inferred from schema\n * // {\n * // name: '',\n * // role: 'UNKNOWN',\n * // info: {\n * // address: '',\n * // phone: '',\n * // age: 0\n * // }\n * // }\n */\n static getZodDefaults<ZodSchema extends z.AnyZodObject, Schema = z.TypeOf<ZodSchema>>(\n zodSchema: ZodSchema | z.ZodEffects<ZodSchema>,\n options?: ZodUtilsGetDefaultsOptions\n ): Schema {\n const { fillArrayWithValue } = options || {}\n\n const processZodEffects = (schema: z.ZodEffects<any>) => {\n const innerType = schema._def.schema\n\n if (innerType instanceof z.ZodEffects || innerType._def.typeName === 'ZodEffects') {\n return processZodEffects(innerType)\n }\n\n if (innerType instanceof z.ZodObject || innerType._def.typeName === 'ZodObject') {\n return this.getZodDefaults(innerType, options)\n }\n\n return getDefaultValue(innerType)\n }\n\n const getDefaultValue = (schema: z.ZodTypeAny): unknown => {\n if (schema instanceof z.ZodEffects || schema._def.typeName === 'ZodEffects') {\n return processZodEffects(schema as z.ZodEffects<ZodSchema>)\n }\n\n switch (true) {\n case schema._def.typeName === 'ZodDefault' || schema instanceof z.ZodDefault:\n return (schema as z.ZodDefault<ZodSchema>)._def.defaultValue()\n case schema._def.typeName === 'ZodOptional' || schema instanceof z.ZodOptional:\n return undefined\n case schema._def.typeName === 'ZodEffects':\n return processZodEffects(schema as z.ZodEffects<ZodSchema>)\n case schema._def.typeName === 'ZodNullable' || schema instanceof z.ZodNullable:\n return null\n case schema._def.typeName === 'ZodArray' || schema instanceof z.ZodArray:\n return fillArrayWithValue ? [getDefaultValue((schema as z.ZodArray<ZodSchema>).element)] : []\n case schema._def.typeName === 'ZodObject' || schema instanceof z.ZodObject:\n return this.getZodDefaults(schema as z.ZodObject<z.ZodRawShape>, options)\n case schema._def.typeName === 'ZodUnion' || schema instanceof z.ZodUnion:\n return getDefaultValue(schema._def.options[0])\n case schema._def.typeName === 'ZodLiteral' || schema instanceof z.ZodLiteral:\n return schema._def.value\n case schema._def.typeName === 'ZodDiscriminatedUnion' || schema instanceof z.ZodDiscriminatedUnion:\n return getDefaultValue(schema._def.options[0])\n case schema._def.typeName === 'ZodEnum' || schema instanceof z.ZodEnum:\n return schema._def.values[0]\n case schema._def.typeName === 'ZodString' || schema instanceof z.ZodString:\n return ''\n case schema._def.typeName === 'ZodNumber' || schema instanceof z.ZodNumber:\n return 0\n case schema._def.typeName === 'ZodBoolean' || schema instanceof z.ZodBoolean:\n return false\n case !('innerType' in schema._def):\n return undefined\n default:\n return getDefaultValue(schema._def.innerType)\n }\n }\n\n // @ts-expect-error asf\n if (zodSchema instanceof z.ZodEffects || zodSchema._def.typeName === 'ZodEffects') {\n return processZodEffects(zodSchema as unknown as z.ZodEffects<any>)\n }\n\n const defaults = {} as Schema\n\n const schemaEntries = Object.entries(zodSchema.shape) as [keyof Schema, z.ZodAny][]\n\n schemaEntries.map(([key, value]) => {\n defaults[key] = getDefaultValue(value) as Schema[keyof Schema]\n })\n\n return defaults\n }\n\n /**\n * Функция для объединения zod схождений\n * @param {ZodIntersection} zodSchema\n * @returns объединенная схема двух схождений\n *\n * @example\n * let schema = z.object({\n * foo: z.string()\n * })\n * // this will return intersection and we need\n * // to merge its left to right schema's\n * .and(\n * z.object({\n * bar: z.string()\n * })\n * )\n *\n * schema = ZodUtils.zodMergeIntersection(schema)\n *\n * // schema will be\n * z.object({\n * foo: z.string(),\n * bar: z.string()\n * })\n */\n static zodMergeIntersection<ZodLeft extends z.ZodTypeAny, ZodRight extends z.ZodTypeAny>(\n zodSchema: z.ZodIntersection<ZodLeft, ZodRight>\n ): z.ZodObject<z.objectUtil.MergeShapes<z.TypeOf<ZodLeft>, z.TypeOf<ZodRight>>> {\n const { left, right } = zodSchema._def\n\n const leftSchema =\n left instanceof z.ZodDiscriminatedUnion || left._def.typeName === 'ZodDiscriminatedUnion' ? left._def.options[0] : left\n const rightSchema =\n right instanceof z.ZodDiscriminatedUnion || right._def.typeName === 'ZodDiscriminatedUnion' ? right._def.options[0] : right\n\n if (\n (leftSchema._def.typeName === 'ZodObject' || leftSchema instanceof z.ZodObject) &&\n (rightSchema._def.typeName === 'ZodObject' || rightSchema instanceof z.ZodObject)\n ) {\n return leftSchema.merge(rightSchema)\n }\n\n throw new Error(`Cannot merge schema type ${rightSchema._def.typeName} to ${leftSchema._def.typeName}`)\n }\n}\n","export const fioDefaultMessages = {\n NON_EMPTY: () => 'Поле обязательно для заполнения',\n VALUE_NO_WHITESPACE: () => 'Укажите фамилию, имя и отчество через пробел',\n ONLY_CYRILLIC: () => 'Данные должны быть написаны кириллицей',\n NAME_OR_SURNAME_NON_EMPTY: () => 'Укажите имя и фамилию',\n INVALID_NAME: () => 'Неверно введено имя',\n INVALID_SURNAME: () => 'Неверно введена фамилия',\n INVALID_PATRONYMIC: () => 'Неверно введено отчество'\n}\n\nexport const fioRegex = {\n ONLY_CYRILLIC: /[\\u0400-\\u04FF\\u00CB\\u00EB -]/g,\n CHECK_HYPHEN: /^(?:[^-]+(?:-[^-]+){0,4}|[^-]+)$/,\n PATRONYMIC: /^[a-zA-Zа-яА-ЯёЁ]+(?:\\s*-\\s*[a-zA-Zа-яА-ЯёЁ]+){0,4}(?:\\s+[a-zA-Zа-яА-ЯёЁ]+(?:\\s*-\\s*[a-zA-Zа-яА-ЯёЁ]+){0,4})?$/i\n}\n","import z from 'zod'\nimport { fioDefaultMessages, fioRegex } from './dadata.constants'\n\nconst getFioParts = (value: string) => {\n const [surname, name, ...patronymicParts] = value.trim().replace(/\\s+/g, ' ').split(' ')\n const patronymic = patronymicParts.join(' ')\n\n return { surname, name, patronymic }\n}\n\nexport type FioValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n message?: {\n root?: string\n nameOrSurnameEmpty?: string\n invalidName?: string\n invalidSurname?: string\n invalidPatronymic?: string\n }\n}\n\n/**\n * Схема валидации обязательного поля автозаполнения ФИО\n */\nconst getFioRequired = (props?: Omit<FioValidationOptions<true>, 'required'>) => {\n const { message } = props || {}\n\n const { nameOrSurnameEmpty, invalidSurname, invalidPatronymic, invalidName } = message || {}\n\n return z\n .string()\n .superRefine((value, context) => {\n const { name, surname, patronymic } = getFioParts(value)\n\n if (!fioRegex.ONLY_CYRILLIC.test(value)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: fioDefaultMessages.ONLY_CYRILLIC()\n })\n }\n\n if (!name || !surname) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: nameOrSurnameEmpty || fioDefaultMessages.NAME_OR_SURNAME_NON_EMPTY()\n })\n }\n\n if (!fioRegex.CHECK_HYPHEN.test(name)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: invalidName || fioDefaultMessages.INVALID_NAME()\n })\n }\n\n if (!fioRegex.CHECK_HYPHEN.test(surname)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: invalidSurname || fioDefaultMessages.INVALID_SURNAME()\n })\n }\n\n if (patronymic) {\n if (!fioRegex.PATRONYMIC.test(patronymic)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: invalidPatronymic || fioDefaultMessages.INVALID_PATRONYMIC()\n })\n }\n }\n })\n .transform((value) => value.trimEnd())\n .default('')\n}\ntype FioRequiredSchema = ReturnType<typeof getFioRequired>\n\n/**\n * Схема валидации опционального поля автозаполнения ФИО\n */\nconst getFioOptional = (props?: Omit<FioValidationOptions<false>, 'required'>) => {\n return getFioRequired(props)\n .optional()\n .transform((value) => (!value?.length ? undefined : value))\n}\ntype FioOptionalSchema = ReturnType<typeof getFioOptional>\n\n/**\n * Схема валидации поля автозаполнения ФИО\n * @param {DateValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getFioSchema()\n * })\n * // will returns z.string()\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getFioSchema({ required: false })\n * })\n * // will returns z.string().optional()\n */\nexport function getFioSchema(props?: FioValidationOptions<true>): FioRequiredSchema\nexport function getFioSchema(props?: FioValidationOptions<false>): FioOptionalSchema\nexport function getFioSchema<Required extends boolean>(\n props?: FioValidationOptions<Required>\n): FioRequiredSchema | FioOptionalSchema {\n const { required = true, ...restProps } = props || {}\n\n return required ? getFioRequired(restProps) : getFioOptional(restProps)\n}\n","import { getFioSchema } from './fio.validators'\nexport type * from './fio.validators'\nexport { fioDefaultMessages } from './dadata.constants'\n\nexport const dadataValidationSchemas = {\n getFioSchema\n}\n","export * from './regExp'\nexport * from './messages'\nexport * from './zodValidation'\nexport * from './base'\nexport type * from './dadata'\nexport * from './utils'\nimport { baseValidationSchemas } from './base'\nimport { dadataValidationSchemas } from './dadata'\n\nexport const zodValidators = {\n base: baseValidationSchemas,\n dadata: dadataValidationSchemas\n}\n"],"names":["getBooleanRequired","props","defaultValue","z","getBooleanOptional","getBooleanSchema","required","rest","baseDefaultMessages","min","max","length","range","date","TypeGuards","formatDateToLocaleString","getDateRequired","iso","pattern","DATE_VISIBLE_PATTERN","message","value","context","validSymbolsLength","parse","isValid","getDateOptional","getDateSchema","EMAIL_REGEX","getEmailRequired","regexp","regex","getEmailOptional","getEmailSchema","getNumberRequired","schema","getNumberOptional","getNumberSchema","getPhoneRequired","ignoreMask","maskSymbols","validOperatorCodes","mask","cleanValue","operatorCode","getPhoneOptional","getPhoneSchema","getSelectRequired","selectSchema","arraySchema","_a","_b","getSelectOptional","getSelectSchema","getStringRequired","getStringOptional","getStringSchema","restProps","getUnionRequired","values","first","second","other","errorMessage","getUnionOptional","getUnionSchema","URL_REGEX","getUrlRequired","string","getUrlOptional","getUrlSchema","baseValidationSchemas","ZodUtils","zodSchema","options","fillArrayWithValue","processZodEffects","innerType","getDefaultValue","defaults","key","left","right","leftSchema","rightSchema","fioDefaultMessages","fioRegex","getFioParts","surname","name","patronymicParts","patronymic","getFioRequired","nameOrSurnameEmpty","invalidSurname","invalidPatronymic","invalidName","getFioOptional","getFioSchema","dadataValidationSchemas","zodValidators"],"mappings":"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"}
|
|
@@ -9,4 +9,5 @@ export declare class TypeGuards {
|
|
|
9
9
|
static isArrayEmpty(value: unknown): value is boolean;
|
|
10
10
|
static isObject(value: unknown): value is Record<string, unknown>;
|
|
11
11
|
static isFunction(value: unknown): value is (...args: unknown[]) => unknown;
|
|
12
|
+
static isObjectEmpty(value: unknown): value is Record<string, never>;
|
|
12
13
|
}
|
|
@@ -231,21 +231,21 @@ function he(e, ...r) {
|
|
|
231
231
|
const c = (e) => {
|
|
232
232
|
const r = (t) => t[e] || [];
|
|
233
233
|
return r.isThemeGetter = !0, r;
|
|
234
|
-
}, te = /^\[(?:([a-z-]+):)?(.+)\]$/i, ye = /^\d+\/\d+$/, xe = /* @__PURE__ */ new Set(["px", "full", "screen"]), we = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, ve = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, ke = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, Ce = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, ze = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, C = (e) => M(e) || xe.has(e) || ye.test(e), z = (e) => G(e, "length",
|
|
234
|
+
}, te = /^\[(?:([a-z-]+):)?(.+)\]$/i, ye = /^\d+\/\d+$/, xe = /* @__PURE__ */ new Set(["px", "full", "screen"]), we = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, ve = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, ke = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, Ce = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, ze = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, C = (e) => M(e) || xe.has(e) || ye.test(e), z = (e) => G(e, "length", Pe), M = (e) => !!e && !Number.isNaN(Number(e)), U = (e) => G(e, "number", M), I = (e) => !!e && Number.isInteger(Number(e)), Ae = (e) => e.endsWith("%") && M(e.slice(0, -1)), l = (e) => te.test(e), A = (e) => we.test(e), Se = /* @__PURE__ */ new Set(["length", "size", "percentage"]), Me = (e) => G(e, Se, oe), Ge = (e) => G(e, "position", oe), Re = /* @__PURE__ */ new Set(["image", "url"]), je = (e) => G(e, Re, Ne), Ie = (e) => G(e, "", Ee), P = () => !0, G = (e, r, t) => {
|
|
235
235
|
const o = te.exec(e);
|
|
236
236
|
return o ? o[1] ? typeof r == "string" ? o[1] === r : r.has(o[1]) : t(o[2]) : !1;
|
|
237
|
-
},
|
|
237
|
+
}, Pe = (e) => (
|
|
238
238
|
// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
|
|
239
239
|
// For example, `hsl(0 0% 0%)` would be classified as a length without this check.
|
|
240
240
|
// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
|
|
241
241
|
ve.test(e) && !ke.test(e)
|
|
242
242
|
), oe = () => !1, Ee = (e) => Ce.test(e), Ne = (e) => ze.test(e), Te = () => {
|
|
243
|
-
const e = c("colors"), r = c("spacing"), t = c("blur"), o = c("brightness"), i = c("borderColor"), n = c("borderRadius"), a = c("borderSpacing"), s = c("borderWidth"), u = c("contrast"), g = c("grayscale"), m = c("hueRotate"), y = c("invert"), x = c("gap"), v = c("gradientColorStops"), w = c("gradientColorStopPositions"), b = c("inset"), p = c("margin"), f = c("opacity"), h = c("padding"), R = c("saturate"), S = c("scale"), E = c("sepia"), B = c("skew"), F = c("space"), q = c("translate"), L = () => ["auto", "contain", "none"],
|
|
243
|
+
const e = c("colors"), r = c("spacing"), t = c("blur"), o = c("brightness"), i = c("borderColor"), n = c("borderRadius"), a = c("borderSpacing"), s = c("borderWidth"), u = c("contrast"), g = c("grayscale"), m = c("hueRotate"), y = c("invert"), x = c("gap"), v = c("gradientColorStops"), w = c("gradientColorStopPositions"), b = c("inset"), p = c("margin"), f = c("opacity"), h = c("padding"), R = c("saturate"), S = c("scale"), E = c("sepia"), B = c("skew"), F = c("space"), q = c("translate"), L = () => ["auto", "contain", "none"], O = () => ["auto", "hidden", "clip", "visible", "scroll"], W = () => ["auto", l, r], d = () => [l, r], J = () => ["", C, z], N = () => ["auto", M, l], X = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"], T = () => ["solid", "dashed", "dotted", "double", "none"], Z = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], V = () => ["start", "end", "center", "between", "around", "evenly", "stretch"], j = () => ["", "0", l], H = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], k = () => [M, l];
|
|
244
244
|
return {
|
|
245
245
|
cacheSize: 500,
|
|
246
246
|
separator: ":",
|
|
247
247
|
theme: {
|
|
248
|
-
colors: [
|
|
248
|
+
colors: [P],
|
|
249
249
|
spacing: [C, z],
|
|
250
250
|
blur: ["none", "", A, l],
|
|
251
251
|
brightness: k(),
|
|
@@ -254,19 +254,19 @@ const c = (e) => {
|
|
|
254
254
|
borderSpacing: d(),
|
|
255
255
|
borderWidth: J(),
|
|
256
256
|
contrast: k(),
|
|
257
|
-
grayscale:
|
|
257
|
+
grayscale: j(),
|
|
258
258
|
hueRotate: k(),
|
|
259
|
-
invert:
|
|
259
|
+
invert: j(),
|
|
260
260
|
gap: d(),
|
|
261
261
|
gradientColorStops: [e],
|
|
262
262
|
gradientColorStopPositions: [Ae, z],
|
|
263
|
-
inset:
|
|
264
|
-
margin:
|
|
263
|
+
inset: W(),
|
|
264
|
+
margin: W(),
|
|
265
265
|
opacity: k(),
|
|
266
266
|
padding: d(),
|
|
267
267
|
saturate: k(),
|
|
268
268
|
scale: k(),
|
|
269
|
-
sepia:
|
|
269
|
+
sepia: j(),
|
|
270
270
|
skew: k(),
|
|
271
271
|
space: d(),
|
|
272
272
|
translate: d()
|
|
@@ -370,21 +370,21 @@ const c = (e) => {
|
|
|
370
370
|
* @see https://tailwindcss.com/docs/overflow
|
|
371
371
|
*/
|
|
372
372
|
overflow: [{
|
|
373
|
-
overflow:
|
|
373
|
+
overflow: O()
|
|
374
374
|
}],
|
|
375
375
|
/**
|
|
376
376
|
* Overflow X
|
|
377
377
|
* @see https://tailwindcss.com/docs/overflow
|
|
378
378
|
*/
|
|
379
379
|
"overflow-x": [{
|
|
380
|
-
"overflow-x":
|
|
380
|
+
"overflow-x": O()
|
|
381
381
|
}],
|
|
382
382
|
/**
|
|
383
383
|
* Overflow Y
|
|
384
384
|
* @see https://tailwindcss.com/docs/overflow
|
|
385
385
|
*/
|
|
386
386
|
"overflow-y": [{
|
|
387
|
-
"overflow-y":
|
|
387
|
+
"overflow-y": O()
|
|
388
388
|
}],
|
|
389
389
|
/**
|
|
390
390
|
* Overscroll Behavior
|
|
@@ -485,7 +485,7 @@ const c = (e) => {
|
|
|
485
485
|
* @see https://tailwindcss.com/docs/z-index
|
|
486
486
|
*/
|
|
487
487
|
z: [{
|
|
488
|
-
z: ["auto",
|
|
488
|
+
z: ["auto", I, l]
|
|
489
489
|
}],
|
|
490
490
|
// Flexbox and Grid
|
|
491
491
|
/**
|
|
@@ -493,7 +493,7 @@ const c = (e) => {
|
|
|
493
493
|
* @see https://tailwindcss.com/docs/flex-basis
|
|
494
494
|
*/
|
|
495
495
|
basis: [{
|
|
496
|
-
basis:
|
|
496
|
+
basis: W()
|
|
497
497
|
}],
|
|
498
498
|
/**
|
|
499
499
|
* Flex Direction
|
|
@@ -521,28 +521,28 @@ const c = (e) => {
|
|
|
521
521
|
* @see https://tailwindcss.com/docs/flex-grow
|
|
522
522
|
*/
|
|
523
523
|
grow: [{
|
|
524
|
-
grow:
|
|
524
|
+
grow: j()
|
|
525
525
|
}],
|
|
526
526
|
/**
|
|
527
527
|
* Flex Shrink
|
|
528
528
|
* @see https://tailwindcss.com/docs/flex-shrink
|
|
529
529
|
*/
|
|
530
530
|
shrink: [{
|
|
531
|
-
shrink:
|
|
531
|
+
shrink: j()
|
|
532
532
|
}],
|
|
533
533
|
/**
|
|
534
534
|
* Order
|
|
535
535
|
* @see https://tailwindcss.com/docs/order
|
|
536
536
|
*/
|
|
537
537
|
order: [{
|
|
538
|
-
order: ["first", "last", "none",
|
|
538
|
+
order: ["first", "last", "none", I, l]
|
|
539
539
|
}],
|
|
540
540
|
/**
|
|
541
541
|
* Grid Template Columns
|
|
542
542
|
* @see https://tailwindcss.com/docs/grid-template-columns
|
|
543
543
|
*/
|
|
544
544
|
"grid-cols": [{
|
|
545
|
-
"grid-cols": [
|
|
545
|
+
"grid-cols": [P]
|
|
546
546
|
}],
|
|
547
547
|
/**
|
|
548
548
|
* Grid Column Start / End
|
|
@@ -550,7 +550,7 @@ const c = (e) => {
|
|
|
550
550
|
*/
|
|
551
551
|
"col-start-end": [{
|
|
552
552
|
col: ["auto", {
|
|
553
|
-
span: ["full",
|
|
553
|
+
span: ["full", I, l]
|
|
554
554
|
}, l]
|
|
555
555
|
}],
|
|
556
556
|
/**
|
|
@@ -572,7 +572,7 @@ const c = (e) => {
|
|
|
572
572
|
* @see https://tailwindcss.com/docs/grid-template-rows
|
|
573
573
|
*/
|
|
574
574
|
"grid-rows": [{
|
|
575
|
-
"grid-rows": [
|
|
575
|
+
"grid-rows": [P]
|
|
576
576
|
}],
|
|
577
577
|
/**
|
|
578
578
|
* Grid Row Start / End
|
|
@@ -580,7 +580,7 @@ const c = (e) => {
|
|
|
580
580
|
*/
|
|
581
581
|
"row-start-end": [{
|
|
582
582
|
row: ["auto", {
|
|
583
|
-
span: [
|
|
583
|
+
span: [I, l]
|
|
584
584
|
}, l]
|
|
585
585
|
}],
|
|
586
586
|
/**
|
|
@@ -935,7 +935,7 @@ const c = (e) => {
|
|
|
935
935
|
* @see https://tailwindcss.com/docs/font-family
|
|
936
936
|
*/
|
|
937
937
|
"font-family": [{
|
|
938
|
-
font: [
|
|
938
|
+
font: [P]
|
|
939
939
|
}],
|
|
940
940
|
/**
|
|
941
941
|
* Font Variant Numeric
|
|
@@ -1197,7 +1197,7 @@ const c = (e) => {
|
|
|
1197
1197
|
"bg-image": [{
|
|
1198
1198
|
bg: ["none", {
|
|
1199
1199
|
"gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
|
|
1200
|
-
},
|
|
1200
|
+
}, je]
|
|
1201
1201
|
}],
|
|
1202
1202
|
/**
|
|
1203
1203
|
* Background Color
|
|
@@ -1613,14 +1613,14 @@ const c = (e) => {
|
|
|
1613
1613
|
* @see https://tailwindcss.com/docs/box-shadow
|
|
1614
1614
|
*/
|
|
1615
1615
|
shadow: [{
|
|
1616
|
-
shadow: ["", "inner", "none", A,
|
|
1616
|
+
shadow: ["", "inner", "none", A, Ie]
|
|
1617
1617
|
}],
|
|
1618
1618
|
/**
|
|
1619
1619
|
* Box Shadow Color
|
|
1620
1620
|
* @see https://tailwindcss.com/docs/box-shadow-color
|
|
1621
1621
|
*/
|
|
1622
1622
|
"shadow-color": [{
|
|
1623
|
-
shadow: [
|
|
1623
|
+
shadow: [P]
|
|
1624
1624
|
}],
|
|
1625
1625
|
/**
|
|
1626
1626
|
* Opacity
|
|
@@ -1899,7 +1899,7 @@ const c = (e) => {
|
|
|
1899
1899
|
* @see https://tailwindcss.com/docs/rotate
|
|
1900
1900
|
*/
|
|
1901
1901
|
rotate: [{
|
|
1902
|
-
rotate: [
|
|
1902
|
+
rotate: [I, l]
|
|
1903
1903
|
}],
|
|
1904
1904
|
/**
|
|
1905
1905
|
* Translate X
|
|
@@ -2268,8 +2268,8 @@ const c = (e) => {
|
|
|
2268
2268
|
"font-size": ["leading"]
|
|
2269
2269
|
}
|
|
2270
2270
|
};
|
|
2271
|
-
}, Le = /* @__PURE__ */ he(Te),
|
|
2272
|
-
class
|
|
2271
|
+
}, Le = /* @__PURE__ */ he(Te), Oe = (...e) => Le(ne(e));
|
|
2272
|
+
class We {
|
|
2273
2273
|
static isString(r) {
|
|
2274
2274
|
return typeof r == "string";
|
|
2275
2275
|
}
|
|
@@ -2300,10 +2300,13 @@ class Oe {
|
|
|
2300
2300
|
static isFunction(r) {
|
|
2301
2301
|
return typeof r == "function";
|
|
2302
2302
|
}
|
|
2303
|
+
static isObjectEmpty(r) {
|
|
2304
|
+
return this.isObject(r) && Object.keys(r).length === 0;
|
|
2305
|
+
}
|
|
2303
2306
|
}
|
|
2304
2307
|
export {
|
|
2305
|
-
|
|
2308
|
+
We as T,
|
|
2306
2309
|
ne as a,
|
|
2307
|
-
|
|
2310
|
+
Oe as c
|
|
2308
2311
|
};
|
|
2309
|
-
//# sourceMappingURL=typeGuards-
|
|
2312
|
+
//# sourceMappingURL=typeGuards-CSiImkUY.js.map
|