flavor-code 1.3.22 → 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-MWGRT3BJ.js → app-C5ZQUOKJ.js} +37 -63
- 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,110 +1,110 @@
|
|
|
1
|
-
import * as util from "../core/util.js";
|
|
2
|
-
const error = () => {
|
|
3
|
-
const Sizable = {
|
|
4
|
-
string: { unit: "tekens", verb: "heeft" },
|
|
5
|
-
file: { unit: "bytes", verb: "heeft" },
|
|
6
|
-
array: { unit: "elementen", verb: "heeft" },
|
|
7
|
-
set: { unit: "elementen", verb: "heeft" },
|
|
8
|
-
};
|
|
9
|
-
function getSizing(origin) {
|
|
10
|
-
return Sizable[origin] ?? null;
|
|
11
|
-
}
|
|
12
|
-
const FormatDictionary = {
|
|
13
|
-
regex: "invoer",
|
|
14
|
-
email: "emailadres",
|
|
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 datum en tijd",
|
|
28
|
-
date: "ISO datum",
|
|
29
|
-
time: "ISO tijd",
|
|
30
|
-
duration: "ISO duur",
|
|
31
|
-
ipv4: "IPv4-adres",
|
|
32
|
-
ipv6: "IPv6-adres",
|
|
33
|
-
cidrv4: "IPv4-bereik",
|
|
34
|
-
cidrv6: "IPv6-bereik",
|
|
35
|
-
base64: "base64-gecodeerde tekst",
|
|
36
|
-
base64url: "base64 URL-gecodeerde tekst",
|
|
37
|
-
json_string: "JSON string",
|
|
38
|
-
e164: "E.164-nummer",
|
|
39
|
-
jwt: "JWT",
|
|
40
|
-
template_literal: "invoer",
|
|
41
|
-
};
|
|
42
|
-
const TypeDictionary = {
|
|
43
|
-
nan: "NaN",
|
|
44
|
-
number: "getal",
|
|
45
|
-
};
|
|
46
|
-
return (issue) => {
|
|
47
|
-
switch (issue.code) {
|
|
48
|
-
case "invalid_type": {
|
|
49
|
-
const expected = TypeDictionary[issue.expected] ?? issue.expected;
|
|
50
|
-
const receivedType = util.parsedType(issue.input);
|
|
51
|
-
const received = TypeDictionary[receivedType] ?? receivedType;
|
|
52
|
-
if (/^[A-Z]/.test(issue.expected)) {
|
|
53
|
-
return `Ongeldige invoer: verwacht instanceof ${issue.expected}, ontving ${received}`;
|
|
54
|
-
}
|
|
55
|
-
return `Ongeldige invoer: verwacht ${expected}, ontving ${received}`;
|
|
56
|
-
}
|
|
57
|
-
case "invalid_value":
|
|
58
|
-
if (issue.values.length === 1)
|
|
59
|
-
return `Ongeldige invoer: verwacht ${util.stringifyPrimitive(issue.values[0])}`;
|
|
60
|
-
return `Ongeldige optie: verwacht één van ${util.joinValues(issue.values, "|")}`;
|
|
61
|
-
case "too_big": {
|
|
62
|
-
const adj = issue.inclusive ? "<=" : "<";
|
|
63
|
-
const sizing = getSizing(issue.origin);
|
|
64
|
-
const longName = issue.origin === "date" ? "laat" : issue.origin === "string" ? "lang" : "groot";
|
|
65
|
-
if (sizing)
|
|
66
|
-
return `Te ${longName}: verwacht dat ${issue.origin ?? "waarde"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementen"} ${sizing.verb}`;
|
|
67
|
-
return `Te ${longName}: verwacht dat ${issue.origin ?? "waarde"} ${adj}${issue.maximum.toString()} is`;
|
|
68
|
-
}
|
|
69
|
-
case "too_small": {
|
|
70
|
-
const adj = issue.inclusive ? ">=" : ">";
|
|
71
|
-
const sizing = getSizing(issue.origin);
|
|
72
|
-
const shortName = issue.origin === "date" ? "vroeg" : issue.origin === "string" ? "kort" : "klein";
|
|
73
|
-
if (sizing) {
|
|
74
|
-
return `Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`;
|
|
75
|
-
}
|
|
76
|
-
return `Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} is`;
|
|
77
|
-
}
|
|
78
|
-
case "invalid_format": {
|
|
79
|
-
const _issue = issue;
|
|
80
|
-
if (_issue.format === "starts_with") {
|
|
81
|
-
return `Ongeldige tekst: moet met "${_issue.prefix}" beginnen`;
|
|
82
|
-
}
|
|
83
|
-
if (_issue.format === "ends_with")
|
|
84
|
-
return `Ongeldige tekst: moet op "${_issue.suffix}" eindigen`;
|
|
85
|
-
if (_issue.format === "includes")
|
|
86
|
-
return `Ongeldige tekst: moet "${_issue.includes}" bevatten`;
|
|
87
|
-
if (_issue.format === "regex")
|
|
88
|
-
return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`;
|
|
89
|
-
return `Ongeldig: ${FormatDictionary[_issue.format] ?? issue.format}`;
|
|
90
|
-
}
|
|
91
|
-
case "not_multiple_of":
|
|
92
|
-
return `Ongeldig getal: moet een veelvoud van ${issue.divisor} zijn`;
|
|
93
|
-
case "unrecognized_keys":
|
|
94
|
-
return `Onbekende key${issue.keys.length > 1 ? "s" : ""}: ${util.joinValues(issue.keys, ", ")}`;
|
|
95
|
-
case "invalid_key":
|
|
96
|
-
return `Ongeldige key in ${issue.origin}`;
|
|
97
|
-
case "invalid_union":
|
|
98
|
-
return "Ongeldige invoer";
|
|
99
|
-
case "invalid_element":
|
|
100
|
-
return `Ongeldige waarde in ${issue.origin}`;
|
|
101
|
-
default:
|
|
102
|
-
return `Ongeldige invoer`;
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
};
|
|
106
|
-
export default function () {
|
|
107
|
-
return {
|
|
108
|
-
localeError: error(),
|
|
109
|
-
};
|
|
110
|
-
}
|
|
1
|
+
import * as util from "../core/util.js";
|
|
2
|
+
const error = () => {
|
|
3
|
+
const Sizable = {
|
|
4
|
+
string: { unit: "tekens", verb: "heeft" },
|
|
5
|
+
file: { unit: "bytes", verb: "heeft" },
|
|
6
|
+
array: { unit: "elementen", verb: "heeft" },
|
|
7
|
+
set: { unit: "elementen", verb: "heeft" },
|
|
8
|
+
};
|
|
9
|
+
function getSizing(origin) {
|
|
10
|
+
return Sizable[origin] ?? null;
|
|
11
|
+
}
|
|
12
|
+
const FormatDictionary = {
|
|
13
|
+
regex: "invoer",
|
|
14
|
+
email: "emailadres",
|
|
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 datum en tijd",
|
|
28
|
+
date: "ISO datum",
|
|
29
|
+
time: "ISO tijd",
|
|
30
|
+
duration: "ISO duur",
|
|
31
|
+
ipv4: "IPv4-adres",
|
|
32
|
+
ipv6: "IPv6-adres",
|
|
33
|
+
cidrv4: "IPv4-bereik",
|
|
34
|
+
cidrv6: "IPv6-bereik",
|
|
35
|
+
base64: "base64-gecodeerde tekst",
|
|
36
|
+
base64url: "base64 URL-gecodeerde tekst",
|
|
37
|
+
json_string: "JSON string",
|
|
38
|
+
e164: "E.164-nummer",
|
|
39
|
+
jwt: "JWT",
|
|
40
|
+
template_literal: "invoer",
|
|
41
|
+
};
|
|
42
|
+
const TypeDictionary = {
|
|
43
|
+
nan: "NaN",
|
|
44
|
+
number: "getal",
|
|
45
|
+
};
|
|
46
|
+
return (issue) => {
|
|
47
|
+
switch (issue.code) {
|
|
48
|
+
case "invalid_type": {
|
|
49
|
+
const expected = TypeDictionary[issue.expected] ?? issue.expected;
|
|
50
|
+
const receivedType = util.parsedType(issue.input);
|
|
51
|
+
const received = TypeDictionary[receivedType] ?? receivedType;
|
|
52
|
+
if (/^[A-Z]/.test(issue.expected)) {
|
|
53
|
+
return `Ongeldige invoer: verwacht instanceof ${issue.expected}, ontving ${received}`;
|
|
54
|
+
}
|
|
55
|
+
return `Ongeldige invoer: verwacht ${expected}, ontving ${received}`;
|
|
56
|
+
}
|
|
57
|
+
case "invalid_value":
|
|
58
|
+
if (issue.values.length === 1)
|
|
59
|
+
return `Ongeldige invoer: verwacht ${util.stringifyPrimitive(issue.values[0])}`;
|
|
60
|
+
return `Ongeldige optie: verwacht één van ${util.joinValues(issue.values, "|")}`;
|
|
61
|
+
case "too_big": {
|
|
62
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
63
|
+
const sizing = getSizing(issue.origin);
|
|
64
|
+
const longName = issue.origin === "date" ? "laat" : issue.origin === "string" ? "lang" : "groot";
|
|
65
|
+
if (sizing)
|
|
66
|
+
return `Te ${longName}: verwacht dat ${issue.origin ?? "waarde"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementen"} ${sizing.verb}`;
|
|
67
|
+
return `Te ${longName}: verwacht dat ${issue.origin ?? "waarde"} ${adj}${issue.maximum.toString()} is`;
|
|
68
|
+
}
|
|
69
|
+
case "too_small": {
|
|
70
|
+
const adj = issue.inclusive ? ">=" : ">";
|
|
71
|
+
const sizing = getSizing(issue.origin);
|
|
72
|
+
const shortName = issue.origin === "date" ? "vroeg" : issue.origin === "string" ? "kort" : "klein";
|
|
73
|
+
if (sizing) {
|
|
74
|
+
return `Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`;
|
|
75
|
+
}
|
|
76
|
+
return `Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} is`;
|
|
77
|
+
}
|
|
78
|
+
case "invalid_format": {
|
|
79
|
+
const _issue = issue;
|
|
80
|
+
if (_issue.format === "starts_with") {
|
|
81
|
+
return `Ongeldige tekst: moet met "${_issue.prefix}" beginnen`;
|
|
82
|
+
}
|
|
83
|
+
if (_issue.format === "ends_with")
|
|
84
|
+
return `Ongeldige tekst: moet op "${_issue.suffix}" eindigen`;
|
|
85
|
+
if (_issue.format === "includes")
|
|
86
|
+
return `Ongeldige tekst: moet "${_issue.includes}" bevatten`;
|
|
87
|
+
if (_issue.format === "regex")
|
|
88
|
+
return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`;
|
|
89
|
+
return `Ongeldig: ${FormatDictionary[_issue.format] ?? issue.format}`;
|
|
90
|
+
}
|
|
91
|
+
case "not_multiple_of":
|
|
92
|
+
return `Ongeldig getal: moet een veelvoud van ${issue.divisor} zijn`;
|
|
93
|
+
case "unrecognized_keys":
|
|
94
|
+
return `Onbekende key${issue.keys.length > 1 ? "s" : ""}: ${util.joinValues(issue.keys, ", ")}`;
|
|
95
|
+
case "invalid_key":
|
|
96
|
+
return `Ongeldige key in ${issue.origin}`;
|
|
97
|
+
case "invalid_union":
|
|
98
|
+
return "Ongeldige invoer";
|
|
99
|
+
case "invalid_element":
|
|
100
|
+
return `Ongeldige waarde in ${issue.origin}`;
|
|
101
|
+
default:
|
|
102
|
+
return `Ongeldige invoer`;
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
export default function () {
|
|
107
|
+
return {
|
|
108
|
+
localeError: error(),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
import * as util from "../core/util.js";
|
|
2
|
-
const error = () => {
|
|
3
|
-
const Sizable = {
|
|
4
|
-
string: { unit: "tegn", verb: "å ha" },
|
|
5
|
-
file: { unit: "bytes", verb: "å ha" },
|
|
6
|
-
array: { unit: "elementer", verb: "å inneholde" },
|
|
7
|
-
set: { unit: "elementer", verb: "å inneholde" },
|
|
8
|
-
};
|
|
9
|
-
function getSizing(origin) {
|
|
10
|
-
return Sizable[origin] ?? null;
|
|
11
|
-
}
|
|
12
|
-
const FormatDictionary = {
|
|
13
|
-
regex: "input",
|
|
14
|
-
email: "e-postadresse",
|
|
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 dato- og klokkeslett",
|
|
28
|
-
date: "ISO-dato",
|
|
29
|
-
time: "ISO-klokkeslett",
|
|
30
|
-
duration: "ISO-varighet",
|
|
31
|
-
ipv4: "IPv4-område",
|
|
32
|
-
ipv6: "IPv6-område",
|
|
33
|
-
cidrv4: "IPv4-spekter",
|
|
34
|
-
cidrv6: "IPv6-spekter",
|
|
35
|
-
base64: "base64-enkodet streng",
|
|
36
|
-
base64url: "base64url-enkodet streng",
|
|
37
|
-
json_string: "JSON-streng",
|
|
38
|
-
e164: "E.164-nummer",
|
|
39
|
-
jwt: "JWT",
|
|
40
|
-
template_literal: "input",
|
|
41
|
-
};
|
|
42
|
-
const TypeDictionary = {
|
|
43
|
-
nan: "NaN",
|
|
44
|
-
number: "tall",
|
|
45
|
-
array: "liste",
|
|
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 `Ugyldig input: forventet instanceof ${issue.expected}, fikk ${received}`;
|
|
55
|
-
}
|
|
56
|
-
return `Ugyldig input: forventet ${expected}, fikk ${received}`;
|
|
57
|
-
}
|
|
58
|
-
case "invalid_value":
|
|
59
|
-
if (issue.values.length === 1)
|
|
60
|
-
return `Ugyldig verdi: forventet ${util.stringifyPrimitive(issue.values[0])}`;
|
|
61
|
-
return `Ugyldig valg: forventet en av ${util.joinValues(issue.values, "|")}`;
|
|
62
|
-
case "too_big": {
|
|
63
|
-
const adj = issue.inclusive ? "<=" : "<";
|
|
64
|
-
const sizing = getSizing(issue.origin);
|
|
65
|
-
if (sizing)
|
|
66
|
-
return `For stor(t): forventet ${issue.origin ?? "value"} til å ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementer"}`;
|
|
67
|
-
return `For stor(t): forventet ${issue.origin ?? "value"} til å ha ${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 `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
74
|
-
}
|
|
75
|
-
return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()}`;
|
|
76
|
-
}
|
|
77
|
-
case "invalid_format": {
|
|
78
|
-
const _issue = issue;
|
|
79
|
-
if (_issue.format === "starts_with")
|
|
80
|
-
return `Ugyldig streng: må starte med "${_issue.prefix}"`;
|
|
81
|
-
if (_issue.format === "ends_with")
|
|
82
|
-
return `Ugyldig streng: må ende med "${_issue.suffix}"`;
|
|
83
|
-
if (_issue.format === "includes")
|
|
84
|
-
return `Ugyldig streng: må inneholde "${_issue.includes}"`;
|
|
85
|
-
if (_issue.format === "regex")
|
|
86
|
-
return `Ugyldig streng: må matche mønsteret ${_issue.pattern}`;
|
|
87
|
-
return `Ugyldig ${FormatDictionary[_issue.format] ?? issue.format}`;
|
|
88
|
-
}
|
|
89
|
-
case "not_multiple_of":
|
|
90
|
-
return `Ugyldig tall: må være et multiplum av ${issue.divisor}`;
|
|
91
|
-
case "unrecognized_keys":
|
|
92
|
-
return `${issue.keys.length > 1 ? "Ukjente nøkler" : "Ukjent nøkkel"}: ${util.joinValues(issue.keys, ", ")}`;
|
|
93
|
-
case "invalid_key":
|
|
94
|
-
return `Ugyldig nøkkel i ${issue.origin}`;
|
|
95
|
-
case "invalid_union":
|
|
96
|
-
return "Ugyldig input";
|
|
97
|
-
case "invalid_element":
|
|
98
|
-
return `Ugyldig verdi i ${issue.origin}`;
|
|
99
|
-
default:
|
|
100
|
-
return `Ugyldig input`;
|
|
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: "tegn", verb: "å ha" },
|
|
5
|
+
file: { unit: "bytes", verb: "å ha" },
|
|
6
|
+
array: { unit: "elementer", verb: "å inneholde" },
|
|
7
|
+
set: { unit: "elementer", verb: "å inneholde" },
|
|
8
|
+
};
|
|
9
|
+
function getSizing(origin) {
|
|
10
|
+
return Sizable[origin] ?? null;
|
|
11
|
+
}
|
|
12
|
+
const FormatDictionary = {
|
|
13
|
+
regex: "input",
|
|
14
|
+
email: "e-postadresse",
|
|
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 dato- og klokkeslett",
|
|
28
|
+
date: "ISO-dato",
|
|
29
|
+
time: "ISO-klokkeslett",
|
|
30
|
+
duration: "ISO-varighet",
|
|
31
|
+
ipv4: "IPv4-område",
|
|
32
|
+
ipv6: "IPv6-område",
|
|
33
|
+
cidrv4: "IPv4-spekter",
|
|
34
|
+
cidrv6: "IPv6-spekter",
|
|
35
|
+
base64: "base64-enkodet streng",
|
|
36
|
+
base64url: "base64url-enkodet streng",
|
|
37
|
+
json_string: "JSON-streng",
|
|
38
|
+
e164: "E.164-nummer",
|
|
39
|
+
jwt: "JWT",
|
|
40
|
+
template_literal: "input",
|
|
41
|
+
};
|
|
42
|
+
const TypeDictionary = {
|
|
43
|
+
nan: "NaN",
|
|
44
|
+
number: "tall",
|
|
45
|
+
array: "liste",
|
|
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 `Ugyldig input: forventet instanceof ${issue.expected}, fikk ${received}`;
|
|
55
|
+
}
|
|
56
|
+
return `Ugyldig input: forventet ${expected}, fikk ${received}`;
|
|
57
|
+
}
|
|
58
|
+
case "invalid_value":
|
|
59
|
+
if (issue.values.length === 1)
|
|
60
|
+
return `Ugyldig verdi: forventet ${util.stringifyPrimitive(issue.values[0])}`;
|
|
61
|
+
return `Ugyldig valg: forventet en av ${util.joinValues(issue.values, "|")}`;
|
|
62
|
+
case "too_big": {
|
|
63
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
64
|
+
const sizing = getSizing(issue.origin);
|
|
65
|
+
if (sizing)
|
|
66
|
+
return `For stor(t): forventet ${issue.origin ?? "value"} til å ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementer"}`;
|
|
67
|
+
return `For stor(t): forventet ${issue.origin ?? "value"} til å ha ${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 `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
74
|
+
}
|
|
75
|
+
return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()}`;
|
|
76
|
+
}
|
|
77
|
+
case "invalid_format": {
|
|
78
|
+
const _issue = issue;
|
|
79
|
+
if (_issue.format === "starts_with")
|
|
80
|
+
return `Ugyldig streng: må starte med "${_issue.prefix}"`;
|
|
81
|
+
if (_issue.format === "ends_with")
|
|
82
|
+
return `Ugyldig streng: må ende med "${_issue.suffix}"`;
|
|
83
|
+
if (_issue.format === "includes")
|
|
84
|
+
return `Ugyldig streng: må inneholde "${_issue.includes}"`;
|
|
85
|
+
if (_issue.format === "regex")
|
|
86
|
+
return `Ugyldig streng: må matche mønsteret ${_issue.pattern}`;
|
|
87
|
+
return `Ugyldig ${FormatDictionary[_issue.format] ?? issue.format}`;
|
|
88
|
+
}
|
|
89
|
+
case "not_multiple_of":
|
|
90
|
+
return `Ugyldig tall: må være et multiplum av ${issue.divisor}`;
|
|
91
|
+
case "unrecognized_keys":
|
|
92
|
+
return `${issue.keys.length > 1 ? "Ukjente nøkler" : "Ukjent nøkkel"}: ${util.joinValues(issue.keys, ", ")}`;
|
|
93
|
+
case "invalid_key":
|
|
94
|
+
return `Ugyldig nøkkel i ${issue.origin}`;
|
|
95
|
+
case "invalid_union":
|
|
96
|
+
return "Ugyldig input";
|
|
97
|
+
case "invalid_element":
|
|
98
|
+
return `Ugyldig verdi i ${issue.origin}`;
|
|
99
|
+
default:
|
|
100
|
+
return `Ugyldig input`;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
export default function () {
|
|
105
|
+
return {
|
|
106
|
+
localeError: error(),
|
|
107
|
+
};
|
|
108
|
+
}
|