nestcraftx 0.2.2 → 0.2.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 (43) hide show
  1. package/CHANGELOG.fr.md +97 -0
  2. package/CHANGELOG.md +51 -188
  3. package/CLI_USAGE.fr.md +331 -0
  4. package/CLI_USAGE.md +214 -150
  5. package/DEMO.fr.md +292 -0
  6. package/DEMO.md +199 -68
  7. package/MIGRATION_GUIDE.fr.md +127 -0
  8. package/MIGRATION_GUIDE.md +72 -187
  9. package/QUICK_START.fr.md +152 -0
  10. package/QUICK_START.md +84 -67
  11. package/README.fr.md +630 -0
  12. package/bin/nestcraft.js +11 -1
  13. package/commands/demo.js +126 -101
  14. package/commands/help.js +78 -1
  15. package/commands/info.js +43 -43
  16. package/commands/new.js +83 -77
  17. package/package.json +2 -2
  18. package/readme.md +375 -319
  19. package/utils/configs/configureDocker.js +110 -6
  20. package/utils/configs/setupCleanArchitecture.js +64 -45
  21. package/utils/configs/setupLightArchitecture.js +211 -24
  22. package/utils/envGenerator.js +76 -39
  23. package/utils/fullModeInput.js +414 -536
  24. package/utils/lightModeInput.js +346 -129
  25. package/utils/loggers/logError.js +2 -2
  26. package/utils/loggers/logInfo.js +2 -2
  27. package/utils/loggers/logSuccess.js +2 -2
  28. package/utils/loggers/logWarning.js +7 -0
  29. package/utils/setups/orms/typeOrmSetup.js +525 -190
  30. package/utils/setups/projectSetup.js +26 -9
  31. package/utils/setups/setupAuth.js +572 -352
  32. package/utils/setups/setupDatabase.js +22 -20
  33. package/utils/setups/setupMongoose.js +309 -57
  34. package/utils/setups/setupPrisma.js +429 -305
  35. package/utils/setups/setupSwagger.js +1 -1
  36. package/utils/userInput.js +12 -36
  37. package/utils/utils.js +641 -264
  38. package/CORRECTIONS_APPLIED.md +0 -286
  39. package/IMPROVEMENTS_V2.md +0 -306
  40. package/REFACTORING_SUMMARY.md +0 -261
  41. package/nestcraftx-0.2.1.tgz +0 -0
  42. package/nestcraftx-0.2.2.tgz +0 -0
  43. package/setup.js +0 -39
