@langapi/mcp-server 1.1.1 → 1.2.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.
@@ -12,7 +12,6 @@ import { parseJsonWithFormat, stringifyWithFormat, } from "../utils/format-prese
12
12
  import { LangAPIClient } from "../api/client.js";
13
13
  import { isApiKeyConfigured } from "../config/env.js";
14
14
  import { languageCodeSchema, languageCodesArraySchema, isPathWithinProject, } from "../utils/validation.js";
15
- import { readSyncCache, writeSyncCache, detectLocalDelta, } from "../utils/sync-cache.js";
16
15
  import { detectAppleFileType, isXCStringsFile, computeAppleLprojTargetPath, } from "../utils/apple-common.js";
17
16
  import { parseStringsContent, mergeStringsContent, } from "../utils/strings-parser.js";
18
17
  import { parseXCStringsSource, xcstringsHasMissingKeys, getXCStringsContentToSync, writeXCStringsTranslations, } from "../handlers/xcstrings-sync-handler.js";
@@ -37,6 +36,14 @@ const SyncTranslationsSchema = z.object({
37
36
  .record(z.string(), z.array(z.string()))
38
37
  .optional()
39
38
  .describe("Keys to skip per language, e.g., { 'fr': ['subtitle', 'brand'] }"),
39
+ hard_sync: z
40
+ .boolean()
41
+ .default(false)
42
+ .describe("If true, re-translate all changed keys even if target already has translations. If false (default), only translate keys missing in target."),
43
+ precision: z
44
+ .enum(["standard", "extra"])
45
+ .default("standard")
46
+ .describe("Translation precision level. 'standard' uses 1 credit/word. 'extra' provides more precise translation at 2 credits/word."),
40
47
  });
41
48
  /**
42
49
  * Get keys to skip for a specific language
@@ -157,7 +164,7 @@ function computeTargetFilePath(sourcePath, sourceLang, targetLang) {
157
164
  * Register the sync_translations tool with the MCP server
158
165
  */
