next-auto-i18n 0.5.2 → 0.5.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 (77) hide show
  1. package/dist/cli/index.js +180 -37
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/cli/prompts.d.ts +10 -0
  4. package/dist/cli/prompts.d.ts.map +1 -1
  5. package/dist/cli/prompts.js +35 -4
  6. package/dist/cli/prompts.js.map +1 -1
  7. package/dist/generator/index.d.ts +12 -3
  8. package/dist/generator/index.d.ts.map +1 -1
  9. package/dist/generator/index.js +29 -6
  10. package/dist/generator/index.js.map +1 -1
  11. package/dist/generator/key-builder.d.ts +0 -20
  12. package/dist/generator/key-builder.d.ts.map +1 -1
  13. package/dist/generator/key-builder.js +1 -22
  14. package/dist/generator/key-builder.js.map +1 -1
  15. package/dist/injector/index.d.ts +0 -1
  16. package/dist/injector/index.d.ts.map +1 -1
  17. package/dist/injector/index.js +1 -1
  18. package/dist/injector/index.js.map +1 -1
  19. package/dist/injector/layout-injector.d.ts.map +1 -1
  20. package/dist/injector/layout-injector.js +0 -2
  21. package/dist/injector/layout-injector.js.map +1 -1
  22. package/dist/injector/locale-structure-injector.d.ts.map +1 -1
  23. package/dist/injector/locale-structure-injector.js +0 -16
  24. package/dist/injector/locale-structure-injector.js.map +1 -1
  25. package/dist/injector/request-injector.d.ts.map +1 -1
  26. package/dist/injector/request-injector.js +0 -3
  27. package/dist/injector/request-injector.js.map +1 -1
  28. package/dist/injector/switcher-injector.d.ts +0 -4
  29. package/dist/injector/switcher-injector.d.ts.map +1 -1
  30. package/dist/injector/switcher-injector.js +0 -22
  31. package/dist/injector/switcher-injector.js.map +1 -1
  32. package/dist/rewriter/attr-rewriter.d.ts.map +1 -1
  33. package/dist/rewriter/attr-rewriter.js +0 -3
  34. package/dist/rewriter/attr-rewriter.js.map +1 -1
  35. package/dist/rewriter/const-rewriter.d.ts +0 -10
  36. package/dist/rewriter/const-rewriter.d.ts.map +1 -1
  37. package/dist/rewriter/const-rewriter.js +1 -19
  38. package/dist/rewriter/const-rewriter.js.map +1 -1
  39. package/dist/rewriter/index.d.ts +9 -0
  40. package/dist/rewriter/index.d.ts.map +1 -1
  41. package/dist/rewriter/index.js +6 -2
  42. package/dist/rewriter/index.js.map +1 -1
  43. package/dist/rewriter/jsx-rewriter.d.ts +0 -4
  44. package/dist/rewriter/jsx-rewriter.d.ts.map +1 -1
  45. package/dist/rewriter/jsx-rewriter.js +0 -11
  46. package/dist/rewriter/jsx-rewriter.js.map +1 -1
  47. package/dist/scanner/ast-parser.d.ts +0 -8
  48. package/dist/scanner/ast-parser.d.ts.map +1 -1
  49. package/dist/scanner/ast-parser.js +0 -8
  50. package/dist/scanner/ast-parser.js.map +1 -1
  51. package/dist/scanner/filters.d.ts +1 -1
  52. package/dist/scanner/filters.js +2 -2
  53. package/dist/scanner/index.d.ts +0 -2
  54. package/dist/scanner/index.d.ts.map +1 -1
  55. package/dist/scanner/index.js +1 -10
  56. package/dist/scanner/index.js.map +1 -1
  57. package/dist/scanner/string-extractor.d.ts +0 -4
  58. package/dist/scanner/string-extractor.d.ts.map +1 -1
  59. package/dist/scanner/string-extractor.js +0 -13
  60. package/dist/scanner/string-extractor.js.map +1 -1
  61. package/dist/translator/deepl.d.ts +0 -1
  62. package/dist/translator/deepl.d.ts.map +1 -1
  63. package/dist/translator/deepl.js +0 -5
  64. package/dist/translator/deepl.js.map +1 -1
  65. package/dist/utils/config.d.ts +0 -4
  66. package/dist/utils/config.d.ts.map +1 -1
  67. package/dist/utils/config.js +0 -4
  68. package/dist/utils/config.js.map +1 -1
  69. package/dist/utils/deps.d.ts +0 -7
  70. package/dist/utils/deps.d.ts.map +1 -1
  71. package/dist/utils/deps.js +0 -7
  72. package/dist/utils/deps.js.map +1 -1
  73. package/dist/utils/env.d.ts +0 -13
  74. package/dist/utils/env.d.ts.map +1 -1
  75. package/dist/utils/env.js +0 -13
  76. package/dist/utils/env.js.map +1 -1
  77. package/package.json +1 -1
