zod 4.1.6 → 4.1.7

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.
Files changed (55) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/src/v4/classic/tests/default.test.ts +8 -0
  4. package/src/v4/classic/tests/string.test.ts +3 -0
  5. package/src/v4/classic/tests/template-literal.test.ts +10 -8
  6. package/src/v4/classic/tests/to-json-schema.test.ts +2 -2
  7. package/src/v4/core/regexes.ts +9 -9
  8. package/src/v4/core/schemas.ts +4 -2
  9. package/src/v4/core/tests/locales/es.test.ts +181 -0
  10. package/src/v4/core/util.ts +1 -0
  11. package/src/v4/core/versions.ts +1 -1
  12. package/src/v4/locales/es.ts +44 -10
  13. package/src/v4/locales/index.ts +4 -0
  14. package/src/v4/locales/ka.ts +138 -0
  15. package/src/v4/locales/kh.ts +3 -122
  16. package/src/v4/locales/km.ts +126 -0
  17. package/src/v4/locales/lt.ts +265 -0
  18. package/src/v4/locales/ua.ts +3 -122
  19. package/src/v4/locales/uk.ts +126 -0
  20. package/v4/core/regexes.cjs +9 -9
  21. package/v4/core/regexes.js +9 -9
  22. package/v4/core/schemas.cjs +5 -2
  23. package/v4/core/schemas.js +5 -2
  24. package/v4/core/util.cjs +2 -0
  25. package/v4/core/util.js +2 -0
  26. package/v4/core/versions.cjs +1 -1
  27. package/v4/core/versions.js +1 -1
  28. package/v4/locales/es.cjs +42 -10
  29. package/v4/locales/es.js +42 -10
  30. package/v4/locales/index.cjs +9 -1
  31. package/v4/locales/index.d.cts +4 -0
  32. package/v4/locales/index.d.ts +4 -0
  33. package/v4/locales/index.js +4 -0
  34. package/v4/locales/ka.cjs +153 -0
  35. package/v4/locales/ka.d.cts +5 -0
  36. package/v4/locales/ka.d.ts +5 -0
  37. package/v4/locales/ka.js +125 -0
  38. package/v4/locales/kh.cjs +5 -137
  39. package/v4/locales/kh.d.ts +1 -0
  40. package/v4/locales/kh.js +3 -115
  41. package/v4/locales/km.cjs +144 -0
  42. package/v4/locales/km.d.cts +5 -0
  43. package/v4/locales/km.d.ts +4 -0
  44. package/v4/locales/km.js +117 -0
  45. package/v4/locales/lt.cjs +258 -0
  46. package/v4/locales/lt.d.cts +5 -0
  47. package/v4/locales/lt.d.ts +5 -0
  48. package/v4/locales/lt.js +230 -0
  49. package/v4/locales/ua.cjs +5 -137
  50. package/v4/locales/ua.d.ts +1 -0
  51. package/v4/locales/ua.js +3 -115
  52. package/v4/locales/uk.cjs +144 -0
  53. package/v4/locales/uk.d.cts +5 -0
  54. package/v4/locales/uk.d.ts +4 -0
  55. package/v4/locales/uk.js +117 -0
