next-auto-i18n 1.0.1 → 1.0.2

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.0.2] - 2026-06-03
4
+
5
+ ### Added
6
+
7
+ - **`MIGRATION.md`** : guide de migration 0.x → 1.0 (français + résumé anglais pour les notes de release), livré dans le package et lié depuis le README.
8
+
3
9
  ## [1.0.1] - 2026-06-03
4
10
 
5
11
  ### Added
package/MIGRATION.md ADDED
@@ -0,0 +1,76 @@
1
+ # Guide de migration — 0.x → 1.0
2
+
3
+ La version `1.0` est une **refonte majeure**. Le changement de fond : **le package ne réécrit plus votre code source**. Tout le reste en découle.
4
+
5
+ ## TL;DR
6
+
7
+ - Avant, `init` **modifiait vos composants** (remplaçait le texte par `t()`, injectait imports et `const t`). C'était la principale source d'erreurs.
8
+ - Maintenant, l'outil **ne touche pas à votre code** : il détecte, génère les clés, traduit, installe l'infra `next-intl` manquante, et produit un **guide d'intégration** (`i18n-guide.md`) qui vous dit, fichier par fichier et ligne par ligne, comment câbler chaque `t()`.
9
+ - Les commandes passent de 6 à 3 : **`init`**, **`sync`**, **`check`**.
10
+ - C'est un *breaking change* → version majeure `1.0.0`.
11
+
12
+ ## Changements de comportement
13
+
14
+ | | 0.x | 1.0 |
15
+ |---|---|---|
16
+ | Code source des composants | Réécrit automatiquement | **Jamais modifié** |
17
+ | `app/[locale]/` | Restructuration automatique tentée | **Manuelle** (procédure dans le guide) |
18
+ | `next.config` | Plugin `withNextIntl` injecté | Idem, **seule mutation**, avec backup, sinon signalé « manuel » |
19
+ | `routing.ts` / `request.ts` / middleware / switcher | Créés | Créés **uniquement si absents** |
20
+ | Résultat principal | Code migré (parfois cassé) | Catalogues traduits + **guide d'intégration** |
21
+
22
+ ## Changements de commandes
23
+
24
+ | 0.x | 1.0 | Quoi faire |
25
+ |---|---|---|
26
+ | `init` | `init` | Installe l'infra + catalogues + traduction + guide (ne réécrit plus le code) |
27
+ | `sync` | `sync` | Inchangé en esprit : rescanne, met à jour le catalogue, traduit le manquant |
28
+ | `add-locale <l>` | — | Ajoutez la locale dans `targetLocales` (config) puis lancez `sync` |
29
+ | `missing` | `check` | `check` est read-only, avec code de sortie pour la CI et `--json` |
30
+ | `extract` / `extract sync` | — | C'est devenu le comportement **par défaut** (`init`/`sync` n'écrivent jamais dans votre code) |
31
+ | — | `check` | **Nouveau** : diagnostic CI (strings non cataloguées, traductions manquantes) |
32
+
33
+ ### Équivalences rapides
34
+
35
+ ```bash
36
+ # Avant → Maintenant
37
+ next-auto-i18n add-locale de # → ajoutez "de" à targetLocales, puis: next-auto-i18n sync
38
+ next-auto-i18n missing # → next-auto-i18n check
39
+ next-auto-i18n extract # → comportement par défaut de init/sync (zéro réécriture)
40
+ ```
41
+
42
+ ## Étapes de migration
43
+
44
+ 1. **Mettez à jour** : `npm install -D next-auto-i18n@latest`.
45
+ 2. **Lancez** `next-auto-i18n sync` (ou `init` si vous repartez de zéro). Vos fichiers source ne seront pas modifiés.
46
+ 3. **Ouvrez `i18n-guide.md`** et câblez les `t()` indiqués (le guide donne la ligne, la clé, le remplacement et le bon hook `useTranslations` / `await getTranslations`).
47
+ 4. **Mettez à jour vos scripts** : remplacez `add-locale` / `missing` / `extract` par `init` / `sync` / `check`.
48
+ 5. **Config** : `messagesDir` n'est plus obligatoire (défaut appliqué). `init` ajoute un champ `$schema` qui active l'autocomplétion dans VSCode ; vous pouvez l'ajouter à la main sur une config existante :
49
+ ```json
50
+ { "$schema": "./node_modules/next-auto-i18n/schema/auto-i18n.config.schema.json" }
51
+ ```
52
+
53
+ ## Si l'ancienne version avait déjà migré votre code
54
+
55
+ Aucune action requise : vos `t()` existants sont conservés (l'extraction ignore ce qui est déjà dans un `t()`). `sync` se contentera de mettre à jour les catalogues et les traductions.
56
+
57
+ ## Nouveautés DX (1.0.1)
58
+
59
+ - **Schéma JSON** de configuration → autocomplétion, validation et infobulles dans VSCode.
60
+ - **API programmatique** : `import { runCheck, runSync } from 'next-auto-i18n'` (l'import n'exécute pas le CLI).
61
+
62
+ ---
63
+
64
+ ## English summary (for release notes)
65
+
66
+ **next-auto-i18n 1.0 — major rewrite: zero-mutation model.**
67
+
68
+ The tool no longer rewrites your source code. Previously, `init` edited your components (wrapping text in `t()`, injecting imports) — the main source of breakage. Now it **detects, generates keys, translates, scaffolds the missing `next-intl` files, and produces an integration guide** (`i18n-guide.md`) that tells you exactly where and how to wire each `t()`. Your code is never touched (the only exception is the `next.config` plugin wrap, done with a backup).
69
+
70
+ - Commands reduced from 6 to **3**: `init`, `sync`, `check`.
71
+ - Removed: `add-locale` (edit `targetLocales` + `sync`), `missing` (→ `check`), `extract` / `extract sync` (now the default behavior).
72
+ - New `check` command for CI (exit code ≠ 0 on pending work, `--json`).
73
+ - `app/[locale]` is no longer auto-restructured (manual, documented in the guide).
74
+ - DX: JSON schema for editor autocomplete, clean library entry point (`import { runCheck } from 'next-auto-i18n'`).
75
+
76
+ **Migration:** update, run `sync`, follow `i18n-guide.md` to wire `t()`, and rename old commands. Existing `t()` calls are preserved.
package/README.md CHANGED
@@ -8,6 +8,8 @@
8
8
 
9
9
  `next-auto-i18n` scanne votre projet, extrait les chaînes traduisibles, génère des clés stables, remplit et traduit les catalogues `messages/*.json`, et met en place l'infrastructure `next-intl` (fichiers additifs). Plutôt que de muter votre JSX — source de la plupart des erreurs — il produit un **guide d'intégration précis** qui vous dit, fichier par fichier et ligne par ligne, comment câbler chaque `t()`.
10
10
 
11
+ > **Vous venez de la 0.x ?** Cette `1.0` est une refonte majeure (le code source n'est plus réécrit). Voir le [guide de migration](./MIGRATION.md).
12
+
11
13
  ## Philosophie
12
14
 
13
15
  - **Zéro mutation du code source.** L'outil ne touche pas à vos composants. Il détecte, catalogue, traduit, et explique.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next-auto-i18n",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Internationalisation zéro-mutation pour Next.js App Router : détecte, traduit (DeepL) et installe next-intl sans réécrire votre code.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -30,6 +30,7 @@
30
30
  "README.md",
31
31
  "LICENSE",
32
32
  "DOCUMENTATION.md",
33
+ "MIGRATION.md",
33
34
  "CHANGELOG.md"
34
35
  ],
35
36
  "keywords": [