package/dist/cli/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander';
3
- import { resolve, join } from 'path';
3
+ import { resolve, join, relative } from 'path';
4
4
  import { readFile, access } from 'fs/promises';
5
5
  import { logger } from '../utils/logger.js';
6
6
  import { loadConfig, saveConfig, buildConfig, findMissingKeys, CONFIG_FILENAME } from '../utils/config.js';
@@ -12,6 +12,26 @@ import { generateMessages } from '../generator/index.js';
12
12
  import { translateMessages } from '../translator/index.js';
13
13
  import { rewriteFiles } from '../rewriter/index.js';
14
14
  import { injectAll } from '../injector/index.js';
15
+ const MAX_FILES_DISPLAY = 10;
16
+ const MAX_REWRITE_DISPLAY = 15;
17
+ function logFileList(entries, projectRoot, suffix) {
18
+ for (const [file, count] of entries.slice(0, MAX_FILES_DISPLAY)) {
19
+ const rel = relative(projectRoot, file);
20
+ logger.dim(` ${rel.padEnd(60)} ${suffix(count)}`);
21
+ }
22
+ if (entries.length > MAX_FILES_DISPLAY) {
23
+ const more = entries.length - MAX_FILES_DISPLAY;
24
+ logger.dim(` ... et ${more} autre${more > 1 ? 's' : ''} fichier${more > 1 ? 's' : ''}`);
25
+ }
26
+ }
27
+ /** Regroupe une liste de ExtractedString par fichier et retourne les entrées triées. */
28
+ function groupByFile(strings) {
29
+ const map = new Map();
30
+ for (const s of strings) {
31
+ map.set(s.filePath, (map.get(s.filePath) ?? 0) + 1);
32
+ }
33
+ return [...map.entries()];
34
+ }
15
35
  const program = new Command();
16
36
  program
17
37
  .name('next-auto-i18n')
@@ -57,26 +77,39 @@ program
57
77
  const strings = await scanProject(projectRoot, {
58
78
  ignorePatterns: config.ignore,
59
79
  });
60
- logger.success(`${strings.length} strings trouvées`);
61
80
  if (strings.length === 0) {
62
81
  logger.warn('Aucune string traduisible trouvée — arrêt');
63
82
  return;
64
83
  }
84
+ const scanEntries = groupByFile(strings);
85
+ const fileCount = scanEntries.length;
86
+ logger.success(`${strings.length} strings trouvées dans ${fileCount} fichier${fileCount > 1 ? 's' : ''}`);
87
+ logFileList(scanEntries, projectRoot, n => `${n} string${n > 1 ? 's' : ''}`);
65
88
  // 3. Génération fichier source
66
89
  logger.step('Génération des clés');
67
90
  const genResult = await generateMessages(strings, {
68
91
  sourceLocale,
69
92
  messagesDir: config.messagesDir,
70
93
  });
71
- logger.success(`${Object.keys(genResult.messages).length} clés générées → ${genResult.outputPath}`);
94
+ const keyCount = Object.keys(genResult.messages).length;
95
+ logger.success(`${keyCount} clés générées → ${relative(projectRoot, genResult.outputPath)}`);
72
96
  // Dry-run : montrer un aperçu et demander confirmation
73
97
  if (options.dryRun) {
74
- const uniqueFiles = new Set(strings.map(s => s.filePath));
98
+ const fileDetails = scanEntries.map(([filePath, stringCount]) => ({
99
+ filePath: relative(projectRoot, filePath),
100
+ stringCount,
101
+ }));
102
+ const sampleKeys = Object.entries(genResult.messages)
103
+ .slice(0, 5)
104
+ .map(([key, value]) => ({ value, key }));
75
105
  const proceed = await askConfirmDryRun({
76
106
  stringsFound: strings.length,
77
- keysGenerated: Object.keys(genResult.messages).length,
78
- filesToRewrite: uniqueFiles.size,
107
+ keysGenerated: keyCount,
108
+ filesToRewrite: fileCount,
79
109
  targetLocales,
110
+ fileDetails,
111
+ sampleKeys,
112
+ messagesPath: relative(projectRoot, genResult.outputPath),
80
113
  });
81
114
  if (!proceed) {
82
115
  logger.warn('Abandon');
@@ -91,7 +124,9 @@ program
91
124
  messagesDir: config.messagesDir,
92
125
  apiKey,
93
126
  });
