@scoutello/i18n-magic 0.51.0 → 0.53.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.
@@ -3,7 +3,7 @@ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
4
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
5
  import { z } from "zod";
6
- import { addTranslationKey, getMissingKeys, loadConfig } from "./lib/utils.js";
6
+ import { addTranslationKey, getMissingKeys, loadConfig, loadLocalesFile } from "./lib/utils.js";
7
7
  import path from "path";
8
8
  import fs from "fs";
9
9
  import { fileURLToPath } from "url";
@@ -64,6 +64,27 @@ const ListUntranslatedKeysSchema = z.object({
64
64
  .optional()
65
65
  .describe("Optional namespace to check. If not provided, checks all namespaces."),
66
66
  });
67
+ // Zod schema for the get_translation_key tool parameters
68
+ const GetTranslationKeySchema = z.object({
69
+ key: z.string().describe("The translation key to retrieve (e.g., \"welcomeMessage\")"),
70
+ namespace: z
71
+ .string()
72
+ .optional()
73
+ .describe("Optional namespace to search in. If not provided, searches in default namespace first, then all namespaces."),
74
+ });
75
+ // Zod schema for the update_translation_key tool parameters
76
+ const UpdateTranslationKeySchema = z.object({
77
+ key: z.string().describe("The translation key to update (e.g., \"welcomeMessage\")"),
78
+ value: z.string().describe("The new English text value for this translation key"),
79
+ namespace: z
80
+ .string()
81
+ .optional()
82
+ .describe("Optional namespace to update. If not provided, updates the key in all namespaces where it exists."),
83
+ });
84
+ // Zod schema for the search_translations tool parameters
85
+ const SearchTranslationsSchema = z.object({
86
+ query: z.string().describe("Search term to find in translation keys or values (fuzzy search)"),
87
+ });
67
88
  class I18nMagicServer {
68
89
  constructor() {
69
90
  this.config = null;
@@ -150,6 +171,60 @@ class I18nMagicServer {
150
171
  required: [],
151
172
  },
152
173
  },
174
+ {
175
+ name: "get_translation_key",
176
+ description: "Retrieve the English value for a specific translation key. This tool searches for the key in the locale files and always returns the English translation if it exists.",
177
+ inputSchema: {
178
+ type: "object",
179
+ properties: {
180
+ key: {
181
+ type: "string",
182
+ description: "The translation key to retrieve (e.g., \"welcomeMessage\")",
183
+ },
184
+ namespace: {
185
+ type: "string",
186
+ description: "Optional namespace to search in. If not provided, searches in default namespace first, then all namespaces.",
187
+ },
188
+ },
189
+ required: ["key"],
190
+ },
191
+ },
192
+ {
193
+ name: "update_translation_key",
194
+ description: "Update an existing translation key with a new English value. This will update the key across all locales (translating automatically to other languages) and all namespaces where the key exists. Use this when you need to fix typos, improve wording, or change the text of an existing translation. If you're not sure if a key exists, use get_translation_key or search_translations first.",
195
+ inputSchema: {
196
+ type: "object",
197
+ properties: {
198
+ key: {
199
+ type: "string",
200
+ description: "The translation key to update (e.g., \"welcomeMessage\")",
201
+ },
202
+ value: {
203
+ type: "string",
204
+ description: "The new English text value for this translation key",
205
+ },
206
+ namespace: {
207
+ type: "string",
208
+ description: "Optional namespace to update. If not provided, updates the key in all namespaces where it exists.",
209
+ },
210
+ },
211
+ required: ["key", "value"],
212
+ },
213
+ },
214
+ {
215
+ name: "search_translations",
216
+ description: "Search for translations by keyword or phrase across ALL namespaces. This tool performs fuzzy search across both translation keys AND their English values, making it perfect for finding existing translations before adding new ones. Use this to: 1) Check if similar text already exists to avoid duplicates, 2) Find the key name when you only remember part of the text, 3) Discover related translations. Always returns the key name AND English value for each result.",
217
+ inputSchema: {
218
+ type: "object",
219
+ properties: {
220
+ query: {
221
+ type: "string",
222
+ description: "Search term to find in translation keys or values (e.g., 'password', 'welcome', 'click'). Fuzzy search - doesn't need to be exact. Searches across all namespaces.",
223
+ },
224
+ },
225
+ required: ["query"],
226
+ },
227
+ },
153
228
  ],
