zod 4.2.0-canary.20250911T045937 → 4.2.0-canary.20250911T051520
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/package.json +1 -1
- package/src/v4/classic/tests/default.test.ts +8 -0
- package/src/v4/core/util.ts +1 -0
- package/src/v4/locales/index.ts +2 -0
- package/src/v4/locales/kh.ts +3 -122
- package/src/v4/locales/km.ts +126 -0
- package/src/v4/locales/ua.ts +3 -122
- package/src/v4/locales/uk.ts +126 -0
- package/v4/core/util.cjs +2 -0
- package/v4/core/util.js +2 -0
- package/v4/locales/index.cjs +5 -1
- package/v4/locales/index.d.cts +2 -0
- package/v4/locales/index.d.ts +2 -0
- package/v4/locales/index.js +2 -0
- package/v4/locales/kh.cjs +5 -137
- package/v4/locales/kh.d.ts +1 -0
- package/v4/locales/kh.js +3 -115
- package/v4/locales/km.cjs +144 -0
- package/v4/locales/km.d.cts +5 -0
- package/v4/locales/km.d.ts +4 -0
- package/v4/locales/km.js +117 -0
- package/v4/locales/ua.cjs +5 -137
- package/v4/locales/ua.d.ts +1 -0
- package/v4/locales/ua.js +3 -115
- package/v4/locales/uk.cjs +144 -0
- package/v4/locales/uk.d.cts +5 -0
- package/v4/locales/uk.d.ts +4 -0
- package/v4/locales/uk.js +117 -0
package/package.json
CHANGED
|
@@ -324,6 +324,14 @@ test("defaulted object schema returns shallow clone", () => {
|
|
|
324
324
|
expect(result1).toEqual(result2);
|
|
325
325
|
});
|
|
326
326
|
|
|
327
|
+
test("defaulted array schema returns shallow clone", () => {
|
|
328
|
+
const schema = z.array(z.string()).default(["x"]);
|
|
329
|
+
const result1 = schema.parse(undefined);
|
|
330
|
+
const result2 = schema.parse(undefined);
|
|
331
|
+
expect(result1).not.toBe(result2);
|
|
332
|
+
expect(result1).toEqual(result2);
|
|
333
|
+
});
|
|
334
|
+
|
|
327
335
|
test("direction-aware defaults", () => {
|
|
328
336
|
const schema = z.string().default("hello");
|
|
329
337
|
|
package/src/v4/core/util.ts
CHANGED
package/src/v4/locales/index.ts
CHANGED
|
@@ -20,6 +20,7 @@ export { default as it } from "./it.js";
|
|
|
20
20
|
export { default as ja } from "./ja.js";
|
|
21
21
|
export { default as ka } from "./ka.js";
|
|
22
22
|
export { default as kh } from "./kh.js";
|
|
23
|
+
export { default as km } from "./km.js";
|
|
23
24
|
export { default as ko } from "./ko.js";
|
|
24
25
|
export { default as lt } from "./lt.js";
|
|
25
26
|
export { default as mk } from "./mk.js";
|
|
@@ -37,6 +38,7 @@ export { default as ta } from "./ta.js";
|
|
|
37
38
|
export { default as th } from "./th.js";
|
|
38
39
|
export { default as tr } from "./tr.js";
|
|
39
40
|
export { default as ua } from "./ua.js";
|
|
41
|
+
export { default as uk } from "./uk.js";
|
|
40
42
|
export { default as ur } from "./ur.js";
|
|
41
43
|
export { default as vi } from "./vi.js";
|
|
42
44
|
export { default as zhCN } from "./zh-CN.js";
|
package/src/v4/locales/kh.ts
CHANGED
|
@@ -1,126 +1,7 @@
|
|
|
1
|
-
import type { $ZodStringFormats } from "../core/checks.js";
|
|
2
1
|
import type * as errors from "../core/errors.js";
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
const error: () => errors.$ZodErrorMap = () => {
|
|
6
|
-
const Sizable: Record<string, { unit: string; verb: string }> = {
|
|
7
|
-
string: { unit: "តួអក្សរ", verb: "គួរមាន" },
|
|
8
|
-
file: { unit: "បៃ", verb: "គួរមាន" },
|
|
9
|
-
array: { unit: "ធាតុ", verb: "គួរមាន" },
|
|
10
|
-
set: { unit: "ធាតុ", verb: "គួរមាន" },
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
function getSizing(origin: string): { unit: string; verb: string } | null {
|
|
14
|
-
return Sizable[origin] ?? null;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const parsedType = (data: any): string => {
|
|
18
|
-
const t = typeof data;
|
|
19
|
-
|
|
20
|
-
switch (t) {
|
|
21
|
-
case "number": {
|
|
22
|
-
return Number.isNaN(data) ? "មិនមែនជាលេខ (NaN)" : "លេខ";
|
|
23
|
-
}
|
|
24
|
-
case "object": {
|
|
25
|
-
if (Array.isArray(data)) {
|
|
26
|
-
return "អារេ (Array)";
|
|
27
|
-
}
|
|
28
|
-
if (data === null) {
|
|
29
|
-
return "គ្មានតម្លៃ (null)";
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {
|
|
33
|
-
return data.constructor.name;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return t;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
const Nouns: {
|
|
41
|
-
[k in $ZodStringFormats | (string & {})]?: string;
|
|
42
|
-
} = {
|
|
43
|
-
regex: "ទិន្នន័យបញ្ចូល",
|
|
44
|
-
email: "អាសយដ្ឋានអ៊ីមែល",
|
|
45
|
-
url: "URL",
|
|
46
|
-
emoji: "សញ្ញាអារម្មណ៍",
|
|
47
|
-
uuid: "UUID",
|
|
48
|
-
uuidv4: "UUIDv4",
|
|
49
|
-
uuidv6: "UUIDv6",
|
|
50
|
-
nanoid: "nanoid",
|
|
51
|
-
guid: "GUID",
|
|
52
|
-
cuid: "cuid",
|
|
53
|
-
cuid2: "cuid2",
|
|
54
|
-
ulid: "ULID",
|
|
55
|
-
xid: "XID",
|
|
56
|
-
ksuid: "KSUID",
|
|
57
|
-
datetime: "កាលបរិច្ឆេទ និងម៉ោង ISO",
|
|
58
|
-
date: "កាលបរិច្ឆេទ ISO",
|
|
59
|
-
time: "ម៉ោង ISO",
|
|
60
|
-
duration: "រយៈពេល ISO",
|
|
61
|
-
ipv4: "អាសយដ្ឋាន IPv4",
|
|
62
|
-
ipv6: "អាសយដ្ឋាន IPv6",
|
|
63
|
-
cidrv4: "ដែនអាសយដ្ឋាន IPv4",
|
|
64
|
-
cidrv6: "ដែនអាសយដ្ឋាន IPv6",
|
|
65
|
-
base64: "ខ្សែអក្សរអ៊ិកូដ base64",
|
|
66
|
-
base64url: "ខ្សែអក្សរអ៊ិកូដ base64url",
|
|
67
|
-
json_string: "ខ្សែអក្សរ JSON",
|
|
68
|
-
e164: "លេខ E.164",
|
|
69
|
-
jwt: "JWT",
|
|
70
|
-
template_literal: "ទិន្នន័យបញ្ចូល",
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
return (issue) => {
|
|
74
|
-
switch (issue.code) {
|
|
75
|
-
case "invalid_type":
|
|
76
|
-
return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${issue.expected} ប៉ុន្តែទទួលបាន ${parsedType(issue.input)}`;
|
|
77
|
-
case "invalid_value":
|
|
78
|
-
if (issue.values.length === 1) return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${util.stringifyPrimitive(issue.values[0])}`;
|
|
79
|
-
return `ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${util.joinValues(issue.values, "|")}`;
|
|
80
|
-
case "too_big": {
|
|
81
|
-
const adj = issue.inclusive ? "<=" : "<";
|
|
82
|
-
const sizing = getSizing(issue.origin);
|
|
83
|
-
if (sizing)
|
|
84
|
-
return `ធំពេក៖ ត្រូវការ ${issue.origin ?? "តម្លៃ"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? "ធាតុ"}`;
|
|
85
|
-
return `ធំពេក៖ ត្រូវការ ${issue.origin ?? "តម្លៃ"} ${adj} ${issue.maximum.toString()}`;
|
|
86
|
-
}
|
|
87
|
-
case "too_small": {
|
|
88
|
-
const adj = issue.inclusive ? ">=" : ">";
|
|
89
|
-
const sizing = getSizing(issue.origin);
|
|
90
|
-
if (sizing) {
|
|
91
|
-
return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()}`;
|
|
95
|
-
}
|
|
96
|
-
case "invalid_format": {
|
|
97
|
-
const _issue = issue as errors.$ZodStringFormatIssues;
|
|
98
|
-
if (_issue.format === "starts_with") {
|
|
99
|
-
return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${_issue.prefix}"`;
|
|
100
|
-
}
|
|
101
|
-
if (_issue.format === "ends_with") return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${_issue.suffix}"`;
|
|
102
|
-
if (_issue.format === "includes") return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${_issue.includes}"`;
|
|
103
|
-
if (_issue.format === "regex") return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${_issue.pattern}`;
|
|
104
|
-
return `មិនត្រឹមត្រូវ៖ ${Nouns[_issue.format] ?? issue.format}`;
|
|
105
|
-
}
|
|
106
|
-
case "not_multiple_of":
|
|
107
|
-
return `លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${issue.divisor}`;
|
|
108
|
-
case "unrecognized_keys":
|
|
109
|
-
return `រកឃើញសោមិនស្គាល់៖ ${util.joinValues(issue.keys, ", ")}`;
|
|
110
|
-
case "invalid_key":
|
|
111
|
-
return `សោមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;
|
|
112
|
-
case "invalid_union":
|
|
113
|
-
return `ទិន្នន័យមិនត្រឹមត្រូវ`;
|
|
114
|
-
case "invalid_element":
|
|
115
|
-
return `ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;
|
|
116
|
-
default:
|
|
117
|
-
return `ទិន្នន័យមិនត្រឹមត្រូវ`;
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
};
|
|
2
|
+
import km from "./km.js";
|
|
121
3
|
|
|
4
|
+
/** @deprecated Use `km` instead. */
|
|
122
5
|
export default function (): { localeError: errors.$ZodErrorMap } {
|
|
123
|
-
return
|
|
124
|
-
localeError: error(),
|
|
125
|
-
};
|
|
6
|
+
return km();
|
|
126
7
|
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { $ZodStringFormats } from "../core/checks.js";
|
|
2
|
+
import type * as errors from "../core/errors.js";
|
|
3
|
+
import * as util from "../core/util.js";
|
|
4
|
+
|
|
5
|
+
const error: () => errors.$ZodErrorMap = () => {
|
|
6
|
+
const Sizable: Record<string, { unit: string; verb: string }> = {
|
|
7
|
+
string: { unit: "តួអក្សរ", verb: "គួរមាន" },
|
|
8
|
+
file: { unit: "បៃ", verb: "គួរមាន" },
|
|
9
|
+
array: { unit: "ធាតុ", verb: "គួរមាន" },
|
|
10
|
+
set: { unit: "ធាតុ", verb: "គួរមាន" },
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
function getSizing(origin: string): { unit: string; verb: string } | null {
|
|
14
|
+
return Sizable[origin] ?? null;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const parsedType = (data: any): string => {
|
|
18
|
+
const t = typeof data;
|
|
19
|
+
|
|
20
|
+
switch (t) {
|
|
21
|
+
case "number": {
|
|
22
|
+
return Number.isNaN(data) ? "មិនមែនជាលេខ (NaN)" : "លេខ";
|
|
23
|
+
}
|
|
24
|
+
case "object": {
|
|
25
|
+
if (Array.isArray(data)) {
|
|
26
|
+
return "អារេ (Array)";
|
|
27
|
+
}
|
|
28
|
+
if (data === null) {
|
|
29
|
+
return "គ្មានតម្លៃ (null)";
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {
|
|
33
|
+
return data.constructor.name;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return t;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const Nouns: {
|
|
41
|
+
[k in $ZodStringFormats | (string & {})]?: string;
|
|
42
|
+
} = {
|
|
43
|
+
regex: "ទិន្នន័យបញ្ចូល",
|
|
44
|
+
email: "អាសយដ្ឋានអ៊ីមែល",
|
|
45
|
+
url: "URL",
|
|
46
|
+
emoji: "សញ្ញាអារម្មណ៍",
|
|
47
|
+
uuid: "UUID",
|
|
48
|
+
uuidv4: "UUIDv4",
|
|
49
|
+
uuidv6: "UUIDv6",
|
|
50
|
+
nanoid: "nanoid",
|
|
51
|
+
guid: "GUID",
|
|
52
|
+
cuid: "cuid",
|
|
53
|
+
cuid2: "cuid2",
|
|
54
|
+
ulid: "ULID",
|
|
55
|
+
xid: "XID",
|
|
56
|
+
ksuid: "KSUID",
|
|
57
|
+
datetime: "កាលបរិច្ឆេទ និងម៉ោង ISO",
|
|
58
|
+
date: "កាលបរិច្ឆេទ ISO",
|
|
59
|
+
time: "ម៉ោង ISO",
|
|
60
|
+
duration: "រយៈពេល ISO",
|
|
61
|
+
ipv4: "អាសយដ្ឋាន IPv4",
|
|
62
|
+
ipv6: "អាសយដ្ឋាន IPv6",
|
|
63
|
+
cidrv4: "ដែនអាសយដ្ឋាន IPv4",
|
|
64
|
+
cidrv6: "ដែនអាសយដ្ឋាន IPv6",
|
|
65
|
+
base64: "ខ្សែអក្សរអ៊ិកូដ base64",
|
|
66
|
+
base64url: "ខ្សែអក្សរអ៊ិកូដ base64url",
|
|
67
|
+
json_string: "ខ្សែអក្សរ JSON",
|
|
68
|
+
e164: "លេខ E.164",
|
|
69
|
+
jwt: "JWT",
|
|
70
|
+
template_literal: "ទិន្នន័យបញ្ចូល",
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
return (issue) => {
|
|
74
|
+
switch (issue.code) {
|
|
75
|
+
case "invalid_type":
|
|
76
|
+
return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${issue.expected} ប៉ុន្តែទទួលបាន ${parsedType(issue.input)}`;
|
|
77
|
+
case "invalid_value":
|
|
78
|
+
if (issue.values.length === 1) return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${util.stringifyPrimitive(issue.values[0])}`;
|
|
79
|
+
return `ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${util.joinValues(issue.values, "|")}`;
|
|
80
|
+
case "too_big": {
|
|
81
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
82
|
+
const sizing = getSizing(issue.origin);
|
|
83
|
+
if (sizing)
|
|
84
|
+
return `ធំពេក៖ ត្រូវការ ${issue.origin ?? "តម្លៃ"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? "ធាតុ"}`;
|
|
85
|
+
return `ធំពេក៖ ត្រូវការ ${issue.origin ?? "តម្លៃ"} ${adj} ${issue.maximum.toString()}`;
|
|
86
|
+
}
|
|
87
|
+
case "too_small": {
|
|
88
|
+
const adj = issue.inclusive ? ">=" : ">";
|
|
89
|
+
const sizing = getSizing(issue.origin);
|
|
90
|
+
if (sizing) {
|
|
91
|
+
return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()}`;
|
|
95
|
+
}
|
|
96
|
+
case "invalid_format": {
|
|
97
|
+
const _issue = issue as errors.$ZodStringFormatIssues;
|
|
98
|
+
if (_issue.format === "starts_with") {
|
|
99
|
+
return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${_issue.prefix}"`;
|
|
100
|
+
}
|
|
101
|
+
if (_issue.format === "ends_with") return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${_issue.suffix}"`;
|
|
102
|
+
if (_issue.format === "includes") return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${_issue.includes}"`;
|
|
103
|
+
if (_issue.format === "regex") return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${_issue.pattern}`;
|
|
104
|
+
return `មិនត្រឹមត្រូវ៖ ${Nouns[_issue.format] ?? issue.format}`;
|
|
105
|
+
}
|
|
106
|
+
case "not_multiple_of":
|
|
107
|
+
return `លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${issue.divisor}`;
|
|
108
|
+
case "unrecognized_keys":
|
|
109
|
+
return `រកឃើញសោមិនស្គាល់៖ ${util.joinValues(issue.keys, ", ")}`;
|
|
110
|
+
case "invalid_key":
|
|
111
|
+
return `សោមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;
|
|
112
|
+
case "invalid_union":
|
|
113
|
+
return `ទិន្នន័យមិនត្រឹមត្រូវ`;
|
|
114
|
+
case "invalid_element":
|
|
115
|
+
return `ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;
|
|
116
|
+
default:
|
|
117
|
+
return `ទិន្នន័យមិនត្រឹមត្រូវ`;
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export default function (): { localeError: errors.$ZodErrorMap } {
|
|
123
|
+
return {
|
|
124
|
+
localeError: error(),
|
|
125
|
+
};
|
|
126
|
+
}
|
package/src/v4/locales/ua.ts
CHANGED
|
@@ -1,126 +1,7 @@
|
|
|
1
|
-
import type { $ZodStringFormats } from "../core/checks.js";
|
|
2
1
|
import type * as errors from "../core/errors.js";
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
const error: () => errors.$ZodErrorMap = () => {
|
|
6
|
-
const Sizable: Record<string, { unit: string; verb: string }> = {
|
|
7
|
-
string: { unit: "символів", verb: "матиме" },
|
|
8
|
-
file: { unit: "байтів", verb: "матиме" },
|
|
9
|
-
array: { unit: "елементів", verb: "матиме" },
|
|
10
|
-
set: { unit: "елементів", verb: "матиме" },
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
function getSizing(origin: string): { unit: string; verb: string } | null {
|
|
14
|
-
return Sizable[origin] ?? null;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const parsedType = (data: any): string => {
|
|
18
|
-
const t = typeof data;
|
|
19
|
-
|
|
20
|
-
switch (t) {
|
|
21
|
-
case "number": {
|
|
22
|
-
return Number.isNaN(data) ? "NaN" : "число";
|
|
23
|
-
}
|
|
24
|
-
case "object": {
|
|
25
|
-
if (Array.isArray(data)) {
|
|
26
|
-
return "масив";
|
|
27
|
-
}
|
|
28
|
-
if (data === null) {
|
|
29
|
-
return "null";
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {
|
|
33
|
-
return data.constructor.name;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return t;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
const Nouns: {
|
|
41
|
-
[k in $ZodStringFormats | (string & {})]?: string;
|
|
42
|
-
} = {
|
|
43
|
-
regex: "вхідні дані",
|
|
44
|
-
email: "адреса електронної пошти",
|
|
45
|
-
url: "URL",
|
|
46
|
-
emoji: "емодзі",
|
|
47
|
-
uuid: "UUID",
|
|
48
|
-
uuidv4: "UUIDv4",
|
|
49
|
-
uuidv6: "UUIDv6",
|
|
50
|
-
nanoid: "nanoid",
|
|
51
|
-
guid: "GUID",
|
|
52
|
-
cuid: "cuid",
|
|
53
|
-
cuid2: "cuid2",
|
|
54
|
-
ulid: "ULID",
|
|
55
|
-
xid: "XID",
|
|
56
|
-
ksuid: "KSUID",
|
|
57
|
-
datetime: "дата та час ISO",
|
|
58
|
-
date: "дата ISO",
|
|
59
|
-
time: "час ISO",
|
|
60
|
-
duration: "тривалість ISO",
|
|
61
|
-
ipv4: "адреса IPv4",
|
|
62
|
-
ipv6: "адреса IPv6",
|
|
63
|
-
cidrv4: "діапазон IPv4",
|
|
64
|
-
cidrv6: "діапазон IPv6",
|
|
65
|
-
base64: "рядок у кодуванні base64",
|
|
66
|
-
base64url: "рядок у кодуванні base64url",
|
|
67
|
-
json_string: "рядок JSON",
|
|
68
|
-
e164: "номер E.164",
|
|
69
|
-
jwt: "JWT",
|
|
70
|
-
template_literal: "вхідні дані",
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
return (issue) => {
|
|
74
|
-
switch (issue.code) {
|
|
75
|
-
case "invalid_type":
|
|
76
|
-
return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${parsedType(issue.input)}`;
|
|
77
|
-
// return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${util.getParsedType(issue.input)}`;
|
|
78
|
-
case "invalid_value":
|
|
79
|
-
if (issue.values.length === 1)
|
|
80
|
-
return `Неправильні вхідні дані: очікується ${util.stringifyPrimitive(issue.values[0])}`;
|
|
81
|
-
return `Неправильна опція: очікується одне з ${util.joinValues(issue.values, "|")}`;
|
|
82
|
-
case "too_big": {
|
|
83
|
-
const adj = issue.inclusive ? "<=" : "<";
|
|
84
|
-
const sizing = getSizing(issue.origin);
|
|
85
|
-
if (sizing)
|
|
86
|
-
return `Занадто велике: очікується, що ${issue.origin ?? "значення"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "елементів"}`;
|
|
87
|
-
return `Занадто велике: очікується, що ${issue.origin ?? "значення"} буде ${adj}${issue.maximum.toString()}`;
|
|
88
|
-
}
|
|
89
|
-
case "too_small": {
|
|
90
|
-
const adj = issue.inclusive ? ">=" : ">";
|
|
91
|
-
const sizing = getSizing(issue.origin);
|
|
92
|
-
if (sizing) {
|
|
93
|
-
return `Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
return `Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`;
|
|
97
|
-
}
|
|
98
|
-
case "invalid_format": {
|
|
99
|
-
const _issue = issue as errors.$ZodStringFormatIssues;
|
|
100
|
-
if (_issue.format === "starts_with") return `Неправильний рядок: повинен починатися з "${_issue.prefix}"`;
|
|
101
|
-
if (_issue.format === "ends_with") return `Неправильний рядок: повинен закінчуватися на "${_issue.suffix}"`;
|
|
102
|
-
if (_issue.format === "includes") return `Неправильний рядок: повинен містити "${_issue.includes}"`;
|
|
103
|
-
if (_issue.format === "regex") return `Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`;
|
|
104
|
-
return `Неправильний ${Nouns[_issue.format] ?? issue.format}`;
|
|
105
|
-
}
|
|
106
|
-
case "not_multiple_of":
|
|
107
|
-
return `Неправильне число: повинно бути кратним ${issue.divisor}`;
|
|
108
|
-
case "unrecognized_keys":
|
|
109
|
-
return `Нерозпізнаний ключ${issue.keys.length > 1 ? "і" : ""}: ${util.joinValues(issue.keys, ", ")}`;
|
|
110
|
-
case "invalid_key":
|
|
111
|
-
return `Неправильний ключ у ${issue.origin}`;
|
|
112
|
-
case "invalid_union":
|
|
113
|
-
return "Неправильні вхідні дані";
|
|
114
|
-
case "invalid_element":
|
|
115
|
-
return `Неправильне значення у ${issue.origin}`;
|
|
116
|
-
default:
|
|
117
|
-
return `Неправильні вхідні дані`;
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
};
|
|
2
|
+
import uk from "./uk.js";
|
|
121
3
|
|
|
4
|
+
/** @deprecated Use `uk` instead. */
|
|
122
5
|
export default function (): { localeError: errors.$ZodErrorMap } {
|
|
123
|
-
return
|
|
124
|
-
localeError: error(),
|
|
125
|
-
};
|
|
6
|
+
return uk();
|
|
126
7
|
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { $ZodStringFormats } from "../core/checks.js";
|
|
2
|
+
import type * as errors from "../core/errors.js";
|
|
3
|
+
import * as util from "../core/util.js";
|
|
4
|
+
|
|
5
|
+
const error: () => errors.$ZodErrorMap = () => {
|
|
6
|
+
const Sizable: Record<string, { unit: string; verb: string }> = {
|
|
7
|
+
string: { unit: "символів", verb: "матиме" },
|
|
8
|
+
file: { unit: "байтів", verb: "матиме" },
|
|
9
|
+
array: { unit: "елементів", verb: "матиме" },
|
|
10
|
+
set: { unit: "елементів", verb: "матиме" },
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
function getSizing(origin: string): { unit: string; verb: string } | null {
|
|
14
|
+
return Sizable[origin] ?? null;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const parsedType = (data: any): string => {
|
|
18
|
+
const t = typeof data;
|
|
19
|
+
|
|
20
|
+
switch (t) {
|
|
21
|
+
case "number": {
|
|
22
|
+
return Number.isNaN(data) ? "NaN" : "число";
|
|
23
|
+
}
|
|
24
|
+
case "object": {
|
|
25
|
+
if (Array.isArray(data)) {
|
|
26
|
+
return "масив";
|
|
27
|
+
}
|
|
28
|
+
if (data === null) {
|
|
29
|
+
return "null";
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {
|
|
33
|
+
return data.constructor.name;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return t;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const Nouns: {
|
|
41
|
+
[k in $ZodStringFormats | (string & {})]?: string;
|
|
42
|
+
} = {
|
|
43
|
+
regex: "вхідні дані",
|
|
44
|
+
email: "адреса електронної пошти",
|
|
45
|
+
url: "URL",
|
|
46
|
+
emoji: "емодзі",
|
|
47
|
+
uuid: "UUID",
|
|
48
|
+
uuidv4: "UUIDv4",
|
|
49
|
+
uuidv6: "UUIDv6",
|
|
50
|
+
nanoid: "nanoid",
|
|
51
|
+
guid: "GUID",
|
|
52
|
+
cuid: "cuid",
|
|
53
|
+
cuid2: "cuid2",
|
|
54
|
+
ulid: "ULID",
|
|
55
|
+
xid: "XID",
|
|
56
|
+
ksuid: "KSUID",
|
|
57
|
+
datetime: "дата та час ISO",
|
|
58
|
+
date: "дата ISO",
|
|
59
|
+
time: "час ISO",
|
|
60
|
+
duration: "тривалість ISO",
|
|
61
|
+
ipv4: "адреса IPv4",
|
|
62
|
+
ipv6: "адреса IPv6",
|
|
63
|
+
cidrv4: "діапазон IPv4",
|
|
64
|
+
cidrv6: "діапазон IPv6",
|
|
65
|
+
base64: "рядок у кодуванні base64",
|
|
66
|
+
base64url: "рядок у кодуванні base64url",
|
|
67
|
+
json_string: "рядок JSON",
|
|
68
|
+
e164: "номер E.164",
|
|
69
|
+
jwt: "JWT",
|
|
70
|
+
template_literal: "вхідні дані",
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
return (issue) => {
|
|
74
|
+
switch (issue.code) {
|
|
75
|
+
case "invalid_type":
|
|
76
|
+
return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${parsedType(issue.input)}`;
|
|
77
|
+
// return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${util.getParsedType(issue.input)}`;
|
|
78
|
+
case "invalid_value":
|
|
79
|
+
if (issue.values.length === 1)
|
|
80
|
+
return `Неправильні вхідні дані: очікується ${util.stringifyPrimitive(issue.values[0])}`;
|
|
81
|
+
return `Неправильна опція: очікується одне з ${util.joinValues(issue.values, "|")}`;
|
|
82
|
+
case "too_big": {
|
|
83
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
84
|
+
const sizing = getSizing(issue.origin);
|
|
85
|
+
if (sizing)
|
|
86
|
+
return `Занадто велике: очікується, що ${issue.origin ?? "значення"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "елементів"}`;
|
|
87
|
+
return `Занадто велике: очікується, що ${issue.origin ?? "значення"} буде ${adj}${issue.maximum.toString()}`;
|
|
88
|
+
}
|
|
89
|
+
case "too_small": {
|
|
90
|
+
const adj = issue.inclusive ? ">=" : ">";
|
|
91
|
+
const sizing = getSizing(issue.origin);
|
|
92
|
+
if (sizing) {
|
|
93
|
+
return `Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return `Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`;
|
|
97
|
+
}
|
|
98
|
+
case "invalid_format": {
|
|
99
|
+
const _issue = issue as errors.$ZodStringFormatIssues;
|
|
100
|
+
if (_issue.format === "starts_with") return `Неправильний рядок: повинен починатися з "${_issue.prefix}"`;
|
|
101
|
+
if (_issue.format === "ends_with") return `Неправильний рядок: повинен закінчуватися на "${_issue.suffix}"`;
|
|
102
|
+
if (_issue.format === "includes") return `Неправильний рядок: повинен містити "${_issue.includes}"`;
|
|
103
|
+
if (_issue.format === "regex") return `Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`;
|
|
104
|
+
return `Неправильний ${Nouns[_issue.format] ?? issue.format}`;
|
|
105
|
+
}
|
|
106
|
+
case "not_multiple_of":
|
|
107
|
+
return `Неправильне число: повинно бути кратним ${issue.divisor}`;
|
|
108
|
+
case "unrecognized_keys":
|
|
109
|
+
return `Нерозпізнаний ключ${issue.keys.length > 1 ? "і" : ""}: ${util.joinValues(issue.keys, ", ")}`;
|
|
110
|
+
case "invalid_key":
|
|
111
|
+
return `Неправильний ключ у ${issue.origin}`;
|
|
112
|
+
case "invalid_union":
|
|
113
|
+
return "Неправильні вхідні дані";
|
|
114
|
+
case "invalid_element":
|
|
115
|
+
return `Неправильне значення у ${issue.origin}`;
|
|
116
|
+
default:
|
|
117
|
+
return `Неправильні вхідні дані`;
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export default function (): { localeError: errors.$ZodErrorMap } {
|
|
123
|
+
return {
|
|
124
|
+
localeError: error(),
|
|
125
|
+
};
|
|
126
|
+
}
|
package/v4/core/util.cjs
CHANGED
package/v4/core/util.js
CHANGED
package/v4/locales/index.cjs
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.yo = exports.zhTW = exports.zhCN = exports.vi = exports.ur = exports.ua = exports.tr = exports.th = exports.ta = exports.sv = exports.sl = exports.ru = exports.pt = exports.pl = exports.ps = exports.ota = exports.no = exports.nl = exports.ms = exports.mk = exports.lt = exports.ko = exports.kh = exports.ka = exports.ja = exports.it = exports.is = exports.id = exports.hu = exports.he = exports.frCA = exports.fr = exports.fi = exports.fa = exports.es = exports.eo = exports.en = exports.de = exports.da = exports.cs = exports.ca = exports.be = exports.az = exports.ar = void 0;
|
|
6
|
+
exports.yo = exports.zhTW = exports.zhCN = exports.vi = exports.ur = exports.uk = exports.ua = exports.tr = exports.th = exports.ta = exports.sv = exports.sl = exports.ru = exports.pt = exports.pl = exports.ps = exports.ota = exports.no = exports.nl = exports.ms = exports.mk = exports.lt = exports.ko = exports.km = exports.kh = exports.ka = exports.ja = exports.it = exports.is = exports.id = exports.hu = exports.he = exports.frCA = exports.fr = exports.fi = exports.fa = exports.es = exports.eo = exports.en = exports.de = exports.da = exports.cs = exports.ca = exports.be = exports.az = exports.ar = void 0;
|
|
7
7
|
var ar_js_1 = require("./ar.cjs");
|
|
8
8
|
Object.defineProperty(exports, "ar", { enumerable: true, get: function () { return __importDefault(ar_js_1).default; } });
|
|
9
9
|
var az_js_1 = require("./az.cjs");
|
|
@@ -48,6 +48,8 @@ var ka_js_1 = require("./ka.cjs");
|
|
|
48
48
|
Object.defineProperty(exports, "ka", { enumerable: true, get: function () { return __importDefault(ka_js_1).default; } });
|
|
49
49
|
var kh_js_1 = require("./kh.cjs");
|
|
50
50
|
Object.defineProperty(exports, "kh", { enumerable: true, get: function () { return __importDefault(kh_js_1).default; } });
|
|
51
|
+
var km_js_1 = require("./km.cjs");
|
|
52
|
+
Object.defineProperty(exports, "km", { enumerable: true, get: function () { return __importDefault(km_js_1).default; } });
|
|
51
53
|
var ko_js_1 = require("./ko.cjs");
|
|
52
54
|
Object.defineProperty(exports, "ko", { enumerable: true, get: function () { return __importDefault(ko_js_1).default; } });
|
|
53
55
|
var lt_js_1 = require("./lt.cjs");
|
|
@@ -82,6 +84,8 @@ var tr_js_1 = require("./tr.cjs");
|
|
|
82
84
|
Object.defineProperty(exports, "tr", { enumerable: true, get: function () { return __importDefault(tr_js_1).default; } });
|
|
83
85
|
var ua_js_1 = require("./ua.cjs");
|
|
84
86
|
Object.defineProperty(exports, "ua", { enumerable: true, get: function () { return __importDefault(ua_js_1).default; } });
|
|
87
|
+
var uk_js_1 = require("./uk.cjs");
|
|
88
|
+
Object.defineProperty(exports, "uk", { enumerable: true, get: function () { return __importDefault(uk_js_1).default; } });
|
|
85
89
|
var ur_js_1 = require("./ur.cjs");
|
|
86
90
|
Object.defineProperty(exports, "ur", { enumerable: true, get: function () { return __importDefault(ur_js_1).default; } });
|
|
87
91
|
var vi_js_1 = require("./vi.cjs");
|
package/v4/locales/index.d.cts
CHANGED
|
@@ -20,6 +20,7 @@ export { default as it } from "./it.cjs";
|
|
|
20
20
|
export { default as ja } from "./ja.cjs";
|
|
21
21
|
export { default as ka } from "./ka.cjs";
|
|
22
22
|
export { default as kh } from "./kh.cjs";
|
|
23
|
+
export { default as km } from "./km.cjs";
|
|
23
24
|
export { default as ko } from "./ko.cjs";
|
|
24
25
|
export { default as lt } from "./lt.cjs";
|
|
25
26
|
export { default as mk } from "./mk.cjs";
|
|
@@ -37,6 +38,7 @@ export { default as ta } from "./ta.cjs";
|
|
|
37
38
|
export { default as th } from "./th.cjs";
|
|
38
39
|
export { default as tr } from "./tr.cjs";
|
|
39
40
|
export { default as ua } from "./ua.cjs";
|
|
41
|
+
export { default as uk } from "./uk.cjs";
|
|
40
42
|
export { default as ur } from "./ur.cjs";
|
|
41
43
|
export { default as vi } from "./vi.cjs";
|
|
42
44
|
export { default as zhCN } from "./zh-CN.cjs";
|
package/v4/locales/index.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export { default as it } from "./it.js";
|
|
|
20
20
|
export { default as ja } from "./ja.js";
|
|
21
21
|
export { default as ka } from "./ka.js";
|
|
22
22
|
export { default as kh } from "./kh.js";
|
|
23
|
+
export { default as km } from "./km.js";
|
|
23
24
|
export { default as ko } from "./ko.js";
|
|
24
25
|
export { default as lt } from "./lt.js";
|
|
25
26
|
export { default as mk } from "./mk.js";
|
|
@@ -37,6 +38,7 @@ export { default as ta } from "./ta.js";
|
|
|
37
38
|
export { default as th } from "./th.js";
|
|
38
39
|
export { default as tr } from "./tr.js";
|
|
39
40
|
export { default as ua } from "./ua.js";
|
|
41
|
+
export { default as uk } from "./uk.js";
|
|
40
42
|
export { default as ur } from "./ur.js";
|
|
41
43
|
export { default as vi } from "./vi.js";
|
|
42
44
|
export { default as zhCN } from "./zh-CN.js";
|
package/v4/locales/index.js
CHANGED
|
@@ -20,6 +20,7 @@ export { default as it } from "./it.js";
|
|
|
20
20
|
export { default as ja } from "./ja.js";
|
|
21
21
|
export { default as ka } from "./ka.js";
|
|
22
22
|
export { default as kh } from "./kh.js";
|
|
23
|
+
export { default as km } from "./km.js";
|
|
23
24
|
export { default as ko } from "./ko.js";
|
|
24
25
|
export { default as lt } from "./lt.js";
|
|
25
26
|
export { default as mk } from "./mk.js";
|
|
@@ -37,6 +38,7 @@ export { default as ta } from "./ta.js";
|
|
|
37
38
|
export { default as th } from "./th.js";
|
|
38
39
|
export { default as tr } from "./tr.js";
|
|
39
40
|
export { default as ua } from "./ua.js";
|
|
41
|
+
export { default as uk } from "./uk.js";
|
|
40
42
|
export { default as ur } from "./ur.js";
|
|
41
43
|
export { default as vi } from "./vi.js";
|
|
42
44
|
export { default as zhCN } from "./zh-CN.js";
|