@langapi/mcp-server 1.0.1 → 1.0.2
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/dist/tools/sync-translations.d.ts.map +1 -1
- package/dist/tools/sync-translations.js +174 -146
- package/dist/tools/sync-translations.js.map +1 -1
- package/dist/utils/sync-cache.d.ts.map +1 -1
- package/dist/utils/sync-cache.js +13 -26
- package/dist/utils/sync-cache.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-translations.d.ts","sourceRoot":"","sources":["../../src/tools/sync-translations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0BzE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAqB1B,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-translations.d.ts","sourceRoot":"","sources":["../../src/tools/sync-translations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0BzE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAqB1B,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAuJ3E;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2pBhE"}
|
|
@@ -105,7 +105,6 @@ function removeExtraKeys(targetObj, sourceKeys) {
|
|
|
105
105
|
if (extraKeys.length === 0) {
|
|
106
106
|
return targetObj;
|
|
107
107
|
}
|
|
108
|
-
console.error(`[SYNC] Removing extra keys not in source: ${extraKeys.join(", ")}`);
|
|
109
108
|
return removeKeysFromObject(targetObj, extraKeys);
|
|
110
109
|
}
|
|
111
110
|
/**
|
|
@@ -144,27 +143,33 @@ export function registerSyncTranslations(server) {
|
|
|
144
143
|
content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
|
|
145
144
|
};
|
|
146
145
|
}
|
|
147
|
-
|
|
148
|
-
const sourceContent = {};
|
|
149
|
-
let sourceFormat = { indent: " ", trailingNewline: true };
|
|
146
|
+
const sourceFilesData = [];
|
|
150
147
|
for (const file of sourceLocale.files) {
|
|
151
148
|
const content = await readFile(file.path, "utf-8");
|
|
152
149
|
const parsed = parseJsonWithFormat(content);
|
|
153
150
|
if (parsed) {
|
|
154
|
-
|
|
155
|
-
|
|
151
|
+
const flatContent = flattenJson(parsed.data);
|
|
152
|
+
sourceFilesData.push({
|
|
153
|
+
file,
|
|
154
|
+
content: parsed.data,
|
|
155
|
+
flatContent,
|
|
156
|
+
format: parsed.format,
|
|
157
|
+
});
|
|
156
158
|
}
|
|
157
159
|
}
|
|
160
|
+
// Also create merged versions for backward compatibility with cache/delta logic
|
|
161
|
+
const sourceContent = {};
|
|
162
|
+
let sourceFormat = { indent: " ", trailingNewline: true };
|
|
163
|
+
for (const fileData of sourceFilesData) {
|
|
164
|
+
Object.assign(sourceContent, fileData.content);
|
|
165
|
+
sourceFormat = fileData.format;
|
|
166
|
+
}
|
|
158
167
|
// Flatten source content for API
|
|
159
168
|
const flatContent = flattenJson(sourceContent);
|
|
160
169
|
const sourceKeys = new Set(flatContent.map((item) => item.key));
|
|
161
|
-
console.error(`[SYNC] projectPath: ${projectPath}`);
|
|
162
|
-
console.error(`[SYNC] flatContent has ${flatContent.length} keys`);
|
|
163
170
|
// Read cache and detect local delta
|
|
164
171
|
const cachedContent = await readSyncCache(projectPath, input.source_lang);
|
|
165
|
-
console.error(`[SYNC] cachedContent: ${cachedContent ? Object.keys(cachedContent).length + ' keys' : 'null'}`);
|
|
166
172
|
const localDelta = detectLocalDelta(flatContent, cachedContent);
|
|
167
|
-
console.error(`[SYNC] localDelta: ${localDelta.newKeys.length} new, ${localDelta.changedKeys.length} changed, ${localDelta.unchangedKeys.length} unchanged`);
|
|
168
173
|
// Detect missing target languages (files that don't exist yet)
|
|
169
174
|
const missingLanguages = [];
|
|
170
175
|
const existingLanguages = [];
|
|
@@ -177,32 +182,53 @@ export function registerSyncTranslations(server) {
|
|
|
177
182
|
existingLanguages.push(targetLang);
|
|
178
183
|
}
|
|
179
184
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
185
|
+
// Detect missing target FILES (not just languages)
|
|
186
|
+
// A language may exist but be missing some namespace files
|
|
187
|
+
const languagesWithMissingFiles = [];
|
|
188
|
+
for (const targetLang of existingLanguages) {
|
|
189
|
+
for (const sourceFileData of sourceFilesData) {
|
|
190
|
+
// Compute expected target file path
|
|
191
|
+
const targetFilePath = sourceFileData.file.path.replace(`/${input.source_lang}/`, `/${targetLang}/`);
|
|
192
|
+
// Check if file exists
|
|
193
|
+
try {
|
|
194
|
+
await readFile(targetFilePath, "utf-8");
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
// File doesn't exist - this language has missing files
|
|
198
|
+
if (!languagesWithMissingFiles.includes(targetLang)) {
|
|
199
|
+
languagesWithMissingFiles.push(targetLang);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
// If no content to sync AND no missing languages AND no missing files, return early
|
|
205
|
+
if (localDelta.contentToSync.length === 0 && missingLanguages.length === 0 && languagesWithMissingFiles.length === 0) {
|
|
184
206
|
if (input.dry_run) {
|
|
185
207
|
// Check for extra keys in target files even in dry_run mode
|
|
186
208
|
let totalExtraKeys = 0;
|
|
187
209
|
const extraKeysByLang = {};
|
|
188
210
|
for (const targetLang of input.target_langs) {
|
|
189
|
-
const
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
const
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
211
|
+
const langExtraKeys = [];
|
|
212
|
+
// Check each source file's corresponding target file
|
|
213
|
+
for (const sourceFileData of sourceFilesData) {
|
|
214
|
+
const targetFilePath = sourceFileData.file.path.replace(`/${input.source_lang}/`, `/${targetLang}/`);
|
|
215
|
+
const sourceFileKeys = new Set(sourceFileData.flatContent.map((item) => item.key));
|
|
216
|
+
try {
|
|
217
|
+
const content = await readFile(targetFilePath, "utf-8");
|
|
218
|
+
const parsed = parseJsonSafe(content);
|
|
219
|
+
if (parsed) {
|
|
220
|
+
const targetFlat = flattenJson(parsed);
|
|
221
|
+
const extraKeys = targetFlat.filter((t) => !sourceFileKeys.has(t.key)).map((t) => t.key);
|
|
222
|
+
langExtraKeys.push(...extraKeys);
|
|
201
223
|
}
|
|
202
224
|
}
|
|
225
|
+
catch {
|
|
226
|
+
// File doesn't exist or can't be read
|
|
227
|
+
}
|
|
203
228
|
}
|
|
204
|
-
|
|
205
|
-
|
|
229
|
+
if (langExtraKeys.length > 0) {
|
|
230
|
+
extraKeysByLang[targetLang] = langExtraKeys;
|
|
231
|
+
totalExtraKeys += langExtraKeys.length;
|
|
206
232
|
}
|
|
207
233
|
}
|
|
208
234
|
const output = {
|
|
@@ -231,38 +257,46 @@ export function registerSyncTranslations(server) {
|
|
|
231
257
|
const results = [];
|
|
232
258
|
if (input.write_to_files) {
|
|
233
259
|
for (const targetLang of input.target_langs) {
|
|
234
|
-
const
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
const existingContent = await readFile(resolvedPath, "utf-8");
|
|
243
|
-
const parsed = parseJsonSafe(existingContent);
|
|
244
|
-
if (!parsed) {
|
|
245
|
-
results.push({ language: targetLang, translated_count: 0, file_written: null });
|
|
260
|
+
const filesWritten = [];
|
|
261
|
+
let totalKeysRemovedForLang = 0;
|
|
262
|
+
// Process each source file's corresponding target file
|
|
263
|
+
for (const sourceFileData of sourceFilesData) {
|
|
264
|
+
// Compute target file path by replacing source lang with target lang
|
|
265
|
+
const targetFilePath = sourceFileData.file.path.replace(`/${input.source_lang}/`, `/${targetLang}/`);
|
|
266
|
+
const resolvedPath = resolve(targetFilePath);
|
|
267
|
+
if (!isPathWithinProject(resolvedPath, projectPath)) {
|
|
246
268
|
continue;
|
|
247
269
|
}
|
|
248
|
-
//
|
|
249
|
-
const
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
270
|
+
// Get the keys that belong to this source file
|
|
271
|
+
const sourceFileKeys = new Set(sourceFileData.flatContent.map((item) => item.key));
|
|
272
|
+
try {
|
|
273
|
+
const existingContent = await readFile(resolvedPath, "utf-8");
|
|
274
|
+
const parsed = parseJsonSafe(existingContent);
|
|
275
|
+
if (!parsed) {
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
// Check for and remove extra keys
|
|
279
|
+
const cleaned = removeExtraKeys(parsed, sourceFileKeys);
|
|
280
|
+
const cleanedStr = stringifyWithFormat(cleaned, sourceFileData.format);
|
|
281
|
+
const originalStr = stringifyWithFormat(parsed, sourceFileData.format);
|
|
282
|
+
if (cleanedStr !== originalStr) {
|
|
283
|
+
// Extra keys were removed, write the cleaned file
|
|
284
|
+
await writeFile(resolvedPath, cleanedStr, "utf-8");
|
|
285
|
+
const keysRemoved = flattenJson(parsed).length - flattenJson(cleaned).length;
|
|
286
|
+
filesWritten.push(resolvedPath);
|
|
287
|
+
totalKeysRemovedForLang += keysRemoved;
|
|
288
|
+
}
|
|
258
289
|
}
|
|
259
|
-
|
|
260
|
-
|
|
290
|
+
catch {
|
|
291
|
+
// File doesn't exist or can't be read
|
|
261
292
|
}
|
|
262
293
|
}
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
294
|
+
results.push({
|
|
295
|
+
language: targetLang,
|
|
296
|
+
translated_count: 0,
|
|
297
|
+
file_written: filesWritten.length > 0 ? filesWritten.join(", ") : null,
|
|
298
|
+
keys_removed: totalKeysRemovedForLang > 0 ? totalKeysRemovedForLang : undefined,
|
|
299
|
+
});
|
|
266
300
|
}
|
|
267
301
|
}
|
|
268
302
|
else {
|
|
@@ -300,17 +334,20 @@ export function registerSyncTranslations(server) {
|
|
|
300
334
|
// Check if we need per-language filtering
|
|
301
335
|
const hasSkipKeys = input.skip_keys && Object.keys(input.skip_keys).length > 0;
|
|
302
336
|
const hasMissingLanguages = missingLanguages.length > 0;
|
|
303
|
-
// If we have missing languages OR skip_keys, process per-language
|
|
304
|
-
|
|
337
|
+
// If we have missing languages, missing files, OR skip_keys, process per-language
|
|
338
|
+
const hasLanguagesWithMissingFiles = languagesWithMissingFiles.length > 0;
|
|
339
|
+
if (hasMissingLanguages || hasSkipKeys || hasLanguagesWithMissingFiles) {
|
|
305
340
|
// Call API per language with filtered content
|
|
306
341
|
let totalCreditsRequired = 0;
|
|
307
342
|
let totalWordsToTranslate = 0;
|
|
308
343
|
let currentBalance = 0;
|
|
309
344
|
const allResults = [];
|
|
310
345
|
for (const targetLang of input.target_langs) {
|
|
311
|
-
// Determine base content: ALL keys for missing languages
|
|
346
|
+
// Determine base content: ALL keys for missing languages or languages with missing files
|
|
312
347
|
const isMissingLang = missingLanguages.includes(targetLang);
|
|
313
|
-
const
|
|
348
|
+
const hasMissingFiles = languagesWithMissingFiles.includes(targetLang);
|
|
349
|
+
const needsFullSync = isMissingLang || hasMissingFiles;
|
|
350
|
+
const baseContent = needsFullSync ? flatContent : localDelta.contentToSync;
|
|
314
351
|
// Apply skip_keys filter on top of base content
|
|
315
352
|
const skipSet = getSkipKeysForLang(input.skip_keys, targetLang);
|
|
316
353
|
const filteredContent = baseContent.filter((item) => !skipSet.has(item.key));
|
|
@@ -328,7 +365,6 @@ export function registerSyncTranslations(server) {
|
|
|
328
365
|
allResults.push({ language: targetLang, translatedCount: 0, translations: [] });
|
|
329
366
|
continue;
|
|
330
367
|
}
|
|
331
|
-
console.error(`[SYNC] Translating ${filteredContent.length} keys for ${targetLang} (${isMissingLang ? 'new language' : 'existing language'})`);
|
|
332
368
|
const response = await client.sync({
|
|
333
369
|
source_lang: input.source_lang,
|
|
334
370
|
target_langs: [targetLang],
|
|
@@ -404,53 +440,50 @@ export function registerSyncTranslations(server) {
|
|
|
404
440
|
if (input.write_to_files) {
|
|
405
441
|
for (const result of response.results) {
|
|
406
442
|
const lang = result.language;
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
filePath = sourceFile.path.replace(`/${input.source_lang}`, `/${lang}`);
|
|
416
|
-
filePath = filePath.replace(`${input.source_lang}.json`, `${lang}.json`);
|
|
417
|
-
}
|
|
418
|
-
const resolvedPath = resolve(filePath);
|
|
419
|
-
if (!isPathWithinProject(resolvedPath, projectPath)) {
|
|
420
|
-
results.push({
|
|
421
|
-
language: lang,
|
|
422
|
-
translated_count: result.translatedCount,
|
|
423
|
-
skipped_keys: skippedKeysReport[lang],
|
|
424
|
-
file_written: null,
|
|
425
|
-
});
|
|
426
|
-
continue;
|
|
427
|
-
}
|
|
428
|
-
// Read existing target file content (if exists)
|
|
429
|
-
let existingContent = {};
|
|
430
|
-
try {
|
|
431
|
-
const existingFileContent = await readFile(resolvedPath, "utf-8");
|
|
432
|
-
const parsed = parseJsonSafe(existingFileContent);
|
|
433
|
-
if (parsed) {
|
|
434
|
-
existingContent = parsed;
|
|
443
|
+
const filesWritten = [];
|
|
444
|
+
// Write to each source file's corresponding target file
|
|
445
|
+
for (const sourceFileData of sourceFilesData) {
|
|
446
|
+
// Compute target file path by replacing source lang with target lang
|
|
447
|
+
const targetFilePath = sourceFileData.file.path.replace(`/${input.source_lang}/`, `/${lang}/`);
|
|
448
|
+
const resolvedPath = resolve(targetFilePath);
|
|
449
|
+
if (!isPathWithinProject(resolvedPath, projectPath)) {
|
|
450
|
+
continue;
|
|
435
451
|
}
|
|
452
|
+
// Get the keys that belong to this source file
|
|
453
|
+
const sourceFileKeys = new Set(sourceFileData.flatContent.map((item) => item.key));
|
|
454
|
+
// Filter translations to only those from this source file
|
|
455
|
+
const fileTranslations = result.translations.filter((t) => sourceFileKeys.has(t.key));
|
|
456
|
+
if (fileTranslations.length === 0) {
|
|
457
|
+
continue;
|
|
458
|
+
}
|
|
459
|
+
// Read existing target file content (if exists)
|
|
460
|
+
let existingContent = {};
|
|
461
|
+
try {
|
|
462
|
+
const existingFileContent = await readFile(resolvedPath, "utf-8");
|
|
463
|
+
const parsed = parseJsonSafe(existingFileContent);
|
|
464
|
+
if (parsed) {
|
|
465
|
+
existingContent = parsed;
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
catch {
|
|
469
|
+
// File doesn't exist yet, start with empty object
|
|
470
|
+
}
|
|
471
|
+
// Unflatten the new translations
|
|
472
|
+
const newTranslations = unflattenJson(fileTranslations);
|
|
473
|
+
// Deep merge: new translations override existing ones
|
|
474
|
+
let mergedContent = deepMerge(existingContent, newTranslations);
|
|
475
|
+
// Remove any keys in target that don't exist in this source file
|
|
476
|
+
mergedContent = removeExtraKeys(mergedContent, sourceFileKeys);
|
|
477
|
+
await mkdir(dirname(resolvedPath), { recursive: true });
|
|
478
|
+
const fileContent = stringifyWithFormat(mergedContent, sourceFileData.format);
|
|
479
|
+
await writeFile(resolvedPath, fileContent, "utf-8");
|
|
480
|
+
filesWritten.push(resolvedPath);
|
|
436
481
|
}
|
|
437
|
-
catch {
|
|
438
|
-
// File doesn't exist yet, start with empty object
|
|
439
|
-
}
|
|
440
|
-
// Unflatten the new translations
|
|
441
|
-
const newTranslations = unflattenJson(result.translations);
|
|
442
|
-
// Deep merge: new translations override existing ones
|
|
443
|
-
let mergedContent = deepMerge(existingContent, newTranslations);
|
|
444
|
-
// Remove any keys in target that don't exist in source
|
|
445
|
-
mergedContent = removeExtraKeys(mergedContent, sourceKeys);
|
|
446
|
-
await mkdir(dirname(resolvedPath), { recursive: true });
|
|
447
|
-
const fileContent = stringifyWithFormat(mergedContent, sourceFormat);
|
|
448
|
-
await writeFile(resolvedPath, fileContent, "utf-8");
|
|
449
482
|
results.push({
|
|
450
483
|
language: lang,
|
|
451
484
|
translated_count: result.translatedCount,
|
|
452
485
|
skipped_keys: skippedKeysReport[lang],
|
|
453
|
-
file_written:
|
|
486
|
+
file_written: filesWritten.length > 0 ? filesWritten.join(", ") : null,
|
|
454
487
|
});
|
|
455
488
|
}
|
|
456
489
|
}
|
|
@@ -535,56 +568,51 @@ export function registerSyncTranslations(server) {
|
|
|
535
568
|
if (input.write_to_files) {
|
|
536
569
|
for (const result of response.results) {
|
|
537
570
|
const lang = result.language;
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
// Create new file based on source structure
|
|
547
|
-
const sourceFile = sourceLocale.files[0];
|
|
548
|
-
filePath = sourceFile.path.replace(`/${input.source_lang}`, `/${lang}`);
|
|
549
|
-
filePath = filePath.replace(`${input.source_lang}.json`, `${lang}.json`);
|
|
550
|
-
}
|
|
551
|
-
// Validate path is within project directory (prevent path traversal)
|
|
552
|
-
const resolvedPath = resolve(filePath);
|
|
553
|
-
if (!isPathWithinProject(resolvedPath, projectPath)) {
|
|
554
|
-
results.push({
|
|
555
|
-
language: lang,
|
|
556
|
-
translated_count: result.translatedCount,
|
|
557
|
-
file_written: null, // Skipped: path outside project
|
|
558
|
-
});
|
|
559
|
-
continue;
|
|
560
|
-
}
|
|
561
|
-
// Read existing target file content (if exists)
|
|
562
|
-
let existingContent = {};
|
|
563
|
-
try {
|
|
564
|
-
const existingFileContent = await readFile(resolvedPath, "utf-8");
|
|
565
|
-
const parsed = parseJsonSafe(existingFileContent);
|
|
566
|
-
if (parsed) {
|
|
567
|
-
existingContent = parsed;
|
|
571
|
+
const filesWritten = [];
|
|
572
|
+
// Write to each source file's corresponding target file
|
|
573
|
+
for (const sourceFileData of sourceFilesData) {
|
|
574
|
+
// Compute target file path by replacing source lang with target lang
|
|
575
|
+
const targetFilePath = sourceFileData.file.path.replace(`/${input.source_lang}/`, `/${lang}/`);
|
|
576
|
+
const resolvedPath = resolve(targetFilePath);
|
|
577
|
+
if (!isPathWithinProject(resolvedPath, projectPath)) {
|
|
578
|
+
continue;
|
|
568
579
|
}
|
|
580
|
+
// Get the keys that belong to this source file
|
|
581
|
+
const sourceFileKeys = new Set(sourceFileData.flatContent.map((item) => item.key));
|
|
582
|
+
// Filter translations to only those from this source file
|
|
583
|
+
const fileTranslations = result.translations.filter((t) => sourceFileKeys.has(t.key));
|
|
584
|
+
if (fileTranslations.length === 0) {
|
|
585
|
+
continue;
|
|
586
|
+
}
|
|
587
|
+
// Read existing target file content (if exists)
|
|
588
|
+
let existingContent = {};
|
|
589
|
+
try {
|
|
590
|
+
const existingFileContent = await readFile(resolvedPath, "utf-8");
|
|
591
|
+
const parsed = parseJsonSafe(existingFileContent);
|
|
592
|
+
if (parsed) {
|
|
593
|
+
existingContent = parsed;
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
catch {
|
|
597
|
+
// File doesn't exist yet, start with empty object
|
|
598
|
+
}
|
|
599
|
+
// Unflatten the new translations
|
|
600
|
+
const newTranslations = unflattenJson(fileTranslations);
|
|
601
|
+
// Deep merge: new translations override existing ones
|
|
602
|
+
let mergedContent = deepMerge(existingContent, newTranslations);
|
|
603
|
+
// Remove any keys in target that don't exist in this source file
|
|
604
|
+
mergedContent = removeExtraKeys(mergedContent, sourceFileKeys);
|
|
605
|
+
// Ensure directory exists
|
|
606
|
+
await mkdir(dirname(resolvedPath), { recursive: true });
|
|
607
|
+
// Write file with format preservation
|
|
608
|
+
const fileContent = stringifyWithFormat(mergedContent, sourceFileData.format);
|
|
609
|
+
await writeFile(resolvedPath, fileContent, "utf-8");
|
|
610
|
+
filesWritten.push(resolvedPath);
|
|
569
611
|
}
|
|
570
|
-
catch {
|
|
571
|
-
// File doesn't exist yet, start with empty object
|
|
572
|
-
}
|
|
573
|
-
// Unflatten the new translations
|
|
574
|
-
const newTranslations = unflattenJson(result.translations);
|
|
575
|
-
// Deep merge: new translations override existing ones
|
|
576
|
-
let mergedContent = deepMerge(existingContent, newTranslations);
|
|
577
|
-
// Remove any keys in target that don't exist in source
|
|
578
|
-
mergedContent = removeExtraKeys(mergedContent, sourceKeys);
|
|
579
|
-
// Ensure directory exists
|
|
580
|
-
await mkdir(dirname(resolvedPath), { recursive: true });
|
|
581
|
-
// Write file with format preservation
|
|
582
|
-
const fileContent = stringifyWithFormat(mergedContent, sourceFormat);
|
|
583
|
-
await writeFile(resolvedPath, fileContent, "utf-8");
|
|
584
612
|
results.push({
|
|
585
613
|
language: lang,
|
|
586
614
|
translated_count: result.translatedCount,
|
|
587
|
-
file_written:
|
|
615
|
+
file_written: filesWritten.length > 0 ? filesWritten.join(", ") : null,
|
|
588
616
|
});
|
|
589
617
|
}
|
|
590
618
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-translations.js","sourceRoot":"","sources":["../../src/tools/sync-translations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,OAAO,EAAQ,OAAO,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACL,WAAW,EACX,aAAa,EACb,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,aAAa,EACb,cAAc,EACd,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,eAAe;AACf,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,kBAAkB,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACtF,YAAY,EAAE,wBAAwB,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAChF,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,0EAA0E,CAC3E;IACH,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kEAAkE,CAAC;IAC/E,cAAc,EAAE,CAAC;SACd,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,uDAAuD,CAAC;IACpE,SAAS,EAAE,CAAC;SACT,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACvC,QAAQ,EAAE;SACV,QAAQ,CAAC,kEAAkE,CAAC;CAChF,CAAC,CAAC;AAmDH;;GAEG;AACH,SAAS,kBAAkB,CACzB,QAA8C,EAC9C,IAAY;IAEZ,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAClC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAChB,MAA+B,EAC/B,MAA+B;IAE/B,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAEhC,IACE,WAAW,KAAK,IAAI;YACpB,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3B,WAAW,KAAK,IAAI;YACpB,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,CAAC;YACD,sCAAsC;YACtC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CACrB,WAAsC,EACtC,WAAsC,CACvC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,gCAAgC;YAChC,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,GAA4B,EAC5B,YAAsB;IAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa;IAE7D,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,OAAO,GAA4B,MAAM,CAAC;QAE9C,8CAA8C;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC/D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAA4B,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,wCAAwC;gBACxC,MAAM;YACR,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,SAAkC,EAClC,UAAuB;IAEvB,yCAAyC;IACzC,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAE1C,iDAAiD;IACjD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,6CAA6C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnF,OAAO,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,gKAAgK,EAChK,sBAAsB,CAAC,KAAK,EAC5B,KAAK,EAAE,IAAI,EAA+D,EAAE;QAC1E,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAExD,iCAAiC;QACjC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAoB;gBAC9B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,YAAY;oBAClB,OAAO,EACL,sEAAsE;iBACzE;aACF,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAED,iBAAiB;QACjB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAE1D,qBAAqB;QACrB,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,CACpC,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,MAAM,GAAoB;gBAC9B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,oBAAoB,KAAK,CAAC,WAAW,wBAAwB;iBACvE;aACF,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAED,sCAAsC;QACtC,MAAM,aAAa,GAA4B,EAAE,CAAC;QAClD,IAAI,YAAY,GAAe,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QAEvE,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC1C,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,yBAAyB;YACzD,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,0BAA0B,WAAW,CAAC,MAAM,OAAO,CAAC,CAAC;QAEnE,oCAAoC;QACpC,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1E,OAAO,CAAC,KAAK,CAAC,yBAAyB,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAE/G,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,sBAAsB,UAAU,CAAC,OAAO,CAAC,MAAM,SAAS,UAAU,CAAC,WAAW,CAAC,MAAM,aAAa,UAAU,CAAC,aAAa,CAAC,MAAM,YAAY,CAAC,CAAC;QAE7J,+DAA+D;QAC/D,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrD,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,6BAA6B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,KAAK,CAAC,8BAA8B,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QAEtF,mFAAmF;QACnF,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3E,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,4DAA4D;gBAC5D,IAAI,cAAc,GAAG,CAAC,CAAC;gBACvB,MAAM,eAAe,GAA6B,EAAE,CAAC;gBAErD,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBAC5C,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;oBAC1E,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAS;oBAE/D,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;wBACpE,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;wBACtC,IAAI,MAAM,EAAE,CAAC;4BACX,MAAM,UAAU,GAAG,WAAW,CAAC,MAAiC,CAAC,CAAC;4BAClE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BACrF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACzB,eAAe,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;gCACxC,cAAc,IAAI,SAAS,CAAC,MAAM,CAAC;4BACrC,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,sCAAsC;oBACxC,CAAC;gBACH,CAAC;gBAED,MAAM,MAAM,GAAsB;oBAChC,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE;wBACL,QAAQ,EAAE,EAAE;wBACZ,YAAY,EAAE,EAAE;wBAChB,kBAAkB,EAAE,CAAC;qBACtB;oBACD,IAAI,EAAE;wBACJ,kBAAkB,EAAE,CAAC;wBACrB,gBAAgB,EAAE,CAAC;wBACnB,eAAe,EAAE,CAAC;wBAClB,kBAAkB,EAAE,CAAC;qBACtB;oBACD,OAAO,EAAE,cAAc,GAAG,CAAC;wBACzB,CAAC,CAAC,+BAA+B,cAAc,sGAAsG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE;wBACtL,CAAC,CAAC,mDAAmD;iBACxD,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBACnE,CAAC;YACJ,CAAC;YACD,qFAAqF;YACrF,MAAM,OAAO,GAKR,EAAE,CAAC;YAER,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBAC5C,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;oBAC1E,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACrD,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;wBAChF,SAAS;oBACX,CAAC;oBAED,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAEvC,IAAI,CAAC;wBACH,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;wBAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;wBAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;4BACZ,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;4BAChF,SAAS;wBACX,CAAC;wBAED,kCAAkC;wBAClC,MAAM,OAAO,GAAG,eAAe,CAAC,MAAiC,EAAE,UAAU,CAAC,CAAC;wBAC/E,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;wBAC9D,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAiC,EAAE,YAAY,CAAC,CAAC;wBAEzF,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;4BAC/B,kDAAkD;4BAClD,MAAM,SAAS,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;4BACnD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAiC,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;4BACxG,OAAO,CAAC,KAAK,CAAC,kBAAkB,WAAW,oBAAoB,UAAU,EAAE,CAAC,CAAC;4BAC7E,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;wBACrH,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;wBAClF,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;oBAClF,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YAED,MAAM,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAElE,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7F,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEpF,MAAM,MAAM,GAAsB;gBAChC,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;oBACtE,QAAQ;oBACR,gBAAgB;oBAChB,YAAY;iBACb,CAAC,CAAC;gBACH,IAAI,EAAE;oBACJ,YAAY,EAAE,CAAC;oBACf,kBAAkB,EAAE,CAAC;iBACtB;gBACD,OAAO,EAAE,iBAAiB,GAAG,CAAC;oBAC5B,CAAC,CAAC,mCAAmC,gBAAgB,oBAAoB,iBAAiB,WAAW;oBACrG,CAAC,CAAC,mDAAmD;aACxD,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;QAEtC,gDAAgD;QAChD,MAAM,iBAAiB,GAA6B,EAAE,CAAC;QAEvD,0CAA0C;QAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/E,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;QAExD,kEAAkE;QAClE,IAAI,mBAAmB,IAAI,WAAW,EAAE,CAAC;YACvC,8CAA8C;YAC9C,IAAI,oBAAoB,GAAG,CAAC,CAAC;YAC7B,IAAI,qBAAqB,GAAG,CAAC,CAAC;YAC9B,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,MAAM,UAAU,GAA8G,EAAE,CAAC;YAEjI,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC5C,oFAAoF;gBACpF,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC5D,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC;gBAE3E,gDAAgD;gBAChD,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAChE,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CACxC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CACjC,CAAC;gBAEF,uCAAuC;gBACvC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,gBAAgB,GAAG,WAAW;yBACjC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACvC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC3B,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChC,iBAAiB,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC;oBACnD,CAAC;gBACH,CAAC;gBAED,8CAA8C;gBAC9C,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;oBAChF,SAAS;gBACX,CAAC;gBAED,OAAO,CAAC,KAAK,CAAC,sBAAsB,eAAe,CAAC,MAAM,aAAa,UAAU,KAAK,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC;gBAG/I,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;oBACjC,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,YAAY,EAAE,CAAC,UAAU,CAAC;oBAC1B,OAAO,EAAE,eAAe;oBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtB,MAAM,MAAM,GAAoB;wBAC9B,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;4BACzB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;4BAC/B,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc;4BAC9C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,eAAe;4BAChD,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;yBACpC;qBACF,CAAC;oBACF,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;qBACnE,CAAC;gBACJ,CAAC;gBAED,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACzC,mBAAmB;oBACnB,oBAAoB,IAAI,QAAQ,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;oBAC3D,qBAAqB,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;oBAC7D,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;gBACrD,CAAC;qBAAM,IAAI,SAAS,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAClD,mBAAmB;oBACnB,oBAAoB,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;oBACvD,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;oBACrD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACtC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,yCAAyC;YACzC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC;oBAC1D,CAAC,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE;oBACvD,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,MAAM,GAAsB;oBAChC,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE;wBACL,QAAQ,EAAE,UAAU,CAAC,OAAO;wBAC5B,YAAY,EAAE,UAAU,CAAC,WAAW;wBACpC,kBAAkB,EAAE,UAAU,CAAC,aAAa,CAAC,MAAM;qBACpD;oBACD,IAAI,EAAE;wBACJ,kBAAkB,EAAE,qBAAqB;wBACzC,gBAAgB,EAAE,oBAAoB;wBACtC,eAAe,EAAE,cAAc;wBAC/B,kBAAkB,EAAE,cAAc,GAAG,oBAAoB;qBAC1D;oBACD,OAAO,EAAE,YAAY,UAAU,CAAC,aAAa,CAAC,MAAM,kBAAkB,oBAAoB,qBAAqB,UAAU,qCAAqC;iBAC/J,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBACnE,CAAC;YACJ,CAAC;YAED,6DAA6D;YAC7D,qEAAqE;YACrE,MAAM,QAAQ,GAAG;gBACf,OAAO,EAAE,IAAa;gBACtB,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,GAAG,oBAAoB,EAAE;aACrG,CAAC;YAEF,sDAAsD;YACtD,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAKR,EAAE,CAAC;gBAER,iDAAiD;gBACjD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;oBACzB,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACtC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;wBAE7B,2DAA2D;wBAC3D,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;wBAEpE,IAAI,QAAgB,CAAC;wBACrB,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAClD,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBACxC,CAAC;6BAAM,CAAC;4BACN,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BACzC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;4BACxE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,WAAW,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;wBAC3E,CAAC;wBAED,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;wBACvC,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;4BACpD,OAAO,CAAC,IAAI,CAAC;gCACX,QAAQ,EAAE,IAAI;gCACd,gBAAgB,EAAE,MAAM,CAAC,eAAe;gCACxC,YAAY,EAAE,iBAAiB,CAAC,IAAI,CAAC;gCACrC,YAAY,EAAE,IAAI;6BACnB,CAAC,CAAC;4BACH,SAAS;wBACX,CAAC;wBAED,gDAAgD;wBAChD,IAAI,eAAe,GAA4B,EAAE,CAAC;wBAClD,IAAI,CAAC;4BACH,MAAM,mBAAmB,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;4BAClE,MAAM,MAAM,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;4BAClD,IAAI,MAAM,EAAE,CAAC;gCACX,eAAe,GAAG,MAAiC,CAAC;4BACtD,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,kDAAkD;wBACpD,CAAC;wBAED,iCAAiC;wBACjC,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAE3D,sDAAsD;wBACtD,IAAI,aAAa,GAAG,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;wBAEhE,uDAAuD;wBACvD,aAAa,GAAG,eAAe,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;wBAE3D,MAAM,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;wBACxD,MAAM,WAAW,GAAG,mBAAmB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;wBACrE,MAAM,SAAS,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;wBAEpD,OAAO,CAAC,IAAI,CAAC;4BACX,QAAQ,EAAE,IAAI;4BACd,gBAAgB,EAAE,MAAM,CAAC,eAAe;4BACxC,YAAY,EAAE,iBAAiB,CAAC,IAAI,CAAC;4BACrC,YAAY,EAAE,YAAY;yBAC3B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACtC,OAAO,CAAC,IAAI,CAAC;4BACX,QAAQ,EAAE,MAAM,CAAC,QAAQ;4BACzB,gBAAgB,EAAE,MAAM,CAAC,eAAe;4BACxC,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;4BAChD,YAAY,EAAE,IAAI;yBACnB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,MAAM,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBAElE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC;oBAC1D,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE;oBAClD,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,MAAM,GAAsB;oBAChC,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,KAAK;oBACd,OAAO;oBACP,IAAI,EAAE;wBACJ,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW;wBACvC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB;qBACnD;oBACD,OAAO,EAAE,kBAAkB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,oBAAoB,UAAU,EAAE;iBAC3H,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBACnE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACjC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,OAAO,EAAE,UAAU,CAAC,aAAa;YACjC,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,MAAM,GAAoB;gBAC9B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;oBACzB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;oBAC/B,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc;oBAC9C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,eAAe;oBAChD,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;iBACpC;aACF,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAED,+EAA+E;QAC/E,IAAI,KAAK,CAAC,OAAO,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACzC,MAAM,MAAM,GAAsB;gBAChC,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU,CAAC,OAAO;oBAC5B,YAAY,EAAE,UAAU,CAAC,WAAW;oBACpC,kBAAkB,EAAE,UAAU,CAAC,aAAa,CAAC,MAAM;iBACpD;gBACD,IAAI,EAAE;oBACJ,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB;oBAClD,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC,eAAe;oBAC/C,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc;oBAC7C,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB;iBACnD;gBACD,OAAO,EAAE,YAAY,UAAU,CAAC,aAAa,CAAC,MAAM,kBAAkB,UAAU,CAAC,OAAO,CAAC,MAAM,SAAS,UAAU,CAAC,WAAW,CAAC,MAAM,cAAc,QAAQ,CAAC,IAAI,CAAC,eAAe,uDAAuD;aACxO,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAED,0BAA0B;QAC1B,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,OAAO,GAIR,EAAE,CAAC;YAER,iDAAiD;YACjD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;oBAE7B,2DAA2D;oBAC3D,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;oBAEpE,IAAI,QAAgB,CAAC;oBACrB,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClD,yBAAyB;wBACzB,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACxC,CAAC;yBAAM,CAAC;wBACN,4CAA4C;wBAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACzC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAChC,IAAI,KAAK,CAAC,WAAW,EAAE,EACvB,IAAI,IAAI,EAAE,CACX,CAAC;wBACF,QAAQ,GAAG,QAAQ,CAAC,OAAO,CACzB,GAAG,KAAK,CAAC,WAAW,OAAO,EAC3B,GAAG,IAAI,OAAO,CACf,CAAC;oBACJ,CAAC;oBAED,qEAAqE;oBACrE,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACvC,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;wBACpD,OAAO,CAAC,IAAI,CAAC;4BACX,QAAQ,EAAE,IAAI;4BACd,gBAAgB,EAAE,MAAM,CAAC,eAAe;4BACxC,YAAY,EAAE,IAAI,EAAE,gCAAgC;yBACrD,CAAC,CAAC;wBACH,SAAS;oBACX,CAAC;oBAED,gDAAgD;oBAChD,IAAI,eAAe,GAA4B,EAAE,CAAC;oBAClD,IAAI,CAAC;wBACH,MAAM,mBAAmB,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;wBAClE,MAAM,MAAM,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;wBAClD,IAAI,MAAM,EAAE,CAAC;4BACX,eAAe,GAAG,MAAiC,CAAC;wBACtD,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,kDAAkD;oBACpD,CAAC;oBAED,iCAAiC;oBACjC,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAE3D,sDAAsD;oBACtD,IAAI,aAAa,GAAG,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;oBAEhE,uDAAuD;oBACvD,aAAa,GAAG,eAAe,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;oBAE3D,0BAA0B;oBAC1B,MAAM,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAExD,sCAAsC;oBACtC,MAAM,WAAW,GAAG,mBAAmB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;oBACrE,MAAM,SAAS,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;oBAEpD,OAAO,CAAC,IAAI,CAAC;wBACX,QAAQ,EAAE,IAAI;wBACd,gBAAgB,EAAE,MAAM,CAAC,eAAe;wBACxC,YAAY,EAAE,YAAY;qBAC3B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC;wBACX,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,gBAAgB,EAAE,MAAM,CAAC,eAAe;wBACxC,YAAY,EAAE,IAAI;qBACnB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,iEAAiE;YACjE,MAAM,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAElE,MAAM,MAAM,GAAsB;gBAChC,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,KAAK;gBACd,OAAO;gBACP,IAAI,EAAE;oBACJ,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW;oBACvC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB;iBACnD;gBACD,OAAO,EAAE,kBAAkB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAChD,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,eAAe,EACnC,CAAC,CACF,2BAA2B,QAAQ,CAAC,OAAO,CAAC,MAAM,eAAe,QAAQ,CAAC,IAAI,CAAC,WAAW,gBAAgB;aAC5G,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAED,iBAAiB;QACjB,MAAM,MAAM,GAAoB;YAC9B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,8BAA8B;aACxC;SACF,CAAC;QACF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"sync-translations.js","sourceRoot":"","sources":["../../src/tools/sync-translations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-cache.d.ts","sourceRoot":"","sources":["../../src/utils/sync-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAQhD,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,QAAQ,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AASD;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"sync-cache.d.ts","sourceRoot":"","sources":["../../src/utils/sync-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAQhD,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,QAAQ,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AASD;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAgBxC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,EAAE,GAClB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,QAAQ,EAAE,EAC1B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAC3C,SAAS,CAuCX;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,cAAc,EAAE,QAAQ,EAAE,EAC1B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAC3C,QAAQ,CAiDV"}
|
package/dist/utils/sync-cache.js
CHANGED
|
@@ -14,21 +14,17 @@ function getCachePath(projectPath) {
|
|
|
14
14
|
*/
|
|
15
15
|
export async function readSyncCache(projectPath, sourceLang) {
|
|
16
16
|
const cachePath = getCachePath(projectPath);
|
|
17
|
-
console.error(`[SYNC-CACHE] Reading cache from: ${cachePath}`);
|
|
18
17
|
try {
|
|
19
18
|
const content = await readFile(cachePath, "utf-8");
|
|
20
19
|
const cache = JSON.parse(content);
|
|
21
20
|
// Only return cache if source language matches
|
|
22
21
|
if (cache.sourceLang === sourceLang) {
|
|
23
|
-
console.error(`[SYNC-CACHE] Cache found with ${Object.keys(cache.content).length} keys`);
|
|
24
22
|
return cache.content;
|
|
25
23
|
}
|
|
26
|
-
console.error(`[SYNC-CACHE] Cache lang mismatch: ${cache.sourceLang} vs ${sourceLang}`);
|
|
27
24
|
return null;
|
|
28
25
|
}
|
|
29
|
-
catch
|
|
26
|
+
catch {
|
|
30
27
|
// Cache doesn't exist or is invalid
|
|
31
|
-
console.error(`[SYNC-CACHE] Cache not found or invalid: ${err}`);
|
|
32
28
|
return null;
|
|
33
29
|
}
|
|
34
30
|
}
|
|
@@ -37,28 +33,19 @@ export async function readSyncCache(projectPath, sourceLang) {
|
|
|
37
33
|
*/
|
|
38
34
|
export async function writeSyncCache(projectPath, sourceLang, content) {
|
|
39
35
|
const cachePath = getCachePath(projectPath);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const contentMap = {};
|
|
47
|
-
for (const item of content) {
|
|
48
|
-
contentMap[item.key] = item.value;
|
|
49
|
-
}
|
|
50
|
-
const cache = {
|
|
51
|
-
sourceLang,
|
|
52
|
-
content: contentMap,
|
|
53
|
-
lastSync: new Date().toISOString(),
|
|
54
|
-
};
|
|
55
|
-
await writeFile(cachePath, JSON.stringify(cache, null, 2), "utf-8");
|
|
56
|
-
console.error(`[SYNC-CACHE] Cache written successfully with ${content.length} keys`);
|
|
57
|
-
}
|
|
58
|
-
catch (err) {
|
|
59
|
-
console.error(`[SYNC-CACHE] Error writing cache: ${err}`);
|
|
60
|
-
throw err;
|
|
36
|
+
// Ensure cache directory exists
|
|
37
|
+
await mkdir(dirname(cachePath), { recursive: true });
|
|
38
|
+
// Convert KeyValue array to map
|
|
39
|
+
const contentMap = {};
|
|
40
|
+
for (const item of content) {
|
|
41
|
+
contentMap[item.key] = item.value;
|
|
61
42
|
}
|
|
43
|
+
const cache = {
|
|
44
|
+
sourceLang,
|
|
45
|
+
content: contentMap,
|
|
46
|
+
lastSync: new Date().toISOString(),
|
|
47
|
+
};
|
|
48
|
+
await writeFile(cachePath, JSON.stringify(cache, null, 2), "utf-8");
|
|
62
49
|
}
|
|
63
50
|
/**
|
|
64
51
|
* Detect delta between current content and cached content
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-cache.js","sourceRoot":"","sources":["../../src/utils/sync-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AA6BrC,MAAM,SAAS,GAAG,UAAU,CAAC;AAC7B,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAErC,SAAS,YAAY,CAAC,WAAmB;IACvC,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB,EACnB,UAAkB;IAElB,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-cache.js","sourceRoot":"","sources":["../../src/utils/sync-cache.ts"],"names":[],"mappings":"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"}
|