@localheroai/cli 0.0.74 → 0.0.75-rc.1

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 (37) hide show
  1. package/dist/api/pull-request-imports.js +9 -1
  2. package/dist/api/pull-request-imports.js.map +1 -1
  3. package/dist/api/source-alignments.js +46 -0
  4. package/dist/api/source-alignments.js.map +1 -0
  5. package/dist/commands/check.js +1 -4
  6. package/dist/commands/check.js.map +1 -1
  7. package/dist/commands/ci.js +4 -1
  8. package/dist/commands/ci.js.map +1 -1
  9. package/dist/commands/init.js +11 -3
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/translate.js +127 -39
  12. package/dist/commands/translate.js.map +1 -1
  13. package/dist/utils/aligned-import.js +105 -0
  14. package/dist/utils/aligned-import.js.map +1 -0
  15. package/dist/utils/aligned-values-on-disk.js +39 -0
  16. package/dist/utils/aligned-values-on-disk.js.map +1 -0
  17. package/dist/utils/alignment-candidates.js +75 -0
  18. package/dist/utils/alignment-candidates.js.map +1 -0
  19. package/dist/utils/ci-context.js +3 -0
  20. package/dist/utils/ci-context.js.map +1 -1
  21. package/dist/utils/git-changes.js +32 -5
  22. package/dist/utils/git-changes.js.map +1 -1
  23. package/dist/utils/git.js +21 -0
  24. package/dist/utils/git.js.map +1 -1
  25. package/dist/utils/github-graphql.js +31 -14
  26. package/dist/utils/github-graphql.js.map +1 -1
  27. package/dist/utils/github.js +220 -50
  28. package/dist/utils/github.js.map +1 -1
  29. package/dist/utils/project-detection.js +75 -3
  30. package/dist/utils/project-detection.js.map +1 -1
  31. package/dist/utils/source-alignment.js +166 -0
  32. package/dist/utils/source-alignment.js.map +1 -0
  33. package/dist/utils/target-changes.js +12 -7
  34. package/dist/utils/target-changes.js.map +1 -1
  35. package/dist/utils/unreadable-files.js +24 -0
  36. package/dist/utils/unreadable-files.js.map +1 -0
  37. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import { promises as fs } from 'fs';
2
+ import { glob, escape } from 'glob';
2
3
  import { findFirstExistingPath, findFirstGettextCatalogPath, getDirectoryContents } from './files.js';
