@babelize/mcp 1.0.1 → 1.0.3

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.
Files changed (107) hide show
  1. package/README.md +66 -6
  2. package/dist/index.js +29 -6
  3. package/dist/index.js.map +1 -1
  4. package/dist/server.d.ts.map +1 -1
  5. package/dist/server.js +330 -40
  6. package/dist/server.js.map +1 -1
  7. package/dist/tools/babel-get.d.ts +19 -0
  8. package/dist/tools/babel-get.d.ts.map +1 -0
  9. package/dist/tools/babel-get.js +48 -0
  10. package/dist/tools/babel-get.js.map +1 -0
  11. package/dist/tools/babel-list.d.ts +21 -0
  12. package/dist/tools/babel-list.d.ts.map +1 -0
  13. package/dist/tools/babel-list.js +47 -0
  14. package/dist/tools/babel-list.js.map +1 -0
  15. package/dist/tools/engine-analyze.d.ts +20 -0
  16. package/dist/tools/engine-analyze.d.ts.map +1 -0
  17. package/dist/tools/engine-analyze.js +29 -0
  18. package/dist/tools/engine-analyze.js.map +1 -0
  19. package/dist/tools/glossary-delete.d.ts +20 -0
  20. package/dist/tools/glossary-delete.d.ts.map +1 -0
  21. package/dist/tools/glossary-delete.js +21 -0
  22. package/dist/tools/glossary-delete.js.map +1 -0
  23. package/dist/tools/glossary-export.d.ts +19 -0
  24. package/dist/tools/glossary-export.d.ts.map +1 -0
  25. package/dist/tools/glossary-export.js +29 -0
  26. package/dist/tools/glossary-export.js.map +1 -0
  27. package/dist/tools/glossary-import.d.ts +20 -0
  28. package/dist/tools/glossary-import.d.ts.map +1 -0
  29. package/dist/tools/glossary-import.js +36 -0
  30. package/dist/tools/glossary-import.js.map +1 -0
  31. package/dist/tools/invitation-send.d.ts +21 -0
  32. package/dist/tools/invitation-send.d.ts.map +1 -0
  33. package/dist/tools/invitation-send.js +32 -0
  34. package/dist/tools/invitation-send.js.map +1 -0
  35. package/dist/tools/language-codes.d.ts +21 -0
  36. package/dist/tools/language-codes.d.ts.map +1 -0
  37. package/dist/tools/language-codes.js +77 -0
  38. package/dist/tools/language-codes.js.map +1 -0
  39. package/dist/tools/language-list.d.ts +15 -0
  40. package/dist/tools/language-list.d.ts.map +1 -0
  41. package/dist/tools/language-list.js +34 -0
  42. package/dist/tools/language-list.js.map +1 -0
  43. package/dist/tools/me.d.ts +15 -0
  44. package/dist/tools/me.d.ts.map +1 -0
  45. package/dist/tools/me.js +37 -0
  46. package/dist/tools/me.js.map +1 -0
  47. package/dist/tools/member-list.d.ts +19 -0
  48. package/dist/tools/member-list.d.ts.map +1 -0
  49. package/dist/tools/member-list.js +35 -0
  50. package/dist/tools/member-list.js.map +1 -0
  51. package/dist/tools/pr-raise.d.ts +19 -0
  52. package/dist/tools/pr-raise.d.ts.map +1 -0
  53. package/dist/tools/pr-raise.js +33 -0
  54. package/dist/tools/pr-raise.js.map +1 -0
  55. package/dist/tools/project-create.d.ts +24 -0
  56. package/dist/tools/project-create.d.ts.map +1 -0
  57. package/dist/tools/project-create.js +43 -0
  58. package/dist/tools/project-create.js.map +1 -0
  59. package/dist/tools/project-download.d.ts +19 -0
  60. package/dist/tools/project-download.d.ts.map +1 -0
  61. package/dist/tools/project-download.js +32 -0
  62. package/dist/tools/project-download.js.map +1 -0
  63. package/dist/tools/project-get.d.ts +19 -0
  64. package/dist/tools/project-get.d.ts.map +1 -0
  65. package/dist/tools/project-get.js +35 -0
  66. package/dist/tools/project-get.js.map +1 -0
  67. package/dist/tools/project-language-add.d.ts +20 -0
  68. package/dist/tools/project-language-add.d.ts.map +1 -0
  69. package/dist/tools/project-language-add.js +27 -0
  70. package/dist/tools/project-language-add.js.map +1 -0
  71. package/dist/tools/project-language-remove.d.ts +20 -0
  72. package/dist/tools/project-language-remove.d.ts.map +1 -0
  73. package/dist/tools/project-language-remove.js +21 -0
  74. package/dist/tools/project-language-remove.js.map +1 -0
  75. package/dist/tools/project-list.d.ts +20 -0
  76. package/dist/tools/project-list.d.ts.map +1 -0
  77. package/dist/tools/project-list.js +46 -0
  78. package/dist/tools/project-list.js.map +1 -0
  79. package/dist/tools/project-sync.d.ts +19 -0
  80. package/dist/tools/project-sync.d.ts.map +1 -0
  81. package/dist/tools/project-sync.js +29 -0
  82. package/dist/tools/project-sync.js.map +1 -0
  83. package/dist/tools/provider-tokens-list.d.ts +15 -0
  84. package/dist/tools/provider-tokens-list.d.ts.map +1 -0
  85. package/dist/tools/provider-tokens-list.js +33 -0
  86. package/dist/tools/provider-tokens-list.js.map +1 -0
  87. package/dist/tools/run.d.ts +1 -0
  88. package/dist/tools/run.d.ts.map +1 -1
  89. package/dist/tools/run.js +6 -3
  90. package/dist/tools/run.js.map +1 -1
  91. package/dist/tools/tm-export.d.ts +19 -0
  92. package/dist/tools/tm-export.d.ts.map +1 -0
  93. package/dist/tools/tm-export.js +29 -0
  94. package/dist/tools/tm-export.js.map +1 -0
  95. package/dist/tools/tm-get.d.ts +21 -0
  96. package/dist/tools/tm-get.d.ts.map +1 -0
  97. package/dist/tools/tm-get.js +45 -0
  98. package/dist/tools/tm-get.js.map +1 -0
  99. package/dist/tools/tm-set.d.ts +23 -0
  100. package/dist/tools/tm-set.d.ts.map +1 -0
  101. package/dist/tools/tm-set.js +44 -0
  102. package/dist/tools/tm-set.js.map +1 -0
  103. package/dist/utils/scan-strings.d.ts +1 -0
  104. package/dist/utils/scan-strings.d.ts.map +1 -1
  105. package/dist/utils/scan-strings.js +59 -1
  106. package/dist/utils/scan-strings.js.map +1 -1
  107. package/package.json +5 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-tokens-list.js","sourceRoot":"","sources":["../../src/tools/provider-tokens-list.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAAqB;IAClE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,mGAAmG,EAAE,CAAC;aAChJ,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAa,CAAC,uBAAuB,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;QACvE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAChE,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,SAAS,iBAAiB,SAAS,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC7D,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,UAAU,IAAI,GAAG;YACxE,CAAC,CAAC,CAAE,GAAiD,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,eAAe,CAAC;YAC/F,CAAC,CAAC,GAAG,YAAY,KAAK;gBACpB,CAAC,CAAC,GAAG,CAAC,OAAO;gBACb,CAAC,CAAC,eAAe,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,qCAAqC,OAAO,EAAE,EAAE,CAAC;YAC1F,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -3,6 +3,7 @@ interface RunParams {
3
3
  project_id: string;
4
4
  target_locales: string[];
5
5
  source_locale?: string;
6
+ framework?: 'react' | 'nextjs' | 'unknown' | 'static';
6
7
  }