@@ -0,0 +1,97 @@
1
+ # Journal des modifications (Changelog)
2
+
3
+ Toutes les modifications notables apportées à NestCraftX seront documentées dans ce fichier.
4
+
5
+ ## [0.2.3] - 10-01-2026
6
+
7
+ ### Ajouté
8
+
9
+ - **Nouveau système interactif (Inquirer.js)** : Remplacement de `readline-sync` par `Inquirer` pour une navigation professionnelle au clavier (touches fléchées).
10
+ - **Support des gestionnaires de paquets** : Choix entre `npm`, `yarn` et `pnpm` (via le flag `--pm` ou sélection interactive).
11
+ - **Détection intelligente de DB** : Sélection automatique du type de base de données (PostgreSQL ou MongoDB) en fonction de l'ORM choisi.
12
+ - **Fusion avancée des flags** : Intégration fluide entre les flags CLI et les invites interactives pour les options manquantes.
13
+ - **Badges de statut visuels** : Ajout de badges dans le README pour la Version, la Licence et les ORM supportés.
14
+
15
+ ### Changé
16
+
17
+ - **Refonte TOTALE de l'architecture** : Déplacement des services vers `application/services` pour respecter strictement les patterns de la Clean Architecture.
18
+ - **Refactorisation de l'Auth** : `AuthService` interagit désormais exclusivement avec `UserService` (suppression de l'accès direct au repository).
19
+ - **Commande Demo améliorée** : La commande `demo` génère maintenant un projet de blog complet avec 3 entités liées (User, Post, Comment) et des relations 1-N.
20
+ - **Sécurité renforcée** : Les secrets JWT sont désormais générés via `crypto.randomBytes(32)` (chaînes hexadécimales de 64 caractères).
21
+ - **Docker par défaut** : Les fichiers Docker sont maintenant générés par défaut dans les deux modes, sauf si `--docker=false` est spécifié.
22
+
23
+ ### Corrigé
24
+
25
+ - **Compatibilité des modules** : Résolution des conflits CommonJS vs ES6 dans les templates de projet générés.
26
+ - **Validation des flags** : Correction de bugs où certains flags CLI étaient ignorés durant le flux interactif.
27
+ - **Dépendances circulaires** : Nettoyage des imports dans le module Auth pour prévenir d'éventuels problèmes au runtime.
28
+
29
+ ---
30
+
31
+ ## [0.2.2] - 07-11-2025
32
+
33
+ ### Ajouté
34
+
35
+ - **Templates professionnels** : Auto-génération d'un `.gitignore` spécifique à NestJS et d'un `README.md` personnalisé pour chaque nouveau projet.
36
+ - **Auto-init Git** : Initialisation automatique du dépôt Git et premier commit après la génération du projet.
37
+ - **Support Mongoose (Beta)** : Première implémentation de l'architecture MongoDB avec Mongoose.
38
+
39
+ ### Changé
40
+
41
+ - **Nettoyage du code** : Suppression des fichiers de configuration obsolètes (`start.js`, `fullModeInput.js`, `lightModeInput.js`).
42
+ - **Standardisation des logs** : Unification des messages console via un système de codes couleurs cohérent (Info, Succès, Avertissement).
43
+
44
+ ---
45
+
46
+ ## [0.2.0] - 27-10-2025
47
+
48
+ ### Ajouté
49
+
50
+ - **Modes d'architecture doubles** :
51
+ - **Mode FULL** : Clean Architecture complète + DDD (Use-cases, Mappers, Adapters).
52
+ - **Mode LIGHT** : Architecture MVP simplifiée (Controllers → Services → Repositories).
53
+
54
+ - **Parseur CLI moderne** : Support des syntaxes `--key=value` et `--key value` avec validation.
55
+ - **Amélioration de l'UX** : Intégration de spinners animés et d'un résumé complet de la configuration post-génération.
56
+
57
+ ### Sécurité
58
+
59
+ - **Environnement sécurisé** : Génération automatique de `JWT_SECRET` et `JWT_REFRESH_SECRET` dans le fichier `.env`.
60
+ - **Exemples assainis** : Création d'un fichier `.env.example` sécurisé sans données sensibles.
61
+
62
+ ---
63
+
64
+ ## [0.1.0] - Version précédente
65
+
66
+ ### Fonctionnalités initiales
67
+
68
+ - Génération de projet NestJS de base.
69
+ - Support de Prisma et TypeORM.
70
+ - Configuration de base Docker et Swagger.
71
+ - Authentification JWT standard.
72
+
73
+ ---
74
+
75
+ ## Notes de migration
76
+
77
+ ### De 0.1.x à 0.2.3
78
+
79
+ **Changements non-bloquants** : La version 0.2.x est rétrocompatible.
80
+
81
+ **Nouvelles commandes recommandées :**
82
+
83
+ ```bash
84
+ # Mode LIGHT (Plus rapide pour les MVP)
85
+ nestcraftx new my-api --light --orm=prisma --auth
86
+
87
+ # Mode FULL (Standard pour les applications d'entreprise)
88
+ nestcraftx new my-app --full --orm=typeorm --auth --swagger
89
+
90
+ ```
91
+
92
+ Avantages de la mise à jour :
93
+
94
+ - Secrets JWT automatisés et sécurisés.
95
+ - Choix du gestionnaire de paquets (npm/yarn/pnpm).
96
+ - Meilleure séparation des responsabilités dans les modules Auth/User.
97
+ - Meilleure expérience développeur (DX) avec les menus interactifs.
package/CHANGELOG.md CHANGED
@@ -2,234 +2,97 @@
2
2
 
3
3
  All notable changes to NestCraftX will be documented in this file.
4
4
 
5
- ## [0.2.2] - 2025-11-07
5
+ ## [0.2.3] - 2026-01-10
6
6
 
7
7
  ### Added
8
8
 
