@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
@@ -9,15 +9,21 @@ import { checkAuth } from '../utils/auth.js';
9
9
  import { fetchSettings } from '../api/settings.js';
10
10
  import { localeCodesMatch } from '../utils/translation-processor.js';
11
11
  import { filterByGitChanges, isGitAvailable, getManifestForFinalize, getRemovedKeysManifestForFinalize } from '../utils/git-changes.js';
12
- import { getCurrentBranch } from '../utils/git.js';
12
+ import { getCurrentBranch, getHeadSha } from '../utils/git.js';
13
13
  import { findMissingTranslations, batchKeysWithMissing, findMissingTranslationsByLocale } from '../utils/translation-utils.js';
14
- import { autoCommitChanges, buildMakemessagesCommand } from '../utils/github.js';
14
+ import { autoCommitChanges, buildMakemessagesCommand, MISSING_BRANCH_ERROR, MISSING_TOKEN_ERROR } from '../utils/github.js';
15
+ import { escapeAnnotationData } from '../utils/ci-context.js';
15
16
  import { detectTargetChanges } from '../utils/target-changes.js';
17
+ import { resetUnreadableFiles, getUnreadableFiles } from '../utils/unreadable-files.js';
16
18
  import { createPullRequestImport } from '../api/pull-request-imports.js';
17
19
  import { summarizeImport } from '../utils/import-summary.js';
18
20
  import { processTranslationBatches } from '../utils/translation-processor.js';
19
21
  import { createIgnoreMatcher, summarizeRemoved } from '../utils/ignore-keys.js';
20
22
  import { logIgnoreSummary } from '../utils/ignore-keys-logging.js';
23
+ import { collectAlignmentCandidates } from '../utils/alignment-candidates.js';
24
+ import { runSourceAlignment, reportSourceAlignment, summarizeAlignedCells } from '../utils/source-alignment.js';
25
+ import { sendAlignedImport } from '../utils/aligned-import.js';
26
+ import { keepAlignedCellsOnDisk } from '../utils/aligned-values-on-disk.js';
21
27
  import { ApiResponseError } from '../types/index.js';