@@ -0,0 +1,230 @@
1
+ import * as util from "../core/util.js";
2
+ export const parsedType = (data) => {
3
+ const t = typeof data;
4
+ return parsedTypeFromType(t, data);
5
+ };
6
+ const parsedTypeFromType = (t, data = undefined) => {
7
+ switch (t) {
8
+ case "number": {
9
+ return Number.isNaN(data) ? "NaN" : "skaičius";
10
+ }
11
+ case "bigint": {
12
+ return "sveikasis skaičius";
13
+ }
14
+ case "string": {
15
+ return "eilutė";
16
+ }
17
+ case "boolean": {
18
+ return "loginė reikšmė";
19
+ }
20
+ case "undefined":
21
+ case "void": {
22
+ return "neapibrėžta reikšmė";
23
+ }
24
+ case "function": {
25
+ return "funkcija";
26
+ }
27
+ case "symbol": {
28
+ return "simbolis";
29
+ }
30
+ case "object": {
31
+ if (data === undefined)
32
+ return "nežinomas objektas";
33
+ if (data === null)
34
+ return "nulinė reikšmė";
35
+ if (Array.isArray(data))
36
+ return "masyvas";
37
+ if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {
38
+ return data.constructor.name;
39
+ }
40
+ return "objektas";
41
+ }
42
+ //Zod types below
43
+ case "null": {
44
+ return "nulinė reikšmė";
45
+ }
46
+ }
47
+ return t;
48
+ };
49
+ const capitalizeFirstCharacter = (text) => {
50
+ return text.charAt(0).toUpperCase() + text.slice(1);
51
+ };
52
+ function getUnitTypeFromNumber(number) {
53
+ const abs = Math.abs(number);
54
+ const last = abs % 10;
55
+ const last2 = abs % 100;
56
+ if ((last2 >= 11 && last2 <= 19) || last === 0)
57
+ return "many";
58
+ if (last === 1)
59
+ return "one";
60
+ return "few";
61
+ }
62
+ const error = () => {
63
+ const Sizable = {
64
+ string: {
65
+ unit: {
66
+ one: "simbolis",
67
+ few: "simboliai",
68
+ many: "simbolių",
69
+ },
70
+ verb: {
71
+ smaller: {
72
+ inclusive: "turi būti ne ilgesnė kaip",
73
+ notInclusive: "turi būti trumpesnė kaip",
74
+ },
75
+ bigger: {
76
+ inclusive: "turi būti ne trumpesnė kaip",
77
+ notInclusive: "turi būti ilgesnė kaip",
78
+ },
79
+ },
80
+ },
81
+ file: {
82
+ unit: {
83
+ one: "baitas",
84
+ few: "baitai",
85
+ many: "baitų",
86
+ },
87
+ verb: {
88
+ smaller: {
89
+ inclusive: "turi būti ne didesnis kaip",
90
+ notInclusive: "turi būti mažesnis kaip",
91
+ },
92
+ bigger: {
93
+ inclusive: "turi būti ne mažesnis kaip",
94
+ notInclusive: "turi būti didesnis kaip",
95
+ },
96
+ },
97
+ },
98
+ array: {
99
+ unit: {
100
+ one: "elementą",
101
+ few: "elementus",
102
+ many: "elementų",
103
+ },
104
+ verb: {
105
+ smaller: {
106
+ inclusive: "turi turėti ne daugiau kaip",
107
+ notInclusive: "turi turėti mažiau kaip",
108
+ },
109
+ bigger: {
110
+ inclusive: "turi turėti ne mažiau kaip",
111
+ notInclusive: "turi turėti daugiau kaip",
112
+ },
113
+ },
114
+ },
115
+ set: {
116
+ unit: {
117
+ one: "elementą",
118
+ few: "elementus",
119
+ many: "elementų",
120
+ },
121
+ verb: {
122
+ smaller: {
123
+ inclusive: "turi turėti ne daugiau kaip",
124
+ notInclusive: "turi turėti mažiau kaip",
125
+ },
126
+ bigger: {
127
+ inclusive: "turi turėti ne mažiau kaip",
128
+ notInclusive: "turi turėti daugiau kaip",
129
+ },
130
+ },
131
+ },
132
+ };
133
+ function getSizing(origin, unitType, inclusive, targetShouldBe) {
134
+ const result = Sizable[origin] ?? null;
135
+ if (result === null)
136
+ return result;
137
+ return {
138
+ unit: result.unit[unitType],
139
+ verb: result.verb[targetShouldBe][inclusive ? "inclusive" : "notInclusive"],
140
+ };
141
+ }
142
+ const Nouns = {
143
+ regex: "įvestis",
144
+ email: "el. pašto adresas",
145
+ url: "URL",
146
+ emoji: "jaustukas",
147
+ uuid: "UUID",
148
+ uuidv4: "UUIDv4",
149
+ uuidv6: "UUIDv6",
150
+ nanoid: "nanoid",
151
+ guid: "GUID",
152
+ cuid: "cuid",
153
+ cuid2: "cuid2",
154
+ ulid: "ULID",
155
+ xid: "XID",
156
+ ksuid: "KSUID",
157
+ datetime: "ISO data ir laikas",
158
+ date: "ISO data",
159
+ time: "ISO laikas",
160
+ duration: "ISO trukmė",
161
+ ipv4: "IPv4 adresas",
162
+ ipv6: "IPv6 adresas",
163
+ cidrv4: "IPv4 tinklo prefiksas (CIDR)",
164
+ cidrv6: "IPv6 tinklo prefiksas (CIDR)",
165
+ base64: "base64 užkoduota eilutė",
166
+ base64url: "base64url užkoduota eilutė",
167
+ json_string: "JSON eilutė",
168
+ e164: "E.164 numeris",
169
+ jwt: "JWT",
170
+ template_literal: "įvestis",
171
+ };
172
+ return (issue) => {
173
+ switch (issue.code) {
174
+ case "invalid_type":
175
+ return `Gautas tipas ${parsedType(issue.input)}, o tikėtasi - ${parsedTypeFromType(issue.expected)}`;
176
+ case "invalid_value":
177
+ if (issue.values.length === 1)
178
+ return `Privalo būti ${util.stringifyPrimitive(issue.values[0])}`;
179
+ return `Privalo būti vienas iš ${util.joinValues(issue.values, "|")} pasirinkimų`;
180
+ case "too_big": {
181
+ const origin = parsedTypeFromType(issue.origin);
182
+ const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.maximum)), issue.inclusive ?? false, "smaller");
183
+ if (sizing?.verb)
184
+ return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reikšmė")} ${sizing.verb} ${issue.maximum.toString()} ${sizing.unit ?? "elementų"}`;
185
+ const adj = issue.inclusive ? "ne didesnis kaip" : "mažesnis kaip";
186
+ return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reikšmė")} turi būti ${adj} ${issue.maximum.toString()} ${sizing?.unit}`;
187
+ }
188
+ case "too_small": {
189
+ const origin = parsedTypeFromType(issue.origin);
190
+ const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.minimum)), issue.inclusive ?? false, "bigger");
191
+ if (sizing?.verb)
192
+ return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reikšmė")} ${sizing.verb} ${issue.minimum.toString()} ${sizing.unit ?? "elementų"}`;
193
+ const adj = issue.inclusive ? "ne mažesnis kaip" : "didesnis kaip";
194
+ return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reikšmė")} turi būti ${adj} ${issue.minimum.toString()} ${sizing?.unit}`;
195
+ }
196
+ case "invalid_format": {
197
+ const _issue = issue;
198
+ if (_issue.format === "starts_with") {
199
+ return `Eilutė privalo prasidėti "${_issue.prefix}"`;
200
+ }
201
+ if (_issue.format === "ends_with")
202
+ return `Eilutė privalo pasibaigti "${_issue.suffix}"`;
203
+ if (_issue.format === "includes")
204
+ return `Eilutė privalo įtraukti "${_issue.includes}"`;
205
+ if (_issue.format === "regex")
206
+ return `Eilutė privalo atitikti ${_issue.pattern}`;
207
+ return `Neteisingas ${Nouns[_issue.format] ?? issue.format}`;
208
+ }
209
+ case "not_multiple_of":
210
+ return `Skaičius privalo būti ${issue.divisor} kartotinis.`;
211
+ case "unrecognized_keys":
212
+ return `Neatpažint${issue.keys.length > 1 ? "i" : "as"} rakt${issue.keys.length > 1 ? "ai" : "as"}: ${util.joinValues(issue.keys, ", ")}`;
213
+ case "invalid_key":
214
+ return "Rastas klaidingas raktas";
215
+ case "invalid_union":
216
+ return "Klaidinga įvestis";
217
+ case "invalid_element": {
218
+ const origin = parsedTypeFromType(issue.origin);
219
+ return `${capitalizeFirstCharacter(origin ?? issue.origin ?? "reikšmė")} turi klaidingą įvestį`;
220
+ }
221
+ default:
222
+ return "Klaidinga įvestis";
223
+ }
224
+ };
225
+ };
226
+ export default function () {
227
+ return {
228
+ localeError: error(),
229
+ };
230
+ }
package/v4/locales/ua.cjs CHANGED
@@ -1,144 +1,12 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
4
  };
