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,107 +1,107 @@
|
|
|
1
|
-
import * as util from "../core/util.js";
|
|
2
|
-
const error = () => {
|
|
3
|
-
const Sizable = {
|
|
4
|
-
string: { unit: "caractères", verb: "avoir" },
|
|
5
|
-
file: { unit: "octets", verb: "avoir" },
|
|
6
|
-
array: { unit: "éléments", verb: "avoir" },
|
|
7
|
-
set: { unit: "éléments", verb: "avoir" },
|
|
8
|
-
};
|
|
9
|
-
function getSizing(origin) {
|
|
10
|
-
return Sizable[origin] ?? null;
|
|
11
|
-
}
|
|
12
|
-
const FormatDictionary = {
|
|
13
|
-
regex: "entrée",
|
|
14
|
-
email: "adresse courriel",
|
|
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: "date-heure ISO",
|
|
28
|
-
date: "date ISO",
|
|
29
|
-
time: "heure ISO",
|
|
30
|
-
duration: "durée ISO",
|
|
31
|
-
ipv4: "adresse IPv4",
|
|
32
|
-
ipv6: "adresse IPv6",
|
|
33
|
-
cidrv4: "plage IPv4",
|
|
34
|
-
cidrv6: "plage IPv6",
|
|
35
|
-
base64: "chaîne encodée en base64",
|
|
36
|
-
base64url: "chaîne encodée en base64url",
|
|
37
|
-
json_string: "chaîne JSON",
|
|
38
|
-
e164: "numéro E.164",
|
|
39
|
-
jwt: "JWT",
|
|
40
|
-
template_literal: "entrée",
|
|
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 `Entrée invalide : attendu instanceof ${issue.expected}, reçu ${received}`;
|
|
53
|
-
}
|
|
54
|
-
return `Entrée invalide : attendu ${expected}, reçu ${received}`;
|
|
55
|
-
}
|
|
56
|
-
case "invalid_value":
|
|
57
|
-
if (issue.values.length === 1)
|
|
58
|
-
return `Entrée invalide : attendu ${util.stringifyPrimitive(issue.values[0])}`;
|
|
59
|
-
return `Option invalide : attendu l'une des valeurs suivantes ${util.joinValues(issue.values, "|")}`;
|
|
60
|
-
case "too_big": {
|
|
61
|
-
const adj = issue.inclusive ? "≤" : "<";
|
|
62
|
-
const sizing = getSizing(issue.origin);
|
|
63
|
-
if (sizing)
|
|
64
|
-
return `Trop grand : attendu que ${issue.origin ?? "la valeur"} ait ${adj}${issue.maximum.toString()} ${sizing.unit}`;
|
|
65
|
-
return `Trop grand : attendu que ${issue.origin ?? "la valeur"} soit ${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 `Trop petit : attendu que ${issue.origin} ait ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
72
|
-
}
|
|
73
|
-
return `Trop petit : attendu que ${issue.origin} soit ${adj}${issue.minimum.toString()}`;
|
|
74
|
-
}
|
|
75
|
-
case "invalid_format": {
|
|
76
|
-
const _issue = issue;
|
|
77
|
-
if (_issue.format === "starts_with") {
|
|
78
|
-
return `Chaîne invalide : doit commencer par "${_issue.prefix}"`;
|
|
79
|
-
}
|
|
80
|
-
if (_issue.format === "ends_with")
|
|
81
|
-
return `Chaîne invalide : doit se terminer par "${_issue.suffix}"`;
|
|
82
|
-
if (_issue.format === "includes")
|
|
83
|
-
return `Chaîne invalide : doit inclure "${_issue.includes}"`;
|
|
84
|
-
if (_issue.format === "regex")
|
|
85
|
-
return `Chaîne invalide : doit correspondre au motif ${_issue.pattern}`;
|
|
86
|
-
return `${FormatDictionary[_issue.format] ?? issue.format} invalide`;
|
|
87
|
-
}
|
|
88
|
-
case "not_multiple_of":
|
|
89
|
-
return `Nombre invalide : doit être un multiple de ${issue.divisor}`;
|
|
90
|
-
case "unrecognized_keys":
|
|
91
|
-
return `Clé${issue.keys.length > 1 ? "s" : ""} non reconnue${issue.keys.length > 1 ? "s" : ""} : ${util.joinValues(issue.keys, ", ")}`;
|
|
92
|
-
case "invalid_key":
|
|
93
|
-
return `Clé invalide dans ${issue.origin}`;
|
|
94
|
-
case "invalid_union":
|
|
95
|
-
return "Entrée invalide";
|
|
96
|
-
case "invalid_element":
|
|
97
|
-
return `Valeur invalide dans ${issue.origin}`;
|
|
98
|
-
default:
|
|
99
|
-
return `Entrée invalide`;
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
};
|
|
103
|
-
export default function () {
|
|
104
|
-
return {
|
|
105
|
-
localeError: error(),
|
|
106
|
-
};
|
|
107
|
-
}
|
|
1
|
+
import * as util from "../core/util.js";
|
|
2
|
+
const error = () => {
|
|
3
|
+
const Sizable = {
|
|
4
|
+
string: { unit: "caractères", verb: "avoir" },
|
|
5
|
+
file: { unit: "octets", verb: "avoir" },
|
|
6
|
+
array: { unit: "éléments", verb: "avoir" },
|
|
7
|
+
set: { unit: "éléments", verb: "avoir" },
|
|
8
|
+
};
|
|
9
|
+
function getSizing(origin) {
|
|
10
|
+
return Sizable[origin] ?? null;
|
|
11
|
+
}
|
|
12
|
+
const FormatDictionary = {
|
|
13
|
+
regex: "entrée",
|
|
14
|
+
email: "adresse courriel",
|
|
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: "date-heure ISO",
|
|
28
|
+
date: "date ISO",
|
|
29
|
+
time: "heure ISO",
|
|
30
|
+
duration: "durée ISO",
|
|
31
|
+
ipv4: "adresse IPv4",
|
|
32
|
+
ipv6: "adresse IPv6",
|
|
33
|
+
cidrv4: "plage IPv4",
|
|
34
|
+
cidrv6: "plage IPv6",
|
|
35
|
+
base64: "chaîne encodée en base64",
|
|
36
|
+
base64url: "chaîne encodée en base64url",
|
|
37
|
+
json_string: "chaîne JSON",
|
|
38
|
+
e164: "numéro E.164",
|
|
39
|
+
jwt: "JWT",
|
|
40
|
+
template_literal: "entrée",
|
|
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 `Entrée invalide : attendu instanceof ${issue.expected}, reçu ${received}`;
|
|
53
|
+
}
|
|
54
|
+
return `Entrée invalide : attendu ${expected}, reçu ${received}`;
|
|
55
|
+
}
|
|
56
|
+
case "invalid_value":
|
|
57
|
+
if (issue.values.length === 1)
|
|
58
|
+
return `Entrée invalide : attendu ${util.stringifyPrimitive(issue.values[0])}`;
|
|
59
|
+
return `Option invalide : attendu l'une des valeurs suivantes ${util.joinValues(issue.values, "|")}`;
|
|
60
|
+
case "too_big": {
|
|
61
|
+
const adj = issue.inclusive ? "≤" : "<";
|
|
62
|
+
const sizing = getSizing(issue.origin);
|
|
63
|
+
if (sizing)
|
|
64
|
+
return `Trop grand : attendu que ${issue.origin ?? "la valeur"} ait ${adj}${issue.maximum.toString()} ${sizing.unit}`;
|
|
65
|
+
return `Trop grand : attendu que ${issue.origin ?? "la valeur"} soit ${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 `Trop petit : attendu que ${issue.origin} ait ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
72
|
+
}
|
|
73
|
+
return `Trop petit : attendu que ${issue.origin} soit ${adj}${issue.minimum.toString()}`;
|
|
74
|
+
}
|
|
75
|
+
case "invalid_format": {
|
|
76
|
+
const _issue = issue;
|
|
77
|
+
if (_issue.format === "starts_with") {
|
|
78
|
+
return `Chaîne invalide : doit commencer par "${_issue.prefix}"`;
|
|
79
|
+
}
|
|
80
|
+
if (_issue.format === "ends_with")
|
|
81
|
+
return `Chaîne invalide : doit se terminer par "${_issue.suffix}"`;
|
|
82
|
+
if (_issue.format === "includes")
|
|
83
|
+
return `Chaîne invalide : doit inclure "${_issue.includes}"`;
|
|
84
|
+
if (_issue.format === "regex")
|
|
85
|
+
return `Chaîne invalide : doit correspondre au motif ${_issue.pattern}`;
|
|
86
|
+
return `${FormatDictionary[_issue.format] ?? issue.format} invalide`;
|
|
87
|
+
}
|
|
88
|
+
case "not_multiple_of":
|
|
89
|
+
return `Nombre invalide : doit être un multiple de ${issue.divisor}`;
|
|
90
|
+
case "unrecognized_keys":
|
|
91
|
+
return `Clé${issue.keys.length > 1 ? "s" : ""} non reconnue${issue.keys.length > 1 ? "s" : ""} : ${util.joinValues(issue.keys, ", ")}`;
|
|
92
|
+
case "invalid_key":
|
|
93
|
+
return `Clé invalide dans ${issue.origin}`;
|
|
94
|
+
case "invalid_union":
|
|
95
|
+
return "Entrée invalide";
|
|
96
|
+
case "invalid_element":
|
|
97
|
+
return `Valeur invalide dans ${issue.origin}`;
|
|
98
|
+
default:
|
|
99
|
+
return `Entrée invalide`;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
export default function () {
|
|
104
|
+
return {
|
|
105
|
+
localeError: error(),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
@@ -1,125 +1,125 @@
|
|
|
1
|
-
import * as util from "../core/util.js";
|
|
2
|
-
const error = () => {
|
|
3
|
-
const Sizable = {
|
|
4
|
-
string: { unit: "caractères", verb: "avoir" },
|
|
5
|
-
file: { unit: "octets", verb: "avoir" },
|
|
6
|
-
array: { unit: "éléments", verb: "avoir" },
|
|
7
|
-
set: { unit: "éléments", verb: "avoir" },
|
|
8
|
-
};
|
|
9
|
-
function getSizing(origin) {
|
|
10
|
-
return Sizable[origin] ?? null;
|
|
11
|
-
}
|
|
12
|
-
const FormatDictionary = {
|
|
13
|
-
regex: "entrée",
|
|
14
|
-
email: "adresse e-mail",
|
|
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: "date et heure ISO",
|
|
28
|
-
date: "date ISO",
|
|
29
|
-
time: "heure ISO",
|
|
30
|
-
duration: "durée ISO",
|
|
31
|
-
ipv4: "adresse IPv4",
|
|
32
|
-
ipv6: "adresse IPv6",
|
|
33
|
-
cidrv4: "plage IPv4",
|
|
34
|
-
cidrv6: "plage IPv6",
|
|
35
|
-
base64: "chaîne encodée en base64",
|
|
36
|
-
base64url: "chaîne encodée en base64url",
|
|
37
|
-
json_string: "chaîne JSON",
|
|
38
|
-
e164: "numéro E.164",
|
|
39
|
-
jwt: "JWT",
|
|
40
|
-
template_literal: "entrée",
|
|
41
|
-
};
|
|
42
|
-
const TypeDictionary = {
|
|
43
|
-
string: "chaîne",
|
|
44
|
-
number: "nombre",
|
|
45
|
-
int: "entier",
|
|
46
|
-
boolean: "booléen",
|
|
47
|
-
bigint: "grand entier",
|
|
48
|
-
symbol: "symbole",
|
|
49
|
-
undefined: "indéfini",
|
|
50
|
-
null: "null",
|
|
51
|
-
never: "jamais",
|
|
52
|
-
void: "vide",
|
|
53
|
-
date: "date",
|
|
54
|
-
array: "tableau",
|
|
55
|
-
object: "objet",
|
|
56
|
-
tuple: "tuple",
|
|
57
|
-
record: "enregistrement",
|
|
58
|
-
map: "carte",
|
|
59
|
-
set: "ensemble",
|
|
60
|
-
file: "fichier",
|
|
61
|
-
nonoptional: "non-optionnel",
|
|
62
|
-
nan: "NaN",
|
|
63
|
-
function: "fonction",
|
|
64
|
-
};
|
|
65
|
-
return (issue) => {
|
|
66
|
-
switch (issue.code) {
|
|
67
|
-
case "invalid_type": {
|
|
68
|
-
const expected = TypeDictionary[issue.expected] ?? issue.expected;
|
|
69
|
-
const receivedType = util.parsedType(issue.input);
|
|
70
|
-
const received = TypeDictionary[receivedType] ?? receivedType;
|
|
71
|
-
if (/^[A-Z]/.test(issue.expected)) {
|
|
72
|
-
return `Entrée invalide : instanceof ${issue.expected} attendu, ${received} reçu`;
|
|
73
|
-
}
|
|
74
|
-
return `Entrée invalide : ${expected} attendu, ${received} reçu`;
|
|
75
|
-
}
|
|
76
|
-
case "invalid_value":
|
|
77
|
-
if (issue.values.length === 1)
|
|
78
|
-
return `Entrée invalide : ${util.stringifyPrimitive(issue.values[0])} attendu`;
|
|
79
|
-
return `Option invalide : une valeur parmi ${util.joinValues(issue.values, "|")} attendue`;
|
|
80
|
-
case "too_big": {
|
|
81
|
-
const adj = issue.inclusive ? "<=" : "<";
|
|
82
|
-
const sizing = getSizing(issue.origin);
|
|
83
|
-
if (sizing)
|
|
84
|
-
return `Trop grand : ${TypeDictionary[issue.origin] ?? "valeur"} doit ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "élément(s)"}`;
|
|
85
|
-
return `Trop grand : ${TypeDictionary[issue.origin] ?? "valeur"} doit être ${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 `Trop petit : ${TypeDictionary[issue.origin] ?? "valeur"} doit ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
92
|
-
return `Trop petit : ${TypeDictionary[issue.origin] ?? "valeur"} doit être ${adj}${issue.minimum.toString()}`;
|
|
93
|
-
}
|
|
94
|
-
case "invalid_format": {
|
|
95
|
-
const _issue = issue;
|
|
96
|
-
if (_issue.format === "starts_with")
|
|
97
|
-
return `Chaîne invalide : doit commencer par "${_issue.prefix}"`;
|
|
98
|
-
if (_issue.format === "ends_with")
|
|
99
|
-
return `Chaîne invalide : doit se terminer par "${_issue.suffix}"`;
|
|
100
|
-
if (_issue.format === "includes")
|
|
101
|
-
return `Chaîne invalide : doit inclure "${_issue.includes}"`;
|
|
102
|
-
if (_issue.format === "regex")
|
|
103
|
-
return `Chaîne invalide : doit correspondre au modèle ${_issue.pattern}`;
|
|
104
|
-
return `${FormatDictionary[_issue.format] ?? issue.format} invalide`;
|
|
105
|
-
}
|
|
106
|
-
case "not_multiple_of":
|
|
107
|
-
return `Nombre invalide : doit être un multiple de ${issue.divisor}`;
|
|
108
|
-
case "unrecognized_keys":
|
|
109
|
-
return `Clé${issue.keys.length > 1 ? "s" : ""} non reconnue${issue.keys.length > 1 ? "s" : ""} : ${util.joinValues(issue.keys, ", ")}`;
|
|
110
|
-
case "invalid_key":
|
|
111
|
-
return `Clé invalide dans ${issue.origin}`;
|
|
112
|
-
case "invalid_union":
|
|
113
|
-
return "Entrée invalide";
|
|
114
|
-
case "invalid_element":
|
|
115
|
-
return `Valeur invalide dans ${issue.origin}`;
|
|
116
|
-
default:
|
|
117
|
-
return `Entrée invalide`;
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
};
|
|
121
|
-
export default function () {
|
|
122
|
-
return {
|
|
123
|
-
localeError: error(),
|
|
124
|
-
};
|
|
125
|
-
}
|
|
1
|
+
import * as util from "../core/util.js";
|
|
2
|
+
const error = () => {
|
|
3
|
+
const Sizable = {
|
|
4
|
+
string: { unit: "caractères", verb: "avoir" },
|
|
5
|
+
file: { unit: "octets", verb: "avoir" },
|
|
6
|
+
array: { unit: "éléments", verb: "avoir" },
|
|
7
|
+
set: { unit: "éléments", verb: "avoir" },
|
|
8
|
+
};
|
|
9
|
+
function getSizing(origin) {
|
|
10
|
+
return Sizable[origin] ?? null;
|
|
11
|
+
}
|
|
12
|
+
const FormatDictionary = {
|
|
13
|
+
regex: "entrée",
|
|
14
|
+
email: "adresse e-mail",
|
|
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: "date et heure ISO",
|
|
28
|
+
date: "date ISO",
|
|
29
|
+
time: "heure ISO",
|
|
30
|
+
duration: "durée ISO",
|
|
31
|
+
ipv4: "adresse IPv4",
|
|
32
|
+
ipv6: "adresse IPv6",
|
|
33
|
+
cidrv4: "plage IPv4",
|
|
34
|
+
cidrv6: "plage IPv6",
|
|
35
|
+
base64: "chaîne encodée en base64",
|
|
36
|
+
base64url: "chaîne encodée en base64url",
|
|
37
|
+
json_string: "chaîne JSON",
|
|
38
|
+
e164: "numéro E.164",
|
|
39
|
+
jwt: "JWT",
|
|
40
|
+
template_literal: "entrée",
|
|
41
|
+
};
|
|
42
|
+
const TypeDictionary = {
|
|
43
|
+
string: "chaîne",
|
|
44
|
+
number: "nombre",
|
|
45
|
+
int: "entier",
|
|
46
|
+
boolean: "booléen",
|
|
47
|
+
bigint: "grand entier",
|
|
48
|
+
symbol: "symbole",
|
|
49
|
+
undefined: "indéfini",
|
|
50
|
+
null: "null",
|
|
51
|
+
never: "jamais",
|
|
52
|
+
void: "vide",
|
|
53
|
+
date: "date",
|
|
54
|
+
array: "tableau",
|
|
55
|
+
object: "objet",
|
|
56
|
+
tuple: "tuple",
|
|
57
|
+
record: "enregistrement",
|
|
58
|
+
map: "carte",
|
|
59
|
+
set: "ensemble",
|
|
60
|
+
file: "fichier",
|
|
61
|
+
nonoptional: "non-optionnel",
|
|
62
|
+
nan: "NaN",
|
|
63
|
+
function: "fonction",
|
|
64
|
+
};
|
|
65
|
+
return (issue) => {
|
|
66
|
+
switch (issue.code) {
|
|
67
|
+
case "invalid_type": {
|
|
68
|
+
const expected = TypeDictionary[issue.expected] ?? issue.expected;
|
|
69
|
+
const receivedType = util.parsedType(issue.input);
|
|
70
|
+
const received = TypeDictionary[receivedType] ?? receivedType;
|
|
71
|
+
if (/^[A-Z]/.test(issue.expected)) {
|
|
72
|
+
return `Entrée invalide : instanceof ${issue.expected} attendu, ${received} reçu`;
|
|
73
|
+
}
|
|
74
|
+
return `Entrée invalide : ${expected} attendu, ${received} reçu`;
|
|
75
|
+
}
|
|
76
|
+
case "invalid_value":
|
|
77
|
+
if (issue.values.length === 1)
|
|
78
|
+
return `Entrée invalide : ${util.stringifyPrimitive(issue.values[0])} attendu`;
|
|
79
|
+
return `Option invalide : une valeur parmi ${util.joinValues(issue.values, "|")} attendue`;
|
|
80
|
+
case "too_big": {
|
|
81
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
82
|
+
const sizing = getSizing(issue.origin);
|
|
83
|
+
if (sizing)
|
|
84
|
+
return `Trop grand : ${TypeDictionary[issue.origin] ?? "valeur"} doit ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "élément(s)"}`;
|
|
85
|
+
return `Trop grand : ${TypeDictionary[issue.origin] ?? "valeur"} doit être ${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 `Trop petit : ${TypeDictionary[issue.origin] ?? "valeur"} doit ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
92
|
+
return `Trop petit : ${TypeDictionary[issue.origin] ?? "valeur"} doit être ${adj}${issue.minimum.toString()}`;
|
|
93
|
+
}
|
|
94
|
+
case "invalid_format": {
|
|
95
|
+
const _issue = issue;
|
|
96
|
+
if (_issue.format === "starts_with")
|
|
97
|
+
return `Chaîne invalide : doit commencer par "${_issue.prefix}"`;
|
|
98
|
+
if (_issue.format === "ends_with")
|
|
99
|
+
return `Chaîne invalide : doit se terminer par "${_issue.suffix}"`;
|
|
100
|
+
if (_issue.format === "includes")
|
|
101
|
+
return `Chaîne invalide : doit inclure "${_issue.includes}"`;
|
|
102
|
+
if (_issue.format === "regex")
|
|
103
|
+
return `Chaîne invalide : doit correspondre au modèle ${_issue.pattern}`;
|
|
104
|
+
return `${FormatDictionary[_issue.format] ?? issue.format} invalide`;
|
|
105
|
+
}
|
|
106
|
+
case "not_multiple_of":
|
|
107
|
+
return `Nombre invalide : doit être un multiple de ${issue.divisor}`;
|
|
108
|
+
case "unrecognized_keys":
|
|
109
|
+
return `Clé${issue.keys.length > 1 ? "s" : ""} non reconnue${issue.keys.length > 1 ? "s" : ""} : ${util.joinValues(issue.keys, ", ")}`;
|
|
110
|
+
case "invalid_key":
|
|
111
|
+
return `Clé invalide dans ${issue.origin}`;
|
|
112
|
+
case "invalid_union":
|
|
113
|
+
return "Entrée invalide";
|
|
114
|
+
case "invalid_element":
|
|
115
|
+
return `Valeur invalide dans ${issue.origin}`;
|
|
116
|
+
default:
|
|
117
|
+
return `Entrée invalide`;
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
export default function () {
|
|
122
|
+
return {
|
|
123
|
+
localeError: error(),
|
|
124
|
+
};
|
|
125
|
+
}
|