159
166
  export function registerSyncTranslations(server) {
160
- server.tool("sync_translations", "Add new languages or sync existing translations via LangAPI. Use this tool to: (1) ADD translations for new languages like Czech, Spanish, French - creates new locale files automatically, (2) SYNC existing translations when source content changes. Supports any valid language code (e.g., 'cs' for Czech, 'de' for German). Default is dry_run=true for preview.", SyncTranslationsSchema.shape, async (args) => {
167
+ server.tool("sync_translations", "Add new languages or sync existing translations via LangAPI. Use this tool to: (1) ADD translations for new languages like Czech, Spanish, French - creates new locale files automatically, (2) SYNC existing translations when source content changes. Supports any valid language code (e.g., 'cs' for Czech, 'de' for German). Default is dry_run=true for preview. Use precision='extra' for more precise translations at 2 credits/word (default 'standard' is 1 credit/word).", SyncTranslationsSchema.shape, async (args) => {
161
168
  const input = SyncTranslationsSchema.parse(args);
162
169
  const projectPath = input.project_path || process.cwd();
163
170
  // Check if API key is configured
@@ -200,7 +207,7 @@ export function registerSyncTranslations(server) {
200
207
  file,
201
208
  content: {},
202
209
  flatContent: stringsContent.entries,
203
- format: { indent: " ", trailingNewline: true },
210
+ format: { indent: " ", trailingNewline: true, keyStructure: "flat" },
204
211
  appleType: "strings",
205
212
  stringsContent,
206
213
  });
@@ -213,7 +220,7 @@ export function registerSyncTranslations(server) {
213
220
  file: parsed.file,
214
221
  content: {},
215
222
  flatContent: parsed.flatContent,
216
- format: { indent: " ", trailingNewline: true },
223
+ format: { indent: " ", trailingNewline: true, keyStructure: "flat" },
217
224
  appleType: "xcstrings",
218
225
  xcstringsData: parsed.xcstringsData,
219
226
  });
@@ -228,7 +235,7 @@ export function registerSyncTranslations(server) {
228
235
  file,
229
236
  content: {},
230
237
  flatContent,
231
- format: { indent: " ", trailingNewline: true },
238
+ format: { indent: " ", trailingNewline: true, keyStructure: "flat" },
232
239
  appleType: "stringsdict",
233
240
  stringsDictEntries: stringsDictContent.entries,
234
241
  });
@@ -263,15 +270,12 @@ export function registerSyncTranslations(server) {
263
270
  // This is needed because Apple formats (.strings, .xcstrings, .stringsdict)
264
271
  // store keys in flatContent, not in the content object
265
272
  let flatContent = [];
266
- let sourceFormat = { indent: " ", trailingNewline: true };
273
+ let sourceFormat = { indent: " ", trailingNewline: true, keyStructure: "nested" };
267
274
  for (const fileData of sourceFilesData) {
268
275
  flatContent = flatContent.concat(fileData.flatContent);
269
276
  sourceFormat = fileData.format;
270
277
  }
271
278
  const sourceKeys = new Set(flatContent.map((item) => item.key));
272
- // Read cache and detect local delta
273
- const cachedContent = await readSyncCache(projectPath, input.source_lang);
274
- const localDelta = detectLocalDelta(flatContent, cachedContent);
275
279
  // Detect missing target languages (files that don't exist yet)
276
280
  const missingLanguages = [];
277
281
  const existingLanguages = [];
@@ -303,9 +307,34 @@ export function registerSyncTranslations(server) {
303
307
  if (!targetFilePath || targetFilePath === sourceFileData.file.path) {
304
308
  continue;
305
309
  }
306
- // Check if file exists
310
+ // Check if file exists and has all source keys
307
311
  try {
308
- await readFile(targetFilePath, "utf-8");
312
+ const targetContent = await readFile(targetFilePath, "utf-8");
313
+ const sourceFileKeys = new Set(sourceFileData.flatContent.map((item) => item.key));
314
+ let existingKeys = new Set();
315
+ // Use appropriate parser based on source file type
316
+ if (sourceFileData.appleType === "strings") {
317
+ const parsed = parseStringsContent(targetContent);
318
+ existingKeys = new Set(parsed.entries.filter(e => e.value && e.value.trim() !== "").map(e => e.key));
319
+ }
320
+ else if (sourceFileData.appleType === "stringsdict") {
321
+ const parsed = parseStringsDictContent(targetContent);
322
+ if (parsed) {
323
+ existingKeys = new Set(parsed.entries.map(e => e.key));
324
+ }
325
+ }
326
+ else {
327
+ // JSON/ARB files
328
+ const parsed = parseJsonWithFormat(targetContent);
329
+ if (parsed) {
330
+ const flatTarget = flattenJson(parsed.data);
331
+ existingKeys = new Set(flatTarget.map((item) => item.key));
332
+ }
333
+ }
334
+ const hasMissingKeys = [...sourceFileKeys].some((key) => !existingKeys.has(key));
335
+ if (hasMissingKeys && !languagesWithMissingFiles.includes(targetLang)) {
336
+ languagesWithMissingFiles.push(targetLang);
337
+ }
309
338
  }
310
339
  catch {
311
340
  // File doesn't exist - this language has missing files
@@ -315,8 +344,9 @@ export function registerSyncTranslations(server) {
315
344
  }
316
345
  }
317
346
  }
318
- // If no content to sync AND no missing languages AND no missing files, return early
319
- if (localDelta.contentToSync.length === 0 && missingLanguages.length === 0 && languagesWithMissingFiles.length === 0) {
347
+ // If no missing languages AND no languages with missing files, return early
348
+ // (This means all target files exist and have all source keys)
349
+ if (missingLanguages.length === 0 && languagesWithMissingFiles.length === 0) {
320
350
  if (input.dry_run) {
321
351
  // Check for extra keys in target files even in dry_run mode
322
352
  let totalExtraKeys = 0;
@@ -426,7 +456,6 @@ export function registerSyncTranslations(server) {
426
456
  results.push({ language: targetLang, translated_count: 0, file_written: null });
427
457
  }
428
458
  }
429
- await writeSyncCache(projectPath, input.source_lang, flatContent);
430
459
  const filesCleanedCount = results.filter((r) => r.keys_removed && r.keys_removed > 0).length;
431
460
  const totalKeysRemoved = results.reduce((sum, r) => sum + (r.keys_removed || 0), 0);
432
461
  const output = {
@@ -471,11 +500,11 @@ export function registerSyncTranslations(server) {
471
500
  // Track completed files for partial error reporting
472
501
  const completedFiles = [];
473
502
  const allFilesWritten = [];
503
+ // Track all unique keys being synced (for dry_run response)
504
+ const allKeysToSync = new Set();
474
505
  // Process each source file
475
506
  for (const sourceFileData of sourceFilesData) {
476
507
  const sourceFileKeys = new Set(sourceFileData.flatContent.map((item) => item.key));
477
- // Filter delta content to only keys in this source file
478
- const fileKeysInDelta = localDelta.contentToSync.filter((item) => sourceFileKeys.has(item.key));
479
508
  // Determine which languages need this file's translations
480
509
  // and what content to sync per language
481
510
  const langContentMap = new Map();
@@ -485,9 +514,8 @@ export function registerSyncTranslations(server) {
485
514
  // Handle xcstrings files specially (same file for all languages)
486
515
  if (sourceFileData.appleType === "xcstrings" && sourceFileData.xcstringsData) {
487
516
  const isMissingLang = missingLanguages.includes(targetLang);
488
- const targetHasMissingKeys = languagesWithMissingFiles.includes(targetLang);
489
517
  const skipSet = getSkipKeysForLang(input.skip_keys, targetLang);
490
- const { contentToSync, skippedKeys } = getXCStringsContentToSync({ file: sourceFileData.file, flatContent: sourceFileData.flatContent, xcstringsData: sourceFileData.xcstringsData }, targetLang, cachedContent, fileKeysInDelta, isMissingLang, targetHasMissingKeys, skipSet);
518
+ const { contentToSync, skippedKeys } = getXCStringsContentToSync({ file: sourceFileData.file, flatContent: sourceFileData.flatContent, xcstringsData: sourceFileData.xcstringsData }, targetLang, isMissingLang, skipSet, input.hard_sync);
491
519
  // Track skipped keys
492
520
  if (skippedKeys.length > 0) {
493
521
  const existing = skippedKeysReport[targetLang] || [];
@@ -495,6 +523,10 @@ export function registerSyncTranslations(server) {
495
523
  }
496
524
  if (contentToSync.length > 0) {
497
525
  langContentMap.set(targetLang, contentToSync);
526
+ // Track keys for dry_run response
527
+ for (const item of contentToSync) {
528
+ allKeysToSync.add(item.key);
529
+ }
498
530
  }
499
531
  continue;
500
532
  }
@@ -549,17 +581,13 @@ export function registerSyncTranslations(server) {
549
581
  }
550
582
  // Determine what content to sync
551
583
  let contentToSync;
552
- if (isMissingLang || !targetFileExists) {
553
- // New language or missing file: sync all keys from this source file
584
+ if (input.hard_sync || isMissingLang || !targetFileExists) {
585
+ // Hard sync, new language, or missing file: sync all keys from this source file
554
586
  contentToSync = sourceFileData.flatContent;
555
587
  }
556
- else if (!cachedContent) {
557
- // No cache: sync only keys missing from target
558
- contentToSync = sourceFileData.flatContent.filter((item) => !existingTargetKeys.has(item.key));
559
- }
560
588
  else {
561
- // Has cache: use delta, but only keys from this file
562
- contentToSync = fileKeysInDelta;
589
+ // Existing target: sync only keys missing from target
590
+ contentToSync = sourceFileData.flatContent.filter((item) => !existingTargetKeys.has(item.key));
563
591
  }
564
592
  // Apply skip_keys filter
565
593
  const skipSet = getSkipKeysForLang(input.skip_keys, targetLang);
@@ -576,6 +604,10 @@ export function registerSyncTranslations(server) {
576
604
  }
577
605
  if (filteredContent.length > 0) {
578
606
  langContentMap.set(targetLang, filteredContent);
607
+ // Track keys for dry_run response
608
+ for (const item of filteredContent) {
609
+ allKeysToSync.add(item.key);
610
+ }
579
611
  }
580
612
  }
581
613
  // Skip API call if no languages need this file
@@ -584,26 +616,29 @@ export function registerSyncTranslations(server) {
584
616
  continue;
585
617
  }
586
618
  // Collect all unique keys to sync for this file (union across all languages)
587
- const allKeysToSync = new Set();
619
+ const fileKeysToSync = new Set();
588
620
  for (const content of langContentMap.values()) {
589
621
  for (const item of content) {
590
- allKeysToSync.add(item.key);
622
+ fileKeysToSync.add(item.key);
591
623
  }
592
624
  }
593
625
  // Get source content for these keys
594
- const contentForApi = sourceFileData.flatContent.filter((item) => allKeysToSync.has(item.key));
626
+ const contentForApi = sourceFileData.flatContent.filter((item) => fileKeysToSync.has(item.key));
595
627
  if (contentForApi.length === 0) {
596
628
  completedFiles.push(sourceFileData.file.path);
597
629
  continue;
598
630
  }
599
631
  // Make API call for this file → all languages that need it
600
632
  const langsNeedingSync = Array.from(langContentMap.keys());
601
- const response = await client.sync({
633
+ const syncRequest = {
602
634
  source_lang: input.source_lang,
603
635
  target_langs: langsNeedingSync,
604
636
  content: contentForApi,
605
637
  dry_run: input.dry_run,
606
- });
638
+ };
639
+ const response = input.precision === "extra"
640
+ ? await client.extraSync(syncRequest)
641
+ : await client.sync(syncRequest);
607
642
  // Handle API error
608
643
  if (!response.success) {
609
644
  // Return partial error with info about completed files
@@ -661,6 +696,13 @@ export function registerSyncTranslations(server) {
661
696
  // Write translations for each language
662
697
  for (const result of response.results) {
663
698
  const targetLang = result.language;
699
+ // Filter translations to only keys this language actually needed
700
+ // This prevents overwriting existing translations when syncing multiple languages
701
+ const keysNeededForLang = langContentMap.get(targetLang);
702
+ const keysNeededSet = keysNeededForLang
703
+ ? new Set(keysNeededForLang.map(item => item.key))
704
+ : new Set();
705
+ const translationsForLang = result.translations.filter(t => keysNeededSet.has(t.key));
664
706
  // Always compute target path from source (no namespace matching!)
665
707
  const targetFilePath = computeTargetFilePath(sourceFileData.file.path, input.source_lang, targetLang);
666
708
  // For xcstrings, targetFilePath equals sourceFilePath - that's OK, handle below
@@ -686,7 +728,7 @@ export function registerSyncTranslations(server) {
686
728
  catch {
687
729
  // File doesn't exist yet
688
730
  }
689
- const fileContent = mergeStringsContent(existingContent, result.translations, sourceFileData.stringsContent?.comments || new Map(), sourceFileKeys);
731
+ const fileContent = mergeStringsContent(existingContent, translationsForLang, sourceFileData.stringsContent?.comments || new Map(), sourceFileKeys);
690
732
  await mkdir(dirname(resolvedPath), { recursive: true });
691
733
  await writeFile(resolvedPath, fileContent, "utf-8");
692
734
  allFilesWritten.push(resolvedPath);
@@ -696,7 +738,7 @@ export function registerSyncTranslations(server) {
696
738
  }
697
739
  else if (sourceFileData.appleType === "xcstrings" && sourceFileData.xcstringsData) {
698
740
  // .xcstrings file: update in-place (single file with all languages)
699
- sourceFileData.xcstringsData = await writeXCStringsTranslations(sourceFileData.file.path, sourceFileData.xcstringsData, targetLang, result.translations);
741
+ sourceFileData.xcstringsData = await writeXCStringsTranslations(sourceFileData.file.path, sourceFileData.xcstringsData, targetLang, translationsForLang);
700
742
  if (!allFilesWritten.includes(sourceFileData.file.path)) {
701
743
  allFilesWritten.push(sourceFileData.file.path);
702
744
  }
@@ -715,7 +757,7 @@ export function registerSyncTranslations(server) {
715
757
  catch {
716
758
  // File doesn't exist yet
717
759
  }
718
- const fileContent = mergeStringsDictContent(existingContent, result.translations, sourceFileData.stringsDictEntries, sourceFileKeys);
760
+ const fileContent = mergeStringsDictContent(existingContent, translationsForLang, sourceFileData.stringsDictEntries, sourceFileKeys);
719
761
  await mkdir(dirname(resolvedPath), { recursive: true });
720
762
  await writeFile(resolvedPath, fileContent, "utf-8");
721
763
  allFilesWritten.push(resolvedPath);
@@ -740,13 +782,30 @@ export function registerSyncTranslations(server) {
740
782
  }
741
783
  if (isArbFile(resolvedPath) && sourceFileData.arbMetadata) {
742
784
  // ARB file: merge with existing, preserve metadata, update locale
743
- mergedContent = mergeArbContent(existingContent, result.translations, sourceFileData.arbMetadata, sourceFileKeys, targetLang);
785
+ mergedContent = mergeArbContent(existingContent, translationsForLang, sourceFileData.arbMetadata, sourceFileKeys, targetLang);
744
786
  }
745
787
  else {
746
788
  // Regular JSON: merge and remove extra keys
747
- const newTranslations = unflattenJson(result.translations);
748
- mergedContent = deepMerge(existingContent, newTranslations);
749
- mergedContent = removeExtraKeys(mergedContent, sourceFileKeys);
789
+ // Check if source uses flat keys (keys containing dots at root level)
790
+ if (sourceFileData.format.keyStructure === "flat") {
791
+ // For flat key structure, keep translations flat (don't unflatten)
792
+ mergedContent = { ...existingContent };
793
+ for (const { key, value } of translationsForLang) {
794
+ mergedContent[key] = value;
795
+ }
796
+ // Remove keys not in source
797
+ for (const key of Object.keys(mergedContent)) {
798
+ if (!sourceFileKeys.has(key)) {
799
+ delete mergedContent[key];
800
+ }
801
+ }
802
+ }
803
+ else {
804
+ // For nested key structure, unflatten and deep merge
805
+ const newTranslations = unflattenJson(translationsForLang);
806
+ mergedContent = deepMerge(existingContent, newTranslations);
807
+ mergedContent = removeExtraKeys(mergedContent, sourceFileKeys);
808
+ }
750
809
  }
751
810
  // Write file
752
811
  await mkdir(dirname(resolvedPath), { recursive: true });
@@ -768,19 +827,16 @@ export function registerSyncTranslations(server) {
768
827
  completedFiles.push(sourceFileData.file.path);
769
828
  }
770
829
  }
771
- // Update cache after all files processed
772
- if (input.write_to_files && !input.dry_run) {
773
- await writeSyncCache(projectPath, input.source_lang, flatContent);
774
- }
775
830
  // Build final response
776
831
  if (input.dry_run) {
832
+ const keysToSyncArray = Array.from(allKeysToSync);
777
833
  const output = {
778
834
  success: true,
779
835
  dry_run: true,
780
836
  delta: {
781
- new_keys: localDelta.newKeys,
782
- changed_keys: localDelta.changedKeys,
783
- total_keys_to_sync: localDelta.contentToSync.length,
837
+ new_keys: keysToSyncArray,
838
+ changed_keys: [],
839
+ total_keys_to_sync: keysToSyncArray.length,
784
840
  },
785
841
  cost: {
786
842
  words_to_translate: totalWordsToTranslate,
@@ -788,7 +844,7 @@ export function registerSyncTranslations(server) {
788
844
  current_balance: currentBalance,
789
845
  balance_after_sync: currentBalance - totalCreditsUsed,
790
846
  },
791
- message: `Preview: ${localDelta.contentToSync.length} keys to sync across ${sourceFilesData.length} file(s), ${totalCreditsUsed} credits required. Run with dry_run=false to execute.`,
847
+ message: `Preview: ${keysToSyncArray.length} keys to sync across ${sourceFilesData.length} file(s), ${totalCreditsUsed} credits required${input.precision === "extra" ? " (extra precision: 2 credits/word)" : ""}. Run with dry_run=false to execute.`,
792
848
  };
793
849
  return {
794
850
  content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
@@ -816,11 +872,13 @@ export function registerSyncTranslations(server) {
816
872
  credits_used: totalCreditsUsed,
817
873
  balance_after_sync: currentBalance,
818
874
  },
819
- message: `Sync complete. ${totalTranslated} keys translated across ${input.target_langs.length} languages.${skippedMsg}`,
875
+ message: `Sync complete${input.precision === "extra" ? " (extra precision)" : ""}. ${totalTranslated} keys translated across ${input.target_langs.length} languages.${skippedMsg}`,
820
876
  };
821
877
  return {
822
878
  content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
823
879
  };
824
880
  });
825
881
  }
882
+ // Export helper functions for testing
883
+ export { computeTargetFilePath, deepMerge, removeExtraKeys, removeKeysFromObject, getSkipKeysForLang, };
826
884
  //# sourceMappingURL=sync-translations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-translations.js","sourceRoot":"","sources":["../../src/tools/sync-translations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-translations.js","sourceRoot":"","sources":["../../src/tools/sync-translations.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,15 @@ export interface JsonFormat {
6
6
  indent: string;
7
7
  /** Whether file ends with newline */
8
8
  trailingNewline: boolean;
9
+ /** Key structure: flat (keys contain dots) or nested (keys map to objects) */
10
+ keyStructure: "flat" | "nested";
11
+ /** Original key order for preserving order when writing */
12
+ keyOrder?: string[];
9
13
  }
10
14
  /**
11
15
  * Detect the formatting used in a JSON file
12
16
  */
13
- export declare function detectJsonFormat(content: string): JsonFormat;
17
+ export declare function detectJsonFormat(content: string, data?: Record<string, unknown>): JsonFormat;
14
18
  /**
15
19
  * Stringify a JSON object with specific formatting
16
20
  */
@@ -1 +1 @@
1
- {"version":3,"file":"format-preserve.d.ts","sourceRoot":"","sources":["../../src/utils/format-preserve.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAwB5D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,UAAU,GACjB,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG;IACpD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,UAAU,CAAC;CACpB,GAAG,IAAI,CAWP"}
1
+ {"version":3,"file":"format-preserve.d.ts","sourceRoot":"","sources":["../../src/utils/format-preserve.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,eAAe,EAAE,OAAO,CAAC;IACzB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC;IAChC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAmCD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,UAAU,CAmCZ;AA8ED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,UAAU,GACjB,MAAM,CAmBR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG;IACpD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,UAAU,CAAC;CACpB,GAAG,IAAI,CAWP"}