94
- logger.success(`${transResult.totalTranslated} strings traduites`);
127
+ if (transResult.totalTranslated > 0) {
128
+ logger.success(`${transResult.totalTranslated} strings traduites`);
129
+ }
95
130
  if (transResult.skipped.length > 0) {
96
131
  logger.dim(`Déjà à jour : ${transResult.skipped.join(', ')}`);
97
132
  }
@@ -113,12 +148,33 @@ program
113
148
  keyMap: genResult.keyMap,
114
149
  silent: true,
115
150
  });
116
- logger.success(`${rwResult.totalReplaced} remplacements dans ${rwResult.filesModified} fichier${rwResult.filesModified > 1 ? 's' : ''}`);
117
- // Avertir sur les strings module-scope (traduites dans le JSON mais non réécrites)
151
+ // Détail par fichier modifié
152
+ const modifiedDetails = rwResult.details.filter(d => !d.skipped);
153
+ for (const d of modifiedDetails.slice(0, MAX_REWRITE_DISPLAY)) {
154
+ const rel = relative(projectRoot, d.filePath);
155
+ if (d.error) {
156
+ logger.warn(`${rel} — erreur: ${d.error}`);
157
+ }
158
+ else {
159
+ logger.success(`${rel} — ${d.replaced} remplacement${d.replaced > 1 ? 's' : ''}`);
160
+ }
161
+ }
162
+ if (modifiedDetails.length > MAX_REWRITE_DISPLAY) {
163
+ const more = modifiedDetails.length - MAX_REWRITE_DISPLAY;
164
+ logger.dim(` ... et ${more} autre${more > 1 ? 's' : ''} fichier${more > 1 ? 's' : ''} modifié${more > 1 ? 's' : ''}`);
165
+ }
166
+ const skippedCount = rwResult.details.filter(d => d.skipped && !d.error).length;
167
+ if (skippedCount > 0) {
168
+ logger.dim(`${skippedCount} fichier${skippedCount > 1 ? 's' : ''} sans modification nécessaire`);
169
+ }
170
+ logger.success(`Total : ${rwResult.totalReplaced} remplacement${rwResult.totalReplaced > 1 ? 's' : ''} dans ${rwResult.filesModified} fichier${rwResult.filesModified > 1 ? 's' : ''}`);
171
+ if (rwResult.filesModified > 0) {
172
+ logger.dim('Backups disponibles dans *.backup');
173
+ }
174
+ // Avertir sur les strings module-scope non réécrites
118
175
  if (rwResult.moduleScopeStrings.length > 0) {
119
176
  const count = rwResult.moduleScopeStrings.length;
120
177
  logger.warn(`${count} string${count > 1 ? 's' : ''} module-scope non réécrite${count > 1 ? 's' : ''} (traductions disponibles dans le JSON)`);
121
- // Grouper par fichier pour un affichage lisible
122
178
  const byFile = new Map();
123
179
  for (const s of rwResult.moduleScopeStrings) {
124
180
  const list = byFile.get(s.filePath) ?? [];
@@ -126,9 +182,10 @@ program
126
182
  byFile.set(s.filePath, list);
127
183
  }
128
184
  for (const [file, items] of byFile) {
185
+ const rel = relative(projectRoot, file);
129
186
  for (const item of items) {
130
- const preview = item.value.length > 50 ? item.value.slice(0, 50) + '...' : item.value;
131
- logger.dim(` ${file}:${item.line} "${preview}" ${item.key}`);
187
+ const preview = item.value.length > 50 ? item.value.slice(0, 50) + '' : item.value;
188
+ logger.dim(` ${rel}:${item.line} "${preview}" ${item.key}`);
132
189
  }
133
190
  }
134
191
  logger.dim(' → Déplacez ces const dans vos composants pour utiliser t("clé")');
@@ -170,11 +227,9 @@ program
170
227
  logger.success('app/[locale]/ structuré');
171
228
  else if (injResult.localeStructure.error)
172
229
  logger.warn(`app/[locale]/ — ${injResult.localeStructure.error}`);
173
- // Terminé
174
230
  logger.blank();
175
231
  logger.success('Internationalisation configurée avec succès !');
176
232
  logger.dim(`Langues : ${sourceLocale} → ${targetLocales.join(', ')}`);
177
- logger.dim('Backups disponibles dans *.backup');
178
233
  }
