@configjs/cli 1.1.1 → 1.1.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.
package/README.fr.md ADDED
@@ -0,0 +1,454 @@
1
+ # ConfigJS
2
+
3
+ **Le CLI intelligent qui configure votre stack frontend complète en moins de 2 minutes**
4
+
5
+ [![npm version](https://img.shields.io/npm/v/@configjs/cli?style=flat-square&color=blue)](https://www.npmjs.com/package/@configjs/cli)
6
+ [![npm downloads](https://img.shields.io/npm/dm/@configjs/cli?style=flat-square&color=brightgreen)](https://www.npmjs.com/package/@configjs/cli)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
8
+ [![Node version](https://img.shields.io/node/v/@configjs/cli?style=flat-square)](https://nodejs.org)
9
+ [![Bundle size](https://img.shields.io/bundlephobia/min/@configjs/cli?style=flat-square)](https://bundlephobia.com/package/@configjs/cli)
10
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://makeapullrequest.com)
11
+ [![Sponsor](https://img.shields.io/badge/Sponsor-❤-red?style=for-the-badge&logo=github)](https://github.com/sponsors/julien-lin)
12
+
13
+ **[Démarrage Rapide](#-démarrage-rapide) • [Fonctionnalités](#-fonctionnalités-clés) • [Documentation](#-documentation) • [Plugins](#-bibliothèques-supportées-40-plugins) • [Contribuer](#-contribuer)**
14
+
15
+ > **[🇬🇧 English version](./README.md)**
16
+
17
+ ---
18
+
19
+ ## 💡 Pourquoi ConfigJS ?
20
+
21
+ Configurer un projet React moderne prend généralement **2 à 4 heures** :
22
+ - Installer les bibliothèques une par une
23
+ - Lire la documentation de chaque outil
24
+ - Écrire la configuration boilerplate
25
+ - Résoudre les conflits de versions
26
+ - Créer la structure de code initiale
27
+
28
+ **ConfigJS réduit cela à moins de 2 minutes** sans effort.
29
+
30
+ ### Le Problème
31
+ ```bash
32
+ npm install react-router-dom axios zustand tailwindcss ...
33
+ # Puis passer des heures à configurer chaque bibliothèque manuellement
34
+ # Se battre avec les erreurs TypeScript
35
+ # Débugger les conflits de versions
36
+ # Écrire du boilerplate répétitif
37
+ ```
38
+
39
+ ### La Solution ConfigJS
40
+ ```bash
41
+ npx @configjs/cli react
42
+ # Assistant interactif vous guide
43
+ # Tout installé ET configuré
44
+ # Zéro conflit garanti
45
+ # Code prêt pour la production généré
46
+ ```
47
+
48
+ ## 🚀 Démarrage Rapide
49
+
50
+ **Aucune installation requise !** Utilisez directement avec `npx` :
51
+
52
+ ```bash
53
+ cd votre-projet-react
54
+ npx @configjs/cli react
55
+ ```
56
+
57
+ C'est tout ! ConfigJS va :
58
+ 1. 🔍 **Détecter** votre environnement (version React, TypeScript, bundler)
59
+ 2. 🎯 **Vous guider** dans la sélection des bibliothèques par catégorie
60
+ 3. 📦 **Installer** tous les packages séquentiellement (aucun conflit)
61
+ 4. ⚙️ **Configurer** tout avec du code fonctionnel
62
+ 5. ✅ **Valider** la compatibilité et les dépendances
63
+ 6. 🎉 **Terminé !** Votre projet est prêt pour la production
64
+
65
+ ### Exemple de Session
66
+
67
+ ```bash
68
+ $ npx @configjs/cli react
69
+
70
+ ✔ Choisissez votre langue › Français
71
+
72
+ 🔍 Détection du contexte...
73
+ ✓ Framework: React 19.2.0
74
+ ✓ TypeScript: Oui
75
+ ✓ Bundler: Vite 7.2.4
76
+ ✓ Gestionnaire de paquets: npm
77
+
78
+ ✔ CSS / Styling › TailwindCSS
79
+ ✔ Routing › React Router
80
+ ✔ Gestion d'état › Zustand
81
+ ✔ Client HTTP › Axios
82
+ ✔ Composants UI › Shadcn/ui
83
+ ✔ Formulaires › React Hook Form + Zod
84
+ ✔ Outillage › ESLint, Prettier, Husky
85
+
86
+ ✓ 7 bibliothèques sélectionnées
87
+
88
+ ✨ Installation terminée en 1.8s
89
+
90
+ 📦 Packages installés:
91
+ ✓ TailwindCSS (^4.1.18)
92
+ ✓ React Router (^7.11.0)
93
+ ✓ Zustand (^5.0.9)
94
+ ✓ Axios (^1.13.2)
95
+ ...
96
+
97
+ 📝 Fichiers créés:
98
+ • src/router.tsx
99
+ • src/store/index.ts
100
+ • src/lib/api.ts
101
+ • components.json
102
+ ...
103
+
104
+ 🚀 Prochaines étapes:
105
+ 1. npm run dev
106
+ 2. Visitez http://localhost:5173
107
+ ```
108
+
109
+ ---
110
+
111
+ ## ✨ Fonctionnalités Clés
112
+
113
+ ### 🎯 Détection Intelligente
114
+
115
+ ConfigJS détecte automatiquement la configuration de votre projet :
116
+ - ✅ **Framework & Version** (React 18/19)
117
+ - ✅ **Langage** (JavaScript/TypeScript)
118
+ - ✅ **Bundler** (Vite, Webpack, Create React App)
119
+ - ✅ **Gestionnaire de Paquets** (npm, yarn, pnpm, bun)
120
+ - ✅ **Bibliothèques Déjà Installées** (ignore les doublons)
121
+ - ✅ **Structure du Projet** (adapte la configuration)
122
+
123
+ ### ⚙️ Configuration Complète (Pas Seulement l'Installation !)
124
+
125
+ Contrairement aux simples installateurs, ConfigJS **configure réellement** vos bibliothèques avec du code fonctionnel :
126
+
127
+ **Exemple React Router :**
128
+ ```typescript
129
+ ✓ Installation de react-router-dom
130
+ ✓ Création de src/router.tsx avec les routes
131
+ ✓ Création de src/routes/Home.tsx
132
+ ✓ Création de src/routes/About.tsx
133
+ ✓ Intégration de RouterProvider dans App.tsx
134
+ ✓ Types TypeScript configurés
135
+ → Prêt à utiliser immédiatement !
136
+ ```
137
+
138
+ **Exemple TailwindCSS :**
139
+ ```typescript
140
+ ✓ Installation de tailwindcss + @tailwindcss/vite
141
+ ✓ Mise à jour de vite.config.ts avec le plugin
142
+ ✓ Injection des directives dans src/index.css
143
+ ✓ Mode JIT activé
144
+ → Commencez à utiliser les classes Tailwind maintenant !
145
+ ```
146
+
147
+ **Exemple Redux Toolkit :**
148
+ ```typescript
149
+ ✓ Installation de @reduxjs/toolkit + react-redux
150
+ ✓ Création de src/store/index.ts avec configureStore
151
+ ✓ Création de src/store/slices/counterSlice.ts
152
+ ✓ Création de src/store/hooks.ts (hooks typés)
153
+ ✓ Enveloppe App dans <Provider>
154
+ → Configuration Redux complète en quelques secondes !
155
+ ```
156
+
157
+ ### 🛡️ Validation Intelligente de Compatibilité
158
+
159
+ ConfigJS prévient les conflits avant qu'ils ne se produisent :
160
+
161
+ - ❌ **Conflits Exclusifs** : Impossible d'installer Redux + Zustand (un seul gestionnaire d'état)
162
+ - ❌ **Routing Exclusif** : React Router OU TanStack Router (pas les deux)
163
+ - ⚠️ **Avertissements** : TailwindCSS + Bootstrap (philosophies différentes)
164
+ - ✅ **Dépendances Automatiques** : TailwindCSS nécessite PostCSS → installé automatiquement
165
+ - ✅ **Suivi des Plugins** : Mémorise les plugins installés (`.configjsrc`)
166
+
167
+ ### 📦 Bibliothèques Supportées (40+ Plugins)
168
+
169
+ #### 🎨 CSS / Styling
170
+ - TailwindCSS v4 (avec @tailwindcss/vite)
171
+ - Styled Components
172
+ - React Bootstrap
173
+ - Emotion
174
+ - CSS Modules
175
+
176
+ #### 🧭 Routing
177
+ - React Router v7
178
+ - TanStack Router
179
+
180
+ #### 🗂️ Gestion d'État
181
+ - Redux Toolkit
182
+ - Zustand
183
+ - Jotai
184
+ - MobX
185
+
186
+ #### 🌐 Client HTTP
187
+ - Axios
188
+ - TanStack Query (React Query)
189
+ - Fetch Wrapper
190
+
191
+ #### 📝 Formulaires
192
+ - React Hook Form
193
+ - Formik
194
+ - Zod (validation)
195
+ - Yup (validation)
196
+
197
+ #### 🎨 Composants UI
198
+ - Shadcn/ui
199
+ - Radix UI
200
+ - React Icons
201
+ - Lucide Icons
202
+ - React Hot Toast
203
+
204
+ #### 🧪 Tests
205
+ - React Testing Library
206
+ - Vitest
207
+ - Jest
208
+
209
+ #### 🛠️ Outillage
210
+ - ESLint
211
+ - Prettier
212
+ - Husky (Git hooks)
213
+ - lint-staged
214
+ - date-fns
215
+
216
+ #### ✨ Animation
217
+ - Framer Motion
218
+ - React Spring
219
+
220
+ #### 🔧 Utilitaires
221
+ - Lodash
222
+ - clsx / classnames
223
+
224
+ ### 🔄 Rollback Automatique
225
+
226
+ Si quelque chose se passe mal, ConfigJS restaure automatiquement tout :
227
+
228
+ ```bash
229
+ ❌ Erreur détectée durant la configuration
230
+ ↺ Rollback en cours...
231
+ ✓ package.json restauré
232
+ ✓ Tous les fichiers modifiés restaurés
233
+ ✓ Fichiers créés supprimés
234
+ ✅ Projet restauré à l'état précédent
235
+ ```
236
+
237
+ ### 🎯 Système de Suivi des Plugins
238
+
239
+ Ne réinstallez jamais la même bibliothèque deux fois :
240
+
241
+ ```bash
242
+ # Première exécution
243
+ $ npx @configjs/cli react
244
+ ✔ TailwindCSS › Sélectionné
245
+
246
+ # Deuxième exécution (même projet)
247
+ $ npx @configjs/cli react
248
+ ℹ TailwindCSS est déjà installé, ignoré...
249
+
250
+ # Vérifier les plugins installés
251
+ $ npx @configjs/cli installed
252
+ 📦 Plugins installés:
253
+ ✓ TailwindCSS (^4.1.18) - installé il y a 2 heures
254
+ ✓ React Router (^7.11.0) - installé il y a 2 heures
255
+ ```
256
+
257
+ ConfigJS crée un fichier `.configjsrc` pour suivre les installations et prévenir les conflits.
258
+
259
+ ---
260
+
261
+ ## 📖 Documentation
262
+
263
+ ### Commandes
264
+
265
+ ```bash
266
+ # Installation interactive
267
+ npx @configjs/cli react
268
+
269
+ # Lister les plugins disponibles
270
+ npx @configjs/cli list
271
+ npx @configjs/cli list --category routing
272
+
273
+ # Vérifier les plugins installés
274
+ npx @configjs/cli installed
275
+
276
+ # Retirer un plugin du suivi
277
+ npx @configjs/cli remove <nom-du-plugin>
278
+
279
+ # Valider la compatibilité du projet
280
+ npx @configjs/cli check
281
+ ```
282
+
283
+ ### Options CLI
284
+
285
+ ```bash
286
+ npx @configjs/cli react [options]
287
+ ```
288
+
289
+ | Option | Description |
290
+ |--------|-------------|
291
+ | `--yes`, `-y` | Ignorer les prompts, utiliser les valeurs par défaut |
292
+ | `--dry-run`, `-d` | Simuler sans écrire de fichiers |
293
+ | `--silent`, `-s` | Aucune sortie (mode CI/CD) |
294
+ | `--no-install` | Générer seulement les configs, ignorer npm install |
295
+ | `--debug` | Logs verbeux |
296
+
297
+ ### Exemples d'Utilisation
298
+
299
+ **Configuration rapide avec les valeurs par défaut :**
300
+ ```bash
301
+ npx @configjs/cli react --yes
302
+ ```
303
+
304
+ **Mode CI/CD :**
305
+ ```bash
306
+ npx @configjs/cli react --silent --yes
307
+ ```
308
+
309
+ **Prévisualiser les changements uniquement :**
310
+ ```bash
311
+ npx @configjs/cli react --dry-run
312
+ ```
313
+
314
+ **Générer les configs sans installer les packages :**
315
+ ```bash
316
+ npx @configjs/cli react --no-install
317
+ ```
318
+
319
+ ---
320
+
321
+ ## 🏗️ Architecture
322
+
323
+ ConfigJS utilise une architecture modulaire de plugins où chaque bibliothèque est un plugin autonome :
324
+
325
+ ```typescript
326
+ interface Plugin {
327
+ name: string
328
+ category: Category
329
+ frameworks: Framework[]
330
+
331
+ // Compatibilité
332
+ compatibleWith?: string[]
333
+ incompatibleWith?: string[]
334
+ requires?: string[]
335
+
336
+ // Cycle de vie
337
+ detect?: (ctx: ProjectContext) => boolean | Promise<boolean>
338
+ install: (ctx: ProjectContext) => Promise<void>
339
+ configure: (ctx: ProjectContext) => Promise<void>
340
+ rollback?: (ctx: ProjectContext) => Promise<void>
341
+ }
342
+ ```
343
+
344
+ ### Extensibilité
345
+
346
+ Créez vos propres plugins :
347
+
348
+ ```bash
349
+ npm install @configjs/plugin-react-query
350
+ ```
351
+
352
+ ConfigJS détectera et chargera automatiquement les plugins préfixés par `@configjs/plugin-*`.
353
+
354
+ ---
355
+
356
+ ## 🤝 Contribuer
357
+
358
+ Les contributions sont les bienvenues ! Consultez [CONTRIBUTING.md](./docs/CONTRIBUTING.md) pour les directives.
359
+
360
+ ### Développer un Plugin
361
+
362
+ Voir [PLUGIN_DEVELOPMENT.md](./docs/PLUGIN_DEVELOPMENT.md) pour créer vos propres plugins.
363
+
364
+ ### Configuration de Développement
365
+
366
+ ```bash
367
+ # Cloner
368
+ git clone https://github.com/julien-lin/orchestrateur-framework.git
369
+ cd orchestrateur-framework
370
+
371
+ # Installer les dépendances
372
+ npm install
373
+
374
+ # Lancer les tests
375
+ npm run test
376
+ npm run test:watch
377
+
378
+ # Vérification des types
379
+ npm run typecheck
380
+
381
+ # Lint
382
+ npm run lint
383
+
384
+ # Build
385
+ npm run build
386
+ ```
387
+
388
+ ---
389
+
390
+ ## 📋 Prérequis
391
+
392
+ - **Node.js** ≥ 18.0.0
393
+ - **npm** / **yarn** / **pnpm** / **bun**
394
+ - Un projet React existant (Vite, CRA, ou configuration personnalisée)
395
+
396
+ ---
397
+
398
+ ## 🗺️ Roadmap
399
+
400
+ ### v1.1 ✅ (Actuelle)
401
+ - [x] Système de suivi des plugins (.configjsrc)
402
+ - [x] Détection des plugins (package.json + tracker)
403
+ - [x] UX console améliorée avec couleurs
404
+ - [x] Installation séquentielle (prévient la corruption)
405
+ - [x] 40+ plugins à travers 10 catégories
406
+
407
+ ### v1.2 (T2 2025)
408
+ - [ ] Presets de configuration (templates de démarrage)
409
+ - [ ] Marketplace de plugins
410
+ - [ ] Commande de mise à jour interactive
411
+ - [ ] Assistant de résolution de conflits
412
+
413
+ ### v2.0 (T3 2025)
414
+ - [ ] Support Next.js
415
+ - [ ] Support Remix
416
+ - [ ] Support Astro
417
+ - [ ] Interface web pour la configuration
418
+
419
+ ### v2.x (Futur)
420
+ - [ ] Support Vue 3
421
+ - [ ] Support Svelte
422
+ - [ ] Support React Native
423
+ - [ ] Templates de plugins personnalisés
424
+
425
+ ---
426
+
427
+ ## 💖 Soutenir ce Projet
428
+
429
+ Si ConfigJS vous fait gagner du temps et vous facilite la vie, envisagez de sponsoriser le projet :
430
+
431
+ **[❤️ Sponsoriser sur GitHub](https://github.com/sponsors/julien-lin)**
432
+
433
+ Votre soutien aide à maintenir et améliorer ConfigJS pour toute la communauté !
434
+
435
+ ---
436
+
437
+ ## 📄 Licence
438
+
439
+ [MIT](./LICENSE) © [Julien Lin](https://github.com/julien-lin)
440
+
441
+ ---
442
+
443
+ ## 🙏 Remerciements
444
+
445
+ Inspiré par les meilleures pratiques de :
446
+ - [Vite](https://vitejs.dev) - Outil de build ultra-rapide
447
+ - [Create T3 App](https://create.t3.gg) - Toolkit full-stack type-safe
448
+ - [Projen](https://projen.io) - Configuration de projet en tant que code
449
+
450
+ ---
451
+
452
+ **Fait avec ❤️ pour la communauté frontend**
453
+
454
+ [Changelog](./CHANGELOG.md) • [Issues](https://github.com/julien-lin/orchestrateur-framework/issues) • [Contributing](./docs/CONTRIBUTING.md)