154
229
  };
155
230
  });
@@ -319,6 +394,360 @@ class I18nMagicServer {
319
394
  };
320
395
  }
321
396
  }
397
+ if (request.params.name === "get_translation_key") {
398
+ try {
399
+ // Validate parameters
400
+ const params = GetTranslationKeySchema.parse(request.params.arguments);
401
+ // Ensure config is loaded
402
+ const config = await this.ensureConfig();
403
+ // Suppress console.log to prevent interference with MCP JSON protocol
404
+ const originalConsoleLog = console.log;
405
+ console.log = () => { };
406
+ let foundValue = null;
407
+ let foundNamespace = null;
408
+ try {
409
+ // If namespace is specified, only check that namespace
410
+ if (params.namespace) {
411
+ const keys = await loadLocalesFile(config.loadPath, "en", params.namespace);
412
+ if (keys[params.key]) {
413
+ foundValue = keys[params.key];
414
+ foundNamespace = params.namespace;
415
+ }
416
+ }
417
+ else {
418
+ // Try default namespace first
419
+ try {
420
+ const keys = await loadLocalesFile(config.loadPath, "en", config.defaultNamespace);
421
+ if (keys[params.key]) {
422
+ foundValue = keys[params.key];
423
+ foundNamespace = config.defaultNamespace;
424
+ }
425
+ }
426
+ catch (error) {
427
+ // Default namespace file doesn't exist or has issues, continue to search other namespaces
428
+ }
429
+ // If not found in default namespace, search all other namespaces
430
+ if (!foundValue) {
431
+ for (const namespace of config.namespaces) {
432
+ if (namespace === config.defaultNamespace)
433
+ continue; // Already checked
434
+ try {
435
+ const keys = await loadLocalesFile(config.loadPath, "en", namespace);
436
+ if (keys[params.key]) {
437
+ foundValue = keys[params.key];
438
+ foundNamespace = namespace;
439
+ break;
440
+ }
441
+ }
442
+ catch (error) {
443
+ // Namespace file doesn't exist or has issues, continue
444
+ }
445
+ }
446
+ }
447
+ }
448
+ }
449
+ finally {
450
+ // Restore console.log
451
+ console.log = originalConsoleLog;
452
+ }
453
+ if (foundValue) {
454
+ return {
455
+ content: [
456
+ {
457
+ type: "text",
458
+ text: JSON.stringify({
459
+ success: true,
460
+ key: params.key,
461
+ value: foundValue,
462
+ namespace: foundNamespace,
463
+ locale: "en",
464
+ }, null, 2),
465
+ },
466
+ ],
467
+ };
468
+ }
469
+ else {
470
+ return {
471
+ content: [
472
+ {
473
+ type: "text",
474
+ text: JSON.stringify({
475
+ success: false,
476
+ error: `Translation key "${params.key}" not found in English locale${params.namespace ? ` (namespace: ${params.namespace})` : ""}`,
477
+ key: params.key,
478
+ searchedNamespace: params.namespace || "all namespaces",
479
+ suggestion: "Use list_untranslated_keys to see all missing keys or add_translation_key to add this key",
480
+ }, null, 2),
481
+ },
482
+ ],
483
+ isError: false,
484
+ };
485
+ }
486
+ }
487
+ catch (error) {
488
+ const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
489
+ // Get more detailed error information
490
+ let errorDetails = errorMessage;
491
+ if (error instanceof Error) {
492
+ const cause = error.cause;
493
+ if (cause instanceof Error) {
494
+ errorDetails = `${errorMessage}\nCause: ${cause.message}\nStack: ${cause.stack}`;
495
+ }
496
+ else if (cause) {
497
+ errorDetails = `${errorMessage}\nCause: ${JSON.stringify(cause)}`;
498
+ }
499
+ if (error.stack) {
500
+ errorDetails = `${errorDetails}\nStack: ${error.stack}`;
501
+ }
502
+ }
503
+ // Log detailed error to stderr for debugging
504
+ console.error(`[i18n-magic MCP] Error getting translation key:`);
505
+ console.error(errorDetails);
506
+ return {
507
+ content: [
508
+ {
509
+ type: "text",
510
+ text: JSON.stringify({
511
+ success: false,
512
+ error: errorMessage,
513
+ details: errorDetails,
514
+ }, null, 2),
515
+ },
516
+ ],
517
+ isError: true,
518
+ };
519
+ }
520
+ }
521
+ if (request.params.name === "update_translation_key") {
522
+ try {
523
+ // Validate parameters
524
+ const params = UpdateTranslationKeySchema.parse(request.params.arguments);
525
+ // Ensure config is loaded
526
+ const config = await this.ensureConfig();
527
+ // Suppress console.log to prevent interference with MCP JSON protocol
528
+ const originalConsoleLog = console.log;
529
+ const logMessages = [];
530
+ console.log = (...args) => {
531
+ const message = args.map(arg => typeof arg === 'object' ? JSON.stringify(arg) : String(arg)).join(' ');
532
+ logMessages.push(message);
533
+ console.error(`[i18n-magic] ${message}`);
534
+ };
535
+ try {
536
+ // Find which namespaces contain this key
537
+ const targetNamespaces = [];
538
+ if (params.namespace) {
539
+ // Check if key exists in specified namespace
540
+ const keys = await loadLocalesFile(config.loadPath, "en", params.namespace);
541
+ if (keys[params.key]) {
542
+ targetNamespaces.push(params.namespace);
543
+ }
544
+ else {
545
+ throw new Error(`Key "${params.key}" does not exist in namespace "${params.namespace}"`);
546
+ }
547
+ }
548
+ else {
549
+ // Find all namespaces where this key exists
550
+ for (const namespace of config.namespaces) {
551
+ try {
552
+ const keys = await loadLocalesFile(config.loadPath, "en", namespace);
553
+ if (keys[params.key]) {
554
+ targetNamespaces.push(namespace);
555
+ }
556
+ }
557
+ catch (error) {
558
+ // Namespace file doesn't exist, continue
559
+ }
560
+ }
561
+ if (targetNamespaces.length === 0) {
562
+ throw new Error(`Key "${params.key}" does not exist in any namespace. Use add_translation_key to create it.`);
563
+ }
564
+ }
565
+ // Build translation cache with new value
566
+ const translationCache = {
567
+ en: params.value,
568
+ };
569
+ // Translate to all other locales
570
+ const nonEnglishLocales = config.locales.filter((l) => l !== "en");
571
+ if (nonEnglishLocales.length > 0 && config.openai) {
572
+ const { translateKey } = await import("./lib/utils.js");
573
+ await Promise.all(nonEnglishLocales.map(async (locale) => {
574
+ const translation = await translateKey({
575
+ context: config.context || "",
576
+ inputLanguage: "en",
577
+ outputLanguage: locale,
578
+ object: {
579
+ [params.key]: params.value,
580
+ },
581
+ openai: config.openai,
582
+ model: config.model,
583
+ });
584
+ translationCache[locale] = translation[params.key];
585
+ }));
586
+ }
587
+ // Update the key in all relevant namespaces and locales
588
+ await Promise.all(targetNamespaces.flatMap((namespace) => config.locales.map(async (locale) => {
589
+ const newValue = translationCache[locale] || params.value;
590
+ const existingKeys = await loadLocalesFile(config.loadPath, locale, namespace);
591
+ existingKeys[params.key] = newValue;
592
+ const { writeLocalesFile } = await import("./lib/utils.js");
593
+ await writeLocalesFile(config.savePath, locale, namespace, existingKeys);
594
+ })));
595
+ return {
596
+ content: [
597
+ {
598
+ type: "text",
599
+ text: JSON.stringify({
600
+ success: true,
601
+ message: `Successfully updated translation key "${params.key}" in ${targetNamespaces.length} namespace(s) and ${config.locales.length} locale(s)`,
602
+ key: params.key,
603
+ newValue: params.value,
604
+ namespaces: targetNamespaces,
605
+ locales: config.locales,
606
+ diagnostics: logMessages.join('\n'),
607
+ }, null, 2),
608
+ },
609
+ ],
610
+ };
611
+ }
612
+ finally {
613
+ // Restore console.log
614
+ console.log = originalConsoleLog;
615
+ }
616
+ }
617
+ catch (error) {
618
+ const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
619
+ let errorDetails = errorMessage;
620
+ if (error instanceof Error && error.stack) {
621
+ errorDetails = `${errorDetails}\nStack: ${error.stack}`;
622
+ }
623
+ console.error(`[i18n-magic MCP] Error updating translation key:`);
624
+ console.error(errorDetails);
625
+ return {
626
+ content: [
627
+ {
628
+ type: "text",
629
+ text: JSON.stringify({
630
+ success: false,
631
+ error: errorMessage,
632
+ details: errorDetails,
633
+ }, null, 2),
634
+ },
635
+ ],
636
+ isError: true,
637
+ };
638
+ }
639
+ }
640
+ if (request.params.name === "search_translations") {
641
+ try {
642
+ // Validate parameters
643
+ const params = SearchTranslationsSchema.parse(request.params.arguments);
644
+ // Ensure config is loaded
645
+ const config = await this.ensureConfig();
646
+ // Suppress console.log
647
+ const originalConsoleLog = console.log;
648
+ console.log = () => { };
649
+ try {
650
+ const searchQuery = params.query.toLowerCase();
651
+ const results = [];
652
+ // Search through all namespaces
653
+ for (const namespace of config.namespaces) {
654
+ try {
655
+ const keys = await loadLocalesFile(config.loadPath, "en", namespace);
656
+ for (const [key, value] of Object.entries(keys)) {
657
+ const keyLower = key.toLowerCase();
658
+ const valueLower = value.toLowerCase();
659
+ // Fuzzy matching: check if search query is contained in key or value
660
+ const keyMatch = keyLower.includes(searchQuery);
661
+ const valueMatch = valueLower.includes(searchQuery);
662
+ if (keyMatch || valueMatch) {
663
+ results.push({
664
+ key,
665
+ value,
666
+ namespace,
667
+ matchType: keyMatch && valueMatch ? "both" : keyMatch ? "key" : "value",
668
+ });
669
+ }
670
+ }
671
+ }
672
+ catch (error) {
673
+ // Namespace file doesn't exist or has issues, continue
674
+ }
675
+ }
676
+ // Sort results: exact matches first, then by match type, then alphabetically
677
+ results.sort((a, b) => {
678
+ // Prioritize exact key matches
679
+ const aExactKey = a.key.toLowerCase() === searchQuery;
680
+ const bExactKey = b.key.toLowerCase() === searchQuery;
681
+ if (aExactKey && !bExactKey)
682
+ return -1;
683
+ if (!aExactKey && bExactKey)
684
+ return 1;
685
+ // Prioritize exact value matches
686
+ const aExactValue = a.value.toLowerCase() === searchQuery;
687
+ const bExactValue = b.value.toLowerCase() === searchQuery;
688
+ if (aExactValue && !bExactValue)
689
+ return -1;
690
+ if (!aExactValue && bExactValue)
691
+ return 1;
692
+ // Then by match type (both > key > value)
693
+ const matchOrder = { both: 0, key: 1, value: 2 };
694
+ const matchCompare = matchOrder[a.matchType] - matchOrder[b.matchType];
695
+ if (matchCompare !== 0)
696
+ return matchCompare;
697
+ // Finally alphabetically by key
698
+ return a.key.localeCompare(b.key);
699
+ });
700
+ // Limit results to prevent overwhelming output
701
+ const maxResults = 50;
702
+ const limitedResults = results.slice(0, maxResults);
703
+ const hasMore = results.length > maxResults;
704
+ return {
705
+ content: [
706
+ {
707
+ type: "text",
708
+ text: JSON.stringify({
709
+ success: true,
710
+ message: results.length === 0
711
+ ? `No translations found matching "${params.query}"`
712
+ : `Found ${results.length} translation${results.length === 1 ? "" : "s"} matching "${params.query}"${hasMore ? ` (showing first ${maxResults})` : ""}`,
713
+ query: params.query,
714
+ totalResults: results.length,
715
+ results: limitedResults,
716
+ hasMore,
717
+ tip: "Each result shows the translation key, English value, namespace, and what matched (key, value, or both). Use these keys directly in your code or use get_translation_key for more details.",
718
+ }, null, 2),
719
+ },
720
+ ],
721
+ };
722
+ }
723
+ finally {
724
+ // Restore console.log
725
+ console.log = originalConsoleLog;
726
+ }
727
+ }
728
+ catch (error) {
729
+ const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
730
+ let errorDetails = errorMessage;
731
+ if (error instanceof Error && error.stack) {
732
+ errorDetails = `${errorDetails}\nStack: ${error.stack}`;
733
+ }
734
+ console.error(`[i18n-magic MCP] Error searching translations:`);
735
+ console.error(errorDetails);
736
+ return {
737
+ content: [
738
+ {
739
+ type: "text",
740
+ text: JSON.stringify({
741
+ success: false,
742
+ error: errorMessage,
743
+ details: errorDetails,
744
+ }, null, 2),
745
+ },
746
+ ],
747
+ isError: true,
748
+ };
749
+ }
750
+ }
322
751
  throw new Error(`Unknown tool: ${request.params.name}`);