3
4
  export const PROJECT_TYPES = {
4
5
  django: {
@@ -20,7 +21,9 @@ export const PROJECT_TYPES = {
20
21
  ]
21
22
  },
22
23
  rails: {
23
- directIndicators: ['config/application.rb', 'Gemfile'],
24
+ // Not Gemfile: React Native and other JS apps ship one for CocoaPods and fastlane.
25
+ // A Ruby project without config/application.rb is still found by the generic scan.
26
+ directIndicators: ['config/application.rb'],
24
27
  defaults: {
25
28
  translationPath: 'config/locales/',
26
29
  filePattern: '**/*.{yml,yaml}'
@@ -63,7 +66,6 @@ export const PROJECT_TYPES = {
63
66
  ]
64
67
  },
65
68
  nextjs: {
66
- directIndicators: ['next.config.js', 'next.config.mjs'],
67
69
  packageCheck: {
68
70
  requires: ['next'],
69
71
  oneOf: ['next-i18next', 'next-translate']
@@ -95,7 +97,7 @@ export const PROJECT_TYPES = {
95
97
  ]
96
98
  },
97
99
  i18next: {
98
- directIndicators: ['i18next.config.js', 'i18n.js', 'i18n/index.js'],
100
+ directIndicators: ['i18next.config.ts', 'i18next.config.js', 'i18n.js', 'i18n/index.js'],
99
101
  packageCheck: {
100
102
  requires: ['i18next']
101
103
  },
@@ -103,8 +105,20 @@ export const PROJECT_TYPES = {
103
105
  translationPath: 'public/locales/',
104
106
  filePattern: '**/*.json'
105
107
  },
108
+ outputConfigFiles: [
109
+ 'i18next.config.ts',
110
+ 'i18next.config.js',
111
+ 'i18next.config.mjs',
112
+ 'i18next-parser.config.js',
113
+ 'i18next-parser.config.mjs',
114
+ 'i18next-parser.config.cjs',
115
+ 'i18next-parser.config.ts'
116
+ ],
106
117
  commonPaths: [
107
118
  'public/locales',
119
+ 'app/i18n/locales',
120
+ 'src/app/i18n/locales',
121
+ 'src/i18n/locales',
108
122
  'src/locales',
109
123
  'locales',
110
124
  'src/i18n',
@@ -248,6 +262,35 @@ async function detectFramework(config) {
248
262
  }
249
263
  return false;
250
264
  }
265
+ const OUTPUT_PATTERN = /\boutput\s*:\s*['"`]([^'"`]+)['"`]/;
266
+ const OUTPUT_PLACEHOLDER = /\{\{|\$[A-Z]/;
267
+ const COMMENTS = /\/\*[\s\S]*?\*\/|^\s*\/\/.*$/gm;
268
+ const PATTERN_SCAN_IGNORE = ['**/node_modules/**', '**/.git/**', '**/vendor/**', '**/dist/**', '**/build/**'];
269
+ // The directory before the first language or namespace placeholder in an
270
+ // i18next-cli (`{{language}}`) or i18next-parser (`$LOCALE`) output template.
271
+ function localeDirFromOutputTemplate(template) {
272
+ const segments = template.replace(/^\.[\\/]/, '').split(/[\\/]/);
273
+ const firstDynamic = segments.findIndex(segment => OUTPUT_PLACEHOLDER.test(segment));
274
+ if (firstDynamic <= 0)
275
+ return null;
276
+ return segments.slice(0, firstDynamic).join('/');
277
+ }
278
+ async function translationPathFromOutputConfig(configFiles) {
279
+ for (const file of configFiles) {
280
+ let content;
281
+ try {
282
+ content = await fs.readFile(file, 'utf8');
283
+ }
284
+ catch {
285
+ continue;
286
+ }
287
+ const template = content.replace(COMMENTS, '').match(OUTPUT_PATTERN)?.[1];
288
+ const localeDir = template ? localeDirFromOutputTemplate(template) : null;
289
+ if (localeDir && await findFirstExistingPath([localeDir]))
290
+ return localeDir;
291
+ }
292
+ return null;
293
+ }
251
294
  export function buildFilePatternFromContents(contents) {
252
295
  const formats = [];
253
296
  if (contents.jsonFiles.length > 0)
@@ -264,6 +307,22 @@ export function buildFilePatternFromContents(contents) {
264
307
  }
265
308
  return `**/*.{${formats.join(',')}}`;
266
309
  }
310
+ // The pattern for a directory the user chose over the detected one, read from the
311
+ // files actually in it. Null when it holds no translation files to go by.
312
+ export async function filePatternForDirectory(dir) {
313
+ const root = dir.replace(/\/+$/, '');
314
+ const files = await glob(`${escape(root)}/**/*.{json,yml,yaml,po,pot}`, { ignore: PATTERN_SCAN_IGNORE });
315
+ if (files.length === 0)
316
+ return null;
317
+ const pattern = buildFilePatternFromContents({
318
+ files,
319
+ jsonFiles: files.filter(f => f.endsWith('.json')),
320
+ yamlFiles: files.filter(f => f.endsWith('.yml') || f.endsWith('.yaml')),
321
+ poFiles: files.filter(f => f.endsWith('.po') || f.endsWith('.pot'))
322
+ });
323
+ const hasPot = files.some(f => f.endsWith('.pot'));
324
+ return hasPot && pattern === '**/*.po' ? '**/*.{po,pot}' : pattern;
325
+ }
267
326
  export async function detectProjectType() {
268
327
  for (const [type, config] of Object.entries(PROJECT_TYPES)) {
269
328
  if (!config.directIndicators?.length && !config.packageCheck)
@@ -271,6 +330,19 @@ export async function detectProjectType() {
271
330
  const isFramework = await detectFramework(config);
272
331
  if (!isFramework)
273
332
  continue;
333
+ const configuredPath = config.outputConfigFiles
334
+ ? await translationPathFromOutputConfig(config.outputConfigFiles)
335
+ : null;
336
+ if (configuredPath) {
337
+ return {
338
+ type,
339
+ defaults: {
340
+ ...config.defaults,
341
+ translationPath: `${configuredPath}/`,
342
+ commonPaths: config.commonPaths
343
+ }
344
+ };
345
+ }
274
346
  if (config.commonPaths) {
275
347
  // For gettext projects the catalog check is authoritative: falling back to a
276
348
  // name-only match would re-propose the directories it just rejected (a Django
@@ -1 +1 @@
1
- {"version":3,"file":"project-detection.js","sourceRoot":"","sources":["../../src/utils/project-detection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-detection.js","sourceRoot":"","sources":["../../src/utils/project-detection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ import chalk from 'chalk';
2
+ import { createSourceAlignment, SourceAlignmentRequestError } from '../api/source-alignments.js';
3
+ const MAX_ITEMS_PER_REQUEST = 25;
4
+ const NOT_FOUND_STATUS = 404;
5
+ const INVALID_PARAMETERS_STATUS = 422;
6
+ /**
7
+ * Ask the backend to align the translations of reworded source texts, one
8
+ * locale at a time, and write the aligned values into the target files. A
9
+ * locale that fails is left untouched; the rest of the run carries on.
10
+ */
11
+ export async function runSourceAlignment(candidates, request, deps) {
12
+ const result = {
13
+ enabled: false,
14
+ alignedCells: [],
15
+ localeSummaries: {},
16
+ notices: [],
17
+ shortUrl: null
18
+ };
19
+ for (const [locale, localeCandidates] of groupBy(candidates, c => c.locale)) {
20
+ let items = [];
21
+ try {
22
+ for (const chunk of chunked(localeCandidates, MAX_ITEMS_PER_REQUEST)) {
23
+ const response = await createSourceAlignment({
24
+ ...request,
25
+ locale,
26
+ items: chunk.map(toRequestItem)
27
+ });
28
+ if (!response.enabled)
29
+ return result;
30
+ result.enabled = true;
31
+ result.shortUrl = response.job_group?.short_url ?? result.shortUrl;
32
+ addNotices(result, response.notices ?? []);
33
+ items = items.concat(matchedItems(chunk, response.items));
34
+ }
35
+ }
36
+ catch (error) {
37
+ if (error instanceof SourceAlignmentRequestError && error.status === NOT_FOUND_STATUS)
38
+ return result;
39
+ logRequestFailure(deps.console, locale, error);
40
+ continue;
41
+ }
42
+ const { summary, aligned } = classifyItems(localeCandidates, items);
43
+ result.localeSummaries[locale] = summary;
44
+ const written = await writeAlignedCells(aligned, locale, deps);
45
+ summary.aligned = written.length;
46
+ result.alignedCells.push(...written);
47
+ }
48
+ return result;
49
+ }
50
+ export function summarizeAlignedCells(cells) {
51
+ return {
52
+ keysAligned: new Set(cells.map(cell => `${cell.source_path}\0${cell.key}`)).size,
53
+ alignedLanguages: [...new Set(cells.map(cell => cell.locale))]
54
+ };
55
+ }
56
+ export function reportSourceAlignment(result, logger) {
57
+ if (!result.enabled)
58
+ return;
59
+ const lines = Object.entries(result.localeSummaries)
60
+ .map(([locale, summary]) => describeLocale(locale, summary))
61
+ .filter((line) => line !== null);
62
+ if (lines.length > 0) {
63
+ logger.log('» Translations of reworded source texts:');
64
+ for (const line of lines)
65
+ logger.log(` ${line}`);
66
+ }
67
+ for (const notice of result.notices) {
68
+ logger.log(chalk.blue(`ℹ ${notice}`));
69
+ }
70
+ }
71
+ function describeLocale(locale, summary) {
72
+ const parts = [];
73
+ if (summary.aligned > 0)
74
+ parts.push(`${summary.aligned} aligned`);
75
+ if (summary.unchanged > 0)
76
+ parts.push(`${summary.unchanged} already ${summary.unchanged === 1 ? 'fits' : 'fit'}`);
77
+ const reasons = Object.entries(summary.skipped);
78
+ if (reasons.length > 0) {
79
+ const total = reasons.reduce((sum, [, count]) => sum + count, 0);
80
+ const breakdown = reasons.map(([reason, count]) => `${count} ${reason}`).join(', ');
81
+ parts.push(`${total} skipped (${breakdown})`);
82
+ }
83
+ return parts.length > 0 ? `${locale}: ${parts.join(', ')}` : null;
84
+ }
85
+ function classifyItems(candidates, items) {
86
+ const summary = { aligned: 0, unchanged: 0, skipped: {} };
87
+ const aligned = [];
88
+ items.forEach((item, index) => {
89
+ if (item.status === 'aligned' && typeof item.value === 'string') {
90
+ aligned.push({ ...candidates[index], value: item.value });
91
+ }
92
+ else if (item.status === 'unchanged') {
93
+ summary.unchanged += 1;
94
+ }
95
+ else if (item.status === 'skipped') {
96
+ const reason = item.reason || 'unknown';
97
+ summary.skipped[reason] = (summary.skipped[reason] ?? 0) + 1;
98
+ }
99
+ });
100
+ return { summary, aligned };
101
+ }
102
+ async function writeAlignedCells(cells, locale, deps) {
103
+ const written = [];
104
+ for (const [targetPath, fileCells] of groupBy(cells, cell => cell.target_path)) {
105
+ const values = Object.fromEntries(fileCells.map(cell => [cell.key, cell.value]));
106
+ try {
107
+ await deps.updateTranslationFile(targetPath, values, locale, fileCells[0].source_path, undefined, deps.config);
108
+ written.push(...fileCells);
109
+ }
110
+ catch (error) {
111
+ deps.console.log(chalk.yellow(`⚠ Could not write aligned translations to ${targetPath}: ${error.message}`));
112
+ }
113
+ }
114
+ return written;
115
+ }
116
+ function matchedItems(requested, returned) {
117
+ const matches = returned.length === requested.length && returned.every((item, index) => item.key === requested[index].key &&
118
+ item.source_path === requested[index].source_path &&
119
+ item.target_path === requested[index].target_path);
120
+ if (!matches) {
121
+ throw new Error('the response did not match the request');
122
+ }
123
+ return returned;
124
+ }
125
+ function logRequestFailure(logger, locale, error) {
126
+ const message = error.message;
127
+ if (error instanceof SourceAlignmentRequestError && error.status === INVALID_PARAMETERS_STATUS) {
128
+ logger.log(chalk.yellow(`⚠ Alignment request for ${locale} was rejected: ${message}`));
129
+ return;
130
+ }
131
+ logger.log(chalk.yellow(`⚠ Could not align ${locale} translations to the reworded source texts: ${message}. Existing translations were kept.`));
132
+ }
133
+ function addNotices(result, notices) {
134
+ for (const notice of notices) {
135
+ if (!result.notices.includes(notice))
136
+ result.notices.push(notice);
137
+ }
138
+ }
139
+ function toRequestItem(candidate) {
140
+ return {
141
+ source_path: candidate.source_path,
142
+ target_path: candidate.target_path,
143
+ format: candidate.format,
144
+ key: candidate.key,
145
+ previous_source: candidate.previous_source,
146
+ source: candidate.source,
147
+ target_base: candidate.target_base,
148
+ target_current: candidate.target_current
149
+ };
150
+ }
151
+ function groupBy(values, keyOf) {
152
+ const groups = new Map();
153
+ for (const value of values) {
154
+ const key = keyOf(value);
155
+ groups.set(key, [...(groups.get(key) ?? []), value]);
156
+ }
157
+ return groups;
158
+ }
159
+ function chunked(values, size) {
160
+ const chunks = [];
161
+ for (let i = 0; i < values.length; i += size) {
162
+ chunks.push(values.slice(i, i + size));
163
+ }
164
+ return chunks;
165
+ }
166
+ //# sourceMappingURL=source-alignment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-alignment.js","sourceRoot":"","sources":["../../src/utils/source-alignment.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import chalk from 'chalk';
3
3
  import { isGitAvailable, getBaseBranch, resolveCompareRef, diffFileKeys, extractLocaleContent } from './git-changes.js';
4
4
  import { parseFile, flattenTranslations } from './files.js';
5
5
  import { findTargetFile } from './translation-utils.js';
6
+ import { recordUnreadableFile } from './unreadable-files.js';
6
7
  const MAX_TOTAL_CHANGES = 1000;
7
8
  const PO_FORMATS = new Set(['po', 'pot']);
8
9
  /**
@@ -15,11 +16,12 @@ const PO_FORMATS = new Set(['po', 'pot']);
15
16
  */
16
17
  export function detectTargetChanges(sourceFiles, targetFilesByLocale, config, verbose, ignoreMatcher) {
17
18
  if (!isGitAvailable()) {
18
- return null;
19
+ return skipIngestion('git is not available');
19
20
  }
20
- const resolvedRef = resolveCompareRef(getBaseBranch(config), verbose);
21
+ const baseBranch = getBaseBranch(config);
22
+ const resolvedRef = resolveCompareRef(baseBranch, verbose);
21
23
  if (!resolvedRef) {
22
- return null;
24
+ return skipIngestion(`base branch '${baseBranch}' not found`);
23
25
  }
24
26
  const result = [];
25
27
  let totalChanges = 0;
@@ -38,8 +40,7 @@ export function detectTargetChanges(sourceFiles, targetFilesByLocale, config, ve
38
40
  }
39
41
  totalChanges += changes.length;
40
42
  if (totalChanges > MAX_TOTAL_CHANGES) {
41
- console.log(chalk.yellow(`Skipping translation ingestion: more than ${MAX_TOTAL_CHANGES} changed values`));
42
- return null;
43
+ return skipIngestion(`more than ${MAX_TOTAL_CHANGES} changed values`);
43
44
  }
44
45
  result.push({
45
46
  path: targetFile.path,
@@ -62,8 +63,7 @@ export function detectTargetChanges(sourceFiles, targetFilesByLocale, config, ve
62
63
  continue;
63
64
  totalChanges += updatedChanges.length;
64
65
  if (totalChanges > MAX_TOTAL_CHANGES) {
65
- console.log(chalk.yellow(`Skipping translation ingestion: more than ${MAX_TOTAL_CHANGES} changed values`));
66
- return null;
66
+ return skipIngestion(`more than ${MAX_TOTAL_CHANGES} changed values`);
67
67
  }
68
68
  result.push({
69
69
  path: sourceFile.path,
@@ -77,6 +77,10 @@ export function detectTargetChanges(sourceFiles, targetFilesByLocale, config, ve
77
77
  }
78
78
  return result;
79
79
  }
80
+ function skipIngestion(reason) {
81
+ console.log(chalk.yellow(`Skipping translation ingestion and alignment: ${reason}`));
82
+ return null;
83
+ }
80
84
  function detectFileChanges(targetFile, resolvedRef, verbose) {
81
85
  try {
82
86
  const diff = diffFileKeys(targetFile, resolvedRef, verbose);
@@ -105,6 +109,7 @@ function detectFileChanges(targetFile, resolvedRef, verbose) {
105
109
  return changes;
106
110
  }
107
111
  catch (error) {
112
+ recordUnreadableFile(targetFile.path);
108
113
  console.log(chalk.yellow(` Skipping ${targetFile.path} from translation ingestion: ${error.message}`));
109
114
  return [];
110
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"target-changes.js","sourceRoot":"","sources":["../../src/utils/target-changes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"target-changes.js","sourceRoot":"","sources":["../../src/utils/target-changes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Files a run was configured to read but could not.
3
+ *
4
+ * A skip used to be a line on stdout and nothing more, so a run that failed to
5
+ * read every one of its files still printed "No changed keys need translation"
6
+ * and exited 0 (#779). Callers read this to tell "nothing to do" apart from
7
+ * "could not look", and fail the run rather than reporting success.
8
+ *
9
+ * Module state because the skips happen deep inside per-file loops whose
10
+ * signatures are shared by several commands; threading a result through all of
11
+ * them would be a larger change than the bug warrants. Reset at the start of
12
+ * each run.
13
+ */
14
+ const unreadableFiles = new Set();
15
+ export function resetUnreadableFiles() {
16
+ unreadableFiles.clear();
17
+ }
18
+ export function recordUnreadableFile(path) {
19
+ unreadableFiles.add(path);
20
+ }
21
+ export function getUnreadableFiles() {
22
+ return [...unreadableFiles];
23
+ }
24
+ //# sourceMappingURL=unreadable-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unreadable-files.js","sourceRoot":"","sources":["../../src/utils/unreadable-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;AAE1C,MAAM,UAAU,oBAAoB;IAClC,eAAe,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC;AAC9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@localheroai/cli",
3
- "version": "0.0.74",
3
+ "version": "0.0.75-rc.1",
4
4
  "description": "CLI tool for managing translations with LocalHero.ai",
5
5
  "homepage": "https://localhero.ai",
6
6
  "repository": {