fullstacked 0.12.1-1330 → 0.12.1-1355
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/fullstacked_modules/{ai/index.js → @fullstacked/ai-agent/ai-agent.js} +4868 -8601
- package/fullstacked_modules/@fullstacked/ai-agent/index.ts +5 -3
- package/fullstacked_modules/@fullstacked/ai-agent/package.json +26 -23
- package/fullstacked_modules/@fullstacked/ai-agent/src/providers/anthropic.ts +11 -7
- package/fullstacked_modules/@fullstacked/ai-agent/src/providers/deepseek.ts +11 -7
- package/fullstacked_modules/@fullstacked/ai-agent/src/providers/google.ts +11 -7
- package/fullstacked_modules/@fullstacked/ai-agent/src/providers/index.ts +10 -12
- package/fullstacked_modules/@fullstacked/ai-agent/src/providers/interface.ts +10 -6
- package/fullstacked_modules/@fullstacked/ai-agent/src/providers/mistral.ts +11 -7
- package/fullstacked_modules/@fullstacked/ai-agent/src/providers/ollama.ts +19 -14
- package/fullstacked_modules/@fullstacked/ai-agent/src/providers/openai.ts +11 -7
- package/fullstacked_modules/@fullstacked/ai-agent/src/providers/xai.ts +11 -7
- package/fullstacked_modules/@fullstacked/ui/index.js +664 -0
- package/fullstacked_modules/auto_update/index.ts +66 -0
- package/fullstacked_modules/bridge/index.ts +2 -57
- package/fullstacked_modules/{esbuild/esbuild.ts → build/build.ts} +31 -28
- package/fullstacked_modules/build/index.ts +3 -0
- package/fullstacked_modules/build/sass.ts +55 -0
- package/fullstacked_modules/components/snackbar.css +54 -1
- package/fullstacked_modules/components/snackbar.scss +52 -0
- package/fullstacked_modules/sass/index.js +6445 -6464
- package/fullstacked_modules/zod/index.cjs +33 -0
- package/fullstacked_modules/zod/index.js +4 -0
- package/fullstacked_modules/zod/v3/ZodError.cjs +138 -0
- package/fullstacked_modules/zod/v3/ZodError.js +133 -0
- package/fullstacked_modules/zod/v3/errors.cjs +17 -0
- package/fullstacked_modules/zod/v3/errors.js +9 -0
- package/fullstacked_modules/zod/v3/external.cjs +22 -0
- package/fullstacked_modules/zod/v3/external.js +6 -0
- package/fullstacked_modules/zod/v3/helpers/enumUtil.cjs +2 -0
- package/fullstacked_modules/zod/v3/helpers/enumUtil.js +1 -0
- package/fullstacked_modules/zod/v3/helpers/errorUtil.cjs +9 -0
- package/fullstacked_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/fullstacked_modules/zod/v3/helpers/parseUtil.cjs +124 -0
- package/fullstacked_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/fullstacked_modules/zod/v3/helpers/partialUtil.cjs +2 -0
- package/fullstacked_modules/zod/v3/helpers/partialUtil.js +1 -0
- package/fullstacked_modules/zod/v3/helpers/typeAliases.cjs +2 -0
- package/fullstacked_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/fullstacked_modules/zod/v3/helpers/util.cjs +137 -0
- package/fullstacked_modules/zod/v3/helpers/util.js +133 -0
- package/fullstacked_modules/zod/v3/index.cjs +33 -0
- package/fullstacked_modules/zod/v3/index.js +4 -0
- package/fullstacked_modules/zod/v3/locales/en.cjs +111 -0
- package/fullstacked_modules/zod/v3/locales/en.js +109 -0
- package/fullstacked_modules/zod/v3/standard-schema.cjs +2 -0
- package/fullstacked_modules/zod/v3/standard-schema.js +1 -0
- package/fullstacked_modules/zod/v3/types.cjs +3775 -0
- package/fullstacked_modules/zod/v3/types.js +3693 -0
- package/fullstacked_modules/zod/v4/classic/checks.cjs +32 -0
- package/fullstacked_modules/zod/v4/classic/checks.js +1 -0
- package/fullstacked_modules/zod/v4/classic/coerce.cjs +47 -0
- package/fullstacked_modules/zod/v4/classic/coerce.js +17 -0
- package/fullstacked_modules/zod/v4/classic/compat.cjs +57 -0
- package/fullstacked_modules/zod/v4/classic/compat.js +27 -0
- package/fullstacked_modules/zod/v4/classic/errors.cjs +67 -0
- package/fullstacked_modules/zod/v4/classic/errors.js +41 -0
- package/fullstacked_modules/zod/v4/classic/external.cjs +70 -0
- package/fullstacked_modules/zod/v4/classic/external.js +18 -0
- package/fullstacked_modules/zod/v4/classic/index.cjs +33 -0
- package/fullstacked_modules/zod/v4/classic/index.js +4 -0
- package/fullstacked_modules/zod/v4/classic/iso.cjs +60 -0
- package/fullstacked_modules/zod/v4/classic/iso.js +30 -0
- package/fullstacked_modules/zod/v4/classic/parse.cjs +32 -0
- package/fullstacked_modules/zod/v4/classic/parse.js +6 -0
- package/fullstacked_modules/zod/v4/classic/schemas.cjs +1109 -0
- package/fullstacked_modules/zod/v4/classic/schemas.js +1006 -0
- package/fullstacked_modules/zod/v4/core/api.cjs +1039 -0
- package/fullstacked_modules/zod/v4/core/api.js +906 -0
- package/fullstacked_modules/zod/v4/core/checks.cjs +591 -0
- package/fullstacked_modules/zod/v4/core/checks.js +565 -0
- package/fullstacked_modules/zod/v4/core/core.cjs +67 -0
- package/fullstacked_modules/zod/v4/core/core.js +61 -0
- package/fullstacked_modules/zod/v4/core/doc.cjs +39 -0
- package/fullstacked_modules/zod/v4/core/doc.js +35 -0
- package/fullstacked_modules/zod/v4/core/errors.cjs +226 -0
- package/fullstacked_modules/zod/v4/core/errors.js +195 -0
- package/fullstacked_modules/zod/v4/core/function.cjs +102 -0
- package/fullstacked_modules/zod/v4/core/function.js +75 -0
- package/fullstacked_modules/zod/v4/core/index.cjs +44 -0
- package/fullstacked_modules/zod/v4/core/index.js +15 -0
- package/fullstacked_modules/zod/v4/core/json-schema.cjs +2 -0
- package/fullstacked_modules/zod/v4/core/json-schema.js +1 -0
- package/fullstacked_modules/zod/v4/core/parse.cjs +87 -0
- package/fullstacked_modules/zod/v4/core/parse.js +57 -0
- package/fullstacked_modules/zod/v4/core/regexes.cjs +103 -0
- package/fullstacked_modules/zod/v4/core/regexes.js +95 -0
- package/fullstacked_modules/zod/v4/core/registries.cjs +56 -0
- package/fullstacked_modules/zod/v4/core/registries.js +51 -0
- package/fullstacked_modules/zod/v4/core/schemas.cjs +1748 -0
- package/fullstacked_modules/zod/v4/core/schemas.js +1717 -0
- package/fullstacked_modules/zod/v4/core/standard-schema.cjs +2 -0
- package/fullstacked_modules/zod/v4/core/standard-schema.js +1 -0
- package/fullstacked_modules/zod/v4/core/to-json-schema.cjs +854 -0
- package/fullstacked_modules/zod/v4/core/to-json-schema.js +849 -0
- package/fullstacked_modules/zod/v4/core/util.cjs +539 -0
- package/fullstacked_modules/zod/v4/core/util.js +493 -0
- package/fullstacked_modules/zod/v4/core/versions.cjs +8 -0
- package/fullstacked_modules/zod/v4/core/versions.js +5 -0
- package/fullstacked_modules/zod/v4/index.cjs +22 -0
- package/fullstacked_modules/zod/v4/index.js +3 -0
- package/fullstacked_modules/zod/v4/locales/ar.cjs +142 -0
- package/fullstacked_modules/zod/v4/locales/ar.js +116 -0
- package/fullstacked_modules/zod/v4/locales/az.cjs +141 -0
- package/fullstacked_modules/zod/v4/locales/az.js +115 -0
- package/fullstacked_modules/zod/v4/locales/be.cjs +190 -0
- package/fullstacked_modules/zod/v4/locales/be.js +164 -0
- package/fullstacked_modules/zod/v4/locales/ca.cjs +144 -0
- package/fullstacked_modules/zod/v4/locales/ca.js +118 -0
- package/fullstacked_modules/zod/v4/locales/cs.cjs +161 -0
- package/fullstacked_modules/zod/v4/locales/cs.js +135 -0
- package/fullstacked_modules/zod/v4/locales/de.cjs +142 -0
- package/fullstacked_modules/zod/v4/locales/de.js +116 -0
- package/fullstacked_modules/zod/v4/locales/en.cjs +145 -0
- package/fullstacked_modules/zod/v4/locales/en.js +117 -0
- package/fullstacked_modules/zod/v4/locales/eo.cjs +144 -0
- package/fullstacked_modules/zod/v4/locales/eo.js +116 -0
- package/fullstacked_modules/zod/v4/locales/es.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/es.js +117 -0
- package/fullstacked_modules/zod/v4/locales/fa.cjs +148 -0
- package/fullstacked_modules/zod/v4/locales/fa.js +122 -0
- package/fullstacked_modules/zod/v4/locales/fi.cjs +148 -0
- package/fullstacked_modules/zod/v4/locales/fi.js +122 -0
- package/fullstacked_modules/zod/v4/locales/fr-CA.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/fr-CA.js +117 -0
- package/fullstacked_modules/zod/v4/locales/fr.cjs +142 -0
- package/fullstacked_modules/zod/v4/locales/fr.js +116 -0
- package/fullstacked_modules/zod/v4/locales/he.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/he.js +117 -0
- package/fullstacked_modules/zod/v4/locales/hu.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/hu.js +117 -0
- package/fullstacked_modules/zod/v4/locales/id.cjs +142 -0
- package/fullstacked_modules/zod/v4/locales/id.js +116 -0
- package/fullstacked_modules/zod/v4/locales/index.cjs +84 -0
- package/fullstacked_modules/zod/v4/locales/index.js +39 -0
- package/fullstacked_modules/zod/v4/locales/it.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/it.js +117 -0
- package/fullstacked_modules/zod/v4/locales/ja.cjs +141 -0
- package/fullstacked_modules/zod/v4/locales/ja.js +115 -0
- package/fullstacked_modules/zod/v4/locales/kh.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/kh.js +117 -0
- package/fullstacked_modules/zod/v4/locales/ko.cjs +147 -0
- package/fullstacked_modules/zod/v4/locales/ko.js +121 -0
- package/fullstacked_modules/zod/v4/locales/mk.cjs +144 -0
- package/fullstacked_modules/zod/v4/locales/mk.js +118 -0
- package/fullstacked_modules/zod/v4/locales/ms.cjs +142 -0
- package/fullstacked_modules/zod/v4/locales/ms.js +116 -0
- package/fullstacked_modules/zod/v4/locales/nl.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/nl.js +117 -0
- package/fullstacked_modules/zod/v4/locales/no.cjs +142 -0
- package/fullstacked_modules/zod/v4/locales/no.js +116 -0
- package/fullstacked_modules/zod/v4/locales/ota.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/ota.js +117 -0
- package/fullstacked_modules/zod/v4/locales/pl.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/pl.js +117 -0
- package/fullstacked_modules/zod/v4/locales/ps.cjs +148 -0
- package/fullstacked_modules/zod/v4/locales/ps.js +122 -0
- package/fullstacked_modules/zod/v4/locales/pt.cjs +142 -0
- package/fullstacked_modules/zod/v4/locales/pt.js +116 -0
- package/fullstacked_modules/zod/v4/locales/ru.cjs +190 -0
- package/fullstacked_modules/zod/v4/locales/ru.js +164 -0
- package/fullstacked_modules/zod/v4/locales/sl.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/sl.js +117 -0
- package/fullstacked_modules/zod/v4/locales/sv.cjs +144 -0
- package/fullstacked_modules/zod/v4/locales/sv.js +118 -0
- package/fullstacked_modules/zod/v4/locales/ta.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/ta.js +117 -0
- package/fullstacked_modules/zod/v4/locales/th.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/th.js +117 -0
- package/fullstacked_modules/zod/v4/locales/tr.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/tr.js +115 -0
- package/fullstacked_modules/zod/v4/locales/ua.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/ua.js +117 -0
- package/fullstacked_modules/zod/v4/locales/ur.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/ur.js +117 -0
- package/fullstacked_modules/zod/v4/locales/vi.cjs +142 -0
- package/fullstacked_modules/zod/v4/locales/vi.js +116 -0
- package/fullstacked_modules/zod/v4/locales/zh-CN.cjs +142 -0
- package/fullstacked_modules/zod/v4/locales/zh-CN.js +116 -0
- package/fullstacked_modules/zod/v4/locales/zh-TW.cjs +143 -0
- package/fullstacked_modules/zod/v4/locales/zh-TW.js +117 -0
- package/fullstacked_modules/zod/v4/mini/checks.cjs +34 -0
- package/fullstacked_modules/zod/v4/mini/checks.js +1 -0
- package/fullstacked_modules/zod/v4/mini/coerce.cjs +47 -0
- package/fullstacked_modules/zod/v4/mini/coerce.js +17 -0
- package/fullstacked_modules/zod/v4/mini/external.cjs +62 -0
- package/fullstacked_modules/zod/v4/mini/external.js +13 -0
- package/fullstacked_modules/zod/v4/mini/index.cjs +32 -0
- package/fullstacked_modules/zod/v4/mini/index.js +3 -0
- package/fullstacked_modules/zod/v4/mini/iso.cjs +60 -0
- package/fullstacked_modules/zod/v4/mini/iso.js +30 -0
- package/fullstacked_modules/zod/v4/mini/parse.cjs +8 -0
- package/fullstacked_modules/zod/v4/mini/parse.js +1 -0
- package/fullstacked_modules/zod/v4/mini/schemas.cjs +839 -0
- package/fullstacked_modules/zod/v4/mini/schemas.js +732 -0
- package/fullstacked_modules/zod/v4-mini/index.cjs +17 -0
- package/fullstacked_modules/zod/v4-mini/index.js +1 -0
- package/index.js +121 -186
- package/package.json +4 -4
- package/fullstacked_modules/@fullstacked/ui/README.md +0 -3
- package/fullstacked_modules/@fullstacked/ui/components/button-group/button-group.scss +0 -28
- package/fullstacked_modules/@fullstacked/ui/components/button-group/index.ts +0 -8
- package/fullstacked_modules/@fullstacked/ui/components/dialog/dialog.scss +0 -39
- package/fullstacked_modules/@fullstacked/ui/components/dialog/index.ts +0 -17
- package/fullstacked_modules/@fullstacked/ui/components/list-item/index.ts +0 -37
- package/fullstacked_modules/@fullstacked/ui/components/list-item/list-item.scss +0 -19
- package/fullstacked_modules/@fullstacked/ui/components/loader/index.ts +0 -14
- package/fullstacked_modules/@fullstacked/ui/components/loader/loader.scss +0 -25
- package/fullstacked_modules/@fullstacked/ui/components/message/index.ts +0 -26
- package/fullstacked_modules/@fullstacked/ui/components/message/message.scss +0 -20
- package/fullstacked_modules/@fullstacked/ui/components/popover/index.ts +0 -114
- package/fullstacked_modules/@fullstacked/ui/components/popover/popover.scss +0 -44
- package/fullstacked_modules/@fullstacked/ui/globals.scss +0 -66
- package/fullstacked_modules/@fullstacked/ui/icons/Archive.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Arrow 2.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Arrow Corner.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Arrow.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Caret.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Check.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Clipboard.svg +0 -12
- package/fullstacked_modules/@fullstacked/ui/icons/Clock.svg +0 -12
- package/fullstacked_modules/@fullstacked/ui/icons/Close.svg +0 -10
- package/fullstacked_modules/@fullstacked/ui/icons/Copy.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Directory Add.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Edit.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Export.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/External Link.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/File Add.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/File.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Git Branch.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Git.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Glitter.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Info.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Link.svg +0 -10
- package/fullstacked_modules/@fullstacked/ui/icons/Loader.svg +0 -4
- package/fullstacked_modules/@fullstacked/ui/icons/Lock.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Options.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Package.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Peers.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Play.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Plus.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Revert.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Settings.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Side Panel.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Terminal.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Trash.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/TypeScript.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Upload.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/User.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/icons/Warning.svg +0 -3
- package/fullstacked_modules/@fullstacked/ui/inputs/checkbox/index.ts +0 -28
- package/fullstacked_modules/@fullstacked/ui/inputs/file/index.ts +0 -48
- package/fullstacked_modules/@fullstacked/ui/inputs/inputs.scss +0 -224
- package/fullstacked_modules/@fullstacked/ui/inputs/observer.ts +0 -36
- package/fullstacked_modules/@fullstacked/ui/inputs/predictive/index.ts +0 -195
- package/fullstacked_modules/@fullstacked/ui/inputs/radio/index.ts +0 -28
- package/fullstacked_modules/@fullstacked/ui/inputs/select/index.ts +0 -125
- package/fullstacked_modules/@fullstacked/ui/inputs/switch/index.ts +0 -37
- package/fullstacked_modules/@fullstacked/ui/inputs/text/index.ts +0 -53
- package/fullstacked_modules/@fullstacked/ui/package.json +0 -8
- package/fullstacked_modules/@fullstacked/ui/primitives/badge/badge.scss +0 -35
- package/fullstacked_modules/@fullstacked/ui/primitives/badge/index.ts +0 -23
- package/fullstacked_modules/@fullstacked/ui/primitives/button/button.scss +0 -97
- package/fullstacked_modules/@fullstacked/ui/primitives/button/index.ts +0 -41
- package/fullstacked_modules/@fullstacked/ui/primitives/icon/icon.scss +0 -13
- package/fullstacked_modules/@fullstacked/ui/primitives/icon/index.ts +0 -30
- package/fullstacked_modules/@fullstacked/ui/ui.scss +0 -15
- package/fullstacked_modules/@fullstacked/ui/ui.ts +0 -18
- package/fullstacked_modules/@fullstacked/ui/values/breakpoints.scss +0 -7
- package/fullstacked_modules/@fullstacked/ui/values/colors.scss +0 -26
- package/fullstacked_modules/@fullstacked/ui/values/spacing.scss +0 -10
- package/fullstacked_modules/@fullstacked/ui/values/typography.scss +0 -23
- package/fullstacked_modules/esbuild/index.d.ts +0 -0
- package/fullstacked_modules/esbuild/index.ts +0 -3
- package/fullstacked_modules/esbuild/sass.ts +0 -100
- package/fullstacked_modules/sass/index.d.ts +0 -0
- /package/fullstacked_modules/{@fullstacked → build}/index.d.ts +0 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import * as util from "../core/util.js";
|
|
2
|
+
function getRussianPlural(count, one, few, many) {
|
|
3
|
+
const absCount = Math.abs(count);
|
|
4
|
+
const lastDigit = absCount % 10;
|
|
5
|
+
const lastTwoDigits = absCount % 100;
|
|
6
|
+
if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {
|
|
7
|
+
return many;
|
|
8
|
+
}
|
|
9
|
+
if (lastDigit === 1) {
|
|
10
|
+
return one;
|
|
11
|
+
}
|
|
12
|
+
if (lastDigit >= 2 && lastDigit <= 4) {
|
|
13
|
+
return few;
|
|
14
|
+
}
|
|
15
|
+
return many;
|
|
16
|
+
}
|
|
17
|
+
const error = () => {
|
|
18
|
+
const Sizable = {
|
|
19
|
+
string: {
|
|
20
|
+
unit: {
|
|
21
|
+
one: "символ",
|
|
22
|
+
few: "символа",
|
|
23
|
+
many: "символов",
|
|
24
|
+
},
|
|
25
|
+
verb: "иметь",
|
|
26
|
+
},
|
|
27
|
+
file: {
|
|
28
|
+
unit: {
|
|
29
|
+
one: "байт",
|
|
30
|
+
few: "байта",
|
|
31
|
+
many: "байт",
|
|
32
|
+
},
|
|
33
|
+
verb: "иметь",
|
|
34
|
+
},
|
|
35
|
+
array: {
|
|
36
|
+
unit: {
|
|
37
|
+
one: "элемент",
|
|
38
|
+
few: "элемента",
|
|
39
|
+
many: "элементов",
|
|
40
|
+
},
|
|
41
|
+
verb: "иметь",
|
|
42
|
+
},
|
|
43
|
+
set: {
|
|
44
|
+
unit: {
|
|
45
|
+
one: "элемент",
|
|
46
|
+
few: "элемента",
|
|
47
|
+
many: "элементов",
|
|
48
|
+
},
|
|
49
|
+
verb: "иметь",
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
function getSizing(origin) {
|
|
53
|
+
return Sizable[origin] ?? null;
|
|
54
|
+
}
|
|
55
|
+
const parsedType = (data) => {
|
|
56
|
+
const t = typeof data;
|
|
57
|
+
switch (t) {
|
|
58
|
+
case "number": {
|
|
59
|
+
return Number.isNaN(data) ? "NaN" : "число";
|
|
60
|
+
}
|
|
61
|
+
case "object": {
|
|
62
|
+
if (Array.isArray(data)) {
|
|
63
|
+
return "массив";
|
|
64
|
+
}
|
|
65
|
+
if (data === null) {
|
|
66
|
+
return "null";
|
|
67
|
+
}
|
|
68
|
+
if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {
|
|
69
|
+
return data.constructor.name;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return t;
|
|
74
|
+
};
|
|
75
|
+
const Nouns = {
|
|
76
|
+
regex: "ввод",
|
|
77
|
+
email: "email адрес",
|
|
78
|
+
url: "URL",
|
|
79
|
+
emoji: "эмодзи",
|
|
80
|
+
uuid: "UUID",
|
|
81
|
+
uuidv4: "UUIDv4",
|
|
82
|
+
uuidv6: "UUIDv6",
|
|
83
|
+
nanoid: "nanoid",
|
|
84
|
+
guid: "GUID",
|
|
85
|
+
cuid: "cuid",
|
|
86
|
+
cuid2: "cuid2",
|
|
87
|
+
ulid: "ULID",
|
|
88
|
+
xid: "XID",
|
|
89
|
+
ksuid: "KSUID",
|
|
90
|
+
datetime: "ISO дата и время",
|
|
91
|
+
date: "ISO дата",
|
|
92
|
+
time: "ISO время",
|
|
93
|
+
duration: "ISO длительность",
|
|
94
|
+
ipv4: "IPv4 адрес",
|
|
95
|
+
ipv6: "IPv6 адрес",
|
|
96
|
+
cidrv4: "IPv4 диапазон",
|
|
97
|
+
cidrv6: "IPv6 диапазон",
|
|
98
|
+
base64: "строка в формате base64",
|
|
99
|
+
base64url: "строка в формате base64url",
|
|
100
|
+
json_string: "JSON строка",
|
|
101
|
+
e164: "номер E.164",
|
|
102
|
+
jwt: "JWT",
|
|
103
|
+
template_literal: "ввод",
|
|
104
|
+
};
|
|
105
|
+
return (issue) => {
|
|
106
|
+
switch (issue.code) {
|
|
107
|
+
case "invalid_type":
|
|
108
|
+
return `Неверный ввод: ожидалось ${issue.expected}, получено ${parsedType(issue.input)}`;
|
|
109
|
+
case "invalid_value":
|
|
110
|
+
if (issue.values.length === 1)
|
|
111
|
+
return `Неверный ввод: ожидалось ${util.stringifyPrimitive(issue.values[0])}`;
|
|
112
|
+
return `Неверный вариант: ожидалось одно из ${util.joinValues(issue.values, "|")}`;
|
|
113
|
+
case "too_big": {
|
|
114
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
115
|
+
const sizing = getSizing(issue.origin);
|
|
116
|
+
if (sizing) {
|
|
117
|
+
const maxValue = Number(issue.maximum);
|
|
118
|
+
const unit = getRussianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);
|
|
119
|
+
return `Слишком большое значение: ожидалось, что ${issue.origin ?? "значение"} будет иметь ${adj}${issue.maximum.toString()} ${unit}`;
|
|
120
|
+
}
|
|
121
|
+
return `Слишком большое значение: ожидалось, что ${issue.origin ?? "значение"} будет ${adj}${issue.maximum.toString()}`;
|
|
122
|
+
}
|
|
123
|
+
case "too_small": {
|
|
124
|
+
const adj = issue.inclusive ? ">=" : ">";
|
|
125
|
+
const sizing = getSizing(issue.origin);
|
|
126
|
+
if (sizing) {
|
|
127
|
+
const minValue = Number(issue.minimum);
|
|
128
|
+
const unit = getRussianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);
|
|
129
|
+
return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет иметь ${adj}${issue.minimum.toString()} ${unit}`;
|
|
130
|
+
}
|
|
131
|
+
return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет ${adj}${issue.minimum.toString()}`;
|
|
132
|
+
}
|
|
133
|
+
case "invalid_format": {
|
|
134
|
+
const _issue = issue;
|
|
135
|
+
if (_issue.format === "starts_with")
|
|
136
|
+
return `Неверная строка: должна начинаться с "${_issue.prefix}"`;
|
|
137
|
+
if (_issue.format === "ends_with")
|
|
138
|
+
return `Неверная строка: должна заканчиваться на "${_issue.suffix}"`;
|
|
139
|
+
if (_issue.format === "includes")
|
|
140
|
+
return `Неверная строка: должна содержать "${_issue.includes}"`;
|
|
141
|
+
if (_issue.format === "regex")
|
|
142
|
+
return `Неверная строка: должна соответствовать шаблону ${_issue.pattern}`;
|
|
143
|
+
return `Неверный ${Nouns[_issue.format] ?? issue.format}`;
|
|
144
|
+
}
|
|
145
|
+
case "not_multiple_of":
|
|
146
|
+
return `Неверное число: должно быть кратным ${issue.divisor}`;
|
|
147
|
+
case "unrecognized_keys":
|
|
148
|
+
return `Нераспознанн${issue.keys.length > 1 ? "ые" : "ый"} ключ${issue.keys.length > 1 ? "и" : ""}: ${util.joinValues(issue.keys, ", ")}`;
|
|
149
|
+
case "invalid_key":
|
|
150
|
+
return `Неверный ключ в ${issue.origin}`;
|
|
151
|
+
case "invalid_union":
|
|
152
|
+
return "Неверные входные данные";
|
|
153
|
+
case "invalid_element":
|
|
154
|
+
return `Неверное значение в ${issue.origin}`;
|
|
155
|
+
default:
|
|
156
|
+
return `Неверные входные данные`;
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
export default function () {
|
|
161
|
+
return {
|
|
162
|
+
localeError: error(),
|
|
163
|
+
};
|
|
164
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
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: "znakov", verb: "imeti" },
|
|
31
|
+
file: { unit: "bajtov", verb: "imeti" },
|
|
32
|
+
array: { unit: "elementov", verb: "imeti" },
|
|
33
|
+
set: { unit: "elementov", verb: "imeti" },
|
|
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" : "število";
|
|
43
|
+
}
|
|
44
|
+
case "object": {
|
|
45
|
+
if (Array.isArray(data)) {
|
|
46
|
+
return "tabela";
|
|
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: "vnos",
|
|
60
|
+
email: "e-poštni naslov",
|
|
61
|
+
url: "URL",
|
|
62
|
+
emoji: "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 datum in čas",
|
|
74
|
+
date: "ISO datum",
|
|
75
|
+
time: "ISO čas",
|
|
76
|
+
duration: "ISO trajanje",
|
|
77
|
+
ipv4: "IPv4 naslov",
|
|
78
|
+
ipv6: "IPv6 naslov",
|
|
79
|
+
cidrv4: "obseg IPv4",
|
|
80
|
+
cidrv6: "obseg IPv6",
|
|
81
|
+
base64: "base64 kodiran niz",
|
|
82
|
+
base64url: "base64url kodiran niz",
|
|
83
|
+
json_string: "JSON niz",
|
|
84
|
+
e164: "E.164 številka",
|
|
85
|
+
jwt: "JWT",
|
|
86
|
+
template_literal: "vnos",
|
|
87
|
+
};
|
|
88
|
+
return (issue) => {
|
|
89
|
+
switch (issue.code) {
|
|
90
|
+
case "invalid_type":
|
|
91
|
+
return `Neveljaven vnos: pričakovano ${issue.expected}, prejeto ${parsedType(issue.input)}`;
|
|
92
|
+
case "invalid_value":
|
|
93
|
+
if (issue.values.length === 1)
|
|
94
|
+
return `Neveljaven vnos: pričakovano ${util.stringifyPrimitive(issue.values[0])}`;
|
|
95
|
+
return `Neveljavna možnost: pričakovano eno izmed ${util.joinValues(issue.values, "|")}`;
|
|
96
|
+
case "too_big": {
|
|
97
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
98
|
+
const sizing = getSizing(issue.origin);
|
|
99
|
+
if (sizing)
|
|
100
|
+
return `Preveliko: pričakovano, da bo ${issue.origin ?? "vrednost"} imelo ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementov"}`;
|
|
101
|
+
return `Preveliko: pričakovano, da bo ${issue.origin ?? "vrednost"} ${adj}${issue.maximum.toString()}`;
|
|
102
|
+
}
|
|
103
|
+
case "too_small": {
|
|
104
|
+
const adj = issue.inclusive ? ">=" : ">";
|
|
105
|
+
const sizing = getSizing(issue.origin);
|
|
106
|
+
if (sizing) {
|
|
107
|
+
return `Premajhno: pričakovano, da bo ${issue.origin} imelo ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
108
|
+
}
|
|
109
|
+
return `Premajhno: pričakovano, da bo ${issue.origin} ${adj}${issue.minimum.toString()}`;
|
|
110
|
+
}
|
|
111
|
+
case "invalid_format": {
|
|
112
|
+
const _issue = issue;
|
|
113
|
+
if (_issue.format === "starts_with") {
|
|
114
|
+
return `Neveljaven niz: mora se začeti z "${_issue.prefix}"`;
|
|
115
|
+
}
|
|
116
|
+
if (_issue.format === "ends_with")
|
|
117
|
+
return `Neveljaven niz: mora se končati z "${_issue.suffix}"`;
|
|
118
|
+
if (_issue.format === "includes")
|
|
119
|
+
return `Neveljaven niz: mora vsebovati "${_issue.includes}"`;
|
|
120
|
+
if (_issue.format === "regex")
|
|
121
|
+
return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`;
|
|
122
|
+
return `Neveljaven ${Nouns[_issue.format] ?? issue.format}`;
|
|
123
|
+
}
|
|
124
|
+
case "not_multiple_of":
|
|
125
|
+
return `Neveljavno število: mora biti večkratnik ${issue.divisor}`;
|
|
126
|
+
case "unrecognized_keys":
|
|
127
|
+
return `Neprepoznan${issue.keys.length > 1 ? "i ključi" : " ključ"}: ${util.joinValues(issue.keys, ", ")}`;
|
|
128
|
+
case "invalid_key":
|
|
129
|
+
return `Neveljaven ključ v ${issue.origin}`;
|
|
130
|
+
case "invalid_union":
|
|
131
|
+
return "Neveljaven vnos";
|
|
132
|
+
case "invalid_element":
|
|
133
|
+
return `Neveljavna vrednost v ${issue.origin}`;
|
|
134
|
+
default:
|
|
135
|
+
return "Neveljaven vnos";
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
function default_1() {
|
|
140
|
+
return {
|
|
141
|
+
localeError: error(),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import * as util from "../core/util.js";
|
|
2
|
+
const error = () => {
|
|
3
|
+
const Sizable = {
|
|
4
|
+
string: { unit: "znakov", verb: "imeti" },
|
|
5
|
+
file: { unit: "bajtov", verb: "imeti" },
|
|
6
|
+
array: { unit: "elementov", verb: "imeti" },
|
|
7
|
+
set: { unit: "elementov", verb: "imeti" },
|
|
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" : "število";
|
|
17
|
+
}
|
|
18
|
+
case "object": {
|
|
19
|
+
if (Array.isArray(data)) {
|
|
20
|
+
return "tabela";
|
|
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: "vnos",
|
|
34
|
+
email: "e-poštni naslov",
|
|
35
|
+
url: "URL",
|
|
36
|
+
emoji: "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 datum in čas",
|
|
48
|
+
date: "ISO datum",
|
|
49
|
+
time: "ISO čas",
|
|
50
|
+
duration: "ISO trajanje",
|
|
51
|
+
ipv4: "IPv4 naslov",
|
|
52
|
+
ipv6: "IPv6 naslov",
|
|
53
|
+
cidrv4: "obseg IPv4",
|
|
54
|
+
cidrv6: "obseg IPv6",
|
|
55
|
+
base64: "base64 kodiran niz",
|
|
56
|
+
base64url: "base64url kodiran niz",
|
|
57
|
+
json_string: "JSON niz",
|
|
58
|
+
e164: "E.164 številka",
|
|
59
|
+
jwt: "JWT",
|
|
60
|
+
template_literal: "vnos",
|
|
61
|
+
};
|
|
62
|
+
return (issue) => {
|
|
63
|
+
switch (issue.code) {
|
|
64
|
+
case "invalid_type":
|
|
65
|
+
return `Neveljaven vnos: pričakovano ${issue.expected}, prejeto ${parsedType(issue.input)}`;
|
|
66
|
+
case "invalid_value":
|
|
67
|
+
if (issue.values.length === 1)
|
|
68
|
+
return `Neveljaven vnos: pričakovano ${util.stringifyPrimitive(issue.values[0])}`;
|
|
69
|
+
return `Neveljavna možnost: pričakovano eno izmed ${util.joinValues(issue.values, "|")}`;
|
|
70
|
+
case "too_big": {
|
|
71
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
72
|
+
const sizing = getSizing(issue.origin);
|
|
73
|
+
if (sizing)
|
|
74
|
+
return `Preveliko: pričakovano, da bo ${issue.origin ?? "vrednost"} imelo ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elementov"}`;
|
|
75
|
+
return `Preveliko: pričakovano, da bo ${issue.origin ?? "vrednost"} ${adj}${issue.maximum.toString()}`;
|
|
76
|
+
}
|
|
77
|
+
case "too_small": {
|
|
78
|
+
const adj = issue.inclusive ? ">=" : ">";
|
|
79
|
+
const sizing = getSizing(issue.origin);
|
|
80
|
+
if (sizing) {
|
|
81
|
+
return `Premajhno: pričakovano, da bo ${issue.origin} imelo ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
82
|
+
}
|
|
83
|
+
return `Premajhno: pričakovano, da bo ${issue.origin} ${adj}${issue.minimum.toString()}`;
|
|
84
|
+
}
|
|
85
|
+
case "invalid_format": {
|
|
86
|
+
const _issue = issue;
|
|
87
|
+
if (_issue.format === "starts_with") {
|
|
88
|
+
return `Neveljaven niz: mora se začeti z "${_issue.prefix}"`;
|
|
89
|
+
}
|
|
90
|
+
if (_issue.format === "ends_with")
|
|
91
|
+
return `Neveljaven niz: mora se končati z "${_issue.suffix}"`;
|
|
92
|
+
if (_issue.format === "includes")
|
|
93
|
+
return `Neveljaven niz: mora vsebovati "${_issue.includes}"`;
|
|
94
|
+
if (_issue.format === "regex")
|
|
95
|
+
return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`;
|
|
96
|
+
return `Neveljaven ${Nouns[_issue.format] ?? issue.format}`;
|
|
97
|
+
}
|
|
98
|
+
case "not_multiple_of":
|
|
99
|
+
return `Neveljavno število: mora biti večkratnik ${issue.divisor}`;
|
|
100
|
+
case "unrecognized_keys":
|
|
101
|
+
return `Neprepoznan${issue.keys.length > 1 ? "i ključi" : " ključ"}: ${util.joinValues(issue.keys, ", ")}`;
|
|
102
|
+
case "invalid_key":
|
|
103
|
+
return `Neveljaven ključ v ${issue.origin}`;
|
|
104
|
+
case "invalid_union":
|
|
105
|
+
return "Neveljaven vnos";
|
|
106
|
+
case "invalid_element":
|
|
107
|
+
return `Neveljavna vrednost v ${issue.origin}`;
|
|
108
|
+
default:
|
|
109
|
+
return "Neveljaven vnos";
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
export default function () {
|
|
114
|
+
return {
|
|
115
|
+
localeError: error(),
|
|
116
|
+
};
|
|
117
|
+
}
|
|
@@ -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: "tecken", verb: "att ha" },
|
|
31
|
+
file: { unit: "bytes", verb: "att ha" },
|
|
32
|
+
array: { unit: "objekt", verb: "att innehålla" },
|
|
33
|
+
set: { unit: "objekt", verb: "att innehålla" },
|
|
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" : "antal";
|
|
43
|
+
}
|
|
44
|
+
case "object": {
|
|
45
|
+
if (Array.isArray(data)) {
|
|
46
|
+
return "lista";
|
|
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: "reguljärt uttryck",
|
|
60
|
+
email: "e-postadress",
|
|
61
|
+
url: "URL",
|
|
62
|
+
emoji: "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-datum och tid",
|
|
74
|
+
date: "ISO-datum",
|
|
75
|
+
time: "ISO-tid",
|
|
76
|
+
duration: "ISO-varaktighet",
|
|
77
|
+
ipv4: "IPv4-intervall",
|
|
78
|
+
ipv6: "IPv6-intervall",
|
|
79
|
+
cidrv4: "IPv4-spektrum",
|
|
80
|
+
cidrv6: "IPv6-spektrum",
|
|
81
|
+
base64: "base64-kodad sträng",
|
|
82
|
+
base64url: "base64url-kodad sträng",
|
|
83
|
+
json_string: "JSON-sträng",
|
|
84
|
+
e164: "E.164-nummer",
|
|
85
|
+
jwt: "JWT",
|
|
86
|
+
template_literal: "mall-literal",
|
|
87
|
+
};
|
|
88
|
+
return (issue) => {
|
|
89
|
+
switch (issue.code) {
|
|
90
|
+
case "invalid_type":
|
|
91
|
+
return `Ogiltig inmatning: förväntat ${issue.expected}, fick ${parsedType(issue.input)}`;
|
|
92
|
+
case "invalid_value":
|
|
93
|
+
if (issue.values.length === 1)
|
|
94
|
+
return `Ogiltig inmatning: förväntat ${util.stringifyPrimitive(issue.values[0])}`;
|
|
95
|
+
return `Ogiltigt val: förväntade en av ${util.joinValues(issue.values, "|")}`;
|
|
96
|
+
case "too_big": {
|
|
97
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
98
|
+
const sizing = getSizing(issue.origin);
|
|
99
|
+
if (sizing) {
|
|
100
|
+
return `För stor(t): förväntade ${issue.origin ?? "värdet"} att ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? "element"}`;
|
|
101
|
+
}
|
|
102
|
+
return `För stor(t): förväntat ${issue.origin ?? "värdet"} att ha ${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 `För lite(t): förväntade ${issue.origin ?? "värdet"} att ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
109
|
+
}
|
|
110
|
+
return `För lite(t): förväntade ${issue.origin ?? "värdet"} att ha ${adj}${issue.minimum.toString()}`;
|
|
111
|
+
}
|
|
112
|
+
case "invalid_format": {
|
|
113
|
+
const _issue = issue;
|
|
114
|
+
if (_issue.format === "starts_with") {
|
|
115
|
+
return `Ogiltig sträng: måste börja med "${_issue.prefix}"`;
|
|
116
|
+
}
|
|
117
|
+
if (_issue.format === "ends_with")
|
|
118
|
+
return `Ogiltig sträng: måste sluta med "${_issue.suffix}"`;
|
|
119
|
+
if (_issue.format === "includes")
|
|
120
|
+
return `Ogiltig sträng: måste innehålla "${_issue.includes}"`;
|
|
121
|
+
if (_issue.format === "regex")
|
|
122
|
+
return `Ogiltig sträng: måste matcha mönstret "${_issue.pattern}"`;
|
|
123
|
+
return `Ogiltig(t) ${Nouns[_issue.format] ?? issue.format}`;
|
|
124
|
+
}
|
|
125
|
+
case "not_multiple_of":
|
|
126
|
+
return `Ogiltigt tal: måste vara en multipel av ${issue.divisor}`;
|
|
127
|
+
case "unrecognized_keys":
|
|
128
|
+
return `${issue.keys.length > 1 ? "Okända nycklar" : "Okänd nyckel"}: ${util.joinValues(issue.keys, ", ")}`;
|
|
129
|
+
case "invalid_key":
|
|
130
|
+
return `Ogiltig nyckel i ${issue.origin ?? "värdet"}`;
|
|
131
|
+
case "invalid_union":
|
|
132
|
+
return "Ogiltig input";
|
|
133
|
+
case "invalid_element":
|
|
134
|
+
return `Ogiltigt värde i ${issue.origin ?? "värdet"}`;
|
|
135
|
+
default:
|
|
136
|
+
return `Ogiltig input`;
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
function default_1() {
|
|
141
|
+
return {
|
|
142
|
+
localeError: error(),
|
|
143
|
+
};
|
|
144
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import * as util from "../core/util.js";
|
|
2
|
+
const error = () => {
|
|
3
|
+
const Sizable = {
|
|
4
|
+
string: { unit: "tecken", verb: "att ha" },
|
|
5
|
+
file: { unit: "bytes", verb: "att ha" },
|
|
6
|
+
array: { unit: "objekt", verb: "att innehålla" },
|
|
7
|
+
set: { unit: "objekt", verb: "att innehålla" },
|
|
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" : "antal";
|
|
17
|
+
}
|
|
18
|
+
case "object": {
|
|
19
|
+
if (Array.isArray(data)) {
|
|
20
|
+
return "lista";
|
|
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: "reguljärt uttryck",
|
|
34
|
+
email: "e-postadress",
|
|
35
|
+
url: "URL",
|
|
36
|
+
emoji: "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-datum och tid",
|
|
48
|
+
date: "ISO-datum",
|
|
49
|
+
time: "ISO-tid",
|
|
50
|
+
duration: "ISO-varaktighet",
|
|
51
|
+
ipv4: "IPv4-intervall",
|
|
52
|
+
ipv6: "IPv6-intervall",
|
|
53
|
+
cidrv4: "IPv4-spektrum",
|
|
54
|
+
cidrv6: "IPv6-spektrum",
|
|
55
|
+
base64: "base64-kodad sträng",
|
|
56
|
+
base64url: "base64url-kodad sträng",
|
|
57
|
+
json_string: "JSON-sträng",
|
|
58
|
+
e164: "E.164-nummer",
|
|
59
|
+
jwt: "JWT",
|
|
60
|
+
template_literal: "mall-literal",
|
|
61
|
+
};
|
|
62
|
+
return (issue) => {
|
|
63
|
+
switch (issue.code) {
|
|
64
|
+
case "invalid_type":
|
|
65
|
+
return `Ogiltig inmatning: förväntat ${issue.expected}, fick ${parsedType(issue.input)}`;
|
|
66
|
+
case "invalid_value":
|
|
67
|
+
if (issue.values.length === 1)
|
|
68
|
+
return `Ogiltig inmatning: förväntat ${util.stringifyPrimitive(issue.values[0])}`;
|
|
69
|
+
return `Ogiltigt val: förväntade en av ${util.joinValues(issue.values, "|")}`;
|
|
70
|
+
case "too_big": {
|
|
71
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
72
|
+
const sizing = getSizing(issue.origin);
|
|
73
|
+
if (sizing) {
|
|
74
|
+
return `För stor(t): förväntade ${issue.origin ?? "värdet"} att ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? "element"}`;
|
|
75
|
+
}
|
|
76
|
+
return `För stor(t): förväntat ${issue.origin ?? "värdet"} att ha ${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 `För lite(t): förväntade ${issue.origin ?? "värdet"} att ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
83
|
+
}
|
|
84
|
+
return `För lite(t): förväntade ${issue.origin ?? "värdet"} att ha ${adj}${issue.minimum.toString()}`;
|
|
85
|
+
}
|
|
86
|
+
case "invalid_format": {
|
|
87
|
+
const _issue = issue;
|
|
88
|
+
if (_issue.format === "starts_with") {
|
|
89
|
+
return `Ogiltig sträng: måste börja med "${_issue.prefix}"`;
|
|
90
|
+
}
|
|
91
|
+
if (_issue.format === "ends_with")
|
|
92
|
+
return `Ogiltig sträng: måste sluta med "${_issue.suffix}"`;
|
|
93
|
+
if (_issue.format === "includes")
|
|
94
|
+
return `Ogiltig sträng: måste innehålla "${_issue.includes}"`;
|
|
95
|
+
if (_issue.format === "regex")
|
|
96
|
+
return `Ogiltig sträng: måste matcha mönstret "${_issue.pattern}"`;
|
|
97
|
+
return `Ogiltig(t) ${Nouns[_issue.format] ?? issue.format}`;
|
|
98
|
+
}
|
|
99
|
+
case "not_multiple_of":
|
|
100
|
+
return `Ogiltigt tal: måste vara en multipel av ${issue.divisor}`;
|
|
101
|
+
case "unrecognized_keys":
|
|
102
|
+
return `${issue.keys.length > 1 ? "Okända nycklar" : "Okänd nyckel"}: ${util.joinValues(issue.keys, ", ")}`;
|
|
103
|
+
case "invalid_key":
|
|
104
|
+
return `Ogiltig nyckel i ${issue.origin ?? "värdet"}`;
|
|
105
|
+
case "invalid_union":
|
|
106
|
+
return "Ogiltig input";
|
|
107
|
+
case "invalid_element":
|
|
108
|
+
return `Ogiltigt värde i ${issue.origin ?? "värdet"}`;
|
|
109
|
+
default:
|
|
110
|
+
return `Ogiltig input`;
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
export default function () {
|
|
115
|
+
return {
|
|
116
|
+
localeError: error(),
|
|
117
|
+
};
|
|
118
|
+
}
|