323
752
  });
324
753
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE9E,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,yCAAyC;AACzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AAE1C,oEAAoE;AACpE,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,UAAU,GAAG,QAAQ,CAAA;IACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAA;IAExC,OAAO,UAAU,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAA;QACzD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,0CAA0C;AAC1C,SAAS,kBAAkB;IACzB,2CAA2C;IAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACvD,IAAI,gBAAgB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAA;QAC9C,OAAO,CAAC,KAAK,CAAC,4DAA4D,WAAW,EAAE,CAAC,CAAA;QACxF,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAClC,CAAC;IAED,0DAA0D;IAC1D,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA;QACrD,OAAO,CAAC,KAAK,CAAC,mEAAmE,WAAW,EAAE,CAAC,CAAA;QAC/F,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAClC,CAAC;IAED,0DAA0D;IAC1D,oEAAoE;IACpE,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;IAC/C,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,gDAAgD,YAAY,EAAE,CAAC,CAAA;QAC7E,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,4CAA4C;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,OAAO,CAAC,KAAK,CAAC,qEAAqE,GAAG,EAAE,CAAC,CAAA;IACzF,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,yDAAyD;AACzD,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACjF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;CAC9E,CAAC,CAAA;AAEF,4DAA4D;AAC5D,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sEAAsE,CACvE;CACJ,CAAC,CAAA;AAEF,MAAM,eAAe;IAInB;QAFQ,WAAM,GAAyB,IAAI,CAAA;QAGzC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACtB;YACE,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,CACF,CAAA;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAExB,iBAAiB;QACjB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;QACpE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;gBAEhC,6DAA6D;gBAC7D,MAAM,QAAQ,GAAI,IAAI,CAAC,MAAM,CAAC,KAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;gBAClE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAA;gBAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAA;gBAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;gBAE5C,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;wBAC9B,MAAM,EAAE,GAAG;wBACX,GAAG,CAAC,QAAQ,IAAI;4BACd,OAAO,EAAE,0DAA0D;yBACpE,CAAC;qBACH,CAAC,CAAA;oBACF,OAAO,CAAC,KAAK,CACX,gCAAgC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,SAAS,CACxE,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CACX,sFAAsF,CACvF,CAAA;gBACH,CAAC;gBAED,OAAO,CAAC,KAAK,CACX,8CAA8C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,mBAAmB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,UAAU,CACnI,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAA;gBACtE,MAAM,IAAI,KAAK,CACb,mGAAmG,CACpG,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAEO,iBAAiB;QACvB,uBAAuB;QACvB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YAC/D,OAAO;gBACL,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,qBAAqB;wBAC3B,WAAW,EAAG,kDAAkD;wBAChE,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,GAAG,EAAE;oCACH,IAAI,EAAE,QAAQ;oCACd,WAAW,EACT,uDAAuD;iCAC1D;gCACD,KAAK,EAAE;oCACL,IAAI,EAAE,QAAQ;oCACd,WAAW,EACT,iDAAiD;iCACpD;6BACF;4BACD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;yBAC3B;qBACF;oBACD;wBACE,IAAI,EAAE,wBAAwB;wBAC9B,WAAW,EACT,wQAAwQ;wBAC1Q,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,SAAS,EAAE;oCACT,IAAI,EAAE,QAAQ;oCACd,WAAW,EACT,sEAAsE;iCACzE;6BACF;4BACD,QAAQ,EAAE,EAAE;yBACb;qBACF;iBACF;aACF,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,wBAAwB;QACxB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACrE,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBAClD,IAAI,CAAC;oBACH,sBAAsB;oBACtB,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;oBAEtE,0BAA0B;oBAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;oBAExC,6CAA6C;oBAC7C,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAA;oBACtC,MAAM,WAAW,GAAa,EAAE,CAAA;oBAChC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;wBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAC7B,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAC5D,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;wBACX,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;wBACzB,mCAAmC;wBACnC,OAAO,CAAC,KAAK,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAA;oBAC1C,CAAC,CAAA;oBAED,IAAI,MAAM,CAAA;oBACV,IAAI,CAAC;wBACH,0BAA0B;wBAC1B,MAAM,GAAG,MAAM,iBAAiB,CAAC;4BAC/B,GAAG,EAAE,MAAM,CAAC,GAAG;4BACf,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,MAAM;yBACP,CAAC,CAAA;oBACJ,CAAC;4BAAS,CAAC;wBACT,sBAAsB;wBACtB,OAAO,CAAC,GAAG,GAAG,kBAAkB,CAAA;oBAClC,CAAC;oBAED,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oCACE,OAAO,EAAE,IAAI;oCACb,OAAO,EAAE,uCAAuC,MAAM,CAAC,GAAG,6BAA6B,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,GAAG;oCAC5H,GAAG,EAAE,MAAM,CAAC,GAAG;oCACf,KAAK,EAAE,MAAM,CAAC,KAAK;oCACnB,SAAS,EAAE,MAAM,CAAC,SAAS;oCAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;oCACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;wCACnC,CAAC,CAAC,8DAA8D;wCAChE,CAAC,CAAC,2FAA2F;oCAC/F,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;iCACpC,EACD,IAAI,EACJ,CAAC,CACF;6BACF;yBACF;qBACF,CAAA;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAA;oBAEnE,sCAAsC;oBACtC,IAAI,YAAY,GAAG,YAAY,CAAA;oBAC/B,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;wBAC3B,2BAA2B;wBAC3B,MAAM,KAAK,GAAI,KAAa,CAAC,KAAK,CAAA;wBAClC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;4BAC3B,YAAY,GAAG,GAAG,YAAY,YAAY,KAAK,CAAC,OAAO,YAAY,KAAK,CAAC,KAAK,EAAE,CAAA;wBAClF,CAAC;6BAAM,IAAI,KAAK,EAAE,CAAC;4BACjB,YAAY,GAAG,GAAG,YAAY,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAA;wBACnE,CAAC;wBACD,sBAAsB;wBACtB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;4BAChB,YAAY,GAAG,GAAG,YAAY,YAAY,KAAK,CAAC,KAAK,EAAE,CAAA;wBACzD,CAAC;oBACH,CAAC;oBAED,6CAA6C;oBAC7C,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;oBAC/D,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;oBAE3B,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oCACE,OAAO,EAAE,KAAK;oCACd,KAAK,EAAE,YAAY;oCACnB,OAAO,EAAE,YAAY;iCACtB,EACD,IAAI,EACJ,CAAC,CACF;6BACF;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;gBACrD,IAAI,CAAC;oBACH,sBAAsB;oBACtB,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,CAC7C,OAAO,CAAC,MAAM,CAAC,SAAS,CACzB,CAAA;oBAED,0BAA0B;oBAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;oBAExC,sEAAsE;oBACtE,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAA;oBACtC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;oBAEtB,IAAI,WAAW,CAAA;oBACf,IAAI,CAAC;wBACH,qCAAqC;wBACrC,WAAW,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;oBAC5C,CAAC;4BAAS,CAAC;wBACT,sBAAsB;wBACtB,OAAO,CAAC,GAAG,GAAG,kBAAkB,CAAA;oBAClC,CAAC;oBAED,mCAAmC;oBACnC,IAAI,YAAY,GAAG,WAAW,CAAA;oBAC9B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;wBACrB,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAU,CAAC,CAC5C,CAAA;oBACH,CAAC;oBAED,4CAA4C;oBAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;oBAEjF,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oCACE,OAAO,EAAE,IAAI;oCACb,OAAO,EACL,YAAY,CAAC,MAAM,KAAK,CAAC;wCACvB,CAAC,CAAC,+EAA+E;wCACjF,CAAC,CAAC,SAAS,YAAY,CAAC,MAAM,2BAA2B,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;oCACnG,WAAW,EAAE,UAAU;oCACvB,SAAS,EACP,YAAY,CAAC,MAAM,GAAG,CAAC;wCACrB,CAAC,CAAC;4CACE,+DAA+D;4CAC/D,oDAAoD;yCACrD;wCACH,CAAC,CAAC,EAAE;iCACT,EACD,IAAI,EACJ,CAAC,CACF;6BACF;yBACF;qBACF,CAAA;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAA;oBAEnE,sCAAsC;oBACtC,IAAI,YAAY,GAAG,YAAY,CAAA;oBAC/B,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;wBAC3B,MAAM,KAAK,GAAI,KAAa,CAAC,KAAK,CAAA;wBAClC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;4BAC3B,YAAY,GAAG,GAAG,YAAY,YAAY,KAAK,CAAC,OAAO,YAAY,KAAK,CAAC,KAAK,EAAE,CAAA;wBAClF,CAAC;6BAAM,IAAI,KAAK,EAAE,CAAC;4BACjB,YAAY,GAAG,GAAG,YAAY,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAA;wBACnE,CAAC;wBACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;4BAChB,YAAY,GAAG,GAAG,YAAY,YAAY,KAAK,CAAC,KAAK,EAAE,CAAA;wBACzD,CAAC;oBACH,CAAC;oBAED,6CAA6C;oBAC7C,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;oBAClE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;oBAE3B,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oCACE,OAAO,EAAE,KAAK;oCACd,KAAK,EAAE,YAAY;oCACnB,OAAO,EAAE,YAAY;iCACtB,EACD,IAAI,EACJ,CAAC,CACF;6BACF;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAA;gBACH,CAAC;YACH,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,GAAG;QACP,mDAAmD;QACnD,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAA;QAExC,uEAAuE;QACvE,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;YAC1B,OAAO,CAAC,KAAK,CAAC,kDAAkD,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAClF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sDAAsD,KAAK,EAAE,CAAC,CAAA;YAC5E,MAAM,IAAI,KAAK,CAAC,oCAAoC,WAAW,EAAE,CAAC,CAAA;QACpE,CAAC;QAED,qCAAqC;QACrC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;QAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACpC,OAAO,CAAC,KAAK,CACX,iEAAiE,CAClE,CAAA;IACH,CAAC;CACF;AAED,mBAAmB;AACnB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;AACpC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC3B,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;IACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
-
3
2
  "name": "@scoutello/i18n-magic",