22
28
  const defaultDeps = {
23
29
  console,
@@ -40,6 +46,25 @@ const PROJECT_NOT_FOUND_CODE = 'project_not_found';
40
46
  function pluralize(count, noun) {
41
47
  return `${count} ${noun}${count === 1 ? '' : 's'}`;
42
48
  }
49
+ const COMMIT_FAILURE_FIXES = {
50
+ [MISSING_TOKEN_ERROR]: 'Pass `GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}` in the step env, or install the Localhero GitHub App.'
51
+ };
52
+ const NOT_A_PULL_REQUEST_WARNING = '::warning::Translations were not committed: this is not a pull request run. Only pull_request runs commit translations.';
53
+ const PUSH_PERMISSION_FIX = 'Check that the workflow grants `permissions: contents: write`. On a pull request from a fork, GITHUB_TOKEN is read-only.';
54
+ function commitFailedAnnotation(reason) {
55
+ const fix = COMMIT_FAILURE_FIXES[reason] ?? PUSH_PERMISSION_FIX;
56
+ return `::error::${escapeAnnotationData(`Translations were not committed: ${reason}. ${fix}`)}`;
57
+ }
58
+ /**
59
+ * A file we were configured to read but could not is a failure, not a note.
60
+ * Reporting success over it is how a run that saw none of its files still
61
+ * went green (#779).
62
+ */
63
+ function reportUnreadableFiles(unreadable) {
64
+ console.error(chalk.red(`\n\u2716 Could not read ${pluralize(unreadable.length, 'translation file')}:\n`));
65
+ unreadable.forEach(file => console.error(chalk.yellow(` ${file}`)));
66
+ console.error(chalk.yellow('\nNothing was sent for translation. Check that the paths in localhero.json resolve from the directory holding that file.\n'));
67
+ }
43
68
  function isProjectNotFound(error) {
44
69
  return error instanceof ApiResponseError && error.code === PROJECT_NOT_FOUND_CODE;
45
70
  }
@@ -174,7 +199,10 @@ export async function translate(options = {}, deps = defaultDeps) {
174
199
  }
175
200
  const projectId = config.projectId;
176
201
  const sourceLocale = config.sourceLocale;
177
- async function sendPullRequestImport(targetChanges, jobGroupId) {
202
+ const translationPaths = config.translationFiles.paths.join(' ');
203
+ const jobGroupId = nanoid();
204
+ let alignment = null;
205
+ async function sendPullRequestImport(targetChanges) {
178
206
  if (targetChanges.length === 0)
179
207
  return;
180
208
  const branch = await getCurrentBranch();
@@ -207,11 +235,11 @@ export async function translate(options = {}, deps = defaultDeps) {
207
235
  for (const skipped of importResult.skipped) {
208
236
  console.log(chalk.yellow(` Skipped ${skipped.path}: ${skipped.key} (${skipped.reason})`));
209
237
  }
210
- if (summary.sourceTextsImported > 0) {
238
+ if (summary.sourceTextsImported > 0 && !alignment?.enabled) {
211
239
  console.log(chalk.blue(`ℹ ${pluralize(summary.sourceTextsImported, 'source text')} changed. Existing translations were kept; review or align them from the Localhero comment on the PR.`));
212
240
  }
213
241
  }
214
- async function sendFinalize(manifest, jobGroupId, removedManifest) {
242
+ async function sendFinalize(manifest, removedManifest) {
215
243
  try {
216
244
  const branch = await getCurrentBranch();
217
245
  await finalizeTranslationJobs({
@@ -232,6 +260,72 @@ export async function translate(options = {}, deps = defaultDeps) {
232
260
  }
233
261
  }
234
262
  }
263
+ async function alignRewordedSourceTexts(candidates, projectConfig) {
264
+ if (candidates.length === 0)
265
+ return null;
266
+ const branch = await getCurrentBranch();
267
+ if (!branch)
268
+ return null;
269
+ const headSha = await getHeadSha();
270
+ const result = await runSourceAlignment(candidates, { projectId, branch, jobGroupId, ...(headSha && { headSha }) }, { console, config: projectConfig, updateTranslationFile: translationUtils.updateTranslationFile });
271
+ reportSourceAlignment(result, console);
272
+ return result;
273
+ }
274
+ function runPostTranslateCommand(command) {
275
+ if (!command)
276
+ return;
277
+ try {
278
+ if (verbose) {
279
+ console.log(chalk.blue(`\nℹ Executing postTranslateCommand: ${command}`));
280
+ }
281
+ execUtils.execSync(command, { stdio: verbose ? 'inherit' : 'pipe' });
282
+ if (verbose) {
283
+ console.log(chalk.green('✓ postTranslateCommand completed successfully'));
284
+ }
285
+ }
286
+ catch (error) {
287
+ const err = error;
288
+ console.warn(chalk.yellow(`\nℹ postTranslateCommand failed: ${err.message}`));
289
+ }
290
+ }
291
+ // Aligned values are staged on the PR only once they are in the branch: after a
292
+ // commit that landed, or right after writing when the pipeline commits itself.
293
+ async function commitChanges(summary) {
294
+ const alignedCells = keepAlignedCellsOnDisk(alignment?.alignedCells ?? [], sourceLocale, console);
295
+ let inBranch = false;
296
+ if (options.skipCommit) {
297
+ inBranch = process.env.GITHUB_ACTIONS === 'true';
298
+ }
299
+ else {
300
+ try {
301
+ const result = await gitUtils.autoCommitChanges(translationPaths, {
302
+ ...summary,
303
+ ...summarizeAlignedCells(alignedCells),
304
+ viewUrl: summary.viewUrl || alignment?.shortUrl || undefined
305
+ });
306
+ inBranch = result === 'new';
307
+ }
308
+ catch (error) {
309
+ const err = error;
310
+ if (process.env.GITHUB_ACTIONS !== 'true') {
311
+ console.warn(chalk.yellow(`\nℹ Could not auto-commit changes: ${err.message}`));
312
+ }
313
+ else if (err.message === MISSING_BRANCH_ERROR) {
314
+ console.log(NOT_A_PULL_REQUEST_WARNING);
315
+ }
316
+ else {
317
+ console.log(commitFailedAnnotation(err.message));
318
+ process.exitCode = 1;
319
+ }
320
+ }
321
+ }
322
+ if (!inBranch || alignedCells.length === 0)
323
+ return;
324
+ const branch = await getCurrentBranch();
325
+ if (!branch)
326
+ return;
327
+ await sendAlignedImport(alignedCells, { projectId, branch, jobGroupId }, { console });
328
+ }
235
329
  if (options.changedOnly && !isGitAvailable()) {
236
330
  console.error(chalk.red('\n✖ Git is required for the --changed-only flag but is not available.\n'));
237
331
  console.error(chalk.yellow('Please ensure you are in a git repository.\n'));
@@ -251,17 +345,32 @@ export async function translate(options = {}, deps = defaultDeps) {
251
345
  let removedManifest = null;
252
346
  let targetChanges = [];
253
347
  if (options.changedOnly) {
348
+ resetUnreadableFiles();
254
349
  manifest = getManifestForFinalize(sourceFiles, config, !!verbose, ignoreMatcher);
255
350
  removedManifest = getRemovedKeysManifestForFinalize(sourceFiles, config, !!verbose);
256
351
  targetChanges = detectTargetChanges(sourceFiles, targetFilesByLocale, config, !!verbose, ignoreMatcher) ?? [];
352
+ const alignmentCandidates = collectAlignmentCandidates(targetChanges, sourceFiles, targetFilesByLocale, config, !!verbose);
257
353
  const filtered = filterByGitChanges(sourceFiles, missingByLocale, config, !!verbose);
354
+ // Before anything is sent: a run that could not read its files knows only
355
+ // part of the story, and finalizing on a partial manifest would record that
356
+ // partial view as the truth (#779).
357
+ const unreadable = getUnreadableFiles();
358
+ if (unreadable.length > 0) {
359
+ reportUnreadableFiles(unreadable);
360
+ process.exitCode = 1;
361
+ return;
362
+ }
258
363
  if (filtered !== null) {
364
+ alignment = await alignRewordedSourceTexts(alignmentCandidates, config);
259
365
  if (Object.keys(filtered).length === 0) {
260
- const jobGroupId = nanoid();
261
366
  if (manifest !== null) {
262
- await sendFinalize(manifest, jobGroupId, removedManifest);
367
+ await sendFinalize(manifest, removedManifest);
368
+ }
369
+ await sendPullRequestImport(targetChanges);
370
+ if (alignment?.alignedCells.length) {
371
+ runPostTranslateCommand(config.postTranslateCommand);
372
+ await commitChanges({ keysTranslated: 0, languages: [] });
263
373
  }
264
- await sendPullRequestImport(targetChanges, jobGroupId);
265
374
  console.log(chalk.green('✓ No changed keys need translation'));
266
375
  return;
267
376
  }
@@ -304,12 +413,11 @@ export async function translate(options = {}, deps = defaultDeps) {
304
413
  return;
305
414
  }
306
415
  try {
307
- const jobGroupId = nanoid();
308
416
  const translationResult = await processTranslationBatches(batches, missingByLocale, config, !!verbose, { console, translationUtils }, jobGroupId);
309
417
  if (manifest !== null) {
310
- await sendFinalize(manifest, jobGroupId, removedManifest);
418
+ await sendFinalize(manifest, removedManifest);
311
419
  }
312
- await sendPullRequestImport(targetChanges, jobGroupId);
420
+ await sendPullRequestImport(targetChanges);
313
421
  const translatedLocales = new Set(translationResult.languages);
314
422
  const onlySkipped = translationResult.skippedLanguages.filter((locale) => !translatedLocales.has(locale));
315
423
  if (onlySkipped.length > 0) {
@@ -342,34 +450,14 @@ export async function translate(options = {}, deps = defaultDeps) {
342
450
  const jobIdsParam = translationResult.allJobIds.join(',');
343
451
  console.log(`» View results at: ${translationResult.resultsBaseUrl}?job_ids=${jobIdsParam}`);
344
452
  }
345
- if (config.postTranslateCommand) {
346
- try {
347
- if (verbose) {
348
- console.log(chalk.blue(`\nℹ Executing postTranslateCommand: ${config.postTranslateCommand}`));
349
- }
350
- execUtils.execSync(config.postTranslateCommand, { stdio: verbose ? 'inherit' : 'pipe' });
351
- if (verbose) {
352
- console.log(chalk.green('✓ postTranslateCommand completed successfully'));
353
- }
354
- }
355
- catch (error) {
356
- const err = error;
357
- console.warn(chalk.yellow(`\nℹ postTranslateCommand failed: ${err.message}`));
358
- }
359
- }
360
- if (!options.skipCommit) {
361
- try {
362
- await gitUtils.autoCommitChanges(config.translationFiles.paths.join(' '), {
363
- keysTranslated: translationResult.uniqueKeysTranslated.size,
364
- languages: translationResult.languages,
365
- viewUrl: translationResult.jobGroupShortUrl || translationResult.resultsBaseUrl || undefined
366
- });
367
- }
368
- catch (error) {
369
- const err = error;
370
- console.warn(chalk.yellow(`\nℹ Could not auto-commit changes: ${err.message}`));
371
- }
372
- }
453
+ }
454
+ if (translationResult.uniqueKeysTranslated.size > 0 || alignment?.alignedCells.length) {
455
+ runPostTranslateCommand(config.postTranslateCommand);
456
+ await commitChanges({
457
+ keysTranslated: translationResult.uniqueKeysTranslated.size,
458
+ languages: translationResult.languages,
459
+ viewUrl: translationResult.jobGroupShortUrl || translationResult.resultsBaseUrl || undefined
460
+ });
373
461
  }
374
462
  if (translationResult.failedLanguages.length > 0 && translationResult.uniqueKeysTranslated.size === 0) {
375
463
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/commands/translate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/commands/translate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import chalk from 'chalk';
2
+ import { createPullRequestImport, PullRequestImportError } from '../api/pull-request-imports.js';
3
+ const MAX_FILES_PER_REQUEST = 50;
4
+ const MAX_CHANGES_PER_REQUEST = 1000;
5
+ const RETRIES = 3;
6
+ const RETRY_DELAY_MS = 1000;
7
+ const SERVER_ERROR_STATUS = 500;
8
+ const FETCH_FAILED_MESSAGE = 'fetch failed';
9
+ const TIMEOUT_ERROR_NAMES = new Set(['TimeoutError', 'AbortError']);
10
+ /**
11
+ * Stage the aligned values on the pull request, marked with the source text
12
+ * they were aligned to. Sent only once they are in the branch. A failure is not
13
+ * fatal: the next push brings the committed values in as ordinary edits.
14
+ */
15
+ export async function sendAlignedImport(cells, request, deps) {
16
+ const sleep = deps.sleep ?? defaultSleep;
17
+ let importedCount = 0;
18
+ for (const files of chunkFiles(buildImportFiles(cells))) {
19
+ const changeCount = files.reduce((sum, file) => sum + file.changes.length, 0);
20
+ try {
21
+ const response = await withRetries(() => createPullRequestImport({ ...request, files }), sleep);
22
+ importedCount += response.imported_count;
23
+ }
24
+ catch (error) {
25
+ deps.console.log(chalk.yellow(`⚠ Could not send ${changeCount} aligned values to Localhero: ${error.message}. They are committed to the branch and will be picked up on the next push.`));
26
+ }
27
+ }
28
+ if (importedCount > 0) {
29
+ deps.console.log(`» Sent ${importedCount} aligned ${importedCount === 1 ? 'value' : 'values'} for review`);
30
+ }
31
+ }
32
+ function buildImportFiles(cells) {
33
+ const files = new Map();
34
+ for (const cell of cells) {
35
+ const id = `${cell.locale}\0${cell.target_path}`;
36
+ if (!files.has(id)) {
37
+ files.set(id, {
38
+ path: cell.target_path,
39
+ source_path: cell.source_path,
40
+ locale: cell.locale,
41
+ format: cell.format,
42
+ changes: []
43
+ });
44
+ }
45
+ files.get(id).changes.push({
46
+ key: cell.key,
47
+ status: 'updated',
48
+ value: cell.value,
49
+ old_value: cell.target_base,
50
+ source_value: cell.source,
51
+ aligned_source: cell.source
52
+ });
53
+ }
54
+ return [...files.values()];
55
+ }
56
+ function chunkFiles(files) {
57
+ const chunks = [];
58
+ let current = [];
59
+ let currentChanges = 0;
60
+ for (const file of files) {
61
+ for (let start = 0; start < file.changes.length; start += MAX_CHANGES_PER_REQUEST) {
62
+ const piece = { ...file, changes: file.changes.slice(start, start + MAX_CHANGES_PER_REQUEST) };
63
+ const full = current.length === MAX_FILES_PER_REQUEST ||
64
+ currentChanges + piece.changes.length > MAX_CHANGES_PER_REQUEST;
65
+ if (full) {
66
+ chunks.push(current);
67
+ current = [];
68
+ currentChanges = 0;
69
+ }
70
+ current.push(piece);
71
+ currentChanges += piece.changes.length;
72
+ }
73
+ }
74
+ if (current.length > 0)
75
+ chunks.push(current);
76
+ return chunks;
77
+ }
78
+ async function withRetries(call, sleep) {
79
+ for (let attempt = 0;; attempt++) {
80
+ try {
81
+ return await call();
82
+ }
83
+ catch (error) {
84
+ if (attempt === RETRIES || !isRetryable(error))
85
+ throw error;
86
+ await sleep(RETRY_DELAY_MS * (attempt + 1));
87
+ }
88
+ }
89
+ }
90
+ function isRetryable(error) {
91
+ if (error instanceof PullRequestImportError)
92
+ return error.status >= SERVER_ERROR_STATUS;
93
+ return isNetworkError(error);
94
+ }
95
+ // Node's fetch rejects with a TypeError('fetch failed') for connection errors,
96
+ // and with a TimeoutError or AbortError when a request times out.
97
+ function isNetworkError(error) {
98
+ if (error instanceof TypeError)
99
+ return error.message === FETCH_FAILED_MESSAGE;
100
+ return error instanceof Error && TIMEOUT_ERROR_NAMES.has(error.name);
101
+ }
102
+ function defaultSleep(ms) {
103
+ return new Promise(resolve => setTimeout(resolve, ms));
104
+ }
105
+ //# sourceMappingURL=aligned-import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aligned-import.js","sourceRoot":"","sources":["../../src/utils/aligned-import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { readFileSync } from 'fs';
2
+ import path from 'path';
3
+ import chalk from 'chalk';
4
+ import { parseFile, flattenTranslations } from './files.js';
5
+ import { extractLocaleContent } from './git-changes.js';
6
+ /**
7
+ * Keep only the aligned cells whose value and source text are still in the
8
+ * files as they were aligned. A postTranslateCommand can reformat or drop a
9
+ * value, and Localhero must not stage a value the commit doesn't contain.
10
+ */
11
+ export function keepAlignedCellsOnDisk(cells, sourceLocale, logger) {
12
+ const valuesByFile = new Map();
13
+ const valuesFor = (filePath, locale) => {
14
+ const id = `${locale}\0${filePath}`;
15
+ if (!valuesByFile.has(id)) {
16
+ valuesByFile.set(id, readValues(filePath, locale));
17
+ }
18
+ return valuesByFile.get(id);
19
+ };
20
+ const kept = cells.filter((cell) => valuesFor(cell.target_path, cell.locale)?.[cell.key] === cell.value &&
21
+ valuesFor(cell.source_path, sourceLocale)?.[cell.key] === cell.source);
22
+ const dropped = cells.length - kept.length;
23
+ if (dropped > 0) {
24
+ const noun = dropped === 1 ? 'value' : 'values';
25
+ logger.log(chalk.dim(`» ${dropped} aligned ${noun} changed after they were written (postTranslateCommand?); not sent for review`));
26
+ }
27
+ return kept;
28
+ }
29
+ function readValues(filePath, locale) {
30
+ try {
31
+ const format = path.extname(filePath).slice(1);
32
+ const parsed = parseFile(readFileSync(filePath, 'utf-8'), format, filePath);
33
+ return flattenTranslations(extractLocaleContent(parsed, locale));
34
+ }
35
+ catch {
36
+ return null;
37
+ }
38
+ }
39
+ //# sourceMappingURL=aligned-values-on-disk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aligned-values-on-disk.js","sourceRoot":"","sources":["../../src/utils/aligned-values-on-disk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAoB,EAAE,YAAoB,EAAE,MAAc;IAC/F,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0C,CAAC;IACvE,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,MAAc,EAAE,EAAE;QACrD,MAAM,EAAE,GAAG,GAAG,MAAM,KAAK,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACjC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK;QACnE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CACtE,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3C,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,YAAY,IAAI,+EAA+E,CAAC,CAAC,CAAC;IACrI,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,QAAgB,EAAE,MAAc;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5E,OAAO,mBAAmB,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,75 @@
1
+ import chalk from 'chalk';
2
+ import { getBaseBranch, resolveCompareRef, diffFileKeys } from './git-changes.js';
3
+ import { findTargetFile } from './translation-utils.js';
4
+ const ALIGNABLE_FORMATS = new Set(['yml', 'yaml', 'json']);
5
+ /**
6
+ * Pair every source text reworded in this branch with each target locale's
7
+ * translation of it. Keys a target doesn't have are left to the missing-key flow.
8
+ */
9
+ export function collectAlignmentCandidates(targetChanges, sourceFiles, targetFilesByLocale, config, verbose) {
10
+ const rewordedFiles = targetChanges
11
+ .filter(file => isSourcePass(file, config.sourceLocale))
12
+ .map(file => ({ ...file, changes: file.changes.filter(isRewording) }))
13
+ .filter(file => file.changes.length > 0);
14
+ if (rewordedFiles.length === 0)
15
+ return [];
16
+ const resolvedRef = resolveCompareRef(getBaseBranch(config), verbose);
17
+ if (!resolvedRef)
18
+ return [];
19
+ const candidates = [];
20
+ for (const locale of config.outputLocales) {
21
+ for (const rewordedFile of rewordedFiles) {
22
+ const sourceFile = sourceFiles.find(file => file.path === rewordedFile.path);
23
+ if (!sourceFile)
24
+ continue;
25
+ const targetFile = findTargetFile(targetFilesByLocale[locale] ?? [], locale, sourceFile, config.sourceLocale);
26
+ if (!targetFile)
27
+ continue;
28
+ const diff = readTargetDiff(targetFile, resolvedRef, verbose);
29
+ if (!diff)
30
+ continue;
31
+ for (const change of rewordedFile.changes) {
32
+ const targetCurrent = diff.newFlat[change.key];
33
+ // An absent or empty target is filled by the missing-key flow, which would overwrite an aligned value.
34
+ if (!isFilledString(targetCurrent))
35
+ continue;
36
+ const targetBase = diff.oldFlat[change.key];
37
+ candidates.push({
38
+ locale,
39
+ source_path: sourceFile.path,
40
+ target_path: targetFile.path,
41
+ format: targetFile.format,
42
+ key: change.key,
43
+ previous_source: change.old_value,
44
+ source: change.value,
45
+ target_base: typeof targetBase === 'string' ? targetBase : null,
46
+ target_current: targetCurrent
47
+ });
48
+ }
49
+ }
50
+ }
51
+ return candidates;
52
+ }
53
+ function isSourcePass(file, sourceLocale) {
54
+ return file.locale === sourceLocale &&
55
+ file.path === file.source_path &&
56
+ ALIGNABLE_FORMATS.has(file.format.toLowerCase());
57
+ }
58
+ function isRewording(change) {
59
+ return change.status === 'updated' && isFilledString(change.old_value) && isFilledString(change.value);
60
+ }
61
+ function isFilledString(value) {
62
+ return typeof value === 'string' && value !== '';
63
+ }
64
+ function readTargetDiff(targetFile, resolvedRef, verbose) {
65
+ try {
66
+ return diffFileKeys(targetFile, resolvedRef, verbose);
67
+ }
68
+ catch (error) {
69
+ if (verbose) {
70
+ console.log(chalk.dim(` ${targetFile.path}: skipping alignment, ${error.message}`));
71
+ }
72
+ return null;
73
+ }
74
+ }
75
+ //# sourceMappingURL=alignment-candidates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alignment-candidates.js","sourceRoot":"","sources":["../../src/utils/alignment-candidates.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,7 @@ export function detectCiContext(env) {
7
7
  stepSummaryPath: env.GITHUB_STEP_SUMMARY || null
8
8
  };
9
9
  }
10
+ export function escapeAnnotationData(text) {
11
+ return text.replace(/%/g, '%25').replace(/\r/g, '%0D').replace(/\n/g, '%0A');
12
+ }
10
13
  //# sourceMappingURL=ci-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ci-context.js","sourceRoot":"","sources":["../../src/utils/ci-context.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,eAAe,CAAC,GAAQ;IACtC,MAAM,aAAa,GAAG,GAAG,CAAC,cAAc,KAAK,MAAM,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC;IACpC,OAAO;QACL,aAAa;QACb,WAAW,EAAE,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QAC9G,eAAe,EAAE,GAAG,CAAC,mBAAmB,IAAI,IAAI;KACjD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ci-context.js","sourceRoot":"","sources":["../../src/utils/ci-context.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,eAAe,CAAC,GAAQ;IACtC,MAAM,aAAa,GAAG,GAAG,CAAC,cAAc,KAAK,MAAM,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC;IACpC,OAAO;QACL,aAAa;QACb,WAAW,EAAE,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QAC9G,eAAe,EAAE,GAAG,CAAC,mBAAmB,IAAI,IAAI;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC/E,CAAC"}