@scoutello/i18n-magic 0.65.0 โ†’ 0.66.0

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