7
8
  export declare function handleRun(client: AxiosInstance, params: RunParams): Promise<{
8
9
  content: {
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/tools/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,UAAU,SAAS;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS;;;;;;;;;;;;GAyCvE"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/tools/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,UAAU,SAAS;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;CACvD;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS;;;;;;;;;;;;GA4CvE"}
package/dist/tools/run.js CHANGED
@@ -1,12 +1,15 @@
1
1
  export async function handleRun(client, params) {
2
- const { project_id, target_locales, source_locale } = params;
2
+ const { project_id, target_locales, source_locale, framework } = params;
3
3
  try {
4
- const response = await client.post('/engine/babel', {
4
+ const body = {
5
5
  project_id,
6
6
  target_locales,
7
7
  source_locale: source_locale || 'en',
8
8
  dry_run: false,
9
- });
9
+ };
10
+ if (framework)
11
+ body.framework = framework;
12
+ const response = await client.post('/engine/babel', body);
10
13
  const data = response.data;
11
14
  const babelId = (data.babel_id ?? data.id);
12
15
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/tools/run.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAqB,EAAE,MAAiB;IACtE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IAE7D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;YAClD,UAAU;YACV,cAAc;YACd,aAAa,EAAE,aAAa,IAAI,IAAI;YACpC,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAA+B,CAAC;QACtD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAW,CAAC;QAErD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE;wBACJ,mCAAmC;wBACnC,EAAE;wBACF,eAAe,OAAO,EAAE;wBACxB,uBAAuB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBAClD,sBAAsB,aAAa,IAAI,IAAI,EAAE;wBAC7C,EAAE;wBACF,wCAAwC;qBACzC,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,UAAU,IAAI,GAAG;YACxE,CAAC,CAAC,CAAE,GAAiD,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,eAAe,CAAC;YAC/F,CAAC,CAAC,GAAG,YAAY,KAAK;gBACpB,CAAC,CAAC,GAAG,CAAC,OAAO;gBACb,CAAC,CAAC,eAAe,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gCAAgC,OAAO,EAAE,EAAE,CAAC;YACrF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/tools/run.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAqB,EAAE,MAAiB;IACtE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAExE,IAAI,CAAC;QACH,MAAM,IAAI,GAA4B;YACpC,UAAU;YACV,cAAc;YACd,aAAa,EAAE,aAAa,IAAI,IAAI;YACpC,OAAO,EAAE,KAAK;SACf,CAAC;QACF,IAAI,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE1C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAA+B,CAAC;QACtD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAW,CAAC;QAErD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE;wBACJ,mCAAmC;wBACnC,EAAE;wBACF,eAAe,OAAO,EAAE;wBACxB,uBAAuB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBAClD,sBAAsB,aAAa,IAAI,IAAI,EAAE;wBAC7C,EAAE;wBACF,wCAAwC;qBACzC,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,UAAU,IAAI,GAAG;YACxE,CAAC,CAAC,CAAE,GAAiD,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,eAAe,CAAC;YAC/F,CAAC,CAAC,GAAG,YAAY,KAAK;gBACpB,CAAC,CAAC,GAAG,CAAC,OAAO;gBACb,CAAC,CAAC,eAAe,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gCAAgC,OAAO,EAAE,EAAE,CAAC;YACrF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { AxiosInstance } from 'axios';
2
+ interface TmExportParams {
3
+ project_id: string;
4
+ }
5
+ export declare function handleTmExport(client: AxiosInstance, params: TmExportParams): Promise<{
6
+ content: {
7
+ type: "text";
8
+ text: string;
9
+ }[];
10
+ isError?: undefined;
11
+ } | {
12
+ content: {
13
+ type: "text";
14
+ text: string;
15
+ }[];
16
+ isError: boolean;
17
+ }>;
18
+ export {};
19
+ //# sourceMappingURL=tm-export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tm-export.d.ts","sourceRoot":"","sources":["../../src/tools/tm-export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc;;;;;;;;;;;;GA4BjF"}
@@ -0,0 +1,29 @@
1
+ export async function handleTmExport(client, params) {
2
+ const { project_id } = params;
3
+ try {
4
+ const response = await client.get(`/projects/${project_id}/tm/export`, {
5
+ responseType: 'text',
6
+ });
7
+ const tmx = typeof response.data === 'string' ? response.data : String(response.data);
8
+ return {
9
+ content: [
10
+ {
11
+ type: 'text',
12
+ text: `✅ TMX export for project ${project_id} (${tmx.length} chars):\n\n${tmx}`,
13
+ },
14
+ ],
15
+ };
16
+ }
17
+ catch (err) {
18
+ const message = err instanceof Object && err !== null && 'response' in err
19
+ ? (err.response?.data?.error || 'Unknown error')
20
+ : err instanceof Error
21
+ ? err.message
22
+ : 'Unknown error';
23
+ return {
24
+ content: [{ type: 'text', text: `❌ Failed to export TM: ${message}` }],
25
+ isError: true,
26
+ };
27
+ }
28
+ }
29
+ //# sourceMappingURL=tm-export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tm-export.js","sourceRoot":"","sources":["../../src/tools/tm-export.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAqB,EAAE,MAAsB;IAChF,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAE9B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,UAAU,YAAY,EAAE;YACrE,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEtF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,4BAA4B,UAAU,KAAK,GAAG,CAAC,MAAM,eAAe,GAAG,EAAE;iBAChF;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,UAAU,IAAI,GAAG;YACxE,CAAC,CAAC,CAAE,GAAiD,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,eAAe,CAAC;YAC/F,CAAC,CAAC,GAAG,YAAY,KAAK;gBACpB,CAAC,CAAC,GAAG,CAAC,OAAO;gBACb,CAAC,CAAC,eAAe,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,OAAO,EAAE,EAAE,CAAC;YAC/E,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { AxiosInstance } from 'axios';
2
+ interface TmGetParams {
3
+ project_id: string;
4
+ search?: string;
5
+ target_lang?: string;
6
+ }
7
+ export declare function handleTmGet(client: AxiosInstance, params: TmGetParams): Promise<{
8
+ content: {
9
+ type: "text";
10
+ text: string;
11
+ }[];
12
+ isError?: undefined;
13
+ } | {
14
+ content: {
15
+ type: "text";
16
+ text: string;
17
+ }[];
18
+ isError: boolean;
19
+ }>;
20
+ export {};
21
+ //# sourceMappingURL=tm-get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tm-get.d.ts","sourceRoot":"","sources":["../../src/tools/tm-get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW;;;;;;;;;;;;GA4C3E"}
@@ -0,0 +1,45 @@
1
+ export async function handleTmGet(client, params) {
2
+ const { project_id, search, target_lang } = params;
3
+ try {
4
+ const query = new URLSearchParams();
5
+ if (search)
6
+ query.set('search', search);
7
+ if (target_lang)
8
+ query.set('target_lang', target_lang);
9
+ const qs = query.toString();
10
+ const url = `/projects/${project_id}/tm${qs ? `?${qs}` : ''}`;
11
+ const response = await client.get(url);
12
+ const entries = Array.isArray(response.data) ? response.data : [];
13
+ if (entries.length === 0) {
14
+ return {
15
+ content: [{ type: 'text', text: '📚 No translation memory entries found.' }],
16
+ };
17
+ }
18
+ const lines = [
19
+ `📚 Translation Memory (${entries.length} entries)${search ? ` matching "${search}"` : ''}:`,
20
+ '',
21
+ ];
22
+ for (const e of entries) {
23
+ const src = String(e.source_text ?? '?');
24
+ const tgt = String(e.translated_text ?? '?');
25
+ const srcLang = String(e.source_lang ?? '?');
26
+ const tgtLang = String(e.target_lang ?? '?');
27
+ lines.push(` • ${srcLang} → ${tgtLang}: "${src}" → "${tgt}"`);
28
+ }
29
+ return {
30
+ content: [{ type: 'text', text: lines.join('\n') }],
31
+ };
32
+ }
33
+ catch (err) {
34
+ const message = err instanceof Object && err !== null && 'response' in err
35
+ ? (err.response?.data?.error || 'Unknown error')
36
+ : err instanceof Error
37
+ ? err.message
38
+ : 'Unknown error';
39
+ return {
40
+ content: [{ type: 'text', text: `❌ Failed to get translation memory: ${message}` }],
41
+ isError: true,
42
+ };
43
+ }
44
+ }
45
+ //# sourceMappingURL=tm-get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tm-get.js","sourceRoot":"","sources":["../../src/tools/tm-get.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAqB,EAAE,MAAmB;IAC1E,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,MAAM;YAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,WAAW;YAAE,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACvD,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,aAAa,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAElE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC;aACtF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAa;YACtB,0BAA0B,OAAO,CAAC,MAAM,YAAY,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;YAC5F,EAAE;SACH,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,IAAI,GAAG,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,MAAM,OAAO,MAAM,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;QACjE,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC7D,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,UAAU,IAAI,GAAG;YACxE,CAAC,CAAC,CAAE,GAAiD,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,eAAe,CAAC;YAC/F,CAAC,CAAC,GAAG,YAAY,KAAK;gBACpB,CAAC,CAAC,GAAG,CAAC,OAAO;gBACb,CAAC,CAAC,eAAe,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,uCAAuC,OAAO,EAAE,EAAE,CAAC;YAC5F,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { AxiosInstance } from 'axios';
2
+ interface TmSetParams {
3
+ project_id: string;
4
+ source_text: string;
5
+ source_lang?: string;
6
+ target_lang: string;
7
+ translated_text: string;
8
+ }
9
+ export declare function handleTmSet(client: AxiosInstance, params: TmSetParams): Promise<{
10
+ content: {
11
+ type: "text";
12
+ text: string;
13
+ }[];
14
+ isError: boolean;
15
+ } | {
16
+ content: {
17
+ type: "text";
18
+ text: string;
19
+ }[];
20
+ isError?: undefined;
21
+ }>;
22
+ export {};
23
+ //# sourceMappingURL=tm-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tm-set.d.ts","sourceRoot":"","sources":["../../src/tools/tm-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW;;;;;;;;;;;;GA4C3E"}
@@ -0,0 +1,44 @@
1
+ export async function handleTmSet(client, params) {
2
+ const { project_id, source_text, source_lang, target_lang, translated_text } = params;
3
+ if (!source_text.trim() || !translated_text.trim()) {
4
+ return {
5
+ content: [{ type: 'text', text: '❌ Both source_text and translated_text are required.' }],
6
+ isError: true,
7
+ };
8
+ }
9
+ try {
10
+ const body = {
11
+ source_text: source_text.trim(),
12
+ target_lang,
13
+ translated_text: translated_text.trim(),
14
+ };
15
+ if (source_lang)
16
+ body.source_lang = source_lang;
17
+ const response = await client.post(`/projects/${project_id}/tm`, body);
18
+ const result = response.data;
19
+ return {
20
+ content: [
21
+ {
22
+ type: 'text',
23
+ text: [
24
+ `✅ Translation memory entry added.`,
25
+ ` Source (${source_lang || 'en'}): "${source_text}"`,
26
+ ` Target (${target_lang}): "${translated_text}"`,
27
+ ].join('\n'),
28
+ },
29
+ ],
30
+ };
31
+ }
32
+ catch (err) {
33
+ const message = err instanceof Object && err !== null && 'response' in err
34
+ ? (err.response?.data?.error || 'Unknown error')
35
+ : err instanceof Error
36
+ ? err.message
37
+ : 'Unknown error';
38
+ return {
39
+ content: [{ type: 'text', text: `❌ Failed to set TM entry: ${message}` }],
40
+ isError: true,
41
+ };
42
+ }
43
+ }
44
+ //# sourceMappingURL=tm-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tm-set.js","sourceRoot":"","sources":["../../src/tools/tm-set.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAqB,EAAE,MAAmB;IAC1E,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAEtF,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;QACnD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,sDAAsD,EAAE,CAAC;YAClG,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAA4B;YACpC,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE;YAC/B,WAAW;YACX,eAAe,EAAE,eAAe,CAAC,IAAI,EAAE;SACxC,CAAC;QACF,IAAI,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAEhD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,UAAU,KAAK,EAAE,IAAI,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,QAAQ,CAAC,IAA+B,CAAC;QAExD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE;wBACJ,mCAAmC;wBACnC,aAAa,WAAW,IAAI,IAAI,OAAO,WAAW,GAAG;wBACrD,aAAa,WAAW,OAAO,eAAe,GAAG;qBAClD,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,UAAU,IAAI,GAAG;YACxE,CAAC,CAAC,CAAE,GAAiD,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,eAAe,CAAC;YAC/F,CAAC,CAAC,GAAG,YAAY,KAAK;gBACpB,CAAC,CAAC,GAAG,CAAC,OAAO;gBACb,CAAC,CAAC,eAAe,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,6BAA6B,OAAO,EAAE,EAAE,CAAC;YAClF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -7,6 +7,7 @@ interface ScanResult {
7
7
  hardcoded_strings: HardcodedString[];
8
8
  }
9
9
  export declare function isTranslatable(text: string): boolean;
10
+ export declare function extractHtmlStrings(content: string): HardcodedString[];
10
11
  export declare function extractStrings(content: string): HardcodedString[];
11
12
  export declare function scanDirectory(dirPath: string, extensions?: string[]): Promise<ScanResult[]>;
12
13
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"scan-strings.d.ts","sourceRoot":"","sources":["../../src/utils/scan-strings.ts"],"names":[],"mappings":"AAeA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,eAAe,EAAE,CAAC;CACtC;AA4BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAkBpD;AAMD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CA+BjE;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAM,EAAuB,GACxC,OAAO,CAAC,UAAU,EAAE,CAAC,CAoDvB"}
1
+ {"version":3,"file":"scan-strings.d.ts","sourceRoot":"","sources":["../../src/utils/scan-strings.ts"],"names":[],"mappings":"AAeA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,eAAe,EAAE,CAAC;CACtC;AA4BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAkBpD;AAWD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAgDrE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAmCjE;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAM,EAAuB,GACxC,OAAO,CAAC,UAAU,EAAE,CAAC,CAoDvB"}
@@ -1,6 +1,6 @@
1
1
  import { readdir, readFile, stat } from 'node:fs/promises';
2
2
  import * as path from 'node:path';
3
- const DEFAULT_EXTENSIONS = ['.tsx', '.jsx', '.ts', '.js', '.vue'];
3
+ const DEFAULT_EXTENSIONS = ['.tsx', '.jsx', '.ts', '.js', '.vue', '.html'];
4
4
  const ALWAYS_IGNORE = new Set([
5
5
  'node_modules',
6
6
  'dist',
@@ -63,7 +63,65 @@ export function isTranslatable(text) {
63
63
  function shouldSkipLine(line) {
64
64
  return SKIP_PATTERNS.some((p) => p.test(line));
65
65
  }
66
+ // HTML text content: extract text between HTML tags
67
+ const HTML_TEXT_RE = /<([a-zA-Z][a-zA-Z0-9]*)(?:\s[^>]*)?>([^<>\n]+)<\/\1>/g;
68
+ // HTML translatable attributes
69
+ const HTML_ATTR_RE = /\b(alt|title|placeholder|aria-label|aria-description)\s*=\s*"([^"]*?)"/g;
70
+ export function extractHtmlStrings(content) {
71
+ const results = [];
72
+ const lines = content.split('\n');
73
+ const inScriptTag = new Set();
74
+ // Track script/style blocks to skip their content
75
+ let inScript = false;
76
+ let inStyle = false;
77
+ for (let i = 0; i < lines.length; i++) {
78
+ const line = lines[i];
79
+ if (/<script[\s>]/i.test(line))
80
+ inScript = true;
81
+ if (/<\/script>/i.test(line))
82
+ inScript = false;
83
+ if (/<style[\s>]/i.test(line))
84
+ inStyle = true;
85
+ if (/<\/style>/i.test(line))
86
+ inStyle = false;
87
+ if (inScript || inStyle)
88
+ inScriptTag.add(i);
89
+ }
90
+ for (let i = 0; i < lines.length; i++) {
91
+ if (inScriptTag.has(i))
92
+ continue;
93
+ const line = lines[i].trim();
94
+ if (!line)
95
+ continue;
96
+ let match;
97
+ HTML_TEXT_RE.lastIndex = 0;
98
+ while ((match = HTML_TEXT_RE.exec(line)) !== null) {
99
+ const tagName = match[1].toLowerCase();
100
+ const text = match[2].trim();
101
+ if (!['script', 'style', 'noscript', 'code', 'pre', 'svg'].includes(tagName)
102
+ && text && text.length > 1 && isTranslatable(text)) {
103
+ if (!results.some(r => r.text === text && r.line === i + 1)) {
104
+ results.push({ text, line: i + 1 });
105
+ }
106
+ }
107
+ }
108
+ HTML_ATTR_RE.lastIndex = 0;
109
+ while ((match = HTML_ATTR_RE.exec(line)) !== null) {
110
+ const text = match[2].trim();
111
+ if (text && text.length > 1 && isTranslatable(text)) {
112
+ if (!results.some(r => r.text === text && r.line === i + 1)) {
113
+ results.push({ text, line: i + 1 });
114
+ }
115
+ }
116
+ }
117
+ }
118
+ return results;
119
+ }
66
120
  export function extractStrings(content) {
121
+ const isHtml = /<!DOCTYPE html|<html[\s>]/i.test(content.trim().slice(0, 200));
122
+ if (isHtml) {
123
+ return extractHtmlStrings(content);
124
+ }
67
125
  const lines = content.split('\n');
68
126
  const results = [];
69
127
  for (let i = 0; i < lines.length; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"scan-strings.js","sourceRoot":"","sources":["../../src/utils/scan-strings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan-strings.js","sourceRoot":"","sources":["../../src/utils/scan-strings.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babelize/mcp",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "MCP (Model Context Protocol) server for Babelize AI-powered i18n — let AI coding agents translate your apps",
5
5
  "keywords": [
6
6
  "babelize",
@@ -38,12 +38,16 @@
38
38
  "prepublishOnly": "npm test && npm run typecheck"
39
39
  },
40
40
  "dependencies": {
41
+ "@babel/parser": "^7.28.5",
42
+ "@babel/traverse": "^7.28.5",
43
+ "@babel/types": "^7.28.5",
41
44
  "@modelcontextprotocol/sdk": "^1.0.0",
42
45
  "axios": "^1.15.2",
43
46
  "zod": "^3.24.0"
44
47
  },
45
48
  "devDependencies": {
46
49
  "@jest/globals": "^30.2.0",
50
+ "@types/babel__traverse": "^7.28.0",
47
51
  "@types/jest": "^30.0.0",
48
52
  "@types/node": "^22.0.0",
49
53
  "jest": "^30.2.0",