9
- #### Demo Command Amélioré
10
-
11
- - Support complet des flags pour demo : `--light`, `--orm`, `--auth`, `--swagger`, `--docker`
12
- - Mode interactif intelligent : pose les questions uniquement si flags manquants
13
- - Fusion intelligente des options passées et réponses interactives
14
- - 3 entités pré-configurées (User, Post, Comment) avec relations
15
- - Support de tous les ORMs (Prisma, TypeORM, Mongoose)
16
-
17
- #### Auth Refactorisée
18
-
19
- - AuthService refactorisé pour passer via UserService
20
- - Pas d'accès direct au repository depuis AuthModule
21
- - JWT configuré avec ConfigService pour secrets dynamiques
22
- - Refresh tokens implémentés
23
- - OTP et password reset ready-to-use
24
- - Guards et strategies Passport complets
25
- - Support du role-based access control (RBAC)
26
-
27
- #### Templates Professionnels
28
-
29
- - `.gitignore` complet généré pour NestJS
30
- - `README.md` auto-généré pour chaque projet créé
31
- - Git auto-initialisé avec premier commit
32
- - Documentation professionnelle incluse
33
-
34
- #### Nettoyage du Code
35
-
36
- - Suppression de fichiers obsolètes (start.js, fullModeInput.js, lightModeInput.js)
37
- - Normalisation CommonJS vs ES6 (cohérence totale)
38
- - Suppression du code mort et commentaires inutiles
39
- - Imports/exports cohérents dans tout le projet
9
+ - **New Interactive System (Inquirer.js)**: Replaced `readline-sync` with `Inquirer` for professional arrow-key navigation.
10
+ - **Package Manager Support**: Choice between `npm`, `yarn`, and `pnpm` (via `--pm` flag or interactive selection).
11
+ - **Smart DB Detection**: Automatic database type selection (PostgreSQL or MongoDB) based on the chosen ORM.
12
+ - **Advanced Flag Merging**: Seamless integration between CLI flags and interactive prompts for missing options.
13
+ - **Visual Status Badges**: Added README badges for Version, License, and Supported ORMs.
40
14
 
41
15
  ### Changed
42
16
 
43
- - Version du projet mise à jour à 0.2.2
44
- - Documentation README complètement mise à jour
45
- - CLI_USAGE.md actualisé avec les nouveau flags
46
- - Meilleure séparation des responsabilités (Auth User)
17
+ - **FULL Architecture Refactor**: Services moved to `application/services` to strictly follow Clean Architecture patterns.
18
+ - **Auth Refactoring**: `AuthService` now interacts exclusively with `UserService` (removed direct repository access).
19
+ - **Enhanced Demo Command**: The `demo` command now generates a full blog project with 3 related entities (User, Post, Comment) and 1-N relationships.
20
+ - **Improved Security**: JWT secrets now generated via `crypto.randomBytes(32)` (64-character hex strings).
21
+ - **Docker by Default**: Docker files are now generated by default in both modes unless `--docker=false` is specified.
47
22
 
48
23
  ### Fixed
49
24
 
50
- - Cohérence des systèmes de modules CommonJS
51
- - Résolution des problèmes d'imports ES6/CommonJS mélangés
52
- - Gestion correcte des dépendances transversales
25
+ - **Module Compatibility**: Resolved CommonJS vs ES6 conflicts in generated project templates.
26
+ - **Flag Validation**: Fixed bugs where certain CLI flags were ignored during the interactive flow.
27
+ - **Circular Dependencies**: Cleaned up imports in the Auth module to prevent potential runtime issues.
53
28
 
54
29
  ---
55
30
 
56
- ## [0.2.0] - 2025-10-27
31
+ ## [0.2.2] - 2025-11-07
57
32
 
58
33
  ### Added
59
34
 