179
234
  catch (err) {
180
235
  logger.error(err instanceof Error ? err.message : String(err));
@@ -183,7 +238,7 @@ program
183
238
  });
184
239
  program
185
240
  .command('sync')
186
- .description('Rescanne le projet et met à jour les traductions existantes')
241
+ .description('Rescanne le projet, intègre les nouvelles strings et synchronise les traductions')
187
242
  .action(async () => {
188
243
  const projectRoot = process.cwd();
189
244
  try {
@@ -191,28 +246,108 @@ program
191
246
  loadEnv(projectRoot);
192
247
  const apiKey = getApiKey(config.apiKeyEnv);
193
248
  if (!apiKey) {
194
- logger.error(`Clé API introuvable (${config.apiKeyEnv}). Lancez "auto-i18n init" d'abord.`);
249
+ logger.error(`Clé API introuvable (${config.apiKeyEnv}). Lancez "next-auto-i18n init" d'abord.`);
195
250
  process.exit(1);
196
251
  }
197
- // Re-scan
252
+ const sourcePath = join(resolve(config.messagesDir), `${config.sourceLocale}.json`);
253
+ try {
254
+ await access(sourcePath);
255
+ }
256
+ catch {
257
+ logger.error(`Fichier source introuvable : ${relative(projectRoot, sourcePath)}`);
258
+ logger.dim('Lancez "next-auto-i18n init" d\'abord.');
259
+ process.exit(1);
260
+ }
261
+ let existingMessages = {};
262
+ try {
263
+ existingMessages = JSON.parse(await readFile(sourcePath, 'utf-8'));
264
+ }
265
+ catch {
266
+ logger.warn(`Impossible de lire ${relative(projectRoot, sourcePath)} — régénération complète`);
267
+ }
268
+ const existingCount = Object.keys(existingMessages).length;
269
+ logger.info(`${existingCount} clé${existingCount > 1 ? 's' : ''} existante${existingCount > 1 ? 's' : ''} dans ${config.sourceLocale}.json`);
270
+ // 1. Scan — trouve uniquement les strings non encore internationalisées
198
271
  logger.step('Scan du projet');
199
- const strings = await scanProject(projectRoot, {
200
- ignorePatterns: config.ignore,
201
- });
202
- logger.success(`${strings.length} strings trouvées`);
203
- if (strings.length === 0) {
204
- logger.warn('Aucune string trouvée');
205
- return;
272
+ const strings = await scanProject(projectRoot, { ignorePatterns: config.ignore });
273
+ if (strings.length > 0) {
274
+ const scanEntries = groupByFile(strings);
275
+ const fileCount = scanEntries.length;
276
+ logger.success(`${strings.length} string${strings.length > 1 ? 's' : ''} trouvée${strings.length > 1 ? 's' : ''} dans ${fileCount} fichier${fileCount > 1 ? 's' : ''}`);
277
+ logFileList(scanEntries, projectRoot, n => `${n} string${n > 1 ? 's' : ''}`);
278
+ // 2. Générer les clés — merge stable avec les existantes
279
+ logger.step('Mise à jour des clés');
280
+ const genResult = await generateMessages(strings, {
281
+ sourceLocale: config.sourceLocale,
282
+ messagesDir: config.messagesDir,
283
+ existingMessages,
284
+ });
285
+ if (genResult.newCount > 0) {
286
+ logger.success(`${genResult.newCount} nouvelle${genResult.newCount > 1 ? 's' : ''} clé${genResult.newCount > 1 ? 's' : ''} ajoutée${genResult.newCount > 1 ? 's' : ''} → ${relative(projectRoot, genResult.outputPath)}`);
287
+ logger.dim(`Total : ${Object.keys(genResult.messages).length} clés`);
288
+ }
289
+ else {
290
+ logger.success(`Aucune nouvelle clé — ${Object.keys(genResult.messages).length} clés existantes inchangées`);
291
+ }
292
+ // 3. Réécrire le code pour les nouvelles strings
293
+ logger.step('Réécriture des composants');
294
+ const filePaths = [...new Set(strings.map(s => s.filePath))];
295
+ try {
296
+ const rwResult = await rewriteFiles(filePaths, {
297
+ keyMap: genResult.keyMap,
298
+ silent: true,
299
+ });
300
+ const modifiedDetails = rwResult.details.filter(d => !d.skipped);
301
+ for (const d of modifiedDetails.slice(0, MAX_REWRITE_DISPLAY)) {
302
+ const rel = relative(projectRoot, d.filePath);
303
+ if (d.error) {
304
+ logger.warn(`${rel} — erreur: ${d.error}`);
305
+ }
306
+ else {
307
+ logger.success(`${rel} — ${d.replaced} remplacement${d.replaced > 1 ? 's' : ''}`);
308
+ }
309
+ }
310
+ if (modifiedDetails.length > MAX_REWRITE_DISPLAY) {
311
+ const more = modifiedDetails.length - MAX_REWRITE_DISPLAY;
312
+ logger.dim(` ... et ${more} autre${more > 1 ? 's' : ''} fichier${more > 1 ? 's' : ''} modifié${more > 1 ? 's' : ''}`);
313
+ }
314
+ const skippedCount = rwResult.details.filter(d => d.skipped && !d.error).length;
315
+ if (skippedCount > 0) {
316
+ logger.dim(`${skippedCount} fichier${skippedCount > 1 ? 's' : ''} sans modification nécessaire`);
317
+ }
318
+ if (rwResult.filesModified > 0) {
319
+ logger.success(`Total : ${rwResult.totalReplaced} remplacement${rwResult.totalReplaced > 1 ? 's' : ''} dans ${rwResult.filesModified} fichier${rwResult.filesModified > 1 ? 's' : ''}`);
320
+ logger.dim('Backups disponibles dans *.backup');
321
+ }
322
+ if (rwResult.moduleScopeStrings.length > 0) {
323
+ const count = rwResult.moduleScopeStrings.length;
324
+ logger.warn(`${count} string${count > 1 ? 's' : ''} module-scope non réécrite${count > 1 ? 's' : ''} (traductions disponibles dans le JSON)`);
325
+ const byFile = new Map();
326
+ for (const s of rwResult.moduleScopeStrings) {
327
+ const list = byFile.get(s.filePath) ?? [];
328
+ list.push(s);
329
+ byFile.set(s.filePath, list);
330
+ }
331
+ for (const [file, items] of byFile) {
332
+ const rel = relative(projectRoot, file);
333
+ for (const item of items) {
334
+ const preview = item.value.length > 50 ? item.value.slice(0, 50) + '…' : item.value;
335
+ logger.dim(` ${rel}:${item.line} "${preview}" → ${item.key}`);
336
+ }
337
+ }
338
+ logger.dim(' → Déplacez ces const dans vos composants pour utiliser t("clé")');
339
+ }
340
+ }
341
+ catch (rwErr) {
342
+ logger.warn(`Réécriture partielle (${rwErr instanceof Error ? rwErr.message : String(rwErr)})`);
343
+ logger.dim('Certains fichiers n\'ont pas pu être réécrits. Vérifiez manuellement.');
344
+ }
206
345
  }
207
- // Re-génération (met à jour le fichier source)
208
- logger.step('Mise à jour des clés');
209
- const genResult = await generateMessages(strings, {
210
- sourceLocale: config.sourceLocale,
211
- messagesDir: config.messagesDir,
212
- });
213
- logger.success(`${Object.keys(genResult.messages).length} clés → ${genResult.outputPath}`);
214
- // Traduction incrémentale
215
- logger.step('Traduction incrémentale');
346
+ else {
347
+ logger.success('Toutes les strings sont déjà internationalisées');
348
+ }
349
+ // 4. Traduction incrémentale — toujours exécutée (nouvelles locales, clés manquantes…)
350
+ logger.step('Synchronisation des traductions');
216
351
  const transResult = await translateMessages({
217
352
  sourceLocale: config.sourceLocale,
218
353
  targetLocales: config.targetLocales,
@@ -220,11 +355,16 @@ program
220
355
  apiKey,
221
356
  });
222
357
  if (transResult.totalTranslated > 0) {
223
- logger.success(`${transResult.totalTranslated} nouvelles traductions`);
358
+ logger.success(`${transResult.totalTranslated} string${transResult.totalTranslated > 1 ? 's' : ''} traduite${transResult.totalTranslated > 1 ? 's' : ''}`);
224
359
  }
225
360
  else {
226
361
  logger.success('Toutes les traductions sont à jour');
227
362
  }
363
+ if (transResult.skipped.length > 0) {
364
+ logger.dim(`Déjà à jour : ${transResult.skipped.join(', ')}`);
365
+ }
366
+ logger.blank();
367
+ logger.success('Synchronisation terminée');
228
368
  }
229
369
  catch (err) {
230
370
  logger.error(err instanceof Error ? err.message : String(err));
@@ -249,7 +389,6 @@ program
249
389
  logger.warn(`${normalizedLocale} est déjà dans les langues cibles`);
250
390
  return;
251
391
  }
252
- // Ajouter au config
253
392
  config.targetLocales.push(normalizedLocale);
254
393
  await saveConfig(projectRoot, config);
255
394
  logger.success(`${normalizedLocale} ajouté à ${CONFIG_FILENAME}`);
@@ -262,14 +401,17 @@ program
262
401
  apiKey,
263
402
  });
264
403
  logger.success(`${transResult.totalTranslated} strings traduites`);
404
+ logger.dim(`Fichier créé : ${join(config.messagesDir, `${normalizedLocale}.json`)}`);
265
405
  // Mettre à jour routing.ts si présent
266
406
  const allLocales = [config.sourceLocale, ...config.targetLocales];
407
+ logger.step('Mise à jour de la configuration Next.js');
267
408
  await injectAll({
268
409
  projectRoot,
269
410
  locales: allLocales,
270
411
  defaultLocale: config.sourceLocale,
271
412
  silent: true,
272
413
  });
414
+ logger.success(`Langues actives : ${allLocales.join(', ')}`);
273
415
  }
