flavor-code 1.3.23 → 1.4.0-beta.1
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/README.md +437 -434
- package/README.zh-CN.md +434 -431
- package/dist/{app-NTEUPJKJ.js → app-C5ZQUOKJ.js} +43 -155
- package/dist/astgraph/grammars.mjs +68 -68
- package/dist/astgraph/vendor/tree-sitter.js +3980 -3980
- package/dist/astgraph/vendor/zod/LICENSE +21 -21
- package/dist/astgraph/vendor/zod/index.js +4 -4
- package/dist/astgraph/vendor/zod/locales/index.js +1 -1
- package/dist/astgraph/vendor/zod/locales/package.json +7 -7
- package/dist/astgraph/vendor/zod/package.json +135 -135
- package/dist/astgraph/vendor/zod/v4/classic/checks.js +1 -1
- package/dist/astgraph/vendor/zod/v4/classic/coerce.js +17 -17
- package/dist/astgraph/vendor/zod/v4/classic/compat.js +31 -31
- package/dist/astgraph/vendor/zod/v4/classic/errors.js +48 -48
- package/dist/astgraph/vendor/zod/v4/classic/external.js +20 -20
- package/dist/astgraph/vendor/zod/v4/classic/from-json-schema.js +599 -599
- package/dist/astgraph/vendor/zod/v4/classic/index.js +4 -4
- package/dist/astgraph/vendor/zod/v4/classic/iso.js +30 -30
- package/dist/astgraph/vendor/zod/v4/classic/package.json +7 -7
- package/dist/astgraph/vendor/zod/v4/classic/parse.js +15 -15
- package/dist/astgraph/vendor/zod/v4/classic/schemas.js +1395 -1395
- package/dist/astgraph/vendor/zod/v4/core/api.js +1087 -1087
- package/dist/astgraph/vendor/zod/v4/core/checks.js +575 -575
- package/dist/astgraph/vendor/zod/v4/core/core.js +78 -78
- package/dist/astgraph/vendor/zod/v4/core/doc.js +35 -35
- package/dist/astgraph/vendor/zod/v4/core/errors.js +185 -185
- package/dist/astgraph/vendor/zod/v4/core/index.js +16 -16
- package/dist/astgraph/vendor/zod/v4/core/json-schema-generator.js +95 -95
- package/dist/astgraph/vendor/zod/v4/core/json-schema-processors.js +601 -601
- package/dist/astgraph/vendor/zod/v4/core/json-schema.js +1 -1
- package/dist/astgraph/vendor/zod/v4/core/package.json +7 -7
- package/dist/astgraph/vendor/zod/v4/core/parse.js +93 -93
- package/dist/astgraph/vendor/zod/v4/core/regexes.js +139 -139
- package/dist/astgraph/vendor/zod/v4/core/registries.js +51 -51
- package/dist/astgraph/vendor/zod/v4/core/schemas.js +2239 -2239
- package/dist/astgraph/vendor/zod/v4/core/standard-schema.js +1 -1
- package/dist/astgraph/vendor/zod/v4/core/to-json-schema.js +448 -448
- package/dist/astgraph/vendor/zod/v4/core/util.js +674 -674
- package/dist/astgraph/vendor/zod/v4/core/versions.js +5 -5
- package/dist/astgraph/vendor/zod/v4/index.js +3 -3
- package/dist/astgraph/vendor/zod/v4/locales/ar.js +106 -106
- package/dist/astgraph/vendor/zod/v4/locales/az.js +105 -105
- package/dist/astgraph/vendor/zod/v4/locales/be.js +156 -156
- package/dist/astgraph/vendor/zod/v4/locales/bg.js +120 -120
- package/dist/astgraph/vendor/zod/v4/locales/ca.js +107 -107
- package/dist/astgraph/vendor/zod/v4/locales/cs.js +111 -111
- package/dist/astgraph/vendor/zod/v4/locales/da.js +115 -115
- package/dist/astgraph/vendor/zod/v4/locales/de.js +108 -108
- package/dist/astgraph/vendor/zod/v4/locales/el.js +109 -109
- package/dist/astgraph/vendor/zod/v4/locales/en.js +113 -113
- package/dist/astgraph/vendor/zod/v4/locales/eo.js +109 -109
- package/dist/astgraph/vendor/zod/v4/locales/es.js +132 -132
- package/dist/astgraph/vendor/zod/v4/locales/fa.js +114 -114
- package/dist/astgraph/vendor/zod/v4/locales/fi.js +112 -112
- package/dist/astgraph/vendor/zod/v4/locales/fr-CA.js +107 -107
- package/dist/astgraph/vendor/zod/v4/locales/fr.js +125 -125
- package/dist/astgraph/vendor/zod/v4/locales/he.js +214 -214
- package/dist/astgraph/vendor/zod/v4/locales/hr.js +122 -122
- package/dist/astgraph/vendor/zod/v4/locales/hu.js +108 -108
- package/dist/astgraph/vendor/zod/v4/locales/hy.js +147 -147
- package/dist/astgraph/vendor/zod/v4/locales/id.js +106 -106
- package/dist/astgraph/vendor/zod/v4/locales/index.js +52 -52
- package/dist/astgraph/vendor/zod/v4/locales/is.js +109 -109
- package/dist/astgraph/vendor/zod/v4/locales/it.js +108 -108
- package/dist/astgraph/vendor/zod/v4/locales/ja.js +107 -107
- package/dist/astgraph/vendor/zod/v4/locales/ka.js +112 -112
- package/dist/astgraph/vendor/zod/v4/locales/kh.js +5 -5
- package/dist/astgraph/vendor/zod/v4/locales/km.js +110 -110
- package/dist/astgraph/vendor/zod/v4/locales/ko.js +111 -111
- package/dist/astgraph/vendor/zod/v4/locales/lt.js +203 -203
- package/dist/astgraph/vendor/zod/v4/locales/mk.js +109 -109
- package/dist/astgraph/vendor/zod/v4/locales/ms.js +107 -107
- package/dist/astgraph/vendor/zod/v4/locales/nl.js +110 -110
- package/dist/astgraph/vendor/zod/v4/locales/no.js +108 -108
- package/dist/astgraph/vendor/zod/v4/locales/ota.js +109 -109
- package/dist/astgraph/vendor/zod/v4/locales/package.json +7 -7
- package/dist/astgraph/vendor/zod/v4/locales/pl.js +109 -109
- package/dist/astgraph/vendor/zod/v4/locales/ps.js +114 -114
- package/dist/astgraph/vendor/zod/v4/locales/pt.js +108 -108
- package/dist/astgraph/vendor/zod/v4/locales/ro.js +119 -119
- package/dist/astgraph/vendor/zod/v4/locales/ru.js +156 -156
- package/dist/astgraph/vendor/zod/v4/locales/sl.js +109 -109
- package/dist/astgraph/vendor/zod/v4/locales/sv.js +110 -110
- package/dist/astgraph/vendor/zod/v4/locales/ta.js +110 -110
- package/dist/astgraph/vendor/zod/v4/locales/th.js +110 -110
- package/dist/astgraph/vendor/zod/v4/locales/tr.js +105 -105
- package/dist/astgraph/vendor/zod/v4/locales/ua.js +5 -5
- package/dist/astgraph/vendor/zod/v4/locales/uk.js +108 -108
- package/dist/astgraph/vendor/zod/v4/locales/ur.js +110 -110
- package/dist/astgraph/vendor/zod/v4/locales/uz.js +110 -110
- package/dist/astgraph/vendor/zod/v4/locales/vi.js +108 -108
- package/dist/astgraph/vendor/zod/v4/locales/yo.js +107 -107
- package/dist/astgraph/vendor/zod/v4/locales/zh-CN.js +109 -109
- package/dist/astgraph/vendor/zod/v4/locales/zh-TW.js +107 -107
- package/dist/astgraph/vendor/zod/v4/mini/checks.js +1 -1
- package/dist/astgraph/vendor/zod/v4/mini/coerce.js +22 -22
- package/dist/astgraph/vendor/zod/v4/mini/external.js +14 -14
- package/dist/astgraph/vendor/zod/v4/mini/index.js +3 -3
- package/dist/astgraph/vendor/zod/v4/mini/iso.js +34 -34
- package/dist/astgraph/vendor/zod/v4/mini/package.json +7 -7
- package/dist/astgraph/vendor/zod/v4/mini/parse.js +1 -1
- package/dist/astgraph/vendor/zod/v4/mini/schemas.js +961 -961
- package/dist/astgraph/vendor/zod/v4/package.json +7 -7
- package/dist/{chunk-7OICVL2M.js → chunk-2BF7CVWZ.js} +0 -42
- package/dist/{chunk-RQTYHUMK.js → chunk-3WCDZ6ZL.js} +15 -0
- package/dist/{chunk-Z62P4LL7.js → chunk-6MNOZ2TX.js} +8962 -8422
- package/dist/{chunk-VEUSROUQ.js → chunk-FOTMP4ZS.js} +1 -1
- package/dist/{chunk-SUSLIHXO.js → chunk-ODRWR4KK.js} +1 -1
- package/dist/{chunk-RPFWB45Y.js → chunk-URUVFECH.js} +1 -1
- package/dist/{claude-ink-6CEG2XZZ.js → claude-ink-LP32NSX5.js} +2 -3
- package/dist/cli-main.js +27 -11
- package/dist/config/load.d.ts +2 -0
- package/dist/desktop/main.js +1092 -541
- package/dist/desktop-renderer/assets/index-Bk6FYhyh.css +1 -0
- package/dist/desktop-renderer/assets/{index-D75ozXnZ.js → index-CqRIr-hz.js} +3 -3
- package/dist/desktop-renderer/assets/{interactive-terminal-CTFo4fK9.js → interactive-terminal-C4o7MNPO.js} +1 -1
- package/dist/desktop-renderer/index.html +2 -2
- package/dist/doctor.d.ts +38 -0
- package/dist/execution/docker.d.ts +5 -1
- package/dist/execution/types.d.ts +11 -0
- package/dist/jobs/registry.d.ts +1 -0
- package/dist/{load-4FWNXE6F.js → load-V2UIYYQI.js} +1 -1
- package/dist/sdk/index.js +4 -4
- package/dist/tools/shell.d.ts +17 -12
- package/dist/tools/types.d.ts +1 -0
- package/dist/ui/commands.d.ts +1 -1
- package/dist/ui/session.d.ts +1 -0
- package/dist/update/check.d.ts +20 -0
- package/dist/utils/semver.d.ts +3 -0
- package/dist/utils/spawn-executable.d.ts +2 -0
- package/package.json +1 -1
- package//346/212/200/346/234/257/346/226/271/346/241/210/346/212/245/345/221/212.md +5848 -5848
- package/dist/chunk-OTYFL4AG.js +0 -16
- package/dist/desktop-renderer/assets/index-ZZsUx916.css +0 -1
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
import * as util from "../core/util.js";
|
|
2
|
-
const error = () => {
|
|
3
|
-
const Sizable = {
|
|
4
|
-
string: { unit: "karakter", verb: "olmalı" },
|
|
5
|
-
file: { unit: "bayt", verb: "olmalı" },
|
|
6
|
-
array: { unit: "öğe", verb: "olmalı" },
|
|
7
|
-
set: { unit: "öğe", verb: "olmalı" },
|
|
8
|
-
};
|
|
9
|
-
function getSizing(origin) {
|
|
10
|
-
return Sizable[origin] ?? null;
|
|
11
|
-
}
|
|
12
|
-
const FormatDictionary = {
|
|
13
|
-
regex: "girdi",
|
|
14
|
-
email: "e-posta adresi",
|
|
15
|
-
url: "URL",
|
|
16
|
-
emoji: "emoji",
|
|
17
|
-
uuid: "UUID",
|
|
18
|
-
uuidv4: "UUIDv4",
|
|
19
|
-
uuidv6: "UUIDv6",
|
|
20
|
-
nanoid: "nanoid",
|
|
21
|
-
guid: "GUID",
|
|
22
|
-
cuid: "cuid",
|
|
23
|
-
cuid2: "cuid2",
|
|
24
|
-
ulid: "ULID",
|
|
25
|
-
xid: "XID",
|
|
26
|
-
ksuid: "KSUID",
|
|
27
|
-
datetime: "ISO tarih ve saat",
|
|
28
|
-
date: "ISO tarih",
|
|
29
|
-
time: "ISO saat",
|
|
30
|
-
duration: "ISO süre",
|
|
31
|
-
ipv4: "IPv4 adresi",
|
|
32
|
-
ipv6: "IPv6 adresi",
|
|
33
|
-
cidrv4: "IPv4 aralığı",
|
|
34
|
-
cidrv6: "IPv6 aralığı",
|
|
35
|
-
base64: "base64 ile şifrelenmiş metin",
|
|
36
|
-
base64url: "base64url ile şifrelenmiş metin",
|
|
37
|
-
json_string: "JSON dizesi",
|
|
38
|
-
e164: "E.164 sayısı",
|
|
39
|
-
jwt: "JWT",
|
|
40
|
-
template_literal: "Şablon dizesi",
|
|
41
|
-
};
|
|
42
|
-
const TypeDictionary = {
|
|
43
|
-
nan: "NaN",
|
|
44
|
-
};
|
|
45
|
-
return (issue) => {
|
|
46
|
-
switch (issue.code) {
|
|
47
|
-
case "invalid_type": {
|
|
48
|
-
const expected = TypeDictionary[issue.expected] ?? issue.expected;
|
|
49
|
-
const receivedType = util.parsedType(issue.input);
|
|
50
|
-
const received = TypeDictionary[receivedType] ?? receivedType;
|
|
51
|
-
if (/^[A-Z]/.test(issue.expected)) {
|
|
52
|
-
return `Geçersiz değer: beklenen instanceof ${issue.expected}, alınan ${received}`;
|
|
53
|
-
}
|
|
54
|
-
return `Geçersiz değer: beklenen ${expected}, alınan ${received}`;
|
|
55
|
-
}
|
|
56
|
-
case "invalid_value":
|
|
57
|
-
if (issue.values.length === 1)
|
|
58
|
-
return `Geçersiz değer: beklenen ${util.stringifyPrimitive(issue.values[0])}`;
|
|
59
|
-
return `Geçersiz seçenek: aşağıdakilerden biri olmalı: ${util.joinValues(issue.values, "|")}`;
|
|
60
|
-
case "too_big": {
|
|
61
|
-
const adj = issue.inclusive ? "<=" : "<";
|
|
62
|
-
const sizing = getSizing(issue.origin);
|
|
63
|
-
if (sizing)
|
|
64
|
-
return `Çok büyük: beklenen ${issue.origin ?? "değer"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "öğe"}`;
|
|
65
|
-
return `Çok büyük: beklenen ${issue.origin ?? "değer"} ${adj}${issue.maximum.toString()}`;
|
|
66
|
-
}
|
|
67
|
-
case "too_small": {
|
|
68
|
-
const adj = issue.inclusive ? ">=" : ">";
|
|
69
|
-
const sizing = getSizing(issue.origin);
|
|
70
|
-
if (sizing)
|
|
71
|
-
return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
72
|
-
return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()}`;
|
|
73
|
-
}
|
|
74
|
-
case "invalid_format": {
|
|
75
|
-
const _issue = issue;
|
|
76
|
-
if (_issue.format === "starts_with")
|
|
77
|
-
return `Geçersiz metin: "${_issue.prefix}" ile başlamalı`;
|
|
78
|
-
if (_issue.format === "ends_with")
|
|
79
|
-
return `Geçersiz metin: "${_issue.suffix}" ile bitmeli`;
|
|
80
|
-
if (_issue.format === "includes")
|
|
81
|
-
return `Geçersiz metin: "${_issue.includes}" içermeli`;
|
|
82
|
-
if (_issue.format === "regex")
|
|
83
|
-
return `Geçersiz metin: ${_issue.pattern} desenine uymalı`;
|
|
84
|
-
return `Geçersiz ${FormatDictionary[_issue.format] ?? issue.format}`;
|
|
85
|
-
}
|
|
86
|
-
case "not_multiple_of":
|
|
87
|
-
return `Geçersiz sayı: ${issue.divisor} ile tam bölünebilmeli`;
|
|
88
|
-
case "unrecognized_keys":
|
|
89
|
-
return `Tanınmayan anahtar${issue.keys.length > 1 ? "lar" : ""}: ${util.joinValues(issue.keys, ", ")}`;
|
|
90
|
-
case "invalid_key":
|
|
91
|
-
return `${issue.origin} içinde geçersiz anahtar`;
|
|
92
|
-
case "invalid_union":
|
|
93
|
-
return "Geçersiz değer";
|
|
94
|
-
case "invalid_element":
|
|
95
|
-
return `${issue.origin} içinde geçersiz değer`;
|
|
96
|
-
default:
|
|
97
|
-
return `Geçersiz değer`;
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
};
|
|
101
|
-
export default function () {
|
|
102
|
-
return {
|
|
103
|
-
localeError: error(),
|
|
104
|
-
};
|
|
105
|
-
}
|
|
1
|
+
import * as util from "../core/util.js";
|
|
2
|
+
const error = () => {
|
|
3
|
+
const Sizable = {
|
|
4
|
+
string: { unit: "karakter", verb: "olmalı" },
|
|
5
|
+
file: { unit: "bayt", verb: "olmalı" },
|
|
6
|
+
array: { unit: "öğe", verb: "olmalı" },
|
|
7
|
+
set: { unit: "öğe", verb: "olmalı" },
|
|
8
|
+
};
|
|
9
|
+
function getSizing(origin) {
|
|
10
|
+
return Sizable[origin] ?? null;
|
|
11
|
+
}
|
|
12
|
+
const FormatDictionary = {
|
|
13
|
+
regex: "girdi",
|
|
14
|
+
email: "e-posta adresi",
|
|
15
|
+
url: "URL",
|
|
16
|
+
emoji: "emoji",
|
|
17
|
+
uuid: "UUID",
|
|
18
|
+
uuidv4: "UUIDv4",
|
|
19
|
+
uuidv6: "UUIDv6",
|
|
20
|
+
nanoid: "nanoid",
|
|
21
|
+
guid: "GUID",
|
|
22
|
+
cuid: "cuid",
|
|
23
|
+
cuid2: "cuid2",
|
|
24
|
+
ulid: "ULID",
|
|
25
|
+
xid: "XID",
|
|
26
|
+
ksuid: "KSUID",
|
|
27
|
+
datetime: "ISO tarih ve saat",
|
|
28
|
+
date: "ISO tarih",
|
|
29
|
+
time: "ISO saat",
|
|
30
|
+
duration: "ISO süre",
|
|
31
|
+
ipv4: "IPv4 adresi",
|
|
32
|
+
ipv6: "IPv6 adresi",
|
|
33
|
+
cidrv4: "IPv4 aralığı",
|
|
34
|
+
cidrv6: "IPv6 aralığı",
|
|
35
|
+
base64: "base64 ile şifrelenmiş metin",
|
|
36
|
+
base64url: "base64url ile şifrelenmiş metin",
|
|
37
|
+
json_string: "JSON dizesi",
|
|
38
|
+
e164: "E.164 sayısı",
|
|
39
|
+
jwt: "JWT",
|
|
40
|
+
template_literal: "Şablon dizesi",
|
|
41
|
+
};
|
|
42
|
+
const TypeDictionary = {
|
|
43
|
+
nan: "NaN",
|
|
44
|
+
};
|
|
45
|
+
return (issue) => {
|
|
46
|
+
switch (issue.code) {
|
|
47
|
+
case "invalid_type": {
|
|
48
|
+
const expected = TypeDictionary[issue.expected] ?? issue.expected;
|
|
49
|
+
const receivedType = util.parsedType(issue.input);
|
|
50
|
+
const received = TypeDictionary[receivedType] ?? receivedType;
|
|
51
|
+
if (/^[A-Z]/.test(issue.expected)) {
|
|
52
|
+
return `Geçersiz değer: beklenen instanceof ${issue.expected}, alınan ${received}`;
|
|
53
|
+
}
|
|
54
|
+
return `Geçersiz değer: beklenen ${expected}, alınan ${received}`;
|
|
55
|
+
}
|
|
56
|
+
case "invalid_value":
|
|
57
|
+
if (issue.values.length === 1)
|
|
58
|
+
return `Geçersiz değer: beklenen ${util.stringifyPrimitive(issue.values[0])}`;
|
|
59
|
+
return `Geçersiz seçenek: aşağıdakilerden biri olmalı: ${util.joinValues(issue.values, "|")}`;
|
|
60
|
+
case "too_big": {
|
|
61
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
62
|
+
const sizing = getSizing(issue.origin);
|
|
63
|
+
if (sizing)
|
|
64
|
+
return `Çok büyük: beklenen ${issue.origin ?? "değer"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "öğe"}`;
|
|
65
|
+
return `Çok büyük: beklenen ${issue.origin ?? "değer"} ${adj}${issue.maximum.toString()}`;
|
|
66
|
+
}
|
|
67
|
+
case "too_small": {
|
|
68
|
+
const adj = issue.inclusive ? ">=" : ">";
|
|
69
|
+
const sizing = getSizing(issue.origin);
|
|
70
|
+
if (sizing)
|
|
71
|
+
return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
72
|
+
return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()}`;
|
|
73
|
+
}
|
|
74
|
+
case "invalid_format": {
|
|
75
|
+
const _issue = issue;
|
|
76
|
+
if (_issue.format === "starts_with")
|
|
77
|
+
return `Geçersiz metin: "${_issue.prefix}" ile başlamalı`;
|
|
78
|
+
if (_issue.format === "ends_with")
|
|
79
|
+
return `Geçersiz metin: "${_issue.suffix}" ile bitmeli`;
|
|
80
|
+
if (_issue.format === "includes")
|
|
81
|
+
return `Geçersiz metin: "${_issue.includes}" içermeli`;
|
|
82
|
+
if (_issue.format === "regex")
|
|
83
|
+
return `Geçersiz metin: ${_issue.pattern} desenine uymalı`;
|
|
84
|
+
return `Geçersiz ${FormatDictionary[_issue.format] ?? issue.format}`;
|
|
85
|
+
}
|
|
86
|
+
case "not_multiple_of":
|
|
87
|
+
return `Geçersiz sayı: ${issue.divisor} ile tam bölünebilmeli`;
|
|
88
|
+
case "unrecognized_keys":
|
|
89
|
+
return `Tanınmayan anahtar${issue.keys.length > 1 ? "lar" : ""}: ${util.joinValues(issue.keys, ", ")}`;
|
|
90
|
+
case "invalid_key":
|
|
91
|
+
return `${issue.origin} içinde geçersiz anahtar`;
|
|
92
|
+
case "invalid_union":
|
|
93
|
+
return "Geçersiz değer";
|
|
94
|
+
case "invalid_element":
|
|
95
|
+
return `${issue.origin} içinde geçersiz değer`;
|
|
96
|
+
default:
|
|
97
|
+
return `Geçersiz değer`;
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
export default function () {
|
|
102
|
+
return {
|
|
103
|
+
localeError: error(),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import uk from "./uk.js";
|
|
2
|
-
/** @deprecated Use `uk` instead. */
|
|
3
|
-
export default function () {
|
|
4
|
-
return uk();
|
|
5
|
-
}
|
|
1
|
+
import uk from "./uk.js";
|
|
2
|
+
/** @deprecated Use `uk` instead. */
|
|
3
|
+
export default function () {
|
|
4
|
+
return uk();
|
|
5
|
+
}
|
|
@@ -1,108 +1,108 @@
|
|
|
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 FormatDictionary = {
|
|
13
|
-
regex: "вхідні дані",
|
|
14
|
-
email: "адреса електронної пошти",
|
|
15
|
-
url: "URL",
|
|
16
|
-
emoji: "емодзі",
|
|
17
|
-
uuid: "UUID",
|
|
18
|
-
uuidv4: "UUIDv4",
|
|
19
|
-
uuidv6: "UUIDv6",
|
|
20
|
-
nanoid: "nanoid",
|
|
21
|
-
guid: "GUID",
|
|
22
|
-
cuid: "cuid",
|
|
23
|
-
cuid2: "cuid2",
|
|
24
|
-
ulid: "ULID",
|
|
25
|
-
xid: "XID",
|
|
26
|
-
ksuid: "KSUID",
|
|
27
|
-
datetime: "дата та час ISO",
|
|
28
|
-
date: "дата ISO",
|
|
29
|
-
time: "час ISO",
|
|
30
|
-
duration: "тривалість ISO",
|
|
31
|
-
ipv4: "адреса IPv4",
|
|
32
|
-
ipv6: "адреса IPv6",
|
|
33
|
-
cidrv4: "діапазон IPv4",
|
|
34
|
-
cidrv6: "діапазон IPv6",
|
|
35
|
-
base64: "рядок у кодуванні base64",
|
|
36
|
-
base64url: "рядок у кодуванні base64url",
|
|
37
|
-
json_string: "рядок JSON",
|
|
38
|
-
e164: "номер E.164",
|
|
39
|
-
jwt: "JWT",
|
|
40
|
-
template_literal: "вхідні дані",
|
|
41
|
-
};
|
|
42
|
-
const TypeDictionary = {
|
|
43
|
-
nan: "NaN",
|
|
44
|
-
number: "число",
|
|
45
|
-
array: "масив",
|
|
46
|
-
};
|
|
47
|
-
return (issue) => {
|
|
48
|
-
switch (issue.code) {
|
|
49
|
-
case "invalid_type": {
|
|
50
|
-
const expected = TypeDictionary[issue.expected] ?? issue.expected;
|
|
51
|
-
const receivedType = util.parsedType(issue.input);
|
|
52
|
-
const received = TypeDictionary[receivedType] ?? receivedType;
|
|
53
|
-
if (/^[A-Z]/.test(issue.expected)) {
|
|
54
|
-
return `Неправильні вхідні дані: очікується instanceof ${issue.expected}, отримано ${received}`;
|
|
55
|
-
}
|
|
56
|
-
return `Неправильні вхідні дані: очікується ${expected}, отримано ${received}`;
|
|
57
|
-
}
|
|
58
|
-
case "invalid_value":
|
|
59
|
-
if (issue.values.length === 1)
|
|
60
|
-
return `Неправильні вхідні дані: очікується ${util.stringifyPrimitive(issue.values[0])}`;
|
|
61
|
-
return `Неправильна опція: очікується одне з ${util.joinValues(issue.values, "|")}`;
|
|
62
|
-
case "too_big": {
|
|
63
|
-
const adj = issue.inclusive ? "<=" : "<";
|
|
64
|
-
const sizing = getSizing(issue.origin);
|
|
65
|
-
if (sizing)
|
|
66
|
-
return `Занадто велике: очікується, що ${issue.origin ?? "значення"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "елементів"}`;
|
|
67
|
-
return `Занадто велике: очікується, що ${issue.origin ?? "значення"} буде ${adj}${issue.maximum.toString()}`;
|
|
68
|
-
}
|
|
69
|
-
case "too_small": {
|
|
70
|
-
const adj = issue.inclusive ? ">=" : ">";
|
|
71
|
-
const sizing = getSizing(issue.origin);
|
|
72
|
-
if (sizing) {
|
|
73
|
-
return `Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
74
|
-
}
|
|
75
|
-
return `Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`;
|
|
76
|
-
}
|
|
77
|
-
case "invalid_format": {
|
|
78
|
-
const _issue = issue;
|
|
79
|
-
if (_issue.format === "starts_with")
|
|
80
|
-
return `Неправильний рядок: повинен починатися з "${_issue.prefix}"`;
|
|
81
|
-
if (_issue.format === "ends_with")
|
|
82
|
-
return `Неправильний рядок: повинен закінчуватися на "${_issue.suffix}"`;
|
|
83
|
-
if (_issue.format === "includes")
|
|
84
|
-
return `Неправильний рядок: повинен містити "${_issue.includes}"`;
|
|
85
|
-
if (_issue.format === "regex")
|
|
86
|
-
return `Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`;
|
|
87
|
-
return `Неправильний ${FormatDictionary[_issue.format] ?? issue.format}`;
|
|
88
|
-
}
|
|
89
|
-
case "not_multiple_of":
|
|
90
|
-
return `Неправильне число: повинно бути кратним ${issue.divisor}`;
|
|
91
|
-
case "unrecognized_keys":
|
|
92
|
-
return `Нерозпізнаний ключ${issue.keys.length > 1 ? "і" : ""}: ${util.joinValues(issue.keys, ", ")}`;
|
|
93
|
-
case "invalid_key":
|
|
94
|
-
return `Неправильний ключ у ${issue.origin}`;
|
|
95
|
-
case "invalid_union":
|
|
96
|
-
return "Неправильні вхідні дані";
|
|
97
|
-
case "invalid_element":
|
|
98
|
-
return `Неправильне значення у ${issue.origin}`;
|
|
99
|
-
default:
|
|
100
|
-
return `Неправильні вхідні дані`;
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
};
|
|
104
|
-
export default function () {
|
|
105
|
-
return {
|
|
106
|
-
localeError: error(),
|
|
107
|
-
};
|
|
108
|
-
}
|
|
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 FormatDictionary = {
|
|
13
|
+
regex: "вхідні дані",
|
|
14
|
+
email: "адреса електронної пошти",
|
|
15
|
+
url: "URL",
|
|
16
|
+
emoji: "емодзі",
|
|
17
|
+
uuid: "UUID",
|
|
18
|
+
uuidv4: "UUIDv4",
|
|
19
|
+
uuidv6: "UUIDv6",
|
|
20
|
+
nanoid: "nanoid",
|
|
21
|
+
guid: "GUID",
|
|
22
|
+
cuid: "cuid",
|
|
23
|
+
cuid2: "cuid2",
|
|
24
|
+
ulid: "ULID",
|
|
25
|
+
xid: "XID",
|
|
26
|
+
ksuid: "KSUID",
|
|
27
|
+
datetime: "дата та час ISO",
|
|
28
|
+
date: "дата ISO",
|
|
29
|
+
time: "час ISO",
|
|
30
|
+
duration: "тривалість ISO",
|
|
31
|
+
ipv4: "адреса IPv4",
|
|
32
|
+
ipv6: "адреса IPv6",
|
|
33
|
+
cidrv4: "діапазон IPv4",
|
|
34
|
+
cidrv6: "діапазон IPv6",
|
|
35
|
+
base64: "рядок у кодуванні base64",
|
|
36
|
+
base64url: "рядок у кодуванні base64url",
|
|
37
|
+
json_string: "рядок JSON",
|
|
38
|
+
e164: "номер E.164",
|
|
39
|
+
jwt: "JWT",
|
|
40
|
+
template_literal: "вхідні дані",
|
|
41
|
+
};
|
|
42
|
+
const TypeDictionary = {
|
|
43
|
+
nan: "NaN",
|
|
44
|
+
number: "число",
|
|
45
|
+
array: "масив",
|
|
46
|
+
};
|
|
47
|
+
return (issue) => {
|
|
48
|
+
switch (issue.code) {
|
|
49
|
+
case "invalid_type": {
|
|
50
|
+
const expected = TypeDictionary[issue.expected] ?? issue.expected;
|
|
51
|
+
const receivedType = util.parsedType(issue.input);
|
|
52
|
+
const received = TypeDictionary[receivedType] ?? receivedType;
|
|
53
|
+
if (/^[A-Z]/.test(issue.expected)) {
|
|
54
|
+
return `Неправильні вхідні дані: очікується instanceof ${issue.expected}, отримано ${received}`;
|
|
55
|
+
}
|
|
56
|
+
return `Неправильні вхідні дані: очікується ${expected}, отримано ${received}`;
|
|
57
|
+
}
|
|
58
|
+
case "invalid_value":
|
|
59
|
+
if (issue.values.length === 1)
|
|
60
|
+
return `Неправильні вхідні дані: очікується ${util.stringifyPrimitive(issue.values[0])}`;
|
|
61
|
+
return `Неправильна опція: очікується одне з ${util.joinValues(issue.values, "|")}`;
|
|
62
|
+
case "too_big": {
|
|
63
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
64
|
+
const sizing = getSizing(issue.origin);
|
|
65
|
+
if (sizing)
|
|
66
|
+
return `Занадто велике: очікується, що ${issue.origin ?? "значення"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "елементів"}`;
|
|
67
|
+
return `Занадто велике: очікується, що ${issue.origin ?? "значення"} буде ${adj}${issue.maximum.toString()}`;
|
|
68
|
+
}
|
|
69
|
+
case "too_small": {
|
|
70
|
+
const adj = issue.inclusive ? ">=" : ">";
|
|
71
|
+
const sizing = getSizing(issue.origin);
|
|
72
|
+
if (sizing) {
|
|
73
|
+
return `Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
74
|
+
}
|
|
75
|
+
return `Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`;
|
|
76
|
+
}
|
|
77
|
+
case "invalid_format": {
|
|
78
|
+
const _issue = issue;
|
|
79
|
+
if (_issue.format === "starts_with")
|
|
80
|
+
return `Неправильний рядок: повинен починатися з "${_issue.prefix}"`;
|
|
81
|
+
if (_issue.format === "ends_with")
|
|
82
|
+
return `Неправильний рядок: повинен закінчуватися на "${_issue.suffix}"`;
|
|
83
|
+
if (_issue.format === "includes")
|
|
84
|
+
return `Неправильний рядок: повинен містити "${_issue.includes}"`;
|
|
85
|
+
if (_issue.format === "regex")
|
|
86
|
+
return `Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`;
|
|
87
|
+
return `Неправильний ${FormatDictionary[_issue.format] ?? issue.format}`;
|
|
88
|
+
}
|
|
89
|
+
case "not_multiple_of":
|
|
90
|
+
return `Неправильне число: повинно бути кратним ${issue.divisor}`;
|
|
91
|
+
case "unrecognized_keys":
|
|
92
|
+
return `Нерозпізнаний ключ${issue.keys.length > 1 ? "і" : ""}: ${util.joinValues(issue.keys, ", ")}`;
|
|
93
|
+
case "invalid_key":
|
|
94
|
+
return `Неправильний ключ у ${issue.origin}`;
|
|
95
|
+
case "invalid_union":
|
|
96
|
+
return "Неправильні вхідні дані";
|
|
97
|
+
case "invalid_element":
|
|
98
|
+
return `Неправильне значення у ${issue.origin}`;
|
|
99
|
+
default:
|
|
100
|
+
return `Неправильні вхідні дані`;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
export default function () {
|
|
105
|
+
return {
|
|
106
|
+
localeError: error(),
|
|
107
|
+
};
|
|
108
|
+
}
|