4
- "version": "0.51.0",
3
+ "version": "0.53.0",
5
4
  "private": false,
6
5
  "license": "MIT",
7
6
  "description": "Intelligent CLI toolkit that automates internationalization workflows with AI-powered translations for JavaScript/TypeScript projects",
@@ -47,7 +46,10 @@
47
46
  "types": "./dist/index.d.ts"
48
47
  }
49
48
  },
50
- "files": ["dist", "src"],
49
+ "files": [
50
+ "dist",
51
+ "src"
52
+ ],
51
53
  "scripts": {
52
54
  "analyze": "size-limit --why",
53
55
  "build": "tsc && echo '#!/usr/bin/env node' | cat - dist/cli.js > temp && mv temp dist/cli.js && chmod +x dist/cli.js && echo '#!/usr/bin/env node' | cat - dist/mcp-server.js > temp && mv temp dist/mcp-server.js && chmod +x dist/mcp-server.js",
@@ -89,4 +91,4 @@
89
91
  "typescript": "^5.9.2"
90
92
  },
91
93
  "packageManager": "pnpm@10.2.1+sha512.398035c7bd696d0ba0b10a688ed558285329d27ea994804a52bad9167d8e3a72bcb993f9699585d3ca25779ac64949ef422757a6c31102c12ab932e5cbe5cc92"