274
416
  catch (err) {
275
417
  logger.error(err instanceof Error ? err.message : String(err));
@@ -296,6 +438,7 @@ program
296
438
  process.exit(1);
297
439
  }
298
440
  const sourceKeys = Object.keys(source);
441
+ logger.info(`${sourceKeys.length} clé${sourceKeys.length > 1 ? 's' : ''} dans ${config.sourceLocale}.json`);
299
442
  let totalMissing = 0;
300
443
  for (const locale of config.targetLocales) {
301
444
  const targetPath = join(messagesDir, `${locale}.json`);
@@ -311,14 +454,14 @@ program
311
454
  }
312
455
  const missing = findMissingKeys(source, target);
313
456
  if (missing.length > 0) {
314
- logger.warn(`${locale} — ${missing.length} clé${missing.length > 1 ? 's' : ''} manquante${missing.length > 1 ? 's' : ''}`);
457
+ logger.warn(`${locale} — ${missing.length} clé${missing.length > 1 ? 's' : ''} manquante${missing.length > 1 ? 's' : ''} / ${sourceKeys.length}`);
315
458
  for (const key of missing) {
316
459
  logger.dim(` ${key}`);
317
460
  }
318
461
  totalMissing += missing.length;
319
462
  }
320
463
  else {
321
- logger.success(`${locale} — complet`);
464
+ logger.success(`${locale} — complet (${sourceKeys.length} clés)`);
322
465
  }
