@semihbou/zod-i18n-map 0.0.2 → 0.0.3
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.js +87 -28
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +87 -28
- package/dist/index.mjs.map +1 -1
- package/locales/ar/zod.json +2 -5
- package/locales/bg/zod.json +2 -5
- package/locales/cs/zod.json +2 -5
- package/locales/de/zod.json +2 -5
- package/locales/en/zod.json +2 -5
- package/locales/es/zod.json +2 -5
- package/locales/fa/zod.json +2 -5
- package/locales/fi/zod.json +2 -5
- package/locales/fr/zod.json +2 -5
- package/locales/he/zod.json +2 -5
- package/locales/hr-HR/zod.json +2 -5
- package/locales/id/zod.json +2 -5
- package/locales/is/zod.json +2 -5
- package/locales/it/zod.json +2 -5
- package/locales/ja/zod.json +2 -5
- package/locales/ko/zod.json +2 -5
- package/locales/lt/zod.json +2 -5
- package/locales/nb/zod.json +2 -5
- package/locales/nl/zod.json +2 -5
- package/locales/pl/zod.json +2 -5
- package/locales/pt/zod.json +2 -5
- package/locales/ro/zod.json +2 -5
- package/locales/ru/zod.json +2 -5
- package/locales/sk/zod.json +1 -4
- package/locales/sv/zod.json +2 -5
- package/locales/tr/zod.json +2 -5
- package/locales/uk-UA/zod.json +2 -5
- package/locales/uz/zod.json +2 -5
- package/locales/zh-CN/zod.json +2 -5
- package/locales/zh-TW/zod.json +2 -5
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -35,14 +35,14 @@ __export(index_exports, {
|
|
|
35
35
|
});
|
|
36
36
|
module.exports = __toCommonJS(index_exports);
|
|
37
37
|
var import_i18next = __toESM(require("i18next"));
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
return value.toString();
|
|
41
|
-
}
|
|
42
|
-
return value;
|
|
43
|
-
};
|
|
38
|
+
var import_v4 = require("zod/v4");
|
|
39
|
+
var import_locales = require("zod/locales");
|
|
44
40
|
function joinValues(array, separator = " | ") {
|
|
45
|
-
return array.map((val) =>
|
|
41
|
+
return array.map((val) => {
|
|
42
|
+
if (typeof val === "string") return `'${val}'`;
|
|
43
|
+
else if (typeof val === "bigint") return `${val.toString()}`;
|
|
44
|
+
return val;
|
|
45
|
+
}).join(separator);
|
|
46
46
|
}
|
|
47
47
|
var isRecord = (value) => {
|
|
48
48
|
if (typeof value !== "object" || value === null) return false;
|
|
@@ -61,6 +61,23 @@ var getKeyAndValues = (param, defaultKey) => {
|
|
|
61
61
|
return { key: defaultKey, values: {} };
|
|
62
62
|
};
|
|
63
63
|
var defaultNs = "zod";
|
|
64
|
+
var getReceivedDataType = (data) => {
|
|
65
|
+
const typeofData = typeof data;
|
|
66
|
+
switch (typeofData) {
|
|
67
|
+
case "number": {
|
|
68
|
+
if (Number.isNaN(data)) return "NaN";
|
|
69
|
+
else if (Number.isInteger(data)) return "number";
|
|
70
|
+
else return "float";
|
|
71
|
+
}
|
|
72
|
+
case "object": {
|
|
73
|
+
if (Array.isArray(data)) return "array";
|
|
74
|
+
else if (data === null) return "null";
|
|
75
|
+
else if (Object.getPrototypeOf(data) !== Object.prototype && data?.constructor)
|
|
76
|
+
return data.constructor.name;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return typeofData;
|
|
80
|
+
};
|
|
64
81
|
var makeZodI18nMap = (option) => (issue) => {
|
|
65
82
|
const { t, ns, handlePath } = {
|
|
66
83
|
t: import_i18next.default.t,
|
|
@@ -74,39 +91,53 @@ var makeZodI18nMap = (option) => (issue) => {
|
|
|
74
91
|
} : null
|
|
75
92
|
};
|
|
76
93
|
let message;
|
|
77
|
-
|
|
78
|
-
|
|
94
|
+
const errorMsg = (0, import_locales.en)().localeError(issue);
|
|
95
|
+
message = (typeof errorMsg === "string" ? errorMsg : errorMsg?.message) ?? "";
|
|
96
|
+
const path = (issue.path?.length ?? 0) > 0 && !!handlePath ? {
|
|
79
97
|
context: handlePath.context,
|
|
80
98
|
path: t(
|
|
81
|
-
[handlePath.keyPrefix, issue.path
|
|
99
|
+
[handlePath.keyPrefix, issue.path?.join(".")].filter(Boolean).join("."),
|
|
82
100
|
{
|
|
83
101
|
ns: handlePath.ns,
|
|
84
|
-
defaultValue: issue.path
|
|
102
|
+
defaultValue: issue.path?.join(".")
|
|
85
103
|
}
|
|
86
104
|
)
|
|
87
105
|
} : {};
|
|
88
106
|
switch (issue.code) {
|
|
89
107
|
case "invalid_type":
|
|
90
|
-
if (issue.
|
|
108
|
+
if (issue.input === void 0) {
|
|
91
109
|
message = t("errors.invalid_type_received_undefined", {
|
|
92
110
|
ns,
|
|
93
111
|
defaultValue: message,
|
|
94
112
|
...path
|
|
95
113
|
});
|
|
96
|
-
} else if (issue.
|
|
114
|
+
} else if (issue.input === null) {
|
|
97
115
|
message = t("errors.invalid_type_received_null", {
|
|
98
116
|
ns,
|
|
99
117
|
defaultValue: message,
|
|
100
118
|
...path
|
|
101
119
|
});
|
|
120
|
+
} else if (issue.input === Infinity) {
|
|
121
|
+
message = t("errors.not_finite", {
|
|
122
|
+
ns,
|
|
123
|
+
defaultValue: message,
|
|
124
|
+
...path
|
|
125
|
+
});
|
|
126
|
+
} else if (issue.input instanceof Date && Number.isNaN(issue.input.getTime())) {
|
|
127
|
+
message = t("errors.invalid_date", {
|
|
128
|
+
ns,
|
|
129
|
+
defaultValue: message,
|
|
130
|
+
...path
|
|
131
|
+
});
|
|
102
132
|
} else {
|
|
133
|
+
const received = getReceivedDataType(issue.input).toLocaleLowerCase();
|
|
103
134
|
message = t("errors.invalid_type", {
|
|
104
135
|
expected: t(`types.${issue.expected}`, {
|
|
105
136
|
defaultValue: issue.expected,
|
|
106
137
|
ns
|
|
107
138
|
}),
|
|
108
|
-
received: t(`types.${
|
|
109
|
-
defaultValue:
|
|
139
|
+
received: t(`types.${received}`, {
|
|
140
|
+
defaultValue: received,
|
|
110
141
|
ns
|
|
111
142
|
}),
|
|
112
143
|
ns,
|
|
@@ -116,12 +147,22 @@ var makeZodI18nMap = (option) => (issue) => {
|
|
|
116
147
|
}
|
|
117
148
|
break;
|
|
118
149
|
case "invalid_value":
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
150
|
+
if (issue.inst instanceof import_v4.ZodLiteral) {
|
|
151
|
+
message = t("errors.invalid_literal", {
|
|
152
|
+
expected: joinValues(issue.values),
|
|
153
|
+
ns,
|
|
154
|
+
defaultValue: message,
|
|
155
|
+
...path
|
|
156
|
+
});
|
|
157
|
+
} else if (issue.inst instanceof import_v4.ZodEnum) {
|
|
158
|
+
message = t("errors.invalid_enum_value", {
|
|
159
|
+
options: joinValues(issue.values),
|
|
160
|
+
received: issue.input,
|
|
161
|
+
ns,
|
|
162
|
+
defaultValue: message,
|
|
163
|
+
...path
|
|
164
|
+
});
|
|
165
|
+
}
|
|
125
166
|
break;
|
|
126
167
|
case "unrecognized_keys":
|
|
127
168
|
message = t("errors.unrecognized_keys", {
|
|
@@ -133,11 +174,29 @@ var makeZodI18nMap = (option) => (issue) => {
|
|
|
133
174
|
});
|
|
134
175
|
break;
|
|
135
176
|
case "invalid_union":
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
177
|
+
if (issue.inst instanceof import_v4.ZodDiscriminatedUnion) {
|
|
178
|
+
const options = issue.inst?.def.options.map(
|
|
179
|
+
(opt) => opt.def.shape.type.def.values[0]
|
|
180
|
+
);
|
|
181
|
+
message = t("errors.invalid_union_discriminator", {
|
|
182
|
+
options: joinValues(options),
|
|
183
|
+
ns,
|
|
184
|
+
defaultValue: message,
|
|
185
|
+
...path
|
|
186
|
+
});
|
|
187
|
+
} else if (issue.inst instanceof import_v4.ZodUnion) {
|
|
188
|
+
message = t("errors.invalid_union", {
|
|
189
|
+
ns,
|
|
190
|
+
defaultValue: message,
|
|
191
|
+
...path
|
|
192
|
+
});
|
|
193
|
+
} else {
|
|
194
|
+
message = t("errors.invalid_union", {
|
|
195
|
+
ns,
|
|
196
|
+
defaultValue: message,
|
|
197
|
+
...path
|
|
198
|
+
});
|
|
199
|
+
}
|
|
141
200
|
break;
|
|
142
201
|
case "invalid_format":
|
|
143
202
|
if (issue.format === "date") {
|
|
@@ -148,14 +207,14 @@ var makeZodI18nMap = (option) => (issue) => {
|
|
|
148
207
|
});
|
|
149
208
|
} else if (issue.format === "starts_with") {
|
|
150
209
|
message = t(`errors.invalid_string.startsWith`, {
|
|
151
|
-
startsWith: issue.
|
|
210
|
+
startsWith: issue.prefix,
|
|
152
211
|
ns,
|
|
153
212
|
defaultValue: message,
|
|
154
213
|
...path
|
|
155
214
|
});
|
|
156
215
|
} else if (issue.format === "ends_with") {
|
|
157
216
|
message = t(`errors.invalid_string.endsWith`, {
|
|
158
|
-
endsWith: issue.
|
|
217
|
+
endsWith: issue.suffix,
|
|
159
218
|
ns,
|
|
160
219
|
defaultValue: message,
|
|
161
220
|
...path
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { $ZodErrorMap } from \"zod/v4/core\";\nimport i18next, { i18n } from \"i18next\";\n\nconst jsonStringifyReplacer = (_: string, value: any): any => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n};\n\nfunction joinValues<T extends any[]>(array: T, separator = \" | \"): string {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n}\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => {\n if (typeof value !== \"object\" || value === null) return false;\n\n for (const key in value) {\n if (!Object.prototype.hasOwnProperty.call(value, key)) return false;\n }\n\n return true;\n};\n\nconst getKeyAndValues = (\n param: unknown,\n defaultKey: string\n): {\n values: Record<string, unknown>;\n key: string;\n} => {\n if (typeof param === \"string\") return { key: param, values: {} };\n\n if (isRecord(param)) {\n const key =\n \"key\" in param && typeof param.key === \"string\" ? param.key : defaultKey;\n const values =\n \"values\" in param && isRecord(param.values) ? param.values : {};\n return { key, values };\n }\n\n return { key: defaultKey, values: {} };\n};\n\nexport type MakeZodI18nMap = (option?: ZodI18nMapOption) => $ZodErrorMap;\n\nexport type ZodI18nMapOption = {\n t?: i18n[\"t\"];\n ns?: string | readonly string[];\n handlePath?: HandlePathOption | false;\n};\n\nexport type HandlePathOption = {\n context?: string;\n ns?: string | readonly string[];\n keyPrefix?: string;\n};\n\nconst defaultNs = \"zod\";\n\nexport const makeZodI18nMap: MakeZodI18nMap = (option) => (issue) => {\n const { t, ns, handlePath } = {\n t: i18next.t,\n ns: defaultNs,\n ...option,\n handlePath:\n option?.handlePath !== false\n ? {\n context: \"with_path\",\n ns: option?.ns ?? defaultNs,\n keyPrefix: undefined,\n ...option?.handlePath,\n }\n : null,\n };\n\n let message: string;\n message = issue.message ?? \"Invalid value\";\n\n const path =\n issue?.path && !!handlePath\n ? {\n context: handlePath.context,\n path: t(\n [handlePath.keyPrefix, issue.path.join(\".\")]\n .filter(Boolean)\n .join(\".\"),\n {\n ns: handlePath.ns,\n defaultValue: issue.path.join(\".\"),\n }\n ),\n }\n : {};\n\n switch (issue.code) {\n case \"invalid_type\":\n if (issue.expected === \"undefined\") {\n message = t(\"errors.invalid_type_received_undefined\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.expected === \"null\") {\n message = t(\"errors.invalid_type_received_null\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else {\n message = t(\"errors.invalid_type\", {\n expected: t(`types.${issue.expected}`, {\n defaultValue: issue.expected,\n ns,\n }),\n received: t(`types.${issue.received}`, {\n defaultValue: issue.received,\n ns,\n }),\n ns,\n defaultValue: message,\n ...path,\n });\n }\n break;\n case \"invalid_value\":\n message = t(\"errors.invalid_literal\", {\n expected: JSON.stringify(issue.expected, jsonStringifyReplacer),\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n case \"unrecognized_keys\":\n message = t(\"errors.unrecognized_keys\", {\n keys: joinValues(issue.keys, \", \"),\n count: issue.keys.length,\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n case \"invalid_union\":\n message = t(\"errors.invalid_union\", {\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n case \"invalid_format\":\n if (issue.format === \"date\") {\n message = t(\"errors.invalid_date\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.format === \"starts_with\") {\n message = t(`errors.invalid_string.startsWith`, {\n startsWith: issue.format,\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.format === \"ends_with\") {\n message = t(`errors.invalid_string.endsWith`, {\n endsWith: issue.format,\n ns,\n defaultValue: message,\n ...path,\n });\n } else {\n message = t(`errors.invalid_string.${issue.format}`, {\n validation: t(`validations.${issue.format}`, {\n defaultValue: issue.format,\n ns,\n }),\n ns,\n defaultValue: message,\n ...path,\n });\n }\n break;\n case \"too_small\":\n const minimum =\n issue.origin === \"date\"\n ? new Date(Number(issue.minimum))\n : issue.minimum;\n message = t(\n `errors.too_small.${issue.origin}.${\n issue.exact\n ? \"exact\"\n : issue.inclusive\n ? \"inclusive\"\n : \"not_inclusive\"\n }`,\n {\n minimum,\n count: typeof minimum === \"number\" ? minimum : undefined,\n ns,\n defaultValue: message,\n ...path,\n }\n );\n break;\n case \"too_big\":\n const maximum =\n issue.origin === \"date\"\n ? new Date(Number(issue.maximum))\n : issue.maximum;\n message = t(\n `errors.too_big.${issue.origin}.${\n issue.exact\n ? \"exact\"\n : issue.inclusive\n ? \"inclusive\"\n : \"not_inclusive\"\n }`,\n {\n maximum,\n count: typeof maximum === \"number\" ? maximum : undefined,\n ns,\n defaultValue: message,\n ...path,\n }\n );\n break;\n case \"custom\":\n const { key, values } = getKeyAndValues(\n issue.params?.i18n,\n \"errors.custom\"\n );\n\n message = t(key, {\n ...values,\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n case \"not_multiple_of\":\n message = t(\"errors.not_multiple_of\", {\n multipleOf: issue.divisor,\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n default:\n }\n\n return { message };\n};\n\nexport const zodI18nMap = makeZodI18nMap();\n"],"mappings":"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","names":["i18next"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { $ZodErrorMap } from \"zod/v4/core\";\nimport i18next, { i18n } from \"i18next\";\nimport { ZodLiteral, ZodEnum, ZodUnion, ZodDiscriminatedUnion } from \"zod/v4\";\nimport { en } from \"zod/locales\";\n\nconst jsonStringifyReplacer = (_: string, value: any): any => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n};\n\nfunction joinValues<T extends any[]>(array: T, separator = \" | \"): string {\n return array\n .map((val) => {\n if (typeof val === \"string\") return `'${val}'`;\n else if (typeof val === \"bigint\") return `${val.toString()}`;\n return val;\n })\n .join(separator);\n}\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => {\n if (typeof value !== \"object\" || value === null) return false;\n\n for (const key in value) {\n if (!Object.prototype.hasOwnProperty.call(value, key)) return false;\n }\n\n return true;\n};\n\nconst getKeyAndValues = (\n param: unknown,\n defaultKey: string\n): {\n values: Record<string, unknown>;\n key: string;\n} => {\n if (typeof param === \"string\") return { key: param, values: {} };\n\n if (isRecord(param)) {\n const key =\n \"key\" in param && typeof param.key === \"string\" ? param.key : defaultKey;\n const values =\n \"values\" in param && isRecord(param.values) ? param.values : {};\n return { key, values };\n }\n\n return { key: defaultKey, values: {} };\n};\n\nexport type MakeZodI18nMap = (option?: ZodI18nMapOption) => $ZodErrorMap;\n\nexport type ZodI18nMapOption = {\n t?: i18n[\"t\"];\n ns?: string | readonly string[];\n handlePath?: HandlePathOption | false;\n};\n\nexport type HandlePathOption = {\n context?: string;\n ns?: string | readonly string[];\n keyPrefix?: string;\n};\n\nconst defaultNs = \"zod\";\n\nconst getReceivedDataType = (data: unknown): string => {\n const typeofData = typeof data;\n\n switch (typeofData) {\n case \"number\": {\n if (Number.isNaN(data)) return \"NaN\";\n else if (Number.isInteger(data)) return \"number\";\n else return \"float\";\n }\n case \"object\": {\n if (Array.isArray(data)) return \"array\";\n else if (data === null) return \"null\";\n else if (\n Object.getPrototypeOf(data) !== Object.prototype &&\n data?.constructor\n )\n return data.constructor.name;\n }\n }\n return typeofData;\n};\n\nexport const makeZodI18nMap: MakeZodI18nMap = (option) => (issue) => {\n const { t, ns, handlePath } = {\n t: i18next.t,\n ns: defaultNs,\n ...option,\n handlePath:\n option?.handlePath !== false\n ? {\n context: \"with_path\",\n ns: option?.ns ?? defaultNs,\n keyPrefix: undefined,\n ...option?.handlePath,\n }\n : null,\n };\n\n let message: string;\n const errorMsg = en().localeError(issue);\n message = (typeof errorMsg === \"string\" ? errorMsg : errorMsg?.message) ?? \"\";\n\n const path =\n (issue.path?.length ?? 0) > 0 && !!handlePath\n ? {\n context: handlePath.context,\n path: t(\n [handlePath.keyPrefix, issue.path?.join(\".\")]\n .filter(Boolean)\n .join(\".\"),\n {\n ns: handlePath.ns,\n defaultValue: issue.path?.join(\".\"),\n }\n ),\n }\n : {};\n\n switch (issue.code) {\n case \"invalid_type\":\n if (issue.input === undefined) {\n message = t(\"errors.invalid_type_received_undefined\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.input === null) {\n message = t(\"errors.invalid_type_received_null\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.input === Infinity) {\n message = t(\"errors.not_finite\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (\n issue.input instanceof Date &&\n Number.isNaN(issue.input.getTime())\n ) {\n message = t(\"errors.invalid_date\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else {\n const received = getReceivedDataType(issue.input).toLocaleLowerCase();\n message = t(\"errors.invalid_type\", {\n expected: t(`types.${issue.expected}`, {\n defaultValue: issue.expected,\n ns,\n }),\n received: t(`types.${received}`, {\n defaultValue: received,\n ns,\n }),\n ns,\n defaultValue: message,\n ...path,\n });\n }\n break;\n case \"invalid_value\":\n if (issue.inst instanceof ZodLiteral) {\n message = t(\"errors.invalid_literal\", {\n expected: joinValues(issue.values),\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.inst instanceof ZodEnum) {\n message = t(\"errors.invalid_enum_value\", {\n options: joinValues(issue.values),\n received: issue.input,\n ns,\n defaultValue: message,\n ...path,\n });\n }\n break;\n case \"unrecognized_keys\":\n message = t(\"errors.unrecognized_keys\", {\n keys: joinValues(issue.keys, \", \"),\n count: issue.keys.length,\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n case \"invalid_union\":\n // This one must be first (narrower type)\n if (issue.inst instanceof ZodDiscriminatedUnion) {\n const options = issue.inst?.def.options.map(\n (opt: any) => opt.def.shape.type.def.values[0]\n );\n message = t(\"errors.invalid_union_discriminator\", {\n options: joinValues(options),\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.inst instanceof ZodUnion) {\n message = t(\"errors.invalid_union\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else {\n message = t(\"errors.invalid_union\", {\n ns,\n defaultValue: message,\n ...path,\n });\n }\n break;\n case \"invalid_format\":\n if (issue.format === \"date\") {\n message = t(\"errors.invalid_date\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.format === \"starts_with\") {\n message = t(`errors.invalid_string.startsWith`, {\n startsWith: issue.prefix,\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.format === \"ends_with\") {\n message = t(`errors.invalid_string.endsWith`, {\n endsWith: issue.suffix,\n ns,\n defaultValue: message,\n ...path,\n });\n } else {\n message = t(`errors.invalid_string.${issue.format}`, {\n validation: t(`validations.${issue.format}`, {\n defaultValue: issue.format,\n ns,\n }),\n ns,\n defaultValue: message,\n ...path,\n });\n }\n break;\n case \"too_small\":\n const minimum =\n issue.origin === \"date\"\n ? new Date(Number(issue.minimum))\n : issue.minimum;\n message = t(\n `errors.too_small.${issue.origin}.${\n issue.exact\n ? \"exact\"\n : issue.inclusive\n ? \"inclusive\"\n : \"not_inclusive\"\n }`,\n {\n minimum,\n count: typeof minimum === \"number\" ? minimum : undefined,\n ns,\n defaultValue: message,\n ...path,\n }\n );\n break;\n case \"too_big\":\n const maximum =\n issue.origin === \"date\"\n ? new Date(Number(issue.maximum))\n : issue.maximum;\n message = t(\n `errors.too_big.${issue.origin}.${\n issue.exact\n ? \"exact\"\n : issue.inclusive\n ? \"inclusive\"\n : \"not_inclusive\"\n }`,\n {\n maximum,\n count: typeof maximum === \"number\" ? maximum : undefined,\n ns,\n defaultValue: message,\n ...path,\n }\n );\n break;\n case \"custom\":\n const { key, values } = getKeyAndValues(\n issue.params?.i18n,\n \"errors.custom\"\n );\n\n message = t(key, {\n ...values,\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n case \"not_multiple_of\":\n message = t(\"errors.not_multiple_of\", {\n multipleOf: issue.divisor,\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n default:\n }\n return { message };\n};\n\nexport const zodI18nMap = makeZodI18nMap();\n"],"mappings":"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","names":["i18next"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
2
|
import i18next from "i18next";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
return value.toString();
|
|
6
|
-
}
|
|
7
|
-
return value;
|
|
8
|
-
};
|
|
3
|
+
import { ZodLiteral, ZodEnum, ZodUnion, ZodDiscriminatedUnion } from "zod/v4";
|
|
4
|
+
import { en } from "zod/locales";
|
|
9
5
|
function joinValues(array, separator = " | ") {
|
|
10
|
-
return array.map((val) =>
|
|
6
|
+
return array.map((val) => {
|
|
7
|
+
if (typeof val === "string") return `'${val}'`;
|
|
8
|
+
else if (typeof val === "bigint") return `${val.toString()}`;
|
|
9
|
+
return val;
|
|
10
|
+
}).join(separator);
|
|
11
11
|
}
|
|
12
12
|
var isRecord = (value) => {
|
|
13
13
|
if (typeof value !== "object" || value === null) return false;
|
|
@@ -26,6 +26,23 @@ var getKeyAndValues = (param, defaultKey) => {
|
|
|
26
26
|
return { key: defaultKey, values: {} };
|
|
27
27
|
};
|
|
28
28
|
var defaultNs = "zod";
|
|
29
|
+
var getReceivedDataType = (data) => {
|
|
30
|
+
const typeofData = typeof data;
|
|
31
|
+
switch (typeofData) {
|
|
32
|
+
case "number": {
|
|
33
|
+
if (Number.isNaN(data)) return "NaN";
|
|
34
|
+
else if (Number.isInteger(data)) return "number";
|
|
35
|
+
else return "float";
|
|
36
|
+
}
|
|
37
|
+
case "object": {
|
|
38
|
+
if (Array.isArray(data)) return "array";
|
|
39
|
+
else if (data === null) return "null";
|
|
40
|
+
else if (Object.getPrototypeOf(data) !== Object.prototype && data?.constructor)
|
|
41
|
+
return data.constructor.name;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return typeofData;
|
|
45
|
+
};
|
|
29
46
|
var makeZodI18nMap = (option) => (issue) => {
|
|
30
47
|
const { t, ns, handlePath } = {
|
|
31
48
|
t: i18next.t,
|
|
@@ -39,39 +56,53 @@ var makeZodI18nMap = (option) => (issue) => {
|
|
|
39
56
|
} : null
|
|
40
57
|
};
|
|
41
58
|
let message;
|
|
42
|
-
|
|
43
|
-
|
|
59
|
+
const errorMsg = en().localeError(issue);
|
|
60
|
+
message = (typeof errorMsg === "string" ? errorMsg : errorMsg?.message) ?? "";
|
|
61
|
+
const path = (issue.path?.length ?? 0) > 0 && !!handlePath ? {
|
|
44
62
|
context: handlePath.context,
|
|
45
63
|
path: t(
|
|
46
|
-
[handlePath.keyPrefix, issue.path
|
|
64
|
+
[handlePath.keyPrefix, issue.path?.join(".")].filter(Boolean).join("."),
|
|
47
65
|
{
|
|
48
66
|
ns: handlePath.ns,
|
|
49
|
-
defaultValue: issue.path
|
|
67
|
+
defaultValue: issue.path?.join(".")
|
|
50
68
|
}
|
|
51
69
|
)
|
|
52
70
|
} : {};
|
|
53
71
|
switch (issue.code) {
|
|
54
72
|
case "invalid_type":
|
|
55
|
-
if (issue.
|
|
73
|
+
if (issue.input === void 0) {
|
|
56
74
|
message = t("errors.invalid_type_received_undefined", {
|
|
57
75
|
ns,
|
|
58
76
|
defaultValue: message,
|
|
59
77
|
...path
|
|
60
78
|
});
|
|
61
|
-
} else if (issue.
|
|
79
|
+
} else if (issue.input === null) {
|
|
62
80
|
message = t("errors.invalid_type_received_null", {
|
|
63
81
|
ns,
|
|
64
82
|
defaultValue: message,
|
|
65
83
|
...path
|
|
66
84
|
});
|
|
85
|
+
} else if (issue.input === Infinity) {
|
|
86
|
+
message = t("errors.not_finite", {
|
|
87
|
+
ns,
|
|
88
|
+
defaultValue: message,
|
|
89
|
+
...path
|
|
90
|
+
});
|
|
91
|
+
} else if (issue.input instanceof Date && Number.isNaN(issue.input.getTime())) {
|
|
92
|
+
message = t("errors.invalid_date", {
|
|
93
|
+
ns,
|
|
94
|
+
defaultValue: message,
|
|
95
|
+
...path
|
|
96
|
+
});
|
|
67
97
|
} else {
|
|
98
|
+
const received = getReceivedDataType(issue.input).toLocaleLowerCase();
|
|
68
99
|
message = t("errors.invalid_type", {
|
|
69
100
|
expected: t(`types.${issue.expected}`, {
|
|
70
101
|
defaultValue: issue.expected,
|
|
71
102
|
ns
|
|
72
103
|
}),
|
|
73
|
-
received: t(`types.${
|
|
74
|
-
defaultValue:
|
|
104
|
+
received: t(`types.${received}`, {
|
|
105
|
+
defaultValue: received,
|
|
75
106
|
ns
|
|
76
107
|
}),
|
|
77
108
|
ns,
|
|
@@ -81,12 +112,22 @@ var makeZodI18nMap = (option) => (issue) => {
|
|
|
81
112
|
}
|
|
82
113
|
break;
|
|
83
114
|
case "invalid_value":
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
115
|
+
if (issue.inst instanceof ZodLiteral) {
|
|
116
|
+
message = t("errors.invalid_literal", {
|
|
117
|
+
expected: joinValues(issue.values),
|
|
118
|
+
ns,
|
|
119
|
+
defaultValue: message,
|
|
120
|
+
...path
|
|
121
|
+
});
|
|
122
|
+
} else if (issue.inst instanceof ZodEnum) {
|
|
123
|
+
message = t("errors.invalid_enum_value", {
|
|
124
|
+
options: joinValues(issue.values),
|
|
125
|
+
received: issue.input,
|
|
126
|
+
ns,
|
|
127
|
+
defaultValue: message,
|
|
128
|
+
...path
|
|
129
|
+
});
|
|
130
|
+
}
|
|
90
131
|
break;
|
|
91
132
|
case "unrecognized_keys":
|
|
92
133
|
message = t("errors.unrecognized_keys", {
|
|
@@ -98,11 +139,29 @@ var makeZodI18nMap = (option) => (issue) => {
|
|
|
98
139
|
});
|
|
99
140
|
break;
|
|
100
141
|
case "invalid_union":
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
142
|
+
if (issue.inst instanceof ZodDiscriminatedUnion) {
|
|
143
|
+
const options = issue.inst?.def.options.map(
|
|
144
|
+
(opt) => opt.def.shape.type.def.values[0]
|
|
145
|
+
);
|
|
146
|
+
message = t("errors.invalid_union_discriminator", {
|
|
147
|
+
options: joinValues(options),
|
|
148
|
+
ns,
|
|
149
|
+
defaultValue: message,
|
|
150
|
+
...path
|
|
151
|
+
});
|
|
152
|
+
} else if (issue.inst instanceof ZodUnion) {
|
|
153
|
+
message = t("errors.invalid_union", {
|
|
154
|
+
ns,
|
|
155
|
+
defaultValue: message,
|
|
156
|
+
...path
|
|
157
|
+
});
|
|
158
|
+
} else {
|
|
159
|
+
message = t("errors.invalid_union", {
|
|
160
|
+
ns,
|
|
161
|
+
defaultValue: message,
|
|
162
|
+
...path
|
|
163
|
+
});
|
|
164
|
+
}
|
|
106
165
|
break;
|
|
107
166
|
case "invalid_format":
|
|
108
167
|
if (issue.format === "date") {
|
|
@@ -113,14 +172,14 @@ var makeZodI18nMap = (option) => (issue) => {
|
|
|
113
172
|
});
|
|
114
173
|
} else if (issue.format === "starts_with") {
|
|
115
174
|
message = t(`errors.invalid_string.startsWith`, {
|
|
116
|
-
startsWith: issue.
|
|
175
|
+
startsWith: issue.prefix,
|
|
117
176
|
ns,
|
|
118
177
|
defaultValue: message,
|
|
119
178
|
...path
|
|
120
179
|
});
|
|
121
180
|
} else if (issue.format === "ends_with") {
|
|
122
181
|
message = t(`errors.invalid_string.endsWith`, {
|
|
123
|
-
endsWith: issue.
|
|
182
|
+
endsWith: issue.suffix,
|
|
124
183
|
ns,
|
|
125
184
|
defaultValue: message,
|
|
126
185
|
...path
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { $ZodErrorMap } from \"zod/v4/core\";\nimport i18next, { i18n } from \"i18next\";\n\nconst jsonStringifyReplacer = (_: string, value: any): any => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n};\n\nfunction joinValues<T extends any[]>(array: T, separator = \" | \"): string {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n}\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => {\n if (typeof value !== \"object\" || value === null) return false;\n\n for (const key in value) {\n if (!Object.prototype.hasOwnProperty.call(value, key)) return false;\n }\n\n return true;\n};\n\nconst getKeyAndValues = (\n param: unknown,\n defaultKey: string\n): {\n values: Record<string, unknown>;\n key: string;\n} => {\n if (typeof param === \"string\") return { key: param, values: {} };\n\n if (isRecord(param)) {\n const key =\n \"key\" in param && typeof param.key === \"string\" ? param.key : defaultKey;\n const values =\n \"values\" in param && isRecord(param.values) ? param.values : {};\n return { key, values };\n }\n\n return { key: defaultKey, values: {} };\n};\n\nexport type MakeZodI18nMap = (option?: ZodI18nMapOption) => $ZodErrorMap;\n\nexport type ZodI18nMapOption = {\n t?: i18n[\"t\"];\n ns?: string | readonly string[];\n handlePath?: HandlePathOption | false;\n};\n\nexport type HandlePathOption = {\n context?: string;\n ns?: string | readonly string[];\n keyPrefix?: string;\n};\n\nconst defaultNs = \"zod\";\n\nexport const makeZodI18nMap: MakeZodI18nMap = (option) => (issue) => {\n const { t, ns, handlePath } = {\n t: i18next.t,\n ns: defaultNs,\n ...option,\n handlePath:\n option?.handlePath !== false\n ? {\n context: \"with_path\",\n ns: option?.ns ?? defaultNs,\n keyPrefix: undefined,\n ...option?.handlePath,\n }\n : null,\n };\n\n let message: string;\n message = issue.message ?? \"Invalid value\";\n\n const path =\n issue?.path && !!handlePath\n ? {\n context: handlePath.context,\n path: t(\n [handlePath.keyPrefix, issue.path.join(\".\")]\n .filter(Boolean)\n .join(\".\"),\n {\n ns: handlePath.ns,\n defaultValue: issue.path.join(\".\"),\n }\n ),\n }\n : {};\n\n switch (issue.code) {\n case \"invalid_type\":\n if (issue.expected === \"undefined\") {\n message = t(\"errors.invalid_type_received_undefined\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.expected === \"null\") {\n message = t(\"errors.invalid_type_received_null\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else {\n message = t(\"errors.invalid_type\", {\n expected: t(`types.${issue.expected}`, {\n defaultValue: issue.expected,\n ns,\n }),\n received: t(`types.${issue.received}`, {\n defaultValue: issue.received,\n ns,\n }),\n ns,\n defaultValue: message,\n ...path,\n });\n }\n break;\n case \"invalid_value\":\n message = t(\"errors.invalid_literal\", {\n expected: JSON.stringify(issue.expected, jsonStringifyReplacer),\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n case \"unrecognized_keys\":\n message = t(\"errors.unrecognized_keys\", {\n keys: joinValues(issue.keys, \", \"),\n count: issue.keys.length,\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n case \"invalid_union\":\n message = t(\"errors.invalid_union\", {\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n case \"invalid_format\":\n if (issue.format === \"date\") {\n message = t(\"errors.invalid_date\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.format === \"starts_with\") {\n message = t(`errors.invalid_string.startsWith`, {\n startsWith: issue.format,\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.format === \"ends_with\") {\n message = t(`errors.invalid_string.endsWith`, {\n endsWith: issue.format,\n ns,\n defaultValue: message,\n ...path,\n });\n } else {\n message = t(`errors.invalid_string.${issue.format}`, {\n validation: t(`validations.${issue.format}`, {\n defaultValue: issue.format,\n ns,\n }),\n ns,\n defaultValue: message,\n ...path,\n });\n }\n break;\n case \"too_small\":\n const minimum =\n issue.origin === \"date\"\n ? new Date(Number(issue.minimum))\n : issue.minimum;\n message = t(\n `errors.too_small.${issue.origin}.${\n issue.exact\n ? \"exact\"\n : issue.inclusive\n ? \"inclusive\"\n : \"not_inclusive\"\n }`,\n {\n minimum,\n count: typeof minimum === \"number\" ? minimum : undefined,\n ns,\n defaultValue: message,\n ...path,\n }\n );\n break;\n case \"too_big\":\n const maximum =\n issue.origin === \"date\"\n ? new Date(Number(issue.maximum))\n : issue.maximum;\n message = t(\n `errors.too_big.${issue.origin}.${\n issue.exact\n ? \"exact\"\n : issue.inclusive\n ? \"inclusive\"\n : \"not_inclusive\"\n }`,\n {\n maximum,\n count: typeof maximum === \"number\" ? maximum : undefined,\n ns,\n defaultValue: message,\n ...path,\n }\n );\n break;\n case \"custom\":\n const { key, values } = getKeyAndValues(\n issue.params?.i18n,\n \"errors.custom\"\n );\n\n message = t(key, {\n ...values,\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n case \"not_multiple_of\":\n message = t(\"errors.not_multiple_of\", {\n multipleOf: issue.divisor,\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n default:\n }\n\n return { message };\n};\n\nexport const zodI18nMap = makeZodI18nMap();\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { $ZodErrorMap } from \"zod/v4/core\";\nimport i18next, { i18n } from \"i18next\";\nimport { ZodLiteral, ZodEnum, ZodUnion, ZodDiscriminatedUnion } from \"zod/v4\";\nimport { en } from \"zod/locales\";\n\nconst jsonStringifyReplacer = (_: string, value: any): any => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n};\n\nfunction joinValues<T extends any[]>(array: T, separator = \" | \"): string {\n return array\n .map((val) => {\n if (typeof val === \"string\") return `'${val}'`;\n else if (typeof val === \"bigint\") return `${val.toString()}`;\n return val;\n })\n .join(separator);\n}\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => {\n if (typeof value !== \"object\" || value === null) return false;\n\n for (const key in value) {\n if (!Object.prototype.hasOwnProperty.call(value, key)) return false;\n }\n\n return true;\n};\n\nconst getKeyAndValues = (\n param: unknown,\n defaultKey: string\n): {\n values: Record<string, unknown>;\n key: string;\n} => {\n if (typeof param === \"string\") return { key: param, values: {} };\n\n if (isRecord(param)) {\n const key =\n \"key\" in param && typeof param.key === \"string\" ? param.key : defaultKey;\n const values =\n \"values\" in param && isRecord(param.values) ? param.values : {};\n return { key, values };\n }\n\n return { key: defaultKey, values: {} };\n};\n\nexport type MakeZodI18nMap = (option?: ZodI18nMapOption) => $ZodErrorMap;\n\nexport type ZodI18nMapOption = {\n t?: i18n[\"t\"];\n ns?: string | readonly string[];\n handlePath?: HandlePathOption | false;\n};\n\nexport type HandlePathOption = {\n context?: string;\n ns?: string | readonly string[];\n keyPrefix?: string;\n};\n\nconst defaultNs = \"zod\";\n\nconst getReceivedDataType = (data: unknown): string => {\n const typeofData = typeof data;\n\n switch (typeofData) {\n case \"number\": {\n if (Number.isNaN(data)) return \"NaN\";\n else if (Number.isInteger(data)) return \"number\";\n else return \"float\";\n }\n case \"object\": {\n if (Array.isArray(data)) return \"array\";\n else if (data === null) return \"null\";\n else if (\n Object.getPrototypeOf(data) !== Object.prototype &&\n data?.constructor\n )\n return data.constructor.name;\n }\n }\n return typeofData;\n};\n\nexport const makeZodI18nMap: MakeZodI18nMap = (option) => (issue) => {\n const { t, ns, handlePath } = {\n t: i18next.t,\n ns: defaultNs,\n ...option,\n handlePath:\n option?.handlePath !== false\n ? {\n context: \"with_path\",\n ns: option?.ns ?? defaultNs,\n keyPrefix: undefined,\n ...option?.handlePath,\n }\n : null,\n };\n\n let message: string;\n const errorMsg = en().localeError(issue);\n message = (typeof errorMsg === \"string\" ? errorMsg : errorMsg?.message) ?? \"\";\n\n const path =\n (issue.path?.length ?? 0) > 0 && !!handlePath\n ? {\n context: handlePath.context,\n path: t(\n [handlePath.keyPrefix, issue.path?.join(\".\")]\n .filter(Boolean)\n .join(\".\"),\n {\n ns: handlePath.ns,\n defaultValue: issue.path?.join(\".\"),\n }\n ),\n }\n : {};\n\n switch (issue.code) {\n case \"invalid_type\":\n if (issue.input === undefined) {\n message = t(\"errors.invalid_type_received_undefined\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.input === null) {\n message = t(\"errors.invalid_type_received_null\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.input === Infinity) {\n message = t(\"errors.not_finite\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (\n issue.input instanceof Date &&\n Number.isNaN(issue.input.getTime())\n ) {\n message = t(\"errors.invalid_date\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else {\n const received = getReceivedDataType(issue.input).toLocaleLowerCase();\n message = t(\"errors.invalid_type\", {\n expected: t(`types.${issue.expected}`, {\n defaultValue: issue.expected,\n ns,\n }),\n received: t(`types.${received}`, {\n defaultValue: received,\n ns,\n }),\n ns,\n defaultValue: message,\n ...path,\n });\n }\n break;\n case \"invalid_value\":\n if (issue.inst instanceof ZodLiteral) {\n message = t(\"errors.invalid_literal\", {\n expected: joinValues(issue.values),\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.inst instanceof ZodEnum) {\n message = t(\"errors.invalid_enum_value\", {\n options: joinValues(issue.values),\n received: issue.input,\n ns,\n defaultValue: message,\n ...path,\n });\n }\n break;\n case \"unrecognized_keys\":\n message = t(\"errors.unrecognized_keys\", {\n keys: joinValues(issue.keys, \", \"),\n count: issue.keys.length,\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n case \"invalid_union\":\n // This one must be first (narrower type)\n if (issue.inst instanceof ZodDiscriminatedUnion) {\n const options = issue.inst?.def.options.map(\n (opt: any) => opt.def.shape.type.def.values[0]\n );\n message = t(\"errors.invalid_union_discriminator\", {\n options: joinValues(options),\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.inst instanceof ZodUnion) {\n message = t(\"errors.invalid_union\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else {\n message = t(\"errors.invalid_union\", {\n ns,\n defaultValue: message,\n ...path,\n });\n }\n break;\n case \"invalid_format\":\n if (issue.format === \"date\") {\n message = t(\"errors.invalid_date\", {\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.format === \"starts_with\") {\n message = t(`errors.invalid_string.startsWith`, {\n startsWith: issue.prefix,\n ns,\n defaultValue: message,\n ...path,\n });\n } else if (issue.format === \"ends_with\") {\n message = t(`errors.invalid_string.endsWith`, {\n endsWith: issue.suffix,\n ns,\n defaultValue: message,\n ...path,\n });\n } else {\n message = t(`errors.invalid_string.${issue.format}`, {\n validation: t(`validations.${issue.format}`, {\n defaultValue: issue.format,\n ns,\n }),\n ns,\n defaultValue: message,\n ...path,\n });\n }\n break;\n case \"too_small\":\n const minimum =\n issue.origin === \"date\"\n ? new Date(Number(issue.minimum))\n : issue.minimum;\n message = t(\n `errors.too_small.${issue.origin}.${\n issue.exact\n ? \"exact\"\n : issue.inclusive\n ? \"inclusive\"\n : \"not_inclusive\"\n }`,\n {\n minimum,\n count: typeof minimum === \"number\" ? minimum : undefined,\n ns,\n defaultValue: message,\n ...path,\n }\n );\n break;\n case \"too_big\":\n const maximum =\n issue.origin === \"date\"\n ? new Date(Number(issue.maximum))\n : issue.maximum;\n message = t(\n `errors.too_big.${issue.origin}.${\n issue.exact\n ? \"exact\"\n : issue.inclusive\n ? \"inclusive\"\n : \"not_inclusive\"\n }`,\n {\n maximum,\n count: typeof maximum === \"number\" ? maximum : undefined,\n ns,\n defaultValue: message,\n ...path,\n }\n );\n break;\n case \"custom\":\n const { key, values } = getKeyAndValues(\n issue.params?.i18n,\n \"errors.custom\"\n );\n\n message = t(key, {\n ...values,\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n case \"not_multiple_of\":\n message = t(\"errors.not_multiple_of\", {\n multipleOf: issue.divisor,\n ns,\n defaultValue: message,\n ...path,\n });\n break;\n default:\n }\n return { message };\n};\n\nexport const zodI18nMap = makeZodI18nMap();\n"],"mappings":"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","names":[]}
|
package/locales/ar/zod.json
CHANGED
|
@@ -8,11 +8,8 @@
|
|
|
8
8
|
"invalid_union": "مدخل غير صالح",
|
|
9
9
|
"invalid_union_discriminator": "قيمة مميزة غير صالحة. المتوقع {{- options}}",
|
|
10
10
|
"invalid_enum_value": "قيمة تعداد غير صالحة. المتوقع {{- options}}، المستلم '{{received}}'",
|
|
11
|
-
"invalid_arguments": "معاملات الدالة غير صالحة",
|
|
12
|
-
"invalid_return_type": "نوع إرجاع دالة غير صالح",
|
|
13
11
|
"invalid_date": "تاريخ غير صالح",
|
|
14
12
|
"custom": "مدخل غير صالح",
|
|
15
|
-
"invalid_intersection_types": "تعذر دمج نتائج التقاطع",
|
|
16
13
|
"not_multiple_of": "يجب أن يكون الرقم من مضاعفات {{multipleOf}}",
|
|
17
14
|
"not_finite": "يجب ان يكون العدد محدود",
|
|
18
15
|
"invalid_string": {
|
|
@@ -93,7 +90,7 @@
|
|
|
93
90
|
"number": "رقم",
|
|
94
91
|
"string": "سلسلة",
|
|
95
92
|
"nan": "مدخل غير رقمي",
|
|
96
|
-
"
|
|
93
|
+
"int": "عدد صحيح",
|
|
97
94
|
"float": "عدد عشري",
|
|
98
95
|
"boolean": "قيمة منطقية",
|
|
99
96
|
"date": "تاريخ",
|
|
@@ -110,4 +107,4 @@
|
|
|
110
107
|
"map": "ماب",
|
|
111
108
|
"set": "مجموعة"
|
|
112
109
|
}
|
|
113
|
-
}
|
|
110
|
+
}
|
package/locales/bg/zod.json
CHANGED
|
@@ -8,11 +8,8 @@
|
|
|
8
8
|
"invalid_union": "Невалидно обединение",
|
|
9
9
|
"invalid_union_discriminator": "Невалидна стойност на дискриминатора. Очаквано {{- options}}",
|
|
10
10
|
"invalid_enum_value": "Невалидна стойност на enum. Очаквано {{- options}}, получено '{{received}}'",
|
|
11
|
-
"invalid_arguments": "Невалидни аргументи на функцията",
|
|
12
|
-
"invalid_return_type": "Невалиден тип на върнатата от функцията стойност",
|
|
13
11
|
"invalid_date": "Невалидна дата",
|
|
14
12
|
"custom": "Невалидни данни",
|
|
15
|
-
"invalid_intersection_types": "Резултатите от сечението не могат да бъдат обединени",
|
|
16
13
|
"not_multiple_of": "Числото трябва да бъде кратно на {{multipleOf}}",
|
|
17
14
|
"not_finite": "Числото трябва да бъде крайно",
|
|
18
15
|
"invalid_string": {
|
|
@@ -93,7 +90,7 @@
|
|
|
93
90
|
"number": "число",
|
|
94
91
|
"string": "низ",
|
|
95
92
|
"nan": "NaN",
|
|
96
|
-
"
|
|
93
|
+
"int": "цяло число",
|
|
97
94
|
"float": "число с плаваща запетая",
|
|
98
95
|
"boolean": "булев тип",
|
|
99
96
|
"date": "дата",
|
|
@@ -110,4 +107,4 @@
|
|
|
110
107
|
"map": "хеш таблица",
|
|
111
108
|
"set": "множество"
|
|
112
109
|
}
|
|
113
|
-
}
|
|
110
|
+
}
|
package/locales/cs/zod.json
CHANGED
|
@@ -8,11 +8,8 @@
|
|
|
8
8
|
"invalid_union": "Neplatný vstup",
|
|
9
9
|
"invalid_union_discriminator": "Neplatná hodnota diskriminátoru. Očekává se {{- options}}",
|
|
10
10
|
"invalid_enum_value": "Neplatná hodnota výčtu. Očekává se {{- options}}, ale bylo obdrženo '{{received}}'",
|
|
11
|
-
"invalid_arguments": "Neplatné argumenty funkce",
|
|
12
|
-
"invalid_return_type": "Neplatný typ návratové hodnoty",
|
|
13
11
|
"invalid_date": "Neplatné datum",
|
|
14
12
|
"custom": "Neplatný vstup",
|
|
15
|
-
"invalid_intersection_types": "Hodnoty průniku nelze sloučit",
|
|
16
13
|
"not_multiple_of": "Číslo musí být násobkem {{multipleOf}}",
|
|
17
14
|
"not_finite": "Číslo nesmí být nekonečné",
|
|
18
15
|
"invalid_string": {
|
|
@@ -93,7 +90,7 @@
|
|
|
93
90
|
"number": "číslo",
|
|
94
91
|
"string": "text",
|
|
95
92
|
"nan": "nan",
|
|
96
|
-
"
|
|
93
|
+
"int": "celé číslo",
|
|
97
94
|
"float": "reálné číslo",
|
|
98
95
|
"boolean": "boolean",
|
|
99
96
|
"date": "datum",
|
|
@@ -110,4 +107,4 @@
|
|
|
110
107
|
"map": "map",
|
|
111
108
|
"set": "set"
|
|
112
109
|
}
|
|
113
|
-
}
|
|
110
|
+
}
|
package/locales/de/zod.json
CHANGED
|
@@ -8,11 +8,8 @@
|
|
|
8
8
|
"invalid_union": "Ungültige Eingabe",
|
|
9
9
|
"invalid_union_discriminator": "Ungültiger Diskriminatorwert, {{- options}} erwartet",
|
|
10
10
|
"invalid_enum_value": "Ungültiger Enum-Wert. {{- options}} erwartet, '{{received}}' erhalten",
|
|
11
|
-
"invalid_arguments": "Ungültige Funktionsargumente",
|
|
12
|
-
"invalid_return_type": "Ungültiger Funktionsrückgabewert",
|
|
13
11
|
"invalid_date": "Ungültiges Datum",
|
|
14
12
|
"custom": "Ungültige Eingabe",
|
|
15
|
-
"invalid_intersection_types": "Schnittmengenergebnisse konnten nicht zusammengeführt werden",
|
|
16
13
|
"not_multiple_of": "Zahl muss ein Vielfaches von {{multipleOf}} sein",
|
|
17
14
|
"not_finite": "Zahl muss endlich sein",
|
|
18
15
|
"invalid_string": {
|
|
@@ -93,7 +90,7 @@
|
|
|
93
90
|
"number": "Zahl",
|
|
94
91
|
"string": "String",
|
|
95
92
|
"nan": "NaN",
|
|
96
|
-
"
|
|
93
|
+
"int": "Ganzzahl",
|
|
97
94
|
"float": "Gleitkommazahl",
|
|
98
95
|
"boolean": "Boolean",
|
|
99
96
|
"date": "Datum",
|
|
@@ -110,4 +107,4 @@
|
|
|
110
107
|
"map": "Map",
|
|
111
108
|
"set": "Set"
|
|
112
109
|
}
|
|
113
|
-
}
|
|
110
|
+
}
|
package/locales/en/zod.json
CHANGED
|
@@ -8,11 +8,8 @@
|
|
|
8
8
|
"invalid_union": "Invalid input",
|
|
9
9
|
"invalid_union_discriminator": "Invalid discriminator value. Expected {{- options}}",
|
|
10
10
|
"invalid_enum_value": "Invalid enum value. Expected {{- options}}, received '{{received}}'",
|
|
11
|
-
"invalid_arguments": "Invalid function arguments",
|
|
12
|
-
"invalid_return_type": "Invalid function return type",
|
|
13
11
|
"invalid_date": "Invalid date",
|
|
14
12
|
"custom": "Invalid input",
|
|
15
|
-
"invalid_intersection_types": "Intersection results could not be merged",
|
|
16
13
|
"not_multiple_of": "Number must be a multiple of {{multipleOf}}",
|
|
17
14
|
"not_finite": "Number must be finite",
|
|
18
15
|
"invalid_string": {
|
|
@@ -93,7 +90,7 @@
|
|
|
93
90
|
"number": "number",
|
|
94
91
|
"string": "string",
|
|
95
92
|
"nan": "nan",
|
|
96
|
-
"
|
|
93
|
+
"int": "integer",
|
|
97
94
|
"float": "float",
|
|
98
95
|
"boolean": "boolean",
|
|
99
96
|
"date": "date",
|
|
@@ -110,4 +107,4 @@
|
|
|
110
107
|
"map": "map",
|
|
111
108
|
"set": "set"
|
|
112
109
|
}
|
|
113
|
-
}
|
|
110
|
+
}
|