@remnawave/subscription-page-types 0.1.8 → 0.2.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/build/backend/constants/language-codes.constant.d.ts +67 -698
- package/build/backend/constants/language-codes.constant.d.ts.map +1 -1
- package/build/backend/constants/language-codes.constant.js +20 -183
- package/build/backend/constants/subscription-page-config/subscription-page-config.contants.d.ts +0 -2
- package/build/backend/constants/subscription-page-config/subscription-page-config.contants.d.ts.map +1 -1
- package/build/backend/constants/subscription-page-config/subscription-page-config.contants.js +1 -3
- package/build/backend/models/subscription-page-config/subscription-page-config.schema.d.ts +31 -31
- package/build/backend/models/subscription-page-config/subscription-page-config.schema.d.ts.map +1 -1
- package/build/backend/models/subscription-page-config/subscription-page-config.schema.js +21 -1
- package/build/backend/models/subscription-page-config/subscription-page-config.validator.d.ts +5 -16
- package/build/backend/models/subscription-page-config/subscription-page-config.validator.d.ts.map +1 -1
- package/build/backend/models/subscription-page-config/subscription-page-config.validator.js +1 -23
- package/build/frontend/constants/language-codes.constant.js +20 -183
- package/build/frontend/constants/subscription-page-config/subscription-page-config.contants.js +1 -3
- package/build/frontend/models/subscription-page-config/subscription-page-config.schema.js +21 -1
- package/build/frontend/models/subscription-page-config/subscription-page-config.validator.js +1 -23
- package/package.json +1 -1
|
@@ -2,189 +2,26 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getLanguagesArray = exports.isLanguageCode = exports.getLanguageNativeName = exports.getLanguageName = exports.getLanguageInfo = exports.LANGUAGE_CODES = void 0;
|
|
4
4
|
const LANGUAGES_LIST = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
be: { name: 'Belarusian', nativeName: 'беларуская мова' },
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
bs: { name: 'Bosnian', nativeName: 'bosanski jezik' },
|
|
26
|
-
ca: { name: 'Catalan', nativeName: 'Català' },
|
|
27
|
-
ce: { name: 'Chechen', nativeName: 'нохчийн мотт' },
|
|
28
|
-
ch: { name: 'Chamorro', nativeName: 'Chamoru' },
|
|
29
|
-
co: { name: 'Corsican', nativeName: 'corsu' },
|
|
30
|
-
cr: { name: 'Cree', nativeName: 'ᓀᐦᐃᔭᐍᐏᐣ' },
|
|
31
|
-
cs: { name: 'Czech', nativeName: 'Čeština' },
|
|
32
|
-
cu: { name: 'Old Church Slavonic', nativeName: 'ѩзыкъ словѣньскъ' },
|
|
33
|
-
cv: { name: 'Chuvash', nativeName: 'чӑваш чӗлхи' },
|
|
34
|
-
cy: { name: 'Welsh', nativeName: 'Cymraeg' },
|
|
35
|
-
da: { name: 'Danish', nativeName: 'Dansk' },
|
|
36
|
-
de: { name: 'German', nativeName: 'Deutsch' },
|
|
37
|
-
dv: { name: 'Divehi', nativeName: 'ދިވެހި' },
|
|
38
|
-
dz: { name: 'Dzongkha', nativeName: 'རྫོང་ཁ' },
|
|
39
|
-
ee: { name: 'Ewe', nativeName: 'Eʋegbe' },
|
|
40
|
-
el: { name: 'Greek', nativeName: 'Ελληνικά' },
|
|
41
|
-
en: { name: 'English', nativeName: 'English' },
|
|
42
|
-
eo: { name: 'Esperanto', nativeName: 'Esperanto' },
|
|
43
|
-
es: { name: 'Spanish', nativeName: 'Español' },
|
|
44
|
-
et: { name: 'Estonian', nativeName: 'eesti' },
|
|
45
|
-
eu: { name: 'Basque', nativeName: 'euskara' },
|
|
46
|
-
fa: { name: 'Persian', nativeName: 'فارسی' },
|
|
47
|
-
ff: { name: 'Fula', nativeName: 'Fulfulde' },
|
|
48
|
-
fi: { name: 'Finnish', nativeName: 'suomi' },
|
|
49
|
-
fj: { name: 'Fijian', nativeName: 'vosa Vakaviti' },
|
|
50
|
-
fo: { name: 'Faroese', nativeName: 'Føroyskt' },
|
|
51
|
-
fr: { name: 'French', nativeName: 'Français' },
|
|
52
|
-
fy: { name: 'Western Frisian', nativeName: 'Frysk' },
|
|
53
|
-
ga: { name: 'Irish', nativeName: 'Gaeilge' },
|
|
54
|
-
gd: { name: 'Scottish Gaelic', nativeName: 'Gàidhlig' },
|
|
55
|
-
gl: { name: 'Galician', nativeName: 'galego' },
|
|
56
|
-
gn: { name: 'Guaraní', nativeName: "Avañe'ẽ" },
|
|
57
|
-
gu: { name: 'Gujarati', nativeName: 'ગુજરાતી' },
|
|
58
|
-
gv: { name: 'Manx', nativeName: 'Gaelg' },
|
|
59
|
-
ha: { name: 'Hausa', nativeName: 'هَوُسَ' },
|
|
60
|
-
he: { name: 'Hebrew', nativeName: 'עברית' },
|
|
61
|
-
hi: { name: 'Hindi', nativeName: 'हिन्दी' },
|
|
62
|
-
ho: { name: 'Hiri Motu', nativeName: 'Hiri Motu' },
|
|
63
|
-
hr: { name: 'Croatian', nativeName: 'Hrvatski' },
|
|
64
|
-
ht: { name: 'Haitian', nativeName: 'Kreyòl ayisyen' },
|
|
65
|
-
hu: { name: 'Hungarian', nativeName: 'magyar' },
|
|
66
|
-
hy: { name: 'Armenian', nativeName: 'Հdelays' },
|
|
67
|
-
hz: { name: 'Herero', nativeName: 'Otjiherero' },
|
|
68
|
-
ia: { name: 'Interlingua', nativeName: 'Interlingua' },
|
|
69
|
-
id: { name: 'Indonesian', nativeName: 'Bahasa Indonesia' },
|
|
70
|
-
ie: { name: 'Interlingue', nativeName: 'Interlingue' },
|
|
71
|
-
ig: { name: 'Igbo', nativeName: 'Asụsụ Igbo' },
|
|
72
|
-
ii: { name: 'Nuosu', nativeName: 'ꆈꌠ꒿ Nuosuhxop' },
|
|
73
|
-
ik: { name: 'Inupiaq', nativeName: 'Iñupiaq' },
|
|
74
|
-
io: { name: 'Ido', nativeName: 'Ido' },
|
|
75
|
-
is: { name: 'Icelandic', nativeName: 'Íslenska' },
|
|
76
|
-
it: { name: 'Italian', nativeName: 'Italiano' },
|
|
77
|
-
iu: { name: 'Inuktitut', nativeName: 'ᐃᓄᒃᑎᑐᑦ' },
|
|
78
|
-
ja: { name: 'Japanese', nativeName: '日本語' },
|
|
79
|
-
jv: { name: 'Javanese', nativeName: 'basa Jawa' },
|
|
80
|
-
ka: { name: 'Georgian', nativeName: 'ქართული' },
|
|
81
|
-
kg: { name: 'Kongo', nativeName: 'Kikongo' },
|
|
82
|
-
ki: { name: 'Kikuyu', nativeName: 'Gĩkũyũ' },
|
|
83
|
-
kj: { name: 'Kwanyama', nativeName: 'Kuanyama' },
|
|
84
|
-
kk: { name: 'Kazakh', nativeName: 'қазақ тілі' },
|
|
85
|
-
kl: { name: 'Kalaallisut', nativeName: 'kalaallisut' },
|
|
86
|
-
km: { name: 'Khmer', nativeName: 'ខេមរភាសា' },
|
|
87
|
-
kn: { name: 'Kannada', nativeName: 'ಕನ್ನಡ' },
|
|
88
|
-
ko: { name: 'Korean', nativeName: '한국어' },
|
|
89
|
-
kr: { name: 'Kanuri', nativeName: 'Kanuri' },
|
|
90
|
-
ks: { name: 'Kashmiri', nativeName: 'कश्मीरी' },
|
|
91
|
-
ku: { name: 'Kurdish', nativeName: 'Kurdî' },
|
|
92
|
-
kv: { name: 'Komi', nativeName: 'коми кыв' },
|
|
93
|
-
kw: { name: 'Cornish', nativeName: 'Kernewek' },
|
|
94
|
-
ky: { name: 'Kyrgyz', nativeName: 'Кыргызча' },
|
|
95
|
-
la: { name: 'Latin', nativeName: 'latine' },
|
|
96
|
-
lb: { name: 'Luxembourgish', nativeName: 'Lëtzebuergesch' },
|
|
97
|
-
lg: { name: 'Ganda', nativeName: 'Luganda' },
|
|
98
|
-
li: { name: 'Limburgish', nativeName: 'Limburgs' },
|
|
99
|
-
ln: { name: 'Lingala', nativeName: 'Lingála' },
|
|
100
|
-
lo: { name: 'Lao', nativeName: 'ພາສາລາວ' },
|
|
101
|
-
lt: { name: 'Lithuanian', nativeName: 'lietuvių kalba' },
|
|
102
|
-
lu: { name: 'Luba-Katanga', nativeName: 'Kiluba' },
|
|
103
|
-
lv: { name: 'Latvian', nativeName: 'latviešu valoda' },
|
|
104
|
-
mg: { name: 'Malagasy', nativeName: 'fiteny malagasy' },
|
|
105
|
-
mh: { name: 'Marshallese', nativeName: 'Kajin M̧ajeļ' },
|
|
106
|
-
mi: { name: 'Māori', nativeName: 'te reo Māori' },
|
|
107
|
-
mk: { name: 'Macedonian', nativeName: 'македонски јазик' },
|
|
108
|
-
ml: { name: 'Malayalam', nativeName: 'മലയാളം' },
|
|
109
|
-
mn: { name: 'Mongolian', nativeName: 'Монгол хэл' },
|
|
110
|
-
mr: { name: 'Marathi', nativeName: 'मराठी' },
|
|
111
|
-
ms: { name: 'Malay', nativeName: 'Bahasa Melayu' },
|
|
112
|
-
mt: { name: 'Maltese', nativeName: 'Malti' },
|
|
113
|
-
my: { name: 'Burmese', nativeName: 'ဗမာစာ' },
|
|
114
|
-
na: { name: 'Nauru', nativeName: 'Dorerin Naoero' },
|
|
115
|
-
nb: { name: 'Norwegian Bokmål', nativeName: 'Norsk bokmål' },
|
|
116
|
-
nd: { name: 'Northern Ndebele', nativeName: 'isiNdebele' },
|
|
117
|
-
ne: { name: 'Nepali', nativeName: 'नेपाली' },
|
|
118
|
-
ng: { name: 'Ndonga', nativeName: 'Owambo' },
|
|
119
|
-
nl: { name: 'Dutch', nativeName: 'Nederlands' },
|
|
120
|
-
nn: { name: 'Norwegian Nynorsk', nativeName: 'Norsk nynorsk' },
|
|
121
|
-
no: { name: 'Norwegian', nativeName: 'Norsk' },
|
|
122
|
-
nr: { name: 'Southern Ndebele', nativeName: 'isiNdebele' },
|
|
123
|
-
nv: { name: 'Navajo', nativeName: 'Diné bizaad' },
|
|
124
|
-
ny: { name: 'Chichewa', nativeName: 'chiCheŵa' },
|
|
125
|
-
oc: { name: 'Occitan', nativeName: 'occitan' },
|
|
126
|
-
oj: { name: 'Ojibwe', nativeName: 'ᐊᓂᔑᓈᐯᒧᐎᓐ' },
|
|
127
|
-
om: { name: 'Oromo', nativeName: 'Afaan Oromoo' },
|
|
128
|
-
or: { name: 'Oriya', nativeName: 'ଓଡ଼ିଆ' },
|
|
129
|
-
os: { name: 'Ossetian', nativeName: 'ирон æвзаг' },
|
|
130
|
-
pa: { name: 'Panjabi', nativeName: 'ਪੰਜਾਬੀ' },
|
|
131
|
-
pi: { name: 'Pāli', nativeName: 'पाऴि' },
|
|
132
|
-
pl: { name: 'Polish', nativeName: 'Polski' },
|
|
133
|
-
ps: { name: 'Pashto', nativeName: 'پښتو' },
|
|
134
|
-
pt: { name: 'Portuguese', nativeName: 'Português' },
|
|
135
|
-
qu: { name: 'Quechua', nativeName: 'Runa Simi' },
|
|
136
|
-
rm: { name: 'Romansh', nativeName: 'rumantsch grischun' },
|
|
137
|
-
rn: { name: 'Kirundi', nativeName: 'Ikirundi' },
|
|
138
|
-
ro: { name: 'Romanian', nativeName: 'Română' },
|
|
139
|
-
ru: { name: 'Russian', nativeName: 'Русский' },
|
|
140
|
-
rw: { name: 'Kinyarwanda', nativeName: 'Ikinyarwanda' },
|
|
141
|
-
sa: { name: 'Sanskrit', nativeName: 'संस्कृतम्' },
|
|
142
|
-
sc: { name: 'Sardinian', nativeName: 'sardu' },
|
|
143
|
-
sd: { name: 'Sindhi', nativeName: 'सिन्धी' },
|
|
144
|
-
se: { name: 'Northern Sami', nativeName: 'Davvisámegiella' },
|
|
145
|
-
sg: { name: 'Sango', nativeName: 'yângâ tî sängö' },
|
|
146
|
-
si: { name: 'Sinhala', nativeName: 'සිංහල' },
|
|
147
|
-
sk: { name: 'Slovak', nativeName: 'Slovenčina' },
|
|
148
|
-
sl: { name: 'Slovenian', nativeName: 'slovenščina' },
|
|
149
|
-
sm: { name: 'Samoan', nativeName: "gagana fa'a Samoa" },
|
|
150
|
-
sn: { name: 'Shona', nativeName: 'chiShona' },
|
|
151
|
-
so: { name: 'Somali', nativeName: 'Soomaaliga' },
|
|
152
|
-
sq: { name: 'Albanian', nativeName: 'Shqip' },
|
|
153
|
-
sr: { name: 'Serbian', nativeName: 'српски језик' },
|
|
154
|
-
ss: { name: 'Swati', nativeName: 'SiSwati' },
|
|
155
|
-
st: { name: 'Southern Sotho', nativeName: 'Sesotho' },
|
|
156
|
-
su: { name: 'Sundanese', nativeName: 'Basa Sunda' },
|
|
157
|
-
sv: { name: 'Swedish', nativeName: 'Svenska' },
|
|
158
|
-
sw: { name: 'Swahili', nativeName: 'Kiswahili' },
|
|
159
|
-
ta: { name: 'Tamil', nativeName: 'தமிழ்' },
|
|
160
|
-
te: { name: 'Telugu', nativeName: 'తెలుగు' },
|
|
161
|
-
tg: { name: 'Tajik', nativeName: 'тоҷикӣ' },
|
|
162
|
-
th: { name: 'Thai', nativeName: 'ไทย' },
|
|
163
|
-
ti: { name: 'Tigrinya', nativeName: 'ትግርኛ' },
|
|
164
|
-
tk: { name: 'Turkmen', nativeName: 'Türkmençe' },
|
|
165
|
-
tl: { name: 'Tagalog', nativeName: 'Wikang Tagalog' },
|
|
166
|
-
tn: { name: 'Tswana', nativeName: 'Setswana' },
|
|
167
|
-
to: { name: 'Tonga', nativeName: 'faka Tonga' },
|
|
168
|
-
tr: { name: 'Turkish', nativeName: 'Türkçe' },
|
|
169
|
-
ts: { name: 'Tsonga', nativeName: 'Xitsonga' },
|
|
170
|
-
tt: { name: 'Tatar', nativeName: 'татар теле' },
|
|
171
|
-
tw: { name: 'Twi', nativeName: 'Twi' },
|
|
172
|
-
ty: { name: 'Tahitian', nativeName: 'Reo Tahiti' },
|
|
173
|
-
ug: { name: 'Uyghur', nativeName: 'ئۇيغۇرچە' },
|
|
174
|
-
uk: { name: 'Ukrainian', nativeName: 'Українська' },
|
|
175
|
-
ur: { name: 'Urdu', nativeName: 'اردو' },
|
|
176
|
-
uz: { name: 'Uzbek', nativeName: 'Ўзбек' },
|
|
177
|
-
ve: { name: 'Venda', nativeName: 'Tshivenḓa' },
|
|
178
|
-
vi: { name: 'Vietnamese', nativeName: 'Tiếng Việt' },
|
|
179
|
-
vo: { name: 'Volapük', nativeName: 'Volapük' },
|
|
180
|
-
wa: { name: 'Walloon', nativeName: 'walon' },
|
|
181
|
-
wo: { name: 'Wolof', nativeName: 'Wollof' },
|
|
182
|
-
xh: { name: 'Xhosa', nativeName: 'isiXhosa' },
|
|
183
|
-
yi: { name: 'Yiddish', nativeName: 'ייִדיש' },
|
|
184
|
-
yo: { name: 'Yoruba', nativeName: 'Yorùbá' },
|
|
185
|
-
za: { name: 'Zhuang', nativeName: 'Saɯ cueŋƅ' },
|
|
186
|
-
zh: { name: 'Chinese', nativeName: '中文' },
|
|
187
|
-
zu: { name: 'Zulu', nativeName: 'isiZulu' },
|
|
5
|
+
en: { name: 'English', nativeName: 'English', emoji: '🇬🇧' },
|
|
6
|
+
ru: { name: 'Russian', nativeName: 'Русский', emoji: '🇷🇺' },
|
|
7
|
+
zh: { name: 'Chinese', nativeName: '中文', emoji: '🇨🇳' },
|
|
8
|
+
fr: { name: 'French', nativeName: 'Français', emoji: '🇫🇷' },
|
|
9
|
+
uz: { name: 'Uzbek', nativeName: 'Ўзбек', emoji: '🇺🇿' },
|
|
10
|
+
de: { name: 'German', nativeName: 'Deutsch', emoji: '🇩🇪' },
|
|
11
|
+
fa: { name: 'Persian', nativeName: 'فارسی', emoji: '🇮🇷' },
|
|
12
|
+
hi: { name: 'Hindi', nativeName: 'हिन्दी', emoji: '🇮🇳' },
|
|
13
|
+
tr: { name: 'Turkish', nativeName: 'Türkçe', emoji: '🇹🇷' },
|
|
14
|
+
az: { name: 'Azerbaijani', nativeName: 'azərbaycan dili', emoji: '🇦🇿' },
|
|
15
|
+
es: { name: 'Spanish', nativeName: 'Español', emoji: '🇪🇸' },
|
|
16
|
+
vi: { name: 'Vietnamese', nativeName: 'Tiếng Việt', emoji: '🇻🇳' },
|
|
17
|
+
ja: { name: 'Japanese', nativeName: '日本語', emoji: '🇯🇵' },
|
|
18
|
+
be: { name: 'Belarusian', nativeName: 'беларуская мова', emoji: '🇧🇾' },
|
|
19
|
+
uk: { name: 'Ukrainian', nativeName: 'Українська', emoji: '🇺🇦' },
|
|
20
|
+
pt: { name: 'Portuguese', nativeName: 'Português', emoji: '🇵🇹' },
|
|
21
|
+
pl: { name: 'Polish', nativeName: 'Polski', emoji: '🇵🇱' },
|
|
22
|
+
id: { name: 'Indonesian', nativeName: 'Bahasa Indonesia', emoji: '🇮🇩' },
|
|
23
|
+
tk: { name: 'Turkmen', nativeName: 'Türkmençe', emoji: '🇹🇲' },
|
|
24
|
+
th: { name: 'Thai', nativeName: 'ไทย', emoji: '🇹🇭' },
|
|
188
25
|
};
|
|
189
26
|
exports.LANGUAGE_CODES = Object.keys(LANGUAGES_LIST);
|
|
190
27
|
/**
|
package/build/frontend/constants/subscription-page-config/subscription-page-config.contants.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SUBSCRIPTION_PAGE_CONFIG_PLATFORM_TYPES = exports.
|
|
4
|
-
const language_codes_constant_1 = require("../language-codes.constant");
|
|
5
|
-
Object.defineProperty(exports, "LANGUAGE_CODES", { enumerable: true, get: function () { return language_codes_constant_1.LANGUAGE_CODES; } });
|
|
3
|
+
exports.SUBSCRIPTION_PAGE_CONFIG_PLATFORM_TYPES = exports.SUBSCRIPTION_PAGE_CONFIG_VERSION = void 0;
|
|
6
4
|
exports.SUBSCRIPTION_PAGE_CONFIG_VERSION = {
|
|
7
5
|
1: '1',
|
|
8
6
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SubscriptionPageRawConfigSchema = exports.LocalizedTextSchema = void 0;
|
|
3
|
+
exports.BASE_TRANSLATION_KEYS = exports.BASE_TRANSLATION_LABELS = exports.SubscriptionPageRawConfigSchema = exports.LocalizedTextSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const constants_1 = require("../../constants");
|
|
6
6
|
const subscription_page_config_validator_1 = require("./subscription-page-config.validator");
|
|
@@ -105,3 +105,23 @@ exports.SubscriptionPageRawConfigSchema = zod_1.z
|
|
|
105
105
|
(0, subscription_page_config_validator_1.validateLocalizedTexts)(data, data.locales, ctx);
|
|
106
106
|
(0, subscription_page_config_validator_1.validateSvgReferences)(data, ctx);
|
|
107
107
|
});
|
|
108
|
+
exports.BASE_TRANSLATION_LABELS = {
|
|
109
|
+
linkCopied: 'Link Copied',
|
|
110
|
+
linkCopiedToClipboard: 'Link Copied to Clipboard',
|
|
111
|
+
getLink: 'Get Link',
|
|
112
|
+
scanQrCode: 'Scan QR Code',
|
|
113
|
+
scanQrCodeDescription: 'Scan QR Code Description',
|
|
114
|
+
copyLink: 'Copy Link',
|
|
115
|
+
name: 'Name',
|
|
116
|
+
status: 'Status',
|
|
117
|
+
active: 'Active',
|
|
118
|
+
inactive: 'Inactive',
|
|
119
|
+
expires: 'Expires',
|
|
120
|
+
bandwidth: 'Bandwidth',
|
|
121
|
+
scanToImport: 'Scan to Import',
|
|
122
|
+
expiresIn: 'Expires In',
|
|
123
|
+
expired: 'Expired',
|
|
124
|
+
unknown: 'Unknown',
|
|
125
|
+
indefinitely: 'Indefinitely',
|
|
126
|
+
};
|
|
127
|
+
exports.BASE_TRANSLATION_KEYS = Object.keys(exports.BASE_TRANSLATION_LABELS);
|
package/build/frontend/models/subscription-page-config/subscription-page-config.validator.js
CHANGED
|
@@ -3,25 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.cleanLocalizedTexts = exports.validateSvgReferences = exports.validateLocalizedTexts = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const constants_1 = require("../../constants");
|
|
6
|
-
/**
|
|
7
|
-
* Проверяет что LocalizedText объект является таковым
|
|
8
|
-
* LocalizedText - это объект где ключи это языковые коды, а значения - строки
|
|
9
|
-
*/
|
|
10
6
|
const isLocalizedText = (obj) => {
|
|
11
7
|
if (obj === null || typeof obj !== 'object' || Array.isArray(obj))
|
|
12
8
|
return false;
|
|
13
9
|
const entries = Object.entries(obj);
|
|
14
10
|
if (entries.length === 0)
|
|
15
11
|
return false;
|
|
16
|
-
// Проверяем что все значения - строки (характерно для LocalizedText)
|
|
17
|
-
// и что хотя бы один ключ выглядит как языковой код (2 символа)
|
|
18
12
|
const hasStringValues = entries.every(([, value]) => typeof value === 'string');
|
|
19
13
|
const hasLanguageCodeKey = entries.some(([key]) => key.length === 2);
|
|
20
14
|
return hasStringValues && hasLanguageCodeKey;
|
|
21
15
|
};
|
|
22
|
-
/**
|
|
23
|
-
* Валидирует что все обязательные локали присутствуют в LocalizedText полях
|
|
24
|
-
*/
|
|
25
16
|
const validateLocalizedTexts = (data, requiredLocales, ctx) => {
|
|
26
17
|
const checkLocalizedText = (obj, path) => {
|
|
27
18
|
if (obj === null || typeof obj !== 'object')
|
|
@@ -51,15 +42,11 @@ const validateLocalizedTexts = (data, requiredLocales, ctx) => {
|
|
|
51
42
|
}
|
|
52
43
|
}
|
|
53
44
|
};
|
|
54
|
-
// Проверяем platforms
|
|
55
45
|
checkLocalizedText(data.platforms, 'platforms');
|
|
56
|
-
// Проверяем uiConfig
|
|
57
46
|
checkLocalizedText(data.uiConfig, 'uiConfig');
|
|
47
|
+
checkLocalizedText(data.baseTranslations, 'baseTranslations');
|
|
58
48
|
};
|
|
59
49
|
exports.validateLocalizedTexts = validateLocalizedTexts;
|
|
60
|
-
/**
|
|
61
|
-
* Валидирует что все svgIconKey ссылаются на существующие ключи в svgLibrary
|
|
62
|
-
*/
|
|
63
50
|
const validateSvgReferences = (data, ctx) => {
|
|
64
51
|
const validKeys = new Set(Object.keys(data.svgLibrary));
|
|
65
52
|
const checkSvgRef = (obj, path) => {
|
|
@@ -67,9 +54,6 @@ const validateSvgReferences = (data, ctx) => {
|
|
|
67
54
|
return;
|
|
68
55
|
for (const [key, value] of Object.entries(obj)) {
|
|
69
56
|
if (key === 'svgIconKey' && typeof value === 'string') {
|
|
70
|
-
// Пустая строка = нет иконки (для опциональных полей)
|
|
71
|
-
if (value === '')
|
|
72
|
-
continue;
|
|
73
57
|
if (!validKeys.has(value)) {
|
|
74
58
|
ctx.addIssue({
|
|
75
59
|
code: zod_1.z.ZodIssueCode.custom,
|
|
@@ -89,12 +73,6 @@ const validateSvgReferences = (data, ctx) => {
|
|
|
89
73
|
checkSvgRef(data.platforms, 'platforms');
|
|
90
74
|
};
|
|
91
75
|
exports.validateSvgReferences = validateSvgReferences;
|
|
92
|
-
/**
|
|
93
|
-
* Очищает LocalizedText поля:
|
|
94
|
-
* - Оставляет только указанные локали
|
|
95
|
-
* - Делает trim() всем строкам
|
|
96
|
-
* - Удаляет пустые значения
|
|
97
|
-
*/
|
|
98
76
|
const cleanLocalizedTexts = (obj, activeLocales) => {
|
|
99
77
|
if (obj === null || typeof obj !== 'object')
|
|
100
78
|
return obj;
|