60
- #### Architecture Modes
61
-
62
- - **Mode FULL** : Architecture complete avec Clean Architecture + DDD
63
-
64
- - Structure complete avec use-cases, mappers, adapters
65
- - Separation stricte domain/application/infrastructure/presentation
66
- - Ideal pour projets complexes et scalables
67
-
68
- - **Mode LIGHT** : Architecture MVP simplifiee
69
- - Structure plate : controllers → services → repositories
70
- - Moins de couches d'abstraction
71
- - Parfait pour prototypes et petits projets
72
-
73
- #### CLI Moderne
74
-
75
- - Parser de flags ameliore avec validation
76
-
77
- - Support de `--flag=value` et `--flag value`
78
- - Validation des noms de projets
79
- - Validation des valeurs d'options
80
- - Messages d'erreur clairs
81
-
82
- - Nouvelles options en ligne de commande :
83
- - `--full` ou `--mode=full` : Mode architecture complete
84
- - `--light` ou `--mode=light` : Mode architecture simplifiee
85
- - `--orm=<prisma|typeorm|mongoose>` : Choix de l'ORM
86
- - `--auth` : Activation de l'authentification JWT
87
- - `--swagger` : Activation de la documentation Swagger
88
- - `--docker` : Gestion Docker (actif par defaut)
89
-
90
- #### Generation .env Securisee
91
-
92
- - Generation automatique de secrets JWT securises (64 caracteres)
93
- - Configuration automatique selon l'ORM :
94
- - PostgreSQL pour Prisma et TypeORM
95
- - MongoDB pour Mongoose
96
- - Variables pre-configurees :
97
- - `JWT_SECRET` : Secret auto-genere
98
- - `JWT_REFRESH_SECRET` : Secret refresh auto-genere
99
- - `JWT_EXPIRES_IN` : 15 minutes par defaut
100
- - `JWT_REFRESH_EXPIRES_IN` : 7 jours par defaut
101
- - `DATABASE_URL` : URL construite automatiquement
102
- - Creation d'un fichier `.env.example` sanitise
103
-
104
- #### UX Amelioree
105
-
106
- - Systeme de couleurs pour les logs :
107
- - Info en cyan
108
- - Success en vert
109
- - Error en rouge
110
- - Warning en jaune
111
- - Spinners animes pour les operations longues
112
- - Messages de progression clairs
113
- - Resume detaille post-generation avec toutes les configurations
114
- - Affichage du mode utilise (FULL/LIGHT)
115
-
116
- #### Nouveaux Fichiers Utilitaires
117
-
118
- - `utils/cliParser.js` : Parser CLI moderne avec validation
119
- - `utils/envGenerator.js` : Generateur de fichiers .env securises
120
- - `utils/colors.js` : Systeme de couleurs pour la console
121
- - `utils/spinner.js` : Spinners animes pour les operations longues
122
- - `utils/configs/setupLightArchitecture.js` : Setup architecture LIGHT
35
+ - **Professional Templates**: Auto-generation of NestJS-specific `.gitignore` and customized `README.md` for every new project.
36
+ - **Git Auto-init**: Automatic Git repository initialization and first commit after project generation.
37
+ - **Mongoose Support (Beta)**: Initial implementation of MongoDB architecture with Mongoose.
123
38
 
124
39
  ### Changed
125
40
 
126
- #### Structure du Code
127
-
128
- - Refactoring complet de `commands/new.js` :
129
-
130
- - Separation en fonctions modulaires
131
- - `determineMode()` : Detection du mode
132
- - `buildLightModeInputs()` : Construction config LIGHT
133
- - `buildFullModeInputs()` : Construction config FULL
134
- - `executeProjectSetup()` : Execution du setup
135
- - `printSuccessSummary()` : Affichage resume
136
-
137
- - Amelioration de `utils/shell.js` :
138
-
139
- - Support des spinners
140
- - Mode silencieux pour certaines operations
141
- - Meilleure gestion des erreurs
142
-
143
- - Modernisation des loggers :
144
- - Utilisation du systeme de couleurs
145
- - Format unifie
146
- - Messages plus clairs
147
-
148
- #### Parser CLI
41
+ - **Code Cleanup**: Removed obsolete configuration files (`start.js`, `fullModeInput.js`, `lightModeInput.js`).
42
+ - **Log Standardization**: Unified console messaging using a consistent color-coded system (Info, Success, Warning).
149
43
 
150
- - Validation des inputs en temps reel
151
- - Detection des flags mutuellement exclusifs
152
- - Support de la syntaxe moderne (--key=value)
153
- - Messages d'erreur descriptifs
154
-
155
- ### Improved
156
-
157
- #### Generation de Projet
158
-
159
- - Detection automatique du mode selon les flags
160
- - Configuration interactive seulement si necessaire
161
- - Validation des noms de projets
162
- - Meilleure gestion des erreurs
163
-
164
- #### Configuration Database
165
-
166
- - URL de database construite automatiquement
167
- - Support ameliore pour les 3 ORMs
168
- - Configuration adaptee au type de database
169
-
170
- #### Documentation
44
+ ---
171
45
 