92
- }
94
+ }
@@ -44,43 +44,46 @@ export const removeUnusedKeys = async (config: Configuration) => {
44
44
  }
45
45
  }
46
46
 
47
- // Process each namespace and locale
48
- for (const namespace of namespaces) {
49
- const usedKeysSet = keysByNamespace[namespace] || new Set()
47
+ // Process each namespace and locale in parallel
48
+ const results = await Promise.all(
49
+ namespaces.flatMap((namespace) => {
50
+ const usedKeysSet = keysByNamespace[namespace] || new Set()
50
51
 
51
- // Process each locale
52
- for (const locale of locales) {
53
- // Load existing keys for this locale and namespace
54
- const existingKeys = await loadLocalesFile(loadPath, locale, namespace)
55
- const existingKeysCount = Object.keys(existingKeys).length
56
- stats.total += existingKeysCount
52
+ return locales.map(async (locale) => {
53
+ const existingKeys = await loadLocalesFile(loadPath, locale, namespace)
54
+ const existingKeysCount = Object.keys(existingKeys).length
57
55
 
58
- // Create a new object with only the keys that are used
59
- const cleanedKeys: Record<string, string> = {}
60
- let removedCount = 0
56
+ const cleanedKeys: Record<string, string> = {}
57
+ let removedCount = 0
61
58
 
62
- for (const [key, value] of Object.entries(existingKeys)) {
63
- if (usedKeysSet.has(key)) {
64
- cleanedKeys[key] = value
59
+ for (const [key, value] of Object.entries(existingKeys)) {
60
+ if (usedKeysSet.has(key)) {
61
+ cleanedKeys[key] = value
62
+ } else {
63
+ removedCount++
64
+ }
65
+ }
66
+
67
+ if (removedCount > 0) {
68
+ await writeLocalesFile(savePath, locale, namespace, cleanedKeys)
69
+ console.log(
70
+ `✓ Removed ${removedCount} unused keys from ${locale}:${namespace} (${
71
+ Object.keys(cleanedKeys).length
72
+ } keys remaining)`,
73
+ )
65
74
  } else {
66
- removedCount++
75
+ console.log(`No unused keys found in ${locale}:${namespace}`)
67
76
  }
68
- }
69
77
 
70
- stats.removed += removedCount
78
+ return { total: existingKeysCount, removed: removedCount }
79
+ })
80
+ })
81
+ )
71
82
 
72
- // Only write the file if keys were removed
73
- if (removedCount > 0) {
74
- await writeLocalesFile(savePath, locale, namespace, cleanedKeys)
75
- console.log(
76
- `✓ Removed ${removedCount} unused keys from ${locale}:${namespace} (${
77
- Object.keys(cleanedKeys).length
78
- } keys remaining)`,
79
- )
80
- } else {
81
- console.log(`No unused keys found in ${locale}:${namespace}`)
82
- }
83
- }
83
+ // Aggregate stats from all parallel operations
84
+ for (const result of results) {
85
+ stats.total += result.total
86
+ stats.removed += result.removed
84
87
  }
85
88
 
86
89
  if (stats.removed > 0) {