@scoutello/i18n-magic 0.65.0 โ 0.66.0
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 +13 -7
- package/dist/cli.js +20 -15
- package/dist/cli.js.map +1 -1
- package/dist/commands/check-missing.d.ts +11 -1
- package/dist/commands/check-missing.d.ts.map +1 -1
- package/dist/commands/check-missing.js +56 -96
- package/dist/commands/check-missing.js.map +1 -1
- package/dist/commands/replace.d.ts +6 -0
- package/dist/commands/replace.d.ts.map +1 -1
- package/dist/commands/replace.js +48 -29
- package/dist/commands/replace.js.map +1 -1
- package/dist/commands/scan.d.ts.map +1 -1
- package/dist/commands/scan.js +114 -80
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/sync-locales.d.ts.map +1 -1
- package/dist/commands/sync-locales.js +21 -28
- package/dist/commands/sync-locales.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/locale-storage.d.ts +7 -0
- package/dist/lib/locale-storage.d.ts.map +1 -0
- package/dist/lib/locale-storage.js +49 -0
- package/dist/lib/locale-storage.js.map +1 -0
- package/dist/lib/translation-response.d.ts +8 -0
- package/dist/lib/translation-response.d.ts.map +1 -0
- package/dist/lib/translation-response.js +43 -0
- package/dist/lib/translation-response.js.map +1 -0
- package/dist/lib/types.d.ts +1 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/update-translation-key.d.ts +16 -0
- package/dist/lib/update-translation-key.d.ts.map +1 -0
- package/dist/lib/update-translation-key.js +67 -0
- package/dist/lib/update-translation-key.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +69 -51
- package/dist/lib/utils.js.map +1 -1
- package/dist/mcp-server.js +28 -79
- package/dist/mcp-server.js.map +1 -1
- package/package.json +5 -9
- package/src/cli.ts +26 -18
- package/src/commands/check-missing.ts +83 -137
- package/src/commands/replace.ts +81 -43
- package/src/commands/scan.ts +130 -108
- package/src/commands/sync-locales.ts +41 -63
- package/src/index.ts +6 -1
- package/src/lib/locale-storage.ts +76 -0
- package/src/lib/translation-response.ts +59 -0
- package/src/lib/types.ts +1 -1
- package/src/lib/update-translation-key.ts +119 -0
- package/src/lib/utils.ts +92 -76
- package/src/mcp-server.ts +31 -112
package/dist/commands/scan.js
CHANGED
|
@@ -1,95 +1,129 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getKeysWithNamespaces, getPureKey, getTextInput, loadLocalesFile, translateKey, writeLocalesFile, } from "../lib/utils.js";
|
|
2
2
|
import { findUnusedKeys, removeUnusedKeys } from "./clean.js";
|
|
3
|
+
const fileKey = (locale, namespace) => JSON.stringify([locale, namespace]);
|
|
3
4
|
export const translateMissing = async (config) => {
|
|
4
|
-
const { loadPath, savePath, defaultLocale, namespaces, locales, context, openai, disableTranslationDuringScan, autoClear, } = config;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
const { loadPath, savePath, defaultLocale, defaultNamespace, namespaces, locales, context, openai, disableTranslationDuringScan, autoClear, } = config;
|
|
6
|
+
const activeLocales = disableTranslationDuringScan
|
|
7
|
+
? [defaultLocale]
|
|
8
|
+
: locales;
|
|
9
|
+
const keysWithNamespaces = await getKeysWithNamespaces({
|
|
10
|
+
globPatterns: config.globPatterns,
|
|
11
|
+
defaultNamespace,
|
|
12
|
+
});
|
|
13
|
+
const expectedByNamespace = Object.fromEntries(namespaces.map((namespace) => [namespace, new Set()]));
|
|
14
|
+
for (const { key, namespaces: keyNamespaces } of keysWithNamespaces) {
|
|
15
|
+
for (const namespace of keyNamespaces) {
|
|
16
|
+
if (!expectedByNamespace[namespace])
|
|
17
|
+
continue;
|
|
18
|
+
const pureKey = getPureKey(key, namespace, namespace === defaultNamespace);
|
|
19
|
+
const expectedKey = pureKey || (!key.includes(":") ? key : null);
|
|
20
|
+
if (expectedKey !== null)
|
|
21
|
+
expectedByNamespace[namespace].add(expectedKey);
|
|
11
22
|
}
|
|
12
|
-
|
|
13
|
-
|
|
23
|
+
}
|
|
24
|
+
const stagedFiles = new Map();
|
|
25
|
+
await Promise.all(activeLocales.flatMap((locale) => namespaces.map(async (namespace) => {
|
|
26
|
+
const translations = await loadLocalesFile(loadPath, locale, namespace, { silent: true });
|
|
27
|
+
stagedFiles.set(fileKey(locale, namespace), { ...translations });
|
|
28
|
+
})));
|
|
29
|
+
const changedFiles = new Set();
|
|
30
|
+
const missingDefaultKeys = new Map();
|
|
31
|
+
for (const namespace of namespaces) {
|
|
32
|
+
const translations = stagedFiles.get(fileKey(defaultLocale, namespace));
|
|
33
|
+
for (const key of expectedByNamespace[namespace]) {
|
|
34
|
+
if (!Object.hasOwn(translations, key)) {
|
|
35
|
+
missingDefaultKeys.get(key)?.add(namespace) ??
|
|
36
|
+
missingDefaultKeys.set(key, new Set([namespace]));
|
|
37
|
+
}
|
|
14
38
|
}
|
|
15
39
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
40
|
+
if (missingDefaultKeys.size > 0) {
|
|
41
|
+
console.log(`${missingDefaultKeys.size} keys are missing. Please provide the values for the following keys in ${defaultLocale}:`);
|
|
42
|
+
}
|
|
43
|
+
for (const [key, keyNamespaces] of missingDefaultKeys) {
|
|
44
|
+
let value;
|
|
45
|
+
for (const namespace of namespaces) {
|
|
46
|
+
const translations = stagedFiles.get(fileKey(defaultLocale, namespace));
|
|
47
|
+
if (Object.hasOwn(translations, key)) {
|
|
48
|
+
value = translations[key];
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
value ?? (value = await getTextInput(key, Array.from(keyNamespaces)));
|
|
53
|
+
for (const namespace of keyNamespaces) {
|
|
54
|
+
stagedFiles.get(fileKey(defaultLocale, namespace))[key] = value;
|
|
55
|
+
changedFiles.add(fileKey(defaultLocale, namespace));
|
|
56
|
+
}
|
|
21
57
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
answer = existingValue;
|
|
58
|
+
await Promise.all(activeLocales
|
|
59
|
+
.filter((locale) => locale !== defaultLocale)
|
|
60
|
+
.map(async (locale) => {
|
|
61
|
+
const missingByKey = new Map();
|
|
62
|
+
for (const namespace of namespaces) {
|
|
63
|
+
const translations = stagedFiles.get(fileKey(locale, namespace));
|
|
64
|
+
for (const key of expectedByNamespace[namespace]) {
|
|
65
|
+
if (!Object.hasOwn(translations, key)) {
|
|
66
|
+
missingByKey.get(key)?.add(namespace) ??
|
|
67
|
+
missingByKey.set(key, new Set([namespace]));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
35
70
|
}
|
|
36
|
-
|
|
37
|
-
|
|
71
|
+
const reused = {};
|
|
72
|
+
const keysToTranslate = {};
|
|
73
|
+
for (const key of missingByKey.keys()) {
|
|
74
|
+
let existingValue;
|
|
75
|
+
for (const namespace of namespaces) {
|
|
76
|
+
const translations = stagedFiles.get(fileKey(locale, namespace));
|
|
77
|
+
if (Object.hasOwn(translations, key)) {
|
|
78
|
+
existingValue = translations[key];
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (existingValue !== undefined) {
|
|
83
|
+
reused[key] = existingValue;
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
const sourceNamespace = Array.from(missingByKey.get(key))[0];
|
|
87
|
+
const sourceTranslations = stagedFiles.get(fileKey(defaultLocale, sourceNamespace));
|
|
88
|
+
keysToTranslate[key] = sourceTranslations[key];
|
|
38
89
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
90
|
+
const translated = await translateKey({
|
|
91
|
+
inputLanguage: defaultLocale,
|
|
92
|
+
outputLanguage: locale,
|
|
93
|
+
context,
|
|
94
|
+
object: keysToTranslate,
|
|
95
|
+
openai,
|
|
96
|
+
model: config.model,
|
|
44
97
|
});
|
|
98
|
+
const resolvedValues = { ...reused, ...translated };
|
|
99
|
+
for (const [key, keyNamespaces] of missingByKey) {
|
|
100
|
+
for (const namespace of keyNamespaces) {
|
|
101
|
+
stagedFiles.get(fileKey(locale, namespace))[key] =
|
|
102
|
+
resolvedValues[key];
|
|
103
|
+
changedFiles.add(fileKey(locale, namespace));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}));
|
|
107
|
+
for (const locale of activeLocales) {
|
|
108
|
+
for (const namespace of namespaces) {
|
|
109
|
+
const key = fileKey(locale, namespace);
|
|
110
|
+
if (!changedFiles.has(key))
|
|
111
|
+
continue;
|
|
112
|
+
await writeLocalesFile(savePath, locale, namespace, stagedFiles.get(key));
|
|
113
|
+
console.log(` ๐ Updated ${locale}/${namespace}.json`);
|
|
114
|
+
}
|
|
45
115
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
116
|
+
if (autoClear) {
|
|
117
|
+
console.log("๐งน Checking for unused translations after scanning...");
|
|
118
|
+
const report = await findUnusedKeys(config);
|
|
119
|
+
if (report.unusedCount > 0)
|
|
120
|
+
await removeUnusedKeys(config);
|
|
49
121
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return prev;
|
|
53
|
-
}, {});
|
|
54
|
-
const allLocales = disableTranslationDuringScan ? [defaultLocale] : locales;
|
|
55
|
-
// Batch translate for all non-default locales in parallel
|
|
56
|
-
const translationCache = {
|
|
57
|
-
[defaultLocale]: newKeysObject,
|
|
58
|
-
};
|
|
59
|
-
const nonDefaultLocales = allLocales.filter((l) => l !== defaultLocale);
|
|
60
|
-
if (nonDefaultLocales.length > 0) {
|
|
61
|
-
await Promise.all(nonDefaultLocales.map(async (locale) => {
|
|
62
|
-
const translatedValues = await translateKey({
|
|
63
|
-
inputLanguage: defaultLocale,
|
|
64
|
-
outputLanguage: locale,
|
|
65
|
-
context,
|
|
66
|
-
object: newKeysObject,
|
|
67
|
-
openai,
|
|
68
|
-
model: config.model,
|
|
69
|
-
});
|
|
70
|
-
translationCache[locale] = translatedValues;
|
|
71
|
-
}));
|
|
122
|
+
if (changedFiles.size === 0) {
|
|
123
|
+
console.log("No missing translations found.");
|
|
72
124
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
await Promise.all(allLocales.flatMap((locale) => namespaces.map(async (namespace) => {
|
|
76
|
-
const existingKeys = await loadLocalesFile(loadPath, locale, namespace);
|
|
77
|
-
const relevantKeys = newKeysWithDefaultLocale.filter((key) => key.namespaces?.includes(namespace));
|
|
78
|
-
if (relevantKeys.length === 0) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
const translatedValues = translationCache[locale];
|
|
82
|
-
for (const key of relevantKeys) {
|
|
83
|
-
existingKeys[key.key] = translatedValues[key.key];
|
|
84
|
-
}
|
|
85
|
-
await writeLocalesFile(savePath, locale, namespace, existingKeys);
|
|
86
|
-
writeResults.push({ locale, namespace, keyCount: relevantKeys.length });
|
|
87
|
-
})));
|
|
88
|
-
// Log where keys were written
|
|
89
|
-
for (const { locale, namespace, keyCount } of writeResults) {
|
|
90
|
-
console.log(` ๐ Wrote ${keyCount} key(s) to ${locale}/${namespace}.json`);
|
|
125
|
+
else {
|
|
126
|
+
console.log(`Successfully updated ${changedFiles.size} locale file(s).`);
|
|
91
127
|
}
|
|
92
|
-
await checkAllKeysExist(config);
|
|
93
|
-
console.log(`Successfully translated ${newKeys.length} keys.`);
|
|
94
128
|
};
|
|
95
129
|
//# sourceMappingURL=scan.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AACA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-locales.d.ts","sourceRoot":"","sources":["../../src/commands/sync-locales.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sync-locales.d.ts","sourceRoot":"","sources":["../../src/commands/sync-locales.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAapD,eAAO,MAAM,WAAW,GAAU,QAAQ,aAAa,kBAiatD,CAAA"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
1
|
import chalk from "chalk";
|
|
3
2
|
import cliProgress from "cli-progress";
|
|
4
3
|
import { languages } from "../lib/languges.js";
|
|
5
|
-
import {
|
|
4
|
+
import { loadLocalesFile, TranslationError, translateKey, writeLocalesFile, } from "../lib/utils.js";
|
|
6
5
|
const getLanguageLabel = (locale) => {
|
|
7
6
|
const lang = languages.find((l) => l.value === locale);
|
|
8
7
|
return lang?.label || locale;
|
|
@@ -27,6 +26,7 @@ export const syncLocales = async (config) => {
|
|
|
27
26
|
reused: 0,
|
|
28
27
|
};
|
|
29
28
|
}
|
|
29
|
+
const stagedFiles = new Map();
|
|
30
30
|
const progressBars = new cliProgress.MultiBar({
|
|
31
31
|
format: ` {label} {bar} {percentage}% | {value}/{total} | {duration_formatted} | {status}`,
|
|
32
32
|
barCompleteChar: chalk.green("โ"),
|
|
@@ -49,19 +49,6 @@ export const syncLocales = async (config) => {
|
|
|
49
49
|
const originalConsoleLog = console.log;
|
|
50
50
|
const suppressedLog = () => { };
|
|
51
51
|
try {
|
|
52
|
-
// Helper to ensure a locale/namespace file exists before we add keys
|
|
53
|
-
const ensureLocaleNamespaceFile = async (locale, namespace) => {
|
|
54
|
-
if (typeof savePath === "string") {
|
|
55
|
-
const filePath = savePath
|
|
56
|
-
.replace("{{lng}}", locale)
|
|
57
|
-
.replace("{{ns}}", namespace);
|
|
58
|
-
if (!fs.existsSync(filePath)) {
|
|
59
|
-
await writeLocalesFile(savePath, locale, namespace, {});
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
// Ensure all default-locale namespace files exist first
|
|
64
|
-
await Promise.all(namespaces.map((namespace) => ensureLocaleNamespaceFile(defaultLocale, namespace)));
|
|
65
52
|
// Process locales in parallel batches
|
|
66
53
|
let completedCount = 0;
|
|
67
54
|
const currentlyProcessing = new Set();
|
|
@@ -115,8 +102,6 @@ export const syncLocales = async (config) => {
|
|
|
115
102
|
currentlyProcessing.add(locale);
|
|
116
103
|
updateProgressDisplay();
|
|
117
104
|
try {
|
|
118
|
-
// Ensure all namespace files for this locale exist
|
|
119
|
-
await Promise.all(namespaces.map((namespace) => ensureLocaleNamespaceFile(locale, namespace)));
|
|
120
105
|
// Collect all missing keys for this locale across all namespaces
|
|
121
106
|
const allMissingKeys = {};
|
|
122
107
|
const namespaceKeys = {};
|
|
@@ -135,7 +120,7 @@ export const syncLocales = async (config) => {
|
|
|
135
120
|
const { namespace, defaultLocaleKeys, localeKeys } = result;
|
|
136
121
|
namespaceKeys[namespace] = localeKeys;
|
|
137
122
|
for (const [key, value] of Object.entries(defaultLocaleKeys)) {
|
|
138
|
-
if (!localeKeys
|
|
123
|
+
if (!Object.hasOwn(localeKeys, key)) {
|
|
139
124
|
if (allMissingKeys[key]) {
|
|
140
125
|
allMissingKeys[key].namespaces.push(namespace);
|
|
141
126
|
}
|
|
@@ -159,11 +144,10 @@ export const syncLocales = async (config) => {
|
|
|
159
144
|
// Check for existing translations
|
|
160
145
|
const keysToTranslate = {};
|
|
161
146
|
const existingTranslations = {};
|
|
162
|
-
const existingTranslationResults = await findExistingTranslations(missingKeysList, namespaces, locale, loadPath, { silent: true });
|
|
163
147
|
for (const key of missingKeysList) {
|
|
164
|
-
const
|
|
165
|
-
if (
|
|
166
|
-
existingTranslations[key] =
|
|
148
|
+
const existingNamespace = namespaces.find((namespace) => Object.hasOwn(namespaceKeys[namespace], key));
|
|
149
|
+
if (existingNamespace !== undefined) {
|
|
150
|
+
existingTranslations[key] = namespaceKeys[existingNamespace][key];
|
|
167
151
|
localeResults[locale].reused++;
|
|
168
152
|
}
|
|
169
153
|
else {
|
|
@@ -209,20 +193,23 @@ export const syncLocales = async (config) => {
|
|
|
209
193
|
}
|
|
210
194
|
// Combine and save
|
|
211
195
|
const allTranslations = { ...existingTranslations, ...translatedValues };
|
|
212
|
-
|
|
196
|
+
for (const namespace of namespaces) {
|
|
213
197
|
let hasChanges = false;
|
|
214
198
|
const updatedKeys = { ...namespaceKeys[namespace] };
|
|
215
199
|
for (const key of missingKeysList) {
|
|
216
200
|
if (allMissingKeys[key].namespaces.includes(namespace)) {
|
|
217
|
-
|
|
218
|
-
updatedKeys[key] = translation;
|
|
201
|
+
updatedKeys[key] = allTranslations[key];
|
|
219
202
|
hasChanges = true;
|
|
220
203
|
}
|
|
221
204
|
}
|
|
222
205
|
if (hasChanges) {
|
|
223
|
-
|
|
206
|
+
stagedFiles.set(JSON.stringify([locale, namespace]), {
|
|
207
|
+
locale,
|
|
208
|
+
namespace,
|
|
209
|
+
translations: updatedKeys,
|
|
210
|
+
});
|
|
224
211
|
}
|
|
225
|
-
}
|
|
212
|
+
}
|
|
226
213
|
localeResults[locale].status = "done";
|
|
227
214
|
currentlyProcessing.delete(locale);
|
|
228
215
|
completedCount++;
|
|
@@ -247,6 +234,13 @@ export const syncLocales = async (config) => {
|
|
|
247
234
|
// Restore console.log
|
|
248
235
|
console.log = originalConsoleLog;
|
|
249
236
|
progressBars.stop();
|
|
237
|
+
const errorLocales = localesToProcess.filter((locale) => localeResults[locale].status === "error");
|
|
238
|
+
if (errorLocales.length > 0) {
|
|
239
|
+
throw new TranslationError(`Sync failed for ${errorLocales.length} locale(s); no translations were written.`);
|
|
240
|
+
}
|
|
241
|
+
for (const { locale, namespace, translations } of stagedFiles.values()) {
|
|
242
|
+
await writeLocalesFile(savePath, locale, namespace, translations);
|
|
243
|
+
}
|
|
250
244
|
// Print summary
|
|
251
245
|
console.log("");
|
|
252
246
|
console.log(chalk.green("โจ Sync complete!\n"));
|
|
@@ -265,7 +259,6 @@ export const syncLocales = async (config) => {
|
|
|
265
259
|
console.log(chalk.dim(" Results by language:\n"));
|
|
266
260
|
// Group results into columns for compact display
|
|
267
261
|
const doneLocales = localesToProcess.filter((l) => localeResults[l].status === "done");
|
|
268
|
-
const errorLocales = localesToProcess.filter((l) => localeResults[l].status === "error");
|
|
269
262
|
// Show successful languages in a compact grid
|
|
270
263
|
if (doneLocales.length > 0) {
|
|
271
264
|
const columns = 3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-locales.js","sourceRoot":"","sources":["../../src/commands/sync-locales.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-locales.js","sourceRoot":"","sources":["../../src/commands/sync-locales.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { checkMissing } from "./commands/check-missing.js";
|
|
1
|
+
export { checkMissing, collectMissingTranslations, MissingTranslationsError, } from "./commands/check-missing.js";
|
|
2
|
+
export type { MissingTranslationsReport } from "./commands/check-missing.js";
|
|
2
3
|
export { removeUnusedKeys } from "./commands/clean.js";
|
|
3
4
|
export { replaceTranslation } from "./commands/replace.js";
|
|
4
5
|
export { translateMissing } from "./commands/scan.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,6BAA6B,CAAA;AACpC,YAAY,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAGxD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAI9D,YAAY,EACV,WAAW,EACX,aAAa,EACb,iBAAiB,GAClB,MAAM,gBAAgB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Export command functions for programmatic usage
|
|
2
|
-
export { checkMissing } from "./commands/check-missing.js";
|
|
2
|
+
export { checkMissing, collectMissingTranslations, MissingTranslationsError, } from "./commands/check-missing.js";
|
|
3
3
|
export { removeUnusedKeys } from "./commands/clean.js";
|
|
4
4
|
export { replaceTranslation } from "./commands/replace.js";
|
|
5
5
|
export { translateMissing } from "./commands/scan.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EACL,YAAY,EACZ,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,2BAA2B;AAC3B,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Configuration } from "./types.js";
|
|
2
|
+
export declare class LocaleConfigurationError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export declare const resolveConfiguredLocale: (config: Pick<Configuration, "defaultLocale" | "locales">, requested?: string) => string;
|
|
6
|
+
export declare const resolveLocaleTemplatePath: (template: string, locale: string, namespace: string) => string;
|
|
7
|
+
//# sourceMappingURL=locale-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-storage.d.ts","sourceRoot":"","sources":["../../src/lib/locale-storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAED,eAAO,MAAM,uBAAuB,GAClC,QAAQ,IAAI,CAAC,aAAa,EAAE,eAAe,GAAG,SAAS,CAAC,EACxD,YAAY,MAAM,WAWnB,CAAA;AA2BD,eAAO,MAAM,yBAAyB,GACpC,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,WAAW,MAAM,WAsBlB,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
export class LocaleConfigurationError extends Error {
|
|
3
|
+
constructor(message) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.name = "LocaleConfigurationError";
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export const resolveConfiguredLocale = (config, requested) => {
|
|
9
|
+
const locale = requested ?? config.defaultLocale;
|
|
10
|
+
if (!config.locales.includes(locale)) {
|
|
11
|
+
throw new LocaleConfigurationError(`Unsupported locale "${locale}". Expected one of: ${config.locales.join(", ")}.`);
|
|
12
|
+
}
|
|
13
|
+
return locale;
|
|
14
|
+
};
|
|
15
|
+
const getConfiguredBasePath = (template) => {
|
|
16
|
+
const placeholderIndexes = [
|
|
17
|
+
template.indexOf("{{lng}}"),
|
|
18
|
+
template.indexOf("{{ns}}"),
|
|
19
|
+
].filter((index) => index >= 0);
|
|
20
|
+
if (placeholderIndexes.length === 0) {
|
|
21
|
+
return path.dirname(path.resolve(template));
|
|
22
|
+
}
|
|
23
|
+
const firstPlaceholder = Math.min(...placeholderIndexes);
|
|
24
|
+
const staticPrefix = template.slice(0, firstPlaceholder);
|
|
25
|
+
if (staticPrefix.length === 0 ||
|
|
26
|
+
staticPrefix.endsWith(path.sep) ||
|
|
27
|
+
staticPrefix.endsWith("/") ||
|
|
28
|
+
staticPrefix.endsWith("\\")) {
|
|
29
|
+
return path.resolve(staticPrefix || ".");
|
|
30
|
+
}
|
|
31
|
+
return path.dirname(path.resolve(staticPrefix));
|
|
32
|
+
};
|
|
33
|
+
export const resolveLocaleTemplatePath = (template, locale, namespace) => {
|
|
34
|
+
const configuredBase = getConfiguredBasePath(template);
|
|
35
|
+
const expandedPath = template
|
|
36
|
+
.split("{{lng}}")
|
|
37
|
+
.join(locale)
|
|
38
|
+
.split("{{ns}}")
|
|
39
|
+
.join(namespace);
|
|
40
|
+
const resolvedPath = path.resolve(expandedPath);
|
|
41
|
+
const relativePath = path.relative(configuredBase, resolvedPath);
|
|
42
|
+
if (relativePath === ".." ||
|
|
43
|
+
relativePath.startsWith(`..${path.sep}`) ||
|
|
44
|
+
path.isAbsolute(relativePath)) {
|
|
45
|
+
throw new LocaleConfigurationError("Expanded locale path escapes the configured storage base.");
|
|
46
|
+
}
|
|
47
|
+
return resolvedPath;
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=locale-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-storage.js","sourceRoot":"","sources":["../../src/lib/locale-storage.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;IACxC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,MAAwD,EACxD,SAAkB,EAClB,EAAE;IACF,MAAM,MAAM,GAAG,SAAS,IAAI,MAAM,CAAC,aAAa,CAAA;IAEhD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,wBAAwB,CAChC,uBAAuB,MAAM,uBAAuB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjF,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,QAAgB,EAAE,EAAE;IACjD,MAAM,kBAAkB,GAAG;QACzB,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;QAC3B,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;KAC3B,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAA;IAE/B,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAA;IACxD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAA;IAExD,IACE,YAAY,CAAC,MAAM,KAAK,CAAC;QACzB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QAC/B,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC1B,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC3B,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;AACjD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,QAAgB,EAChB,MAAc,EACd,SAAiB,EACjB,EAAE;IACF,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IACtD,MAAM,YAAY,GAAG,QAAQ;SAC1B,KAAK,CAAC,SAAS,CAAC;SAChB,IAAI,CAAC,MAAM,CAAC;SACZ,KAAK,CAAC,QAAQ,CAAC;SACf,IAAI,CAAC,SAAS,CAAC,CAAA;IAClB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IAEhE,IACE,YAAY,KAAK,IAAI;QACrB,YAAY,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAC7B,CAAC;QACD,MAAM,IAAI,wBAAwB,CAChC,2DAA2D,CAC5D,CAAA;IACH,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class TranslationResponseError extends Error {
|
|
2
|
+
constructor(message: string);
|
|
3
|
+
}
|
|
4
|
+
export declare class TranslationProviderUnavailableError extends Error {
|
|
5
|
+
constructor();
|
|
6
|
+
}
|
|
7
|
+
export declare const parseTranslationResponse: (content: string | null, requestedKeys: string[]) => Record<string, string>;
|
|
8
|
+
//# sourceMappingURL=translation-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translation-response.d.ts","sourceRoot":"","sources":["../../src/lib/translation-response.ts"],"names":[],"mappings":"AAAA,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,mCAAoC,SAAQ,KAAK;;CAO7D;AAED,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,GAAG,IAAI,EACtB,eAAe,MAAM,EAAE,KACtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAuCvB,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export class TranslationResponseError extends Error {
|
|
2
|
+
constructor(message) {
|
|
3
|
+
super(message);
|
|
4
|
+
this.name = "TranslationResponseError";
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export class TranslationProviderUnavailableError extends Error {
|
|
8
|
+
constructor() {
|
|
9
|
+
super("A translation provider is required for this operation, but no provider credentials are configured.");
|
|
10
|
+
this.name = "TranslationProviderUnavailableError";
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export const parseTranslationResponse = (content, requestedKeys) => {
|
|
14
|
+
let parsed;
|
|
15
|
+
try {
|
|
16
|
+
parsed = content === null ? null : JSON.parse(content);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
throw new TranslationResponseError("Translation provider returned malformed JSON.");
|
|
20
|
+
}
|
|
21
|
+
if (parsed === null || Array.isArray(parsed) || typeof parsed !== "object") {
|
|
22
|
+
throw new TranslationResponseError("Translation provider returned a value that is not a JSON object.");
|
|
23
|
+
}
|
|
24
|
+
const response = parsed;
|
|
25
|
+
const requested = new Set(requestedKeys);
|
|
26
|
+
const responseKeys = Object.keys(response);
|
|
27
|
+
const missingKeys = requestedKeys.filter((key) => !Object.hasOwn(response, key));
|
|
28
|
+
const extraKeys = responseKeys.filter((key) => !requested.has(key));
|
|
29
|
+
const invalidValueKeys = responseKeys.filter((key) => typeof response[key] !== "string");
|
|
30
|
+
if (missingKeys.length > 0 || extraKeys.length > 0 || invalidValueKeys.length > 0) {
|
|
31
|
+
const problems = [];
|
|
32
|
+
if (missingKeys.length > 0)
|
|
33
|
+
problems.push(`missing keys: ${missingKeys.join(", ")}`);
|
|
34
|
+
if (extraKeys.length > 0)
|
|
35
|
+
problems.push(`extra keys: ${extraKeys.join(", ")}`);
|
|
36
|
+
if (invalidValueKeys.length > 0) {
|
|
37
|
+
problems.push(`non-string values: ${invalidValueKeys.join(", ")}`);
|
|
38
|
+
}
|
|
39
|
+
throw new TranslationResponseError(`Translation provider returned an invalid key/value shape (${problems.join("; ")}).`);
|
|
40
|
+
}
|
|
41
|
+
return response;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=translation-response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translation-response.js","sourceRoot":"","sources":["../../src/lib/translation-response.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;IACxC,CAAC;CACF;AAED,MAAM,OAAO,mCAAoC,SAAQ,KAAK;IAC5D;QACE,KAAK,CACH,oGAAoG,CACrG,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,qCAAqC,CAAA;IACnD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,OAAsB,EACtB,aAAuB,EACC,EAAE;IAC1B,IAAI,MAAe,CAAA;IAEnB,IAAI,CAAC;QACH,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,wBAAwB,CAChC,+CAA+C,CAChD,CAAA;IACH,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3E,MAAM,IAAI,wBAAwB,CAChC,kEAAkE,CACnE,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAiC,CAAA;IAClD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAA;IACxC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC1C,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;IAChF,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACnE,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAC1C,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ,CAC3C,CAAA;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClF,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACpF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9E,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACpE,CAAC;QACD,MAAM,IAAI,wBAAwB,CAChC,6DAA6D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACrF,CAAA;IACH,CAAC;IAED,OAAO,QAAkC,CAAA;AAC3C,CAAC,CAAA"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export interface Configuration {
|
|
|
24
24
|
export interface CommandType {
|
|
25
25
|
name: string;
|
|
26
26
|
description: string;
|
|
27
|
-
action: (config: Configuration, ...args: any[]) => Promise<
|
|
27
|
+
action: (config: Configuration, ...args: any[]) => Promise<unknown>;
|
|
28
28
|
}
|
|
29
29
|
export {};
|
|
30
30
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE3D,KAAK,KAAK,GACN,SAAS,GACT,0BAA0B,GAC1B,kBAAkB,GAClB,uBAAuB,CAAA;AAE3B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EACJ,MAAM,GACN,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC5E,QAAQ,EACJ,MAAM,GACN,CAAC,CACC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,CAAC,MAAM,GAAG,iBAAiB,CAAC,EAAE,CAAA;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE3D,KAAK,KAAK,GACN,SAAS,GACT,0BAA0B,GAC1B,kBAAkB,GAClB,uBAAuB,CAAA;AAE3B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EACJ,MAAM,GACN,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC5E,QAAQ,EACJ,MAAM,GACN,CAAC,CACC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,CAAC,MAAM,GAAG,iBAAiB,CAAC,EAAE,CAAA;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACpE"}
|