172
- - Ajout de `CLI_USAGE.md` : Guide complet d'utilisation
173
- - Ajout de `CHANGELOG.md` : Historique des versions
174
- - Exemples de commandes detailles
175
- - Documentation des deux modes d'architecture
46
+ ## [0.2.0] - 2025-10-27
176
47
 
177
- ### Fixed
48
+ ### Added
178
49
 
179
- - Gestion des erreurs amelioree dans tout le CLI
180
- - Validation des options avant execution
181
- - Messages d'erreur plus explicites
182
- - Nettoyage du code (suppression des commentaires obsoletes)
50
+ - **Dual Architecture Modes**:
51
+ - **Mode FULL**: Complete Clean Architecture + DDD (Use-cases, Mappers, Adapters).
52
+ - **Mode LIGHT**: Simplified MVP Architecture (Controllers → Services → Repositories).
53
+ - **Modern CLI Parser**: Support for `--key=value` and `--key value` syntax with validation.
54
+ - **Improved UX**: Integrated animated spinners and a full post-generation configuration summary.
183
55
 
184
56
  ### Security
185
57
 
186
- - Generation de secrets JWT securises avec crypto
187
- - Secrets de 64 caracteres en base64url
188
- - Fichier .env.example sans secrets sensibles
189
- - Bonnes pratiques de securite appliquees
58
+ - **Secure Environment**: Automatic generation of `JWT_SECRET` and `JWT_REFRESH_SECRET` in `.env`.
59
+ - **Sanitized Examples**: Creation of a safe `.env.example` file without sensitive data.
60
+
61
+ ---
190
62
 
191
63
  ## [0.1.0] - Previous Version
192
64
 
193
- ### Features Initiales
65
+ ### Initial Features
194
66
 
195
- - Generation de projets NestJS
196
- - Support Prisma, TypeORM, Mongoose
197
- - Architecture Clean Code de base
198
- - Configuration Docker
199
- - Support Swagger
200
- - Authentification JWT basique
67
+ - Basic NestJS project generation.
68
+ - Support for Prisma and TypeORM.
69
+ - Basic Docker and Swagger configuration.
70
+ - Standard JWT Authentication.
201
71
 
202
72
  ---
203
73
 
204
- ## Notes de Migration
74
+ ## Migration Notes
205
75
 
206
- ### De 0.1.x vers 0.2.0
76
+ ### From 0.1.x to 0.2.3
207
77
 
208
- **Changements non-breaking** : La version 0.2.0 est retrocompatible.
78
+ **Non-breaking changes**: Version 0.2.x is backward compatible.
209
79
 
210
- **Nouvelles commandes recommandees :**
211
-
212
- Avant (0.1.x) :
80
+ **New Recommended Commands:**
213
81
 
214
82
  ```bash
215
- nestcraftx start
216
- # Configuration interactive
83
+ # LIGHT Mode (Fastest for MVPs)
84
+ nestcraftx new my-api --light --orm=prisma --auth
85
+
86
+ # FULL Mode (Standard for enterprise-grade apps)
87
+ nestcraftx new my-app --full --orm=typeorm --auth --swagger
217
88
  ```
218
89
 
219
- Maintenant (0.2.0) :
90
+ Benefits of updating:
220
91
 
221
- ```bash
222
- # Mode LIGHT (nouveau - recommande pour MVP)
223
- nestcraftx new mon-projet --light --orm=prisma --auth
92
+ - Automated secure JWT secrets.
224
93
 
225
- # Mode FULL (equivalent a l'ancien comportement)
226
- nestcraftx new mon-projet --full --orm=prisma --auth
227
- ```
94
+ - Choice of Package Manager (npm/yarn/pnpm).
228
95
 
229
- **Avantages de la mise a jour :**
96
+ - Cleaner separation of concerns in Auth/User modules.
230
97
 
231
- - Generation de secrets JWT automatique et securisee
232
- - Fichier .env pret a l'emploi
233
- - Mode LIGHT pour demarrer plus rapidement
234
- - Meilleure experience utilisateur (couleurs, spinners)
235
- - CLI plus moderne et flexible
98
+ - Better DX with arrow-key menus.