25
5
  Object.defineProperty(exports, "__esModule", { value: true });
26
6
  exports.default = default_1;
27
- const util = __importStar(require("../core/util.cjs"));
28
- const error = () => {
29
- const Sizable = {
30
- string: { unit: "символів", verb: "матиме" },
31
- file: { unit: "байтів", verb: "матиме" },
32
- array: { unit: "елементів", verb: "матиме" },
33
- set: { unit: "елементів", verb: "матиме" },
34
- };
35
- function getSizing(origin) {
36
- return Sizable[origin] ?? null;
37
- }
38
- const parsedType = (data) => {
39
- const t = typeof data;
40
- switch (t) {
41
- case "number": {
42
- return Number.isNaN(data) ? "NaN" : "число";
43
- }
44
- case "object": {
45
- if (Array.isArray(data)) {
46
- return "масив";
47
- }
48
- if (data === null) {
49
- return "null";
50
- }
51
- if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {
52
- return data.constructor.name;
53
- }
54
- }
55
- }
56
- return t;
57
- };
58
- const Nouns = {
59
- regex: "вхідні дані",
60
- email: "адреса електронної пошти",
61
- url: "URL",
62
- emoji: "емодзі",
63
- uuid: "UUID",
64
- uuidv4: "UUIDv4",
65
- uuidv6: "UUIDv6",
66
- nanoid: "nanoid",
67
- guid: "GUID",
68
- cuid: "cuid",
69
- cuid2: "cuid2",
70
- ulid: "ULID",
71
- xid: "XID",
72
- ksuid: "KSUID",
73
- datetime: "дата та час ISO",
74
- date: "дата ISO",
75
- time: "час ISO",
76
- duration: "тривалість ISO",
77
- ipv4: "адреса IPv4",
78
- ipv6: "адреса IPv6",
79
- cidrv4: "діапазон IPv4",
80
- cidrv6: "діапазон IPv6",
81
- base64: "рядок у кодуванні base64",
82
- base64url: "рядок у кодуванні base64url",
83
- json_string: "рядок JSON",
84
- e164: "номер E.164",
85
- jwt: "JWT",
86
- template_literal: "вхідні дані",
87
- };
88
- return (issue) => {
89
- switch (issue.code) {
90
- case "invalid_type":
91
- return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${parsedType(issue.input)}`;
92
- // return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${util.getParsedType(issue.input)}`;
93
- case "invalid_value":
94
- if (issue.values.length === 1)
95
- return `Неправильні вхідні дані: очікується ${util.stringifyPrimitive(issue.values[0])}`;
96
- return `Неправильна опція: очікується одне з ${util.joinValues(issue.values, "|")}`;
97
- case "too_big": {
98
- const adj = issue.inclusive ? "<=" : "<";
99
- const sizing = getSizing(issue.origin);
100
- if (sizing)
101
- return `Занадто велике: очікується, що ${issue.origin ?? "значення"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "елементів"}`;
102
- return `Занадто велике: очікується, що ${issue.origin ?? "значення"} буде ${adj}${issue.maximum.toString()}`;
103
- }
104
- case "too_small": {
105
- const adj = issue.inclusive ? ">=" : ">";
106
- const sizing = getSizing(issue.origin);
107
- if (sizing) {
108
- return `Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;
109
- }
110
- return `Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`;
111
- }
112
- case "invalid_format": {
113
- const _issue = issue;
114
- if (_issue.format === "starts_with")
115
- return `Неправильний рядок: повинен починатися з "${_issue.prefix}"`;
116
- if (_issue.format === "ends_with")
117
- return `Неправильний рядок: повинен закінчуватися на "${_issue.suffix}"`;
118
- if (_issue.format === "includes")
119
- return `Неправильний рядок: повинен містити "${_issue.includes}"`;
120
- if (_issue.format === "regex")
121
- return `Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`;
122
- return `Неправильний ${Nouns[_issue.format] ?? issue.format}`;
123
- }
124
- case "not_multiple_of":
125
- return `Неправильне число: повинно бути кратним ${issue.divisor}`;
126
- case "unrecognized_keys":
127
- return `Нерозпізнаний ключ${issue.keys.length > 1 ? "і" : ""}: ${util.joinValues(issue.keys, ", ")}`;
128
- case "invalid_key":
129
- return `Неправильний ключ у ${issue.origin}`;
130
- case "invalid_union":
131
- return "Неправильні вхідні дані";
132
- case "invalid_element":
133
- return `Неправильне значення у ${issue.origin}`;
134
- default:
135
- return `Неправильні вхідні дані`;
136
- }
137
- };
138
- };
7
+ const uk_js_1 = __importDefault(require("./uk.cjs"));
8
+ /** @deprecated Use `uk` instead. */
139
9
  function default_1() {
140
- return {
141
- localeError: error(),
142
- };
10
+ return (0, uk_js_1.default)();
143
11
  }
144
12
  module.exports = exports.default;
@@ -1,4 +1,5 @@
1
1
  import type * as errors from "../core/errors.js";
2
+ /** @deprecated Use `uk` instead. */
2
3
  export default function (): {
3
4
  localeError: errors.$ZodErrorMap;
4
5
  };
package/v4/locales/ua.js CHANGED
@@ -1,117 +1,5 @@
1
- import * as util from "../core/util.js";
2
- const error = () => {
3
- const Sizable = {
4
- string: { unit: "символів", verb: "матиме" },
5
- file: { unit: "байтів", verb: "матиме" },
6
- array: { unit: "елементів", verb: "матиме" },
7
- set: { unit: "елементів", verb: "матиме" },
8
- };
9
- function getSizing(origin) {
10
- return Sizable[origin] ?? null;
11
- }
12
- const parsedType = (data) => {
13
- const t = typeof data;
14
- switch (t) {
15
- case "number": {
16
- return Number.isNaN(data) ? "NaN" : "число";
17
- }
18
- case "object": {
19
- if (Array.isArray(data)) {
20
- return "масив";
21
- }
22
- if (data === null) {
23
- return "null";
24
- }
25
- if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {
26
- return data.constructor.name;
27
- }
28
- }
29
- }
30
- return t;
31
- };
32
- const Nouns = {
33
- regex: "вхідні дані",
34
- email: "адреса електронної пошти",
35
- url: "URL",
36
- emoji: "емодзі",
37
- uuid: "UUID",
38
- uuidv4: "UUIDv4",
39
- uuidv6: "UUIDv6",
40
- nanoid: "nanoid",
41
- guid: "GUID",
42
- cuid: "cuid",
43
- cuid2: "cuid2",
44
- ulid: "ULID",
45
- xid: "XID",
46
- ksuid: "KSUID",
47
- datetime: "дата та час ISO",
48
- date: "дата ISO",
49
- time: "час ISO",
50
- duration: "тривалість ISO",
51
- ipv4: "адреса IPv4",
52
- ipv6: "адреса IPv6",
53
- cidrv4: "діапазон IPv4",
54
- cidrv6: "діапазон IPv6",
55
- base64: "рядок у кодуванні base64",
56
- base64url: "рядок у кодуванні base64url",
57
- json_string: "рядок JSON",
58
- e164: "номер E.164",
59
- jwt: "JWT",
60
- template_literal: "вхідні дані",
61
- };
62
- return (issue) => {
63
- switch (issue.code) {
64
- case "invalid_type":
65
- return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${parsedType(issue.input)}`;
66
- // return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${util.getParsedType(issue.input)}`;
67
- case "invalid_value":
68
- if (issue.values.length === 1)
69
- return `Неправильні вхідні дані: очікується ${util.stringifyPrimitive(issue.values[0])}`;
70
- return `Неправильна опція: очікується одне з ${util.joinValues(issue.values, "|")}`;
71
- case "too_big": {
72
- const adj = issue.inclusive ? "<=" : "<";
73
- const sizing = getSizing(issue.origin);
74
- if (sizing)
75
- return `Занадто велике: очікується, що ${issue.origin ?? "значення"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "елементів"}`;
76
- return `Занадто велике: очікується, що ${issue.origin ?? "значення"} буде ${adj}${issue.maximum.toString()}`;
77
- }
78
- case "too_small": {
79
- const adj = issue.inclusive ? ">=" : ">";
80
- const sizing = getSizing(issue.origin);
81
- if (sizing) {
82
- return `Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;
83
- }
84
- return `Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`;
85
- }
86
- case "invalid_format": {
87
- const _issue = issue;
88
- if (_issue.format === "starts_with")
89
- return `Неправильний рядок: повинен починатися з "${_issue.prefix}"`;
90
- if (_issue.format === "ends_with")
91
- return `Неправильний рядок: повинен закінчуватися на "${_issue.suffix}"`;
92
- if (_issue.format === "includes")
93
- return `Неправильний рядок: повинен містити "${_issue.includes}"`;
94
- if (_issue.format === "regex")
95
- return `Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`;
96
- return `Неправильний ${Nouns[_issue.format] ?? issue.format}`;
97
- }
98
- case "not_multiple_of":
99
- return `Неправильне число: повинно бути кратним ${issue.divisor}`;
100
- case "unrecognized_keys":
101
- return `Нерозпізнаний ключ${issue.keys.length > 1 ? "і" : ""}: ${util.joinValues(issue.keys, ", ")}`;
102
- case "invalid_key":
103
- return `Неправильний ключ у ${issue.origin}`;
104
- case "invalid_union":
105
- return "Неправильні вхідні дані";
106
- case "invalid_element":
107
- return `Неправильне значення у ${issue.origin}`;
108
- default:
109
- return `Неправильні вхідні дані`;
110
- }
111
- };
112
- };
1
+ import uk from "./uk.js";
2
+ /** @deprecated Use `uk` instead. */
113
3
  export default function () {
114
- return {
115
- localeError: error(),
116
- };
4
+ return uk();
117
5
  }
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.default = default_1;
27
+ const util = __importStar(require("../core/util.cjs"));
28
+ const error = () => {
29
+ const Sizable = {
30
+ string: { unit: "символів", verb: "матиме" },
31
+ file: { unit: "байтів", verb: "матиме" },
32
+ array: { unit: "елементів", verb: "матиме" },
33
+ set: { unit: "елементів", verb: "матиме" },
34
+ };
35
+ function getSizing(origin) {
36
+ return Sizable[origin] ?? null;
37
+ }
38
+ const parsedType = (data) => {
39
+ const t = typeof data;
40
+ switch (t) {
41
+ case "number": {
42
+ return Number.isNaN(data) ? "NaN" : "число";
43
+ }
44
+ case "object": {
45
+ if (Array.isArray(data)) {
46
+ return "масив";
47
+ }
48
+ if (data === null) {
49
+ return "null";
50
+ }
51
+ if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {
52
+ return data.constructor.name;
53
+ }
54
+ }
55
+ }
56
+ return t;
57
+ };
58
+ const Nouns = {
59
+ regex: "вхідні дані",
60
+ email: "адреса електронної пошти",
61
+ url: "URL",
62
+ emoji: "емодзі",
63
+ uuid: "UUID",
64
+ uuidv4: "UUIDv4",
65
+ uuidv6: "UUIDv6",
66
+ nanoid: "nanoid",
67
+ guid: "GUID",
68
+ cuid: "cuid",
69
+ cuid2: "cuid2",
70
+ ulid: "ULID",
71
+ xid: "XID",
72
+ ksuid: "KSUID",
73
+ datetime: "дата та час ISO",
74
+ date: "дата ISO",
75
+ time: "час ISO",
76
+ duration: "тривалість ISO",
77
+ ipv4: "адреса IPv4",
78
+ ipv6: "адреса IPv6",
79
+ cidrv4: "діапазон IPv4",
80
+ cidrv6: "діапазон IPv6",
81
+ base64: "рядок у кодуванні base64",
82
+ base64url: "рядок у кодуванні base64url",
83
+ json_string: "рядок JSON",
84
+ e164: "номер E.164",
85
+ jwt: "JWT",
86
+ template_literal: "вхідні дані",
87
+ };
88
+ return (issue) => {
89
+ switch (issue.code) {
90
+ case "invalid_type":
91
+ return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${parsedType(issue.input)}`;
92
+ // return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${util.getParsedType(issue.input)}`;
93
+ case "invalid_value":
94
+ if (issue.values.length === 1)
95
+ return `Неправильні вхідні дані: очікується ${util.stringifyPrimitive(issue.values[0])}`;
96
+ return `Неправильна опція: очікується одне з ${util.joinValues(issue.values, "|")}`;
97
+ case "too_big": {
98
+ const adj = issue.inclusive ? "<=" : "<";
99
+ const sizing = getSizing(issue.origin);
100
+ if (sizing)
101
+ return `Занадто велике: очікується, що ${issue.origin ?? "значення"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "елементів"}`;
102
+ return `Занадто велике: очікується, що ${issue.origin ?? "значення"} буде ${adj}${issue.maximum.toString()}`;
103
+ }
104
+ case "too_small": {
105
+ const adj = issue.inclusive ? ">=" : ">";
106
+ const sizing = getSizing(issue.origin);
107
+ if (sizing) {
108
+ return `Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;
109
+ }
110
+ return `Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`;
111
+ }
112
+ case "invalid_format": {
113
+ const _issue = issue;
114
+ if (_issue.format === "starts_with")
115
+ return `Неправильний рядок: повинен починатися з "${_issue.prefix}"`;
116
+ if (_issue.format === "ends_with")
117
+ return `Неправильний рядок: повинен закінчуватися на "${_issue.suffix}"`;
118
+ if (_issue.format === "includes")
119
+ return `Неправильний рядок: повинен містити "${_issue.includes}"`;
120
+ if (_issue.format === "regex")
121
+ return `Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`;
122
+ return `Неправильний ${Nouns[_issue.format] ?? issue.format}`;
123
+ }
124
+ case "not_multiple_of":
125
+ return `Неправильне число: повинно бути кратним ${issue.divisor}`;
126
+ case "unrecognized_keys":
127
+ return `Нерозпізнаний ключ${issue.keys.length > 1 ? "і" : ""}: ${util.joinValues(issue.keys, ", ")}`;
128
+ case "invalid_key":
129
+ return `Неправильний ключ у ${issue.origin}`;
130
+ case "invalid_union":
131
+ return "Неправильні вхідні дані";
132
+ case "invalid_element":
133
+ return `Неправильне значення у ${issue.origin}`;
134
+ default:
135
+ return `Неправильні вхідні дані`;
136
+ }
137
+ };
138
+ };
139
+ function default_1() {
140
+ return {
141
+ localeError: error(),
142
+ };
143
+ }
144
+ module.exports = exports.default;
@@ -0,0 +1,5 @@
1
+ import type * as errors from "../core/errors.cjs";
2
+ declare function _default(): {
3
+ localeError: errors.$ZodErrorMap;
4
+ };
5
+ export = _default;
@@ -0,0 +1,4 @@
1
+ import type * as errors from "../core/errors.js";
2
+ export default function (): {
3
+ localeError: errors.$ZodErrorMap;
4
+ };