poly-lexis 0.2.2 → 0.3.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.
@@ -0,0 +1,379 @@
1
+ // src/scripts/generate-schema.ts
2
+ import { writeFileSync } from "fs";
3
+ import { dirname, join } from "path";
4
+ import { fileURLToPath } from "url";
5
+
6
+ // src/translations/core/schema.ts
7
+ var TRANSLATION_PROVIDERS = ["deepl", "google"];
8
+ var DEEPL_LANGUAGES = [
9
+ "ar",
10
+ // Arabic
11
+ "bg",
12
+ // Bulgarian
13
+ "cs",
14
+ // Czech
15
+ "da",
16
+ // Danish
17
+ "de",
18
+ // German
19
+ "el",
20
+ // Greek
21
+ "en",
22
+ // English (unspecified)
23
+ "en_gb",
24
+ // English (British)
25
+ "en_us",
26
+ // English (American)
27
+ "es",
28
+ // Spanish
29
+ "es_419",
30
+ // Spanish (Latin American)
31
+ "et",
32
+ // Estonian
33
+ "fi",
34
+ // Finnish
35
+ "fr",
36
+ // French
37
+ "he",
38
+ // Hebrew (next-gen models only)
39
+ "hu",
40
+ // Hungarian
41
+ "id",
42
+ // Indonesian
43
+ "it",
44
+ // Italian
45
+ "ja",
46
+ // Japanese
47
+ "ko",
48
+ // Korean
49
+ "lt",
50
+ // Lithuanian
51
+ "lv",
52
+ // Latvian
53
+ "nb",
54
+ // Norwegian Bokmål
55
+ "nl",
56
+ // Dutch
57
+ "pl",
58
+ // Polish
59
+ "pt",
60
+ // Portuguese (unspecified)
61
+ "pt_br",
62
+ // Portuguese (Brazilian)
63
+ "pt_pt",
64
+ // Portuguese (excluding Brazilian)
65
+ "ro",
66
+ // Romanian
67
+ "ru",
68
+ // Russian
69
+ "sk",
70
+ // Slovak
71
+ "sl",
72
+ // Slovenian
73
+ "sv",
74
+ // Swedish
75
+ "th",
76
+ // Thai (next-gen models only)
77
+ "tr",
78
+ // Turkish
79
+ "uk",
80
+ // Ukrainian
81
+ "vi",
82
+ // Vietnamese (next-gen models only)
83
+ "zh",
84
+ // Chinese (unspecified)
85
+ "zh_hans",
86
+ // Chinese (simplified)
87
+ "zh_hant"
88
+ // Chinese (traditional)
89
+ ];
90
+ var GOOGLE_LANGUAGES = [
91
+ "af",
92
+ // Afrikaans
93
+ "sq",
94
+ // Albanian
95
+ "am",
96
+ // Amharic
97
+ "ar",
98
+ // Arabic
99
+ "hy",
100
+ // Armenian
101
+ "az",
102
+ // Azerbaijani
103
+ "eu",
104
+ // Basque
105
+ "be",
106
+ // Belarusian
107
+ "bn",
108
+ // Bengali
109
+ "bs",
110
+ // Bosnian
111
+ "bg",
112
+ // Bulgarian
113
+ "ca",
114
+ // Catalan
115
+ "ceb",
116
+ // Cebuano
117
+ "zh",
118
+ // Chinese (Simplified)
119
+ "zh_cn",
120
+ // Chinese (Simplified)
121
+ "zh_tw",
122
+ // Chinese (Traditional)
123
+ "co",
124
+ // Corsican
125
+ "hr",
126
+ // Croatian
127
+ "cs",
128
+ // Czech
129
+ "da",
130
+ // Danish
131
+ "nl",
132
+ // Dutch
133
+ "en",
134
+ // English
135
+ "eo",
136
+ // Esperanto
137
+ "et",
138
+ // Estonian
139
+ "fi",
140
+ // Finnish
141
+ "fr",
142
+ // French
143
+ "fy",
144
+ // Frisian
145
+ "gl",
146
+ // Galician
147
+ "ka",
148
+ // Georgian
149
+ "de",
150
+ // German
151
+ "el",
152
+ // Greek
153
+ "gu",
154
+ // Gujarati
155
+ "ht",
156
+ // Haitian Creole
157
+ "ha",
158
+ // Hausa
159
+ "haw",
160
+ // Hawaiian
161
+ "he",
162
+ // Hebrew
163
+ "hi",
164
+ // Hindi
165
+ "hmn",
166
+ // Hmong
167
+ "hu",
168
+ // Hungarian
169
+ "is",
170
+ // Icelandic
171
+ "ig",
172
+ // Igbo
173
+ "id",
174
+ // Indonesian
175
+ "ga",
176
+ // Irish
177
+ "it",
178
+ // Italian
179
+ "ja",
180
+ // Japanese
181
+ "jv",
182
+ // Javanese
183
+ "kn",
184
+ // Kannada
185
+ "kk",
186
+ // Kazakh
187
+ "km",
188
+ // Khmer
189
+ "rw",
190
+ // Kinyarwanda
191
+ "ko",
192
+ // Korean
193
+ "ku",
194
+ // Kurdish
195
+ "ky",
196
+ // Kyrgyz
197
+ "lo",
198
+ // Lao
199
+ "la",
200
+ // Latin
201
+ "lv",
202
+ // Latvian
203
+ "lt",
204
+ // Lithuanian
205
+ "lb",
206
+ // Luxembourgish
207
+ "mk",
208
+ // Macedonian
209
+ "mg",
210
+ // Malagasy
211
+ "ms",
212
+ // Malay
213
+ "ml",
214
+ // Malayalam
215
+ "mt",
216
+ // Maltese
217
+ "mi",
218
+ // Maori
219
+ "mr",
220
+ // Marathi
221
+ "mn",
222
+ // Mongolian
223
+ "my",
224
+ // Myanmar (Burmese)
225
+ "ne",
226
+ // Nepali
227
+ "no",
228
+ // Norwegian
229
+ "ny",
230
+ // Nyanja (Chichewa)
231
+ "or",
232
+ // Odia (Oriya)
233
+ "ps",
234
+ // Pashto
235
+ "fa",
236
+ // Persian
237
+ "pl",
238
+ // Polish
239
+ "pt",
240
+ // Portuguese
241
+ "pt_br",
242
+ // Portuguese (Brazil)
243
+ "pa",
244
+ // Punjabi
245
+ "ro",
246
+ // Romanian
247
+ "ru",
248
+ // Russian
249
+ "sm",
250
+ // Samoan
251
+ "gd",
252
+ // Scots Gaelic
253
+ "sr",
254
+ // Serbian
255
+ "st",
256
+ // Sesotho
257
+ "sn",
258
+ // Shona
259
+ "sd",
260
+ // Sindhi
261
+ "si",
262
+ // Sinhala (Sinhalese)
263
+ "sk",
264
+ // Slovak
265
+ "sl",
266
+ // Slovenian
267
+ "so",
268
+ // Somali
269
+ "es",
270
+ // Spanish
271
+ "su",
272
+ // Sundanese
273
+ "sw",
274
+ // Swahili
275
+ "sv",
276
+ // Swedish
277
+ "tl",
278
+ // Tagalog (Filipino)
279
+ "tg",
280
+ // Tajik
281
+ "ta",
282
+ // Tamil
283
+ "tt",
284
+ // Tatar
285
+ "te",
286
+ // Telugu
287
+ "th",
288
+ // Thai
289
+ "tr",
290
+ // Turkish
291
+ "tk",
292
+ // Turkmen
293
+ "uk",
294
+ // Ukrainian
295
+ "ur",
296
+ // Urdu
297
+ "ug",
298
+ // Uyghur
299
+ "uz",
300
+ // Uzbek
301
+ "vi",
302
+ // Vietnamese
303
+ "cy",
304
+ // Welsh
305
+ "xh",
306
+ // Xhosa
307
+ "yi",
308
+ // Yiddish
309
+ "yo",
310
+ // Yoruba
311
+ "zu"
312
+ // Zulu
313
+ ];
314
+ var SUPPORTED_LANGUAGES = Array.from(
315
+ /* @__PURE__ */ new Set([...DEEPL_LANGUAGES, ...GOOGLE_LANGUAGES])
316
+ ).sort();
317
+ var TRANSLATION_CONFIG_SCHEMA = {
318
+ title: "Translation Configuration",
319
+ description: "Configuration for the translation management system",
320
+ type: "object",
321
+ properties: {
322
+ $schema: {
323
+ type: "string",
324
+ description: "JSON Schema reference"
325
+ },
326
+ translationsPath: {
327
+ type: "string",
328
+ description: "Path to the translations directory relative to project root",
329
+ default: "public/static/locales",
330
+ examples: ["public/static/locales", "src/locales", "locales"]
331
+ },
332
+ languages: {
333
+ type: "array",
334
+ description: "List of language codes to support",
335
+ items: {
336
+ type: "string",
337
+ enum: SUPPORTED_LANGUAGES
338
+ },
339
+ minItems: 1,
340
+ uniqueItems: true,
341
+ default: ["en"]
342
+ },
343
+ sourceLanguage: {
344
+ type: "string",
345
+ description: 'Source language for translations (usually "en")',
346
+ enum: SUPPORTED_LANGUAGES,
347
+ default: "en"
348
+ },
349
+ typesOutputPath: {
350
+ type: "string",
351
+ description: "Path to output TypeScript types file",
352
+ default: "src/types/i18nTypes.ts",
353
+ examples: ["src/types/i18nTypes.ts", "src/types/translations.ts"]
354
+ },
355
+ provider: {
356
+ type: "string",
357
+ description: "Translation provider to use (deepl or google)",
358
+ enum: TRANSLATION_PROVIDERS,
359
+ default: "deepl"
360
+ }
361
+ },
362
+ required: ["translationsPath", "languages", "sourceLanguage"],
363
+ additionalProperties: false
364
+ };
365
+
366
+ // src/scripts/generate-schema.ts
367
+ var __filename2 = fileURLToPath(import.meta.url);
368
+ var __dirname2 = dirname(__filename2);
369
+ var projectRoot = join(__dirname2, "../..");
370
+ var SCHEMA_OUTPUT_PATH = join(projectRoot, "src/translations/core/translations-config.schema.json");
371
+ var schemaWithMeta = {
372
+ $schema: "http://json-schema.org/draft-07/schema#",
373
+ $id: "https://raw.githubusercontent.com/designedhead/lexis/main/src/translations/core/translations-config.schema.json",
374
+ ...TRANSLATION_CONFIG_SCHEMA
375
+ };
376
+ writeFileSync(SCHEMA_OUTPUT_PATH, `${JSON.stringify(schemaWithMeta, null, 2)}
377
+ `);
378
+ console.log("\u2705 Generated translations-config.schema.json");
379
+ //# sourceMappingURL=generate-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/scripts/generate-schema.ts","../../src/translations/core/schema.ts"],"sourcesContent":["/**\n * Generate JSON schema file from TypeScript schema definition\n * This ensures the JSON schema stays in sync with the TypeScript source\n */\nimport { writeFileSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { TRANSLATION_CONFIG_SCHEMA } from '../translations/core/schema.js';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\n// Write to src directory, not dist\n// When compiled to dist/scripts/, we need to go up 2 levels to get to project root\nconst projectRoot = join(__dirname, '../..');\nconst SCHEMA_OUTPUT_PATH = join(projectRoot, 'src/translations/core/translations-config.schema.json');\n\nconst schemaWithMeta = {\n $schema: 'http://json-schema.org/draft-07/schema#',\n $id: 'https://raw.githubusercontent.com/designedhead/lexis/main/src/translations/core/translations-config.schema.json',\n ...TRANSLATION_CONFIG_SCHEMA\n};\n\nwriteFileSync(SCHEMA_OUTPUT_PATH, `${JSON.stringify(schemaWithMeta, null, 2)}\\n`);\n\nconsole.log('✅ Generated translations-config.schema.json');\n","/**\n * Translation provider types\n */\nexport const TRANSLATION_PROVIDERS = ['deepl', 'google'] as const;\nexport type TranslationProviderType = (typeof TRANSLATION_PROVIDERS)[number];\n\n/**\n * DeepL supported target languages\n * Based on DeepL API v2 documentation\n */\nexport const DEEPL_LANGUAGES = [\n 'ar', // Arabic\n 'bg', // Bulgarian\n 'cs', // Czech\n 'da', // Danish\n 'de', // German\n 'el', // Greek\n 'en', // English (unspecified)\n 'en_gb', // English (British)\n 'en_us', // English (American)\n 'es', // Spanish\n 'es_419', // Spanish (Latin American)\n 'et', // Estonian\n 'fi', // Finnish\n 'fr', // French\n 'he', // Hebrew (next-gen models only)\n 'hu', // Hungarian\n 'id', // Indonesian\n 'it', // Italian\n 'ja', // Japanese\n 'ko', // Korean\n 'lt', // Lithuanian\n 'lv', // Latvian\n 'nb', // Norwegian Bokmål\n 'nl', // Dutch\n 'pl', // Polish\n 'pt', // Portuguese (unspecified)\n 'pt_br', // Portuguese (Brazilian)\n 'pt_pt', // Portuguese (excluding Brazilian)\n 'ro', // Romanian\n 'ru', // Russian\n 'sk', // Slovak\n 'sl', // Slovenian\n 'sv', // Swedish\n 'th', // Thai (next-gen models only)\n 'tr', // Turkish\n 'uk', // Ukrainian\n 'vi', // Vietnamese (next-gen models only)\n 'zh', // Chinese (unspecified)\n 'zh_hans', // Chinese (simplified)\n 'zh_hant' // Chinese (traditional)\n] as const;\n\n/**\n * Google Translate supported languages\n * Based on Google Cloud Translation API v2\n * Reference: https://docs.cloud.google.com/translate/docs/languages\n */\nexport const GOOGLE_LANGUAGES = [\n 'af', // Afrikaans\n 'sq', // Albanian\n 'am', // Amharic\n 'ar', // Arabic\n 'hy', // Armenian\n 'az', // Azerbaijani\n 'eu', // Basque\n 'be', // Belarusian\n 'bn', // Bengali\n 'bs', // Bosnian\n 'bg', // Bulgarian\n 'ca', // Catalan\n 'ceb', // Cebuano\n 'zh', // Chinese (Simplified)\n 'zh_cn', // Chinese (Simplified)\n 'zh_tw', // Chinese (Traditional)\n 'co', // Corsican\n 'hr', // Croatian\n 'cs', // Czech\n 'da', // Danish\n 'nl', // Dutch\n 'en', // English\n 'eo', // Esperanto\n 'et', // Estonian\n 'fi', // Finnish\n 'fr', // French\n 'fy', // Frisian\n 'gl', // Galician\n 'ka', // Georgian\n 'de', // German\n 'el', // Greek\n 'gu', // Gujarati\n 'ht', // Haitian Creole\n 'ha', // Hausa\n 'haw', // Hawaiian\n 'he', // Hebrew\n 'hi', // Hindi\n 'hmn', // Hmong\n 'hu', // Hungarian\n 'is', // Icelandic\n 'ig', // Igbo\n 'id', // Indonesian\n 'ga', // Irish\n 'it', // Italian\n 'ja', // Japanese\n 'jv', // Javanese\n 'kn', // Kannada\n 'kk', // Kazakh\n 'km', // Khmer\n 'rw', // Kinyarwanda\n 'ko', // Korean\n 'ku', // Kurdish\n 'ky', // Kyrgyz\n 'lo', // Lao\n 'la', // Latin\n 'lv', // Latvian\n 'lt', // Lithuanian\n 'lb', // Luxembourgish\n 'mk', // Macedonian\n 'mg', // Malagasy\n 'ms', // Malay\n 'ml', // Malayalam\n 'mt', // Maltese\n 'mi', // Maori\n 'mr', // Marathi\n 'mn', // Mongolian\n 'my', // Myanmar (Burmese)\n 'ne', // Nepali\n 'no', // Norwegian\n 'ny', // Nyanja (Chichewa)\n 'or', // Odia (Oriya)\n 'ps', // Pashto\n 'fa', // Persian\n 'pl', // Polish\n 'pt', // Portuguese\n 'pt_br', // Portuguese (Brazil)\n 'pa', // Punjabi\n 'ro', // Romanian\n 'ru', // Russian\n 'sm', // Samoan\n 'gd', // Scots Gaelic\n 'sr', // Serbian\n 'st', // Sesotho\n 'sn', // Shona\n 'sd', // Sindhi\n 'si', // Sinhala (Sinhalese)\n 'sk', // Slovak\n 'sl', // Slovenian\n 'so', // Somali\n 'es', // Spanish\n 'su', // Sundanese\n 'sw', // Swahili\n 'sv', // Swedish\n 'tl', // Tagalog (Filipino)\n 'tg', // Tajik\n 'ta', // Tamil\n 'tt', // Tatar\n 'te', // Telugu\n 'th', // Thai\n 'tr', // Turkish\n 'tk', // Turkmen\n 'uk', // Ukrainian\n 'ur', // Urdu\n 'ug', // Uyghur\n 'uz', // Uzbek\n 'vi', // Vietnamese\n 'cy', // Welsh\n 'xh', // Xhosa\n 'yi', // Yiddish\n 'yo', // Yoruba\n 'zu' // Zulu\n] as const;\n\n/**\n * All supported language codes (union of DeepL and Google Translate)\n */\nexport const SUPPORTED_LANGUAGES = Array.from(\n new Set([...DEEPL_LANGUAGES, ...GOOGLE_LANGUAGES])\n).sort() as readonly string[];\n\nexport type DeepLLanguage = (typeof DEEPL_LANGUAGES)[number];\nexport type GoogleLanguage = (typeof GOOGLE_LANGUAGES)[number];\nexport type SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number];\n\n/**\n * JSON Schema for .translationsrc.json\n */\nexport const TRANSLATION_CONFIG_SCHEMA = {\n title: 'Translation Configuration',\n description: 'Configuration for the translation management system',\n type: 'object',\n properties: {\n $schema: {\n type: 'string',\n description: 'JSON Schema reference'\n },\n translationsPath: {\n type: 'string',\n description: 'Path to the translations directory relative to project root',\n default: 'public/static/locales',\n examples: ['public/static/locales', 'src/locales', 'locales']\n },\n languages: {\n type: 'array',\n description: 'List of language codes to support',\n items: {\n type: 'string',\n enum: SUPPORTED_LANGUAGES\n },\n minItems: 1,\n uniqueItems: true,\n default: ['en']\n },\n sourceLanguage: {\n type: 'string',\n description: 'Source language for translations (usually \"en\")',\n enum: SUPPORTED_LANGUAGES,\n default: 'en'\n },\n typesOutputPath: {\n type: 'string',\n description: 'Path to output TypeScript types file',\n default: 'src/types/i18nTypes.ts',\n examples: ['src/types/i18nTypes.ts', 'src/types/translations.ts']\n },\n provider: {\n type: 'string',\n description: 'Translation provider to use (deepl or google)',\n enum: TRANSLATION_PROVIDERS,\n default: 'deepl'\n }\n },\n required: ['translationsPath', 'languages', 'sourceLanguage'],\n additionalProperties: false\n};\n\n/**\n * Validate if a language code is supported\n */\nexport function isValidLanguage(lang: string): lang is SupportedLanguage {\n return SUPPORTED_LANGUAGES.includes(lang as SupportedLanguage);\n}\n\n/**\n * Validate if a language is supported by DeepL\n */\nexport function isValidDeepLLanguage(lang: string): lang is DeepLLanguage {\n return DEEPL_LANGUAGES.includes(lang as DeepLLanguage);\n}\n\n/**\n * Validate if a language is supported by Google Translate\n */\nexport function isValidGoogleLanguage(lang: string): lang is GoogleLanguage {\n return GOOGLE_LANGUAGES.includes(lang as GoogleLanguage);\n}\n\n/**\n * Validate if a language is supported by a specific provider\n */\nexport function isValidLanguageForProvider(lang: string, provider: TranslationProviderType): boolean {\n switch (provider) {\n case 'deepl':\n return isValidDeepLLanguage(lang);\n case 'google':\n return isValidGoogleLanguage(lang);\n default:\n return false;\n }\n}\n\n/**\n * Validate languages array\n */\nexport function validateLanguages(languages: string[]): {\n valid: boolean;\n invalid: string[];\n} {\n const invalid = languages.filter((lang) => !isValidLanguage(lang));\n return {\n valid: invalid.length === 0,\n invalid\n };\n}\n\n/**\n * Validate languages array for a specific provider\n */\nexport function validateLanguagesForProvider(\n languages: string[],\n provider: TranslationProviderType\n): {\n valid: boolean;\n invalid: string[];\n} {\n const invalid = languages.filter((lang) => !isValidLanguageForProvider(lang, provider));\n return {\n valid: invalid.length === 0,\n invalid\n };\n}\n\n/**\n * Get supported languages for a specific provider\n */\nexport function getSupportedLanguages(provider: TranslationProviderType): readonly string[] {\n switch (provider) {\n case 'deepl':\n return DEEPL_LANGUAGES;\n case 'google':\n return GOOGLE_LANGUAGES;\n default:\n return [];\n }\n}\n"],"mappings":";AAIA,SAAS,qBAAqB;AAC9B,SAAS,SAAS,YAAY;AAC9B,SAAS,qBAAqB;;;ACHvB,IAAM,wBAAwB,CAAC,SAAS,QAAQ;AAOhD,IAAM,kBAAkB;AAAA,EAC7B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF;AAOO,IAAM,mBAAmB;AAAA,EAC9B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF;AAKO,IAAM,sBAAsB,MAAM;AAAA,EACvC,oBAAI,IAAI,CAAC,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AACnD,EAAE,KAAK;AASA,IAAM,4BAA4B;AAAA,EACvC,OAAO;AAAA,EACP,aAAa;AAAA,EACb,MAAM;AAAA,EACN,YAAY;AAAA,IACV,SAAS;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU,CAAC,yBAAyB,eAAe,SAAS;AAAA,IAC9D;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO;AAAA,QACL,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAAA,MACA,UAAU;AAAA,MACV,aAAa;AAAA,MACb,SAAS,CAAC,IAAI;AAAA,IAChB;AAAA,IACA,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,aAAa;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU,CAAC,0BAA0B,2BAA2B;AAAA,IAClE;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,aAAa;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,UAAU,CAAC,oBAAoB,aAAa,gBAAgB;AAAA,EAC5D,sBAAsB;AACxB;;;ADhOA,IAAMA,cAAa,cAAc,YAAY,GAAG;AAChD,IAAMC,aAAY,QAAQD,WAAU;AAIpC,IAAM,cAAc,KAAKC,YAAW,OAAO;AAC3C,IAAM,qBAAqB,KAAK,aAAa,uDAAuD;AAEpG,IAAM,iBAAiB;AAAA,EACrB,SAAS;AAAA,EACT,KAAK;AAAA,EACL,GAAG;AACL;AAEA,cAAc,oBAAoB,GAAG,KAAK,UAAU,gBAAgB,MAAM,CAAC,CAAC;AAAA,CAAI;AAEhF,QAAQ,IAAI,kDAA6C;","names":["__filename","__dirname"]}