323
466
  }
324
467
  logger.blank();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,21 @@
1
1
  export declare function askSourceLocale(): Promise<string>;
2
2
  export declare function askTargetLocales(sourceLocale: string): Promise<string[]>;
3
3
  export declare function askApiKey(): Promise<string>;
4
+ export interface DryRunFileDetail {
5
+ filePath: string;
6
+ stringCount: number;
7
+ }
4
8
  export interface DryRunChanges {
5
9
  stringsFound: number;
6
10
  keysGenerated: number;
7
11
  filesToRewrite: number;
8
12
  targetLocales: string[];
13
+ fileDetails: DryRunFileDetail[];
14
+ sampleKeys: Array<{
15
+ value: string;
16
+ key: string;
17
+ }>;
18
+ messagesPath: string;
9
19
  }
10
20
  export declare function askConfirmDryRun(changes: DryRunChanges): Promise<boolean>;
11
21
  //# sourceMappingURL=prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"AAEA,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAWvD;AAED,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAc9E;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAWjD;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAiB/E"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"AAGA,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAWvD;AAED,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAc9E;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAWjD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,UAAU,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAyD/E"}
@@ -1,4 +1,5 @@
1
1
  import inquirer from 'inquirer';
2
+ import chalk from 'chalk';
2
3
  export async function askSourceLocale() {
3
4
  const answers = await inquirer.prompt([
4
5
  {
@@ -39,11 +40,41 @@ export async function askApiKey() {
39
40
  return answers.apiKey.trim();
40
41
  }
41
42
  export async function askConfirmDryRun(changes) {
43
+ const MAX_FILES = 10;
44
+ const MAX_KEYS = 5;
42
45
  console.log();
43
- console.log(` Strings trouvees : ${changes.stringsFound}`);
44
- console.log(` Cles generees : ${changes.keysGenerated}`);
45
- console.log(` Fichiers a reecrire : ${changes.filesToRewrite}`);
46
- console.log(` Langues cibles : ${changes.targetLocales.join(', ')}`);
46
+ console.log(chalk.bold(' ─── Aperçu des changements ───────────────────────────'));
47
+ console.log();
48
+ console.log(` ${chalk.cyan('Strings détectées')} : ${chalk.bold(String(changes.stringsFound))} dans ${changes.filesToRewrite} fichier${changes.filesToRewrite > 1 ? 's' : ''}`);
49
+ console.log(` ${chalk.cyan('Clés générées')} : ${chalk.bold(String(changes.keysGenerated))} → ${chalk.dim(changes.messagesPath)}`);
50
+ console.log(` ${chalk.cyan('Langues cibles')} : ${chalk.bold(changes.targetLocales.join(', '))}`);
51
+ if (changes.fileDetails.length > 0) {
52
+ console.log();
53
+ console.log(chalk.bold(' Fichiers à réécrire :'));
54
+ for (const f of changes.fileDetails.slice(0, MAX_FILES)) {
55
+ const count = String(f.stringCount);
56
+ const label = ` ${f.filePath}`;
57
+ console.log(chalk.dim(`${label.padEnd(68)} ${count} string${f.stringCount > 1 ? 's' : ''}`));
58
+ }
59
+ if (changes.fileDetails.length > MAX_FILES) {
60
+ const more = changes.fileDetails.length - MAX_FILES;
61
+ console.log(chalk.dim(` ... et ${more} autre${more > 1 ? 's' : ''} fichier${more > 1 ? 's' : ''}`));
62
+ }
63
+ }
64
+ if (changes.sampleKeys.length > 0) {
65
+ console.log();
66
+ console.log(chalk.bold(' Extrait des clés :'));
67
+ for (const { value, key } of changes.sampleKeys.slice(0, MAX_KEYS)) {
68
+ const preview = value.length > 45 ? value.slice(0, 45) + '…' : value;
69
+ console.log(chalk.dim(` "${preview}" → ${key}`));
70
+ }
71
+ if (changes.keysGenerated > MAX_KEYS) {
72
+ const more = changes.keysGenerated - MAX_KEYS;
73
+ console.log(chalk.dim(` ... et ${more} autre${more > 1 ? 's' : ''} clé${more > 1 ? 's' : ''}`));
74
+ }
75
+ }
76
+ console.log();
77
+ console.log(chalk.dim(' ────────────────────────────────────────────────────────'));
47
78
  console.log();
48
79
  const answers = await inquirer.prompt([
49
80
  {
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAA2B;QAC9D;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,sCAAsC;YAC/C,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,qCAAqC;SAChF;KACF,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,YAAY,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,YAAoB;IACzD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAoB;QACvD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,8CAA8C;YACvD,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;YACpD,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,mCAAmC;SACpF;KACF,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,KAAK;SACjB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC1C,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAqB;QACxD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,iDAAiD;YAC1D,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB;SAClE;KACF,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAsB;IAC3D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,yBAAyB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,yBAAyB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,yBAAyB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAuB;QAC1D;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,IAAI;SACd;KACF,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,OAAO,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,13 @@ export type { ExtractedString } from '../scanner/string-extractor.js';
3
3
  export interface GenerateOptions {
4
4
  /** Locale de la langue source (ex: "fr"). */
5
5
  sourceLocale: string;
6
- /** Chemin du dossier messages (ex: "./messages"). */
7
6
  messagesDir: string;
7
+ /**
8
+ * Messages existants à préserver (pour sync incrémental).
9
+ * Les clés existantes sont conservées ; seules les nouvelles strings reçoivent de nouvelles clés.
10
+ * Le JSON résultant contient TOUS les messages (existants + nouveaux).
11
+ */
12
+ existingMessages?: Record<string, string>;
8
13
  }
9
14
  export interface GenerateResult {
10
15
  /**
@@ -12,13 +17,17 @@ export interface GenerateResult {
12
17
  * Utilisé par le rewriter pour savoir quelle clé injecter.
13
18
  */
14
19
  keyMap: Map<string, string>;
15
- /** Contenu JSON écrit dans le fichier source (clé → valeur). */
16
20
  messages: Record<string, string>;
17
- /** Chemin absolu du fichier JSON généré. */
18
21
  outputPath: string;
22
+ newCount: number;
19
23
  }
20
24
  /**
21
25
  * Génère le fichier de traduction source à partir de la liste de strings extraites.
26
+ *
27
+ * En mode incrémental (existingMessages fourni) :
28
+ * - Les strings déjà présentes gardent leur clé existante (stable pour le code).
29
+ * - Les nouvelles strings reçoivent une clé unique qui n'entre pas en collision.
30
+ * - Le JSON résultant contient toutes les entrées (existantes + nouvelles).
22
31
  */
23
32
  export declare function generateMessages(strings: ExtractedString[], options: GenerateOptions): Promise<GenerateResult>;
24
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGtE,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,eAAe,EAAE,EAC1B,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAsCzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGtE,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,eAAe,EAAE,EAC1B,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CA0DzB"}
@@ -1,11 +1,22 @@
1
1
  import { mkdir, writeFile } from 'fs/promises';
2
2
  import { join, resolve } from 'path';
3
- import { rawKey, KeyRegistry } from './key-builder.js';
3
+ import { rawKey } from './key-builder.js';
4
4
  /**
5
5
  * Génère le fichier de traduction source à partir de la liste de strings extraites.
6
+ *
7
+ * En mode incrémental (existingMessages fourni) :
8
+ * - Les strings déjà présentes gardent leur clé existante (stable pour le code).
9
+ * - Les nouvelles strings reçoivent une clé unique qui n'entre pas en collision.
10
+ * - Le JSON résultant contient toutes les entrées (existantes + nouvelles).
6
11
  */
7
12
  export async function generateMessages(strings, options) {
8
- const { sourceLocale, messagesDir } = options;
13
+ const { sourceLocale, messagesDir, existingMessages = {} } = options;
14
+ // Map inverse : valeur existante → clé
15
+ const existingValueToKey = new Map();
16
+ for (const [key, value] of Object.entries(existingMessages)) {
17
+ existingValueToKey.set(value, key);
18
+ }
19
+ const takenKeys = new Set(Object.keys(existingMessages));
9
20
  const uniqueValues = [];
10
21
  const seen = new Set();
11
22
  for (const s of strings) {
@@ -14,14 +25,26 @@ export async function generateMessages(strings, options) {
14
25
  uniqueValues.push(s.value);
15
26
  }
16
27
  }
17
- const registry = new KeyRegistry();
18
28
  const keyMap = new Map();
29
+ let newCount = 0;
19
30
  for (const value of uniqueValues) {
31
+ const existingKey = existingValueToKey.get(value);
32
+ if (existingKey) {
33
+ keyMap.set(value, existingKey);
34
+ continue;
35
+ }
20
36
  const base = rawKey(value);
21
- const key = registry.resolve(base);
37
+ let key = base;
38
+ let n = 2;
39
+ while (takenKeys.has(key)) {
40
+ key = `${base}_${n++}`;
41
+ }
42
+ takenKeys.add(key);
22
43
  keyMap.set(value, key);
44
+ newCount++;
23
45
  }
24
- const messages = {};
46
+ // Messages finaux = messages existants (préservés) + nouvelles entrées
47
+ const messages = { ...existingMessages };
25
48
  for (const [value, key] of keyMap) {
26
49
  messages[key] = value;
27
50
  }
@@ -30,6 +53,6 @@ export async function generateMessages(strings, options) {
30
53
  await mkdir(absMessagesDir, { recursive: true });
31
54
  const outputPath = join(absMessagesDir, `${sourceLocale}.json`);
32
55
  await writeFile(outputPath, JSON.stringify(sortedMessages, null, 2) + '\n', 'utf-8');
33
- return { keyMap, messages: sortedMessages, outputPath };
56
+ return { keyMap, messages: sortedMessages, outputPath, newCount };
34
57
  }
35
58
  //# sourceMappingURL=index.js.map