@semihbou/zod-i18n-map 0.0.2 → 0.0.4
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.icu.json +110 -0
- package/locales/ar/zod.json +2 -5
- package/locales/bg/zod.icu.json +110 -0
- package/locales/bg/zod.json +2 -5
- package/locales/cs/zod.icu.json +110 -0
- package/locales/cs/zod.json +2 -5
- package/locales/de/zod.icu.json +110 -0
- package/locales/de/zod.json +2 -5
- package/locales/en/zod.icu.json +110 -0
- package/locales/en/zod.json +2 -5
- package/locales/es/zod.icu.json +110 -0
- package/locales/es/zod.json +2 -5
- package/locales/fa/zod.icu.json +110 -0
- package/locales/fa/zod.json +3 -6
- package/locales/fi/zod.icu.json +110 -0
- package/locales/fi/zod.json +2 -5
- package/locales/fr/zod.icu.json +110 -0
- package/locales/fr/zod.json +2 -5
- package/locales/he/zod.icu.json +110 -0
- package/locales/he/zod.json +2 -5
- package/locales/hr-HR/zod.icu.json +110 -0
- package/locales/hr-HR/zod.json +2 -5
- package/locales/id/zod.icu.json +110 -0
- package/locales/id/zod.json +2 -5
- package/locales/is/zod.icu.json +102 -0
- package/locales/is/zod.json +2 -5
- package/locales/it/zod.icu.json +110 -0
- package/locales/it/zod.json +2 -5
- package/locales/ja/zod.icu.json +110 -0
- package/locales/ja/zod.json +2 -5
- package/locales/ko/zod.icu.json +110 -0
- package/locales/ko/zod.json +2 -5
- package/locales/lt/zod.icu.json +110 -0
- package/locales/lt/zod.json +2 -5
- package/locales/nb/zod.icu.json +110 -0
- package/locales/nb/zod.json +2 -5
- package/locales/nl/zod.icu.json +110 -0
- package/locales/nl/zod.json +2 -5
- package/locales/pl/zod.icu.json +110 -0
- package/locales/pl/zod.json +2 -5
- package/locales/pt/zod.icu.json +110 -0
- package/locales/pt/zod.json +2 -5
- package/locales/ro/zod.icu.json +110 -0
- package/locales/ro/zod.json +2 -5
- package/locales/ru/zod.icu.json +110 -0
- package/locales/ru/zod.json +2 -5
- package/locales/sk/zod.icu.json +116 -0
- package/locales/sk/zod.json +1 -4
- package/locales/sv/zod.icu.json +110 -0
- package/locales/sv/zod.json +2 -5
- package/locales/tr/zod.icu.json +110 -0
- package/locales/tr/zod.json +2 -5
- package/locales/uk-UA/zod.icu.json +110 -0
- package/locales/uk-UA/zod.json +2 -5
- package/locales/uz/zod.icu.json +110 -0
- package/locales/uz/zod.json +2 -5
- package/locales/zh-CN/zod.icu.json +110 -0
- package/locales/zh-CN/zod.json +2 -5
- package/locales/zh-TW/zod.icu.json +102 -0
- package/locales/zh-TW/zod.json +2 -5
- package/package.json +12 -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAA8B;AAE9B,IAAM,wBAAwB,CAAC,GAAW,UAAoB;AAC5D,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,MAAM,SAAS;AAAA,EACxB;AACA,SAAO;AACT;AAEA,SAAS,WAA4B,OAAU,YAAY,OAAe;AACxE,SAAO,MACJ,IAAI,CAAC,QAAS,OAAO,QAAQ,WAAW,IAAI,GAAG,MAAM,GAAI,EACzD,KAAK,SAAS;AACnB;AAEA,IAAM,WAAW,CAAC,UAAqD;AACrE,MAAI,OAAO,UAAU,YAAY,UAAU,KAAM,QAAO;AAExD,aAAW,OAAO,OAAO;AACvB,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,OAAO,GAAG,EAAG,QAAO;AAAA,EAChE;AAEA,SAAO;AACT;AAEA,IAAM,kBAAkB,CACtB,OACA,eAIG;AACH,MAAI,OAAO,UAAU,SAAU,QAAO,EAAE,KAAK,OAAO,QAAQ,CAAC,EAAE;AAE/D,MAAI,SAAS,KAAK,GAAG;AACnB,UAAM,MACJ,SAAS,SAAS,OAAO,MAAM,QAAQ,WAAW,MAAM,MAAM;AAChE,UAAM,SACJ,YAAY,SAAS,SAAS,MAAM,MAAM,IAAI,MAAM,SAAS,CAAC;AAChE,WAAO,EAAE,KAAK,OAAO;AAAA,EACvB;AAEA,SAAO,EAAE,KAAK,YAAY,QAAQ,CAAC,EAAE;AACvC;AAgBA,IAAM,YAAY;AAEX,IAAM,iBAAiC,CAAC,WAAW,CAAC,UAAU;AACnE,QAAM,EAAE,GAAG,IAAI,WAAW,IAAI;AAAA,IAC5B,GAAG,eAAAA,QAAQ;AAAA,IACX,IAAI;AAAA,IACJ,GAAG;AAAA,IACH,YACE,QAAQ,eAAe,QACnB;AAAA,MACE,SAAS;AAAA,MACT,IAAI,QAAQ,MAAM;AAAA,MAClB,WAAW;AAAA,MACX,GAAG,QAAQ;AAAA,IACb,IACA;AAAA,EACR;AAEA,MAAI;AACJ,YAAU,MAAM,WAAW;AAE3B,QAAM,OACJ,OAAO,QAAQ,CAAC,CAAC,aACb;AAAA,IACE,SAAS,WAAW;AAAA,IACpB,MAAM;AAAA,MACJ,CAAC,WAAW,WAAW,MAAM,KAAK,KAAK,GAAG,CAAC,EACxC,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MACX;AAAA,QACE,IAAI,WAAW;AAAA,QACf,cAAc,MAAM,KAAK,KAAK,GAAG;AAAA,MACnC;AAAA,IACF;AAAA,EACF,IACA,CAAC;AAEP,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK;AACH,UAAI,MAAM,aAAa,aAAa;AAClC,kBAAU,EAAE,0CAA0C;AAAA,UACpD;AAAA,UACA,cAAc;AAAA,UACd,GAAG;AAAA,QACL,CAAC;AAAA,MACH,WAAW,MAAM,aAAa,QAAQ;AACpC,kBAAU,EAAE,qCAAqC;AAAA,UAC/C;AAAA,UACA,cAAc;AAAA,UACd,GAAG;AAAA,QACL,CAAC;AAAA,MACH,OAAO;AACL,kBAAU,EAAE,uBAAuB;AAAA,UACjC,UAAU,EAAE,SAAS,MAAM,QAAQ,IAAI;AAAA,YACrC,cAAc,MAAM;AAAA,YACpB;AAAA,UACF,CAAC;AAAA,UACD,UAAU,EAAE,SAAS,MAAM,QAAQ,IAAI;AAAA,YACrC,cAAc,MAAM;AAAA,YACpB;AAAA,UACF,CAAC;AAAA,UACD;AAAA,UACA,cAAc;AAAA,UACd,GAAG;AAAA,QACL,CAAC;AAAA,MACH;AACA;AAAA,IACF,KAAK;AACH,gBAAU,EAAE,0BAA0B;AAAA,QACpC,UAAU,KAAK,UAAU,MAAM,UAAU,qBAAqB;AAAA,QAC9D;AAAA,QACA,cAAc;AAAA,QACd,GAAG;AAAA,MACL,CAAC;AACD;AAAA,IACF,KAAK;AACH,gBAAU,EAAE,4BAA4B;AAAA,QACtC,MAAM,WAAW,MAAM,MAAM,IAAI;AAAA,QACjC,OAAO,MAAM,KAAK;AAAA,QAClB;AAAA,QACA,cAAc;AAAA,QACd,GAAG;AAAA,MACL,CAAC;AACD;AAAA,IACF,KAAK;AACH,gBAAU,EAAE,wBAAwB;AAAA,QAClC;AAAA,QACA,cAAc;AAAA,QACd,GAAG;AAAA,MACL,CAAC;AACD;AAAA,IACF,KAAK;AACH,UAAI,MAAM,WAAW,QAAQ;AAC3B,kBAAU,EAAE,uBAAuB;AAAA,UACjC;AAAA,UACA,cAAc;AAAA,UACd,GAAG;AAAA,QACL,CAAC;AAAA,MACH,WAAW,MAAM,WAAW,eAAe;AACzC,kBAAU,EAAE,oCAAoC;AAAA,UAC9C,YAAY,MAAM;AAAA,UAClB;AAAA,UACA,cAAc;AAAA,UACd,GAAG;AAAA,QACL,CAAC;AAAA,MACH,WAAW,MAAM,WAAW,aAAa;AACvC,kBAAU,EAAE,kCAAkC;AAAA,UAC5C,UAAU,MAAM;AAAA,UAChB;AAAA,UACA,cAAc;AAAA,UACd,GAAG;AAAA,QACL,CAAC;AAAA,MACH,OAAO;AACL,kBAAU,EAAE,yBAAyB,MAAM,MAAM,IAAI;AAAA,UACnD,YAAY,EAAE,eAAe,MAAM,MAAM,IAAI;AAAA,YAC3C,cAAc,MAAM;AAAA,YACpB;AAAA,UACF,CAAC;AAAA,UACD;AAAA,UACA,cAAc;AAAA,UACd,GAAG;AAAA,QACL,CAAC;AAAA,MACH;AACA;AAAA,IACF,KAAK;AACH,YAAM,UACJ,MAAM,WAAW,SACb,IAAI,KAAK,OAAO,MAAM,OAAO,CAAC,IAC9B,MAAM;AACZ,gBAAU;AAAA,QACR,oBAAoB,MAAM,MAAM,IAC9B,MAAM,QACF,UACA,MAAM,YACN,cACA,eACN;AAAA,QACA;AAAA,UACE;AAAA,UACA,OAAO,OAAO,YAAY,WAAW,UAAU;AAAA,UAC/C;AAAA,UACA,cAAc;AAAA,UACd,GAAG;AAAA,QACL;AAAA,MACF;AACA;AAAA,IACF,KAAK;AACH,YAAM,UACJ,MAAM,WAAW,SACb,IAAI,KAAK,OAAO,MAAM,OAAO,CAAC,IAC9B,MAAM;AACZ,gBAAU;AAAA,QACR,kBAAkB,MAAM,MAAM,IAC5B,MAAM,QACF,UACA,MAAM,YACN,cACA,eACN;AAAA,QACA;AAAA,UACE;AAAA,UACA,OAAO,OAAO,YAAY,WAAW,UAAU;AAAA,UAC/C;AAAA,UACA,cAAc;AAAA,UACd,GAAG;AAAA,QACL;AAAA,MACF;AACA;AAAA,IACF,KAAK;AACH,YAAM,EAAE,KAAK,OAAO,IAAI;AAAA,QACtB,MAAM,QAAQ;AAAA,QACd;AAAA,MACF;AAEA,gBAAU,EAAE,KAAK;AAAA,QACf,GAAG;AAAA,QACH;AAAA,QACA,cAAc;AAAA,QACd,GAAG;AAAA,MACL,CAAC;AACD;AAAA,IACF,KAAK;AACH,gBAAU,EAAE,0BAA0B;AAAA,QACpC,YAAY,MAAM;AAAA,QAClB;AAAA,QACA,cAAc;AAAA,QACd,GAAG;AAAA,MACL,CAAC;AACD;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,QAAQ;AACnB;AAEO,IAAM,aAAa,eAAe;","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":[]}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
{
|
|
2
|
+
"errors": {
|
|
3
|
+
"invalid_type": "المتوقع {expected}، المستلم {received}",
|
|
4
|
+
"invalid_type_received_undefined": "مطلوب",
|
|
5
|
+
"invalid_type_received_null": "مطلوب",
|
|
6
|
+
"invalid_literal": "قيمة حرفية غير صالحة، المتوقع {expected}",
|
|
7
|
+
"unrecognized_keys": "عنصر (عناصر) غير معروف في الكائن: {keys}",
|
|
8
|
+
"invalid_union": "مدخل غير صالح",
|
|
9
|
+
"invalid_union_discriminator": "قيمة مميزة غير صالحة. المتوقع {options}",
|
|
10
|
+
"invalid_enum_value": "قيمة تعداد غير صالحة. المتوقع {options}، المستلم ''{received}''",
|
|
11
|
+
"invalid_date": "تاريخ غير صالح",
|
|
12
|
+
"custom": "مدخل غير صالح",
|
|
13
|
+
"not_multiple_of": "يجب أن يكون الرقم من مضاعفات {multipleOf}",
|
|
14
|
+
"not_finite": "يجب ان يكون العدد محدود",
|
|
15
|
+
"invalid_string": {
|
|
16
|
+
"email": "غير صالح {validation}",
|
|
17
|
+
"url": "غير صالح {validation}",
|
|
18
|
+
"uuid": "غير صالح {validation}",
|
|
19
|
+
"cuid": "غير صالح {validation}",
|
|
20
|
+
"regex": "غير صالح",
|
|
21
|
+
"datetime": "غير صالح {validation}",
|
|
22
|
+
"startsWith": "إدخال غير صالح: يجب أن يبدأ بـ {startsWith}",
|
|
23
|
+
"endsWith": "إدخال غير صالح: يجب أن ينتهي بـ {endsWith}"
|
|
24
|
+
},
|
|
25
|
+
"too_small": {
|
|
26
|
+
"array": {
|
|
27
|
+
"exact": "يجب أن تحتوي المصفوفة على {minimum} عنصر (عناصر)",
|
|
28
|
+
"inclusive": "يجب أن تحتوي المصفوفة على {minimum} عنصر (عناصر) على الأقل",
|
|
29
|
+
"not_inclusive": "يجب أن تحتوي المصفوفة على أكثر من {minimum} عنصر (عناصر)"
|
|
30
|
+
},
|
|
31
|
+
"string": {
|
|
32
|
+
"exact": "يجب أن تحتوي السلسلة على {minimum} حرف (أحرف)",
|
|
33
|
+
"inclusive": "يجب أن تحتوي السلسلة على {minimum} حرف (أحرف) على الأقل",
|
|
34
|
+
"not_inclusive": "يجب أن تحتوي السلسلة على أكثر من {minimum} حرف (أحرف)"
|
|
35
|
+
},
|
|
36
|
+
"number": {
|
|
37
|
+
"exact": "يجب أن يكون الرقم {minimum}",
|
|
38
|
+
"inclusive": "يجب أن يكون الرقم أكبر من أو يساوي {minimum}",
|
|
39
|
+
"not_inclusive": "يجب أن يكون الرقم أكبر من {minimum}"
|
|
40
|
+
},
|
|
41
|
+
"set": {
|
|
42
|
+
"exact": "مدخل غير صالح",
|
|
43
|
+
"inclusive": "مدخل غير صالح",
|
|
44
|
+
"not_inclusive": "مدخل غير صالح"
|
|
45
|
+
},
|
|
46
|
+
"date": {
|
|
47
|
+
"exact": "يجب أن يكون التاريخ {minimum, date}",
|
|
48
|
+
"inclusive": "يجب أن يكون التاريخ أكبر من أو يساوي {minimum, date}",
|
|
49
|
+
"not_inclusive": "يجب أن يكون التاريخ أكبر من {minimum, date}"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"too_big": {
|
|
53
|
+
"array": {
|
|
54
|
+
"exact": "يجب أن تحتوي المصفوفة على {maximum} عنصر (عناصر)",
|
|
55
|
+
"inclusive": "يجب أن تحتوي المصفوفة على {maximum} عنصر (عناصر) كحد أقصى",
|
|
56
|
+
"not_inclusive": "يجب أن تحتوي المصفوفة على أقل من {maximum} عنصر (عناصر)"
|
|
57
|
+
},
|
|
58
|
+
"string": {
|
|
59
|
+
"exact": "يجب أن تحتوي السلسلة على {maximum} حرف (أحرف)",
|
|
60
|
+
"inclusive": "يجب أن تحتوي السلسلة على {maximum} حرف (أحرف) كحد أقصى",
|
|
61
|
+
"not_inclusive": "يجب أن تحتوي السلسلة على أقل من {maximum} حرف (أحرف)"
|
|
62
|
+
},
|
|
63
|
+
"number": {
|
|
64
|
+
"exact": "يجب أن يكون الرقم {maximum}",
|
|
65
|
+
"inclusive": "يجب أن يكون الرقم أقل من أو يساوي {maximum}",
|
|
66
|
+
"not_inclusive": "يجب أن يكون الرقم أقل من {maximum}"
|
|
67
|
+
},
|
|
68
|
+
"set": {
|
|
69
|
+
"exact": "مدخل غير صالح",
|
|
70
|
+
"inclusive": "مدخل غير صالح",
|
|
71
|
+
"not_inclusive": "مدخل غير صالح"
|
|
72
|
+
},
|
|
73
|
+
"date": {
|
|
74
|
+
"exact": "يجب أن يكون التاريخ {maximum, date}",
|
|
75
|
+
"inclusive": "يجب أن يكون التاريخ أصغر من أو يساوي {maximum, date}",
|
|
76
|
+
"not_inclusive": "يجب أن يكون التاريخ أصغر من {maximum, date}"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"validations": {
|
|
81
|
+
"email": "البريد الإلكتروني",
|
|
82
|
+
"url": "الرابط",
|
|
83
|
+
"uuid": "uuid",
|
|
84
|
+
"cuid": "cuid",
|
|
85
|
+
"regex": "التعبير النمطي",
|
|
86
|
+
"datetime": "التاريخ والوقت"
|
|
87
|
+
},
|
|
88
|
+
"types": {
|
|
89
|
+
"function": "دالة",
|
|
90
|
+
"number": "رقم",
|
|
91
|
+
"string": "سلسلة",
|
|
92
|
+
"nan": "مدخل غير رقمي",
|
|
93
|
+
"int": "عدد صحيح",
|
|
94
|
+
"float": "عدد عشري",
|
|
95
|
+
"boolean": "قيمة منطقية",
|
|
96
|
+
"date": "تاريخ",
|
|
97
|
+
"bigint": "عدد صحيح كبير",
|
|
98
|
+
"undefined": "غير معرف",
|
|
99
|
+
"symbol": "رمز",
|
|
100
|
+
"null": "لا شيء",
|
|
101
|
+
"array": "مصفوفة",
|
|
102
|
+
"object": "كائن",
|
|
103
|
+
"unknown": "غير معروف",
|
|
104
|
+
"promise": "برومس",
|
|
105
|
+
"void": "بدون قيمة",
|
|
106
|
+
"never": "ابدا",
|
|
107
|
+
"map": "ماب",
|
|
108
|
+
"set": "مجموعة"
|
|
109
|
+
}
|
|
110
|
+
}
|
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
|
+
}
|