nestcraftx 0.2.0 → 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 +58 -171
  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 +79 -2
  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 -263
  39. package/IMPROVEMENTS_V2.md +0 -306
  40. package/REFACTORING_SUMMARY.md +0 -261
  41. package/nestcraftx-0.2.0.tgz +0 -0
  42. package/nestcraftx-0.2.1.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,210 +2,97 @@
2
2
 
3
3
  All notable changes to NestCraftX will be documented in this file.
4
4
 
5
- ## [0.2.1] - 2025-11-07
5
+ ## [0.2.3] - 2026-01-10
6
6
 
7
7
  ### Added
8
8
 
9
- #### Demo Command Amélioré
10
- - Support complet des flags pour demo : `--light`, `--orm`, `--auth`, `--swagger`, `--docker`
11
- - Mode interactif intelligent : pose les questions uniquement si flags manquants
12
- - Fusion intelligente des options passées et réponses interactives
13
- - 3 entités pré-configurées (User, Post, Comment) avec relations
14
- - Support de tous les ORMs (Prisma, TypeORM, Mongoose)
15
-
16
- #### Auth Refactorisée
17
- - AuthService refactorisé pour passer via UserService
18
- - Pas d'accès direct au repository depuis AuthModule
19
- - JWT configuré avec ConfigService pour secrets dynamiques
20
- - Refresh tokens implémentés
21
- - OTP et password reset ready-to-use
22
- - Guards et strategies Passport complets
23
- - Support du role-based access control (RBAC)
24
-
25
- #### Templates Professionnels
26
- - `.gitignore` complet généré pour NestJS
27
- - `README.md` auto-généré pour chaque projet créé
28
- - Git auto-initialisé avec premier commit
29
- - Documentation professionnelle incluse
30
-
31
- #### Nettoyage du Code
32
- - Suppression de fichiers obsolètes (start.js, fullModeInput.js, lightModeInput.js)
33
- - Normalisation CommonJS vs ES6 (cohérence totale)
34
- - Suppression du code mort et commentaires inutiles
35
- - 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.
36
14
 
37
15
  ### Changed
38
16
 
39
- - Version du projet mise à jour à 0.2.1
40
- - Documentation README complètement mise à jour
41
- - CLI_USAGE.md actualisé avec les nouveau flags
42
- - 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.
43
22
 
44
23
  ### Fixed
45
24
 
46
- - Cohérence des systèmes de modules CommonJS
47
- - Résolution des problèmes d'imports ES6/CommonJS mélangés
48
- - 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.
49
28
 
50
29
  ---
51
30
 
52
- ## [0.2.0] - 2025-10-27
31
+ ## [0.2.2] - 2025-11-07
53
32
 
54
33
  ### Added
55
34
 
56
- #### Architecture Modes
57
- - **Mode FULL** : Architecture complete avec Clean Architecture + DDD
58
- - Structure complete avec use-cases, mappers, adapters
59
- - Separation stricte domain/application/infrastructure/presentation
60
- - Ideal pour projets complexes et scalables
61
-
62
- - **Mode LIGHT** : Architecture MVP simplifiee
63
- - Structure plate : controllers → services → repositories
64
- - Moins de couches d'abstraction
65
- - Parfait pour prototypes et petits projets
66
-
67
- #### CLI Moderne
68
- - Parser de flags ameliore avec validation
69
- - Support de `--flag=value` et `--flag value`
70
- - Validation des noms de projets
71
- - Validation des valeurs d'options
72
- - Messages d'erreur clairs
73
-
74
- - Nouvelles options en ligne de commande :
75
- - `--full` ou `--mode=full` : Mode architecture complete
76
- - `--light` ou `--mode=light` : Mode architecture simplifiee
77
- - `--orm=<prisma|typeorm|mongoose>` : Choix de l'ORM
78
- - `--auth` : Activation de l'authentification JWT
79
- - `--swagger` : Activation de la documentation Swagger
80
- - `--docker` : Gestion Docker (actif par defaut)
81
-
82
- #### Generation .env Securisee
83
- - Generation automatique de secrets JWT securises (64 caracteres)
84
- - Configuration automatique selon l'ORM :
85
- - PostgreSQL pour Prisma et TypeORM
86
- - MongoDB pour Mongoose
87
- - Variables pre-configurees :
88
- - `JWT_SECRET` : Secret auto-genere
89
- - `JWT_REFRESH_SECRET` : Secret refresh auto-genere
90
- - `JWT_EXPIRES_IN` : 15 minutes par defaut
91
- - `JWT_REFRESH_EXPIRES_IN` : 7 jours par defaut
92
- - `DATABASE_URL` : URL construite automatiquement
93
- - Creation d'un fichier `.env.example` sanitise
94
-
95
- #### UX Amelioree
96
- - Systeme de couleurs pour les logs :
97
- - Info en cyan
98
- - Success en vert
99
- - Error en rouge
100
- - Warning en jaune
101
- - Spinners animes pour les operations longues
102
- - Messages de progression clairs
103
- - Resume detaille post-generation avec toutes les configurations
104
- - Affichage du mode utilise (FULL/LIGHT)
105
-
106
- #### Nouveaux Fichiers Utilitaires
107
- - `utils/cliParser.js` : Parser CLI moderne avec validation
108
- - `utils/envGenerator.js` : Generateur de fichiers .env securises
109
- - `utils/colors.js` : Systeme de couleurs pour la console
110
- - `utils/spinner.js` : Spinners animes pour les operations longues
111
- - `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.
112
38
 
113
39
  ### Changed
114
40
 
115
- #### Structure du Code
116
- - Refactoring complet de `commands/new.js` :
117
- - Separation en fonctions modulaires
118
- - `determineMode()` : Detection du mode
119
- - `buildLightModeInputs()` : Construction config LIGHT
120
- - `buildFullModeInputs()` : Construction config FULL
121
- - `executeProjectSetup()` : Execution du setup
122
- - `printSuccessSummary()` : Affichage resume
123
-
124
- - Amelioration de `utils/shell.js` :
125
- - Support des spinners
126
- - Mode silencieux pour certaines operations
127
- - Meilleure gestion des erreurs
128
-
129
- - Modernisation des loggers :
130
- - Utilisation du systeme de couleurs
131
- - Format unifie
132
- - Messages plus clairs
133
-
134
- #### Parser CLI
135
- - Validation des inputs en temps reel
136
- - Detection des flags mutuellement exclusifs
137
- - Support de la syntaxe moderne (--key=value)
138
- - Messages d'erreur descriptifs
139
-
140
- ### Improved
141
-
142
- #### Generation de Projet
143
- - Detection automatique du mode selon les flags
144
- - Configuration interactive seulement si necessaire
145
- - Validation des noms de projets
146
- - Meilleure gestion des erreurs
147
-
148
- #### Configuration Database
149
- - URL de database construite automatiquement
150
- - Support ameliore pour les 3 ORMs
151
- - Configuration adaptee au type de database
152
-
153
- #### Documentation
154
- - Ajout de `CLI_USAGE.md` : Guide complet d'utilisation
155
- - Ajout de `CHANGELOG.md` : Historique des versions
156
- - Exemples de commandes detailles
157
- - Documentation des deux modes d'architecture
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).
158
43
 
159
- ### Fixed
160
- - Gestion des erreurs amelioree dans tout le CLI
161
- - Validation des options avant execution
162
- - Messages d'erreur plus explicites
163
- - Nettoyage du code (suppression des commentaires obsoletes)
44
+ ---
45
+
46
+ ## [0.2.0] - 2025-10-27
47
+
48
+ ### Added
49
+
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.
164
55
 
165
56
  ### Security
166
- - Generation de secrets JWT securises avec crypto
167
- - Secrets de 64 caracteres en base64url
168
- - Fichier .env.example sans secrets sensibles
169
- - Bonnes pratiques de securite appliquees
57
+
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
+ ---
170
62
 
171
63
  ## [0.1.0] - Previous Version
172
64
 
173
- ### Features Initiales
174
- - Generation de projets NestJS
175
- - Support Prisma, TypeORM, Mongoose
176
- - Architecture Clean Code de base
177
- - Configuration Docker
178
- - Support Swagger
179
- - Authentification JWT basique
65
+ ### Initial Features
66
+
67
+ - Basic NestJS project generation.
68
+ - Support for Prisma and TypeORM.
69
+ - Basic Docker and Swagger configuration.
70
+ - Standard JWT Authentication.
180
71
 
181
72
  ---
182
73
 
183
- ## Notes de Migration
74
+ ## Migration Notes
184
75
 
185
- ### De 0.1.x vers 0.2.0
76
+ ### From 0.1.x to 0.2.3
186
77
 
187
- **Changements non-breaking** : La version 0.2.0 est retrocompatible.
78
+ **Non-breaking changes**: Version 0.2.x is backward compatible.
188
79
 
189
- **Nouvelles commandes recommandees :**
80
+ **New Recommended Commands:**
190
81
 
191
- Avant (0.1.x) :
192
82
  ```bash
193
- nestcraftx start
194
- # 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
195
88
  ```
196
89
 
197
- Maintenant (0.2.0) :
198
- ```bash
199
- # Mode LIGHT (nouveau - recommande pour MVP)
200
- nestcraftx new mon-projet --light --orm=prisma --auth
90
+ Benefits of updating:
201
91
 
202
- # Mode FULL (equivalent a l'ancien comportement)
203
- nestcraftx new mon-projet --full --orm=prisma --auth
204
- ```
92
+ - Automated secure JWT secrets.
93
+
94
+ - Choice of Package Manager (npm/yarn/pnpm).
95
+
96
+ - Cleaner separation of concerns in Auth/User modules.
205
97
 
206
- **Avantages de la mise a jour :**
207
- - Generation de secrets JWT automatique et securisee
208
- - Fichier .env pret a l'emploi
209
- - Mode LIGHT pour demarrer plus rapidement
210
- - Meilleure experience utilisateur (couleurs, spinners)
211
- - CLI plus moderne et flexible
98
+ - Better DX with arrow-key menus.
@@ -0,0 +1,331 @@
1
+ # NestCraftX CLI - Guide d'utilisation
2
+
3
+ ## Installation
4
+
5
+ ```bash
6
+ npm install -g nestcraftx
7
+ ```
8
+
9
+ ## Commandes disponibles
10
+
11
+ ### Creer un nouveau projet
12
+
13
+ ```bash
14
+ nestcraftx new <project-name> [options]
15
+ ```
16
+
17
+ ## Modes de generation
18
+
19
+ ### Mode FULL (Architecture Complete - Clean Architecture + DDD)
20
+
21
+ Structure complete avec use-cases, mappers, adapters et separation stricte des couches.
22
+ Ideal pour les projets complexes et scalables.
23
+
24
+ ```bash
25
+ nestcraftx new mon-projet --full
26
+ nestcraftx new mon-projet --mode=full
27
+ nestcraftx new mon-projet
28
+ ```
29
+
30
+ **Structure generee :**
31
+
32
+ ```
33
+ src
34
+ ├── [entity]
35
+ │ ├── application
36
+ │ │ ├── dtos
37
+ │ │ ├── services
38
+ │ │ ├── use-cases
39
+ │ │ └── interfaces
40
+ │ │
41
+ │ ├── domain
42
+ │ │ ├── entities
43
+ │ │ ├── enums
44
+ │ │ └── interfaces
45
+ │ │
46
+ │ ├── infrastructure
47
+ │ │ ├── adapters
48
+ │ │ ├── mappers
49
+ │ │ ├── repositories
50
+ │ │ └── services
51
+ │ │
52
+ │ ├── presentation
53
+ │ │ └── controllers
54
+ │ │
55
+ │ └── [entity].module.ts
56
+ ```
57
+
58
+ ### Mode LIGHT (MVP Simplifie)
59
+
60
+ Structure plate avec moins de couches d'abstraction.
61
+ Parfait pour prototypes et petits projets.
62
+
63
+ ```bash
64
+ nestcraftx new mon-projet --light
65
+ nestcraftx new mon-projet --mode=light
66
+ ```
67
+
68
+ **Structure generee :**
69
+
70
+ ```
71
+ src
72
+ ├── [entity]
73
+ │ ├── entities
74
+ │ ├── dto
75
+ │ ├── services
76
+ │ ├── repositories
77
+ │ ├── controllers
78
+ │ └── [entity].module.ts
79
+ ```
80
+
81
+ ## Options disponibles
82
+
83
+ ### ORM
84
+
85
+ Choisir l'ORM a utiliser :
86
+
87
+ ```bash
88
+ --orm=prisma # Prisma (par defaut)
89
+ --orm=typeorm # TypeORM
90
+ --orm=mongoose # Mongoose (MongoDB - phase de test)
91
+ ```
92
+
93
+ **Exemples :**
94
+
95
+ ```bash
96
+ nestcraftx new mon-api --light --orm=prisma
97
+ nestcraftx new mon-api --full --orm=typeorm
98
+ nestcraftx new mon-api --orm=mongoose
99
+ ```
100
+
101
+ ### Authentification
102
+
103
+ Activer l'authentification JWT :
104
+
105
+ ```bash
106
+ --auth # Active l'auth avec JWT
107
+ ```
108
+
109
+ **Exemple :**
110
+
111
+ ```bash
112
+ nestcraftx new mon-api --light --auth --orm=prisma
113
+ ```
114
+
115
+ Avec `--auth`, une entite User est automatiquement generee avec :
116
+
117
+ - email (string)
118
+ - password (string)
119
+ - isActive (boolean)
120
+
121
+ ### Swagger
122
+
123
+ Activer la documentation Swagger/OpenAPI :
124
+
125
+ ```bash
126
+ --swagger # Active Swagger UI
127
+ ```
128
+
129
+ **Exemple :**
130
+
131
+ ```bash
132
+ nestcraftx new mon-api --light --swagger
133
+ ```
134
+
135
+ Swagger sera accessible a : `http://localhost:3000/api/docs`
136
+
137
+ ### Docker
138
+
139
+ Desactiver Docker (active par defaut) :
140
+
141
+ ```bash
142
+ --docker=false # Desactive Docker
143
+ ```
144
+
145
+ **Exemple :**
146
+
147
+ ```bash
148
+ nestcraftx new mon-api --light --docker=false
149
+ ```
150
+
151
+ ## Exemples de commandes completes
152
+
153
+ ### Projet LIGHT avec toutes les options
154
+
155
+ ```bash
156
+ nestcraftx new mon-api --light --orm=prisma --auth --swagger
157
+ ```
158
+
159
+ ### Projet FULL avec TypeORM et Auth
160
+
161
+ ```bash
162
+ nestcraftx new mon-api --full --orm=typeorm --auth
163
+ ```
164
+
165
+ ### Projet minimal LIGHT (mode interactif)
166
+
167
+ ```bash
168
+ nestcraftx new mon-api --light
169
+ # Le CLI demandera toutes les options necessaires
170
+ ```
171
+
172
+ ### Projet MongoDB avec Mongoose
173
+
174
+ ```bash
175
+ nestcraftx new mon-api --light --orm=mongoose --auth --swagger
176
+ ```
177
+
178
+ ## Configuration automatique
179
+
180
+ ### Fichier .env genere
181
+
182
+ Le CLI genere automatiquement un fichier `.env` avec :
183
+
184
+ **Pour PostgreSQL (Prisma/TypeORM) :**
185
+
186
+ ```env
187
+ NODE_ENV=development
188
+ PORT=3000
189
+ JWT_SECRET=<secret-auto-genere-64-chars>
190
+ JWT_REFRESH_SECRET=<secret-auto-genere-64-chars>
191
+ JWT_EXPIRES_IN=15m
192
+ JWT_REFRESH_EXPIRES_IN=7d
193
+ POSTGRES_USER=postgres
194
+ POSTGRES_PASSWORD=postgres
195
+ POSTGRES_DB=mon-api
196
+ POSTGRES_HOST=localhost
197
+ POSTGRES_PORT=5432
198
+ DATABASE_URL=postgresql://postgres:postgres@localhost:5432/mon-api?schema=public
199
+ ```
200
+
201
+ **Pour MongoDB (Mongoose) :**
202
+
203
+ ```env
204
+ NODE_ENV=development
205
+ PORT=3000
206
+ JWT_SECRET=<secret-auto-genere-64-chars>
207
+ JWT_REFRESH_SECRET=<secret-auto-genere-64-chars>
208
+ JWT_EXPIRES_IN=15m
209
+ JWT_REFRESH_EXPIRES_IN=7d
210
+ MONGO_URI=mongodb://localhost:27017
211
+ MONGO_DB=mon-api
212
+ ```
213
+
214
+ Les secrets JWT sont generes automatiquement de maniere securisee.
215
+
216
+ ## Modes Interactifs
217
+
218
+ ### Mode LIGHT Interactif
219
+
220
+ Si vous ne fournissez pas tous les flags necessaires, le CLI passera en mode interactif pour demander les options manquantes.
221
+
222
+ **Exemple :**
223
+
224
+ ```bash
225
+ nestcraftx new mon-api --light
226
+
227
+ [MODE LIGHT] Configuration simplifiee pour mon-api
228
+
229
+ [?] Choisissez un ORM (prisma, typeorm, mongoose) [prisma]: prisma
230
+ [?] Activer l'authentification JWT ? (Y/n): y
231
+ [INFO] Auth active : ajout automatique de l'entite User
232
+ [?] Activer Swagger pour la documentation API ? (Y/n): y
233
+ [?] Generer les fichiers Docker ? (Y/n): y
234
+
235
+ [INFO] Configuration PostgreSQL
236
+ Utilisateur PostgreSQL [postgres]:
237
+ Mot de passe PostgreSQL [postgres]:
238
+ Nom de la base [mon-api]:
239
+ Hote PostgreSQL [localhost]:
240
+ Port PostgreSQL [5432]:
241
+
242
+ [?] Voulez-vous ajouter des entites supplementaires ? (Y/n): n
243
+
244
+ [INFO] Demarrage de la generation du projet...
245
+ ```
246
+
247
+ ### Mode FULL Interactif
248
+
249
+ Le mode FULL est toujours interactif pour vous donner un controle total sur la configuration.
250
+
251
+ **Exemple :**
252
+
253
+ ```bash
254
+ nestcraftx new mon-projet
255
+
256
+ [MODE FULL] Configuration complete avec Clean Architecture
257
+
258
+ [?] Nom du projet : mon-projet
259
+ [?] Base de donnees (postgresql, mongodb) [postgresql]: postgresql
260
+
261
+ [INFO] Configuration PostgreSQL
262
+ Utilisateur PostgreSQL [postgres]:
263
+ Mot de passe PostgreSQL [postgres]:
264
+ ...
265
+
266
+ [?] ORM pour PostgreSQL (prisma, typeorm) [prisma]: prisma
267
+ [?] Utiliser Yarn ? (Y/n): n
268
+ [?] Generer fichiers Docker ? (Y/n): y
269
+ [?] Ajouter authentification JWT ? (Y/n): y
270
+ [?] Installer Swagger ? (Y/n): y
271
+
272
+ [INFO] Configuration Swagger
273
+ Titre API [mon-projet API]:
274
+ Description [API generated by NestCraftX]:
275
+ Version [1.0.0]:
276
+ Endpoint [api/docs]:
277
+
278
+ [INFO] Saisie des entites (Mode FULL - Architecture complete)
279
+ [?] Ajouter une entite ? (Y/n): y
280
+ Nom de l'entite : post
281
+ Champs pour "post" :
282
+ Nom du champ (vide pour terminer) : title
283
+ Type de "title" (string, number, boolean, Date, enum) : string
284
+ Nom du champ (vide pour terminer) : content
285
+ Type de "content" (string, number, boolean, Date, enum) : string
286
+ Nom du champ (vide pour terminer) :
287
+
288
+ [✓] Entite "post" ajoutee avec 2 champ(s)
289
+ [?] Ajouter une autre entite ? (Y/n): n
290
+ [?] Ajouter des relations entre entites ? (Y/n): n
291
+ ```
292
+
293
+ ## Apres la creation
294
+
295
+ ```bash
296
+ cd mon-projet
297
+ npm run start:dev
298
+ ```
299
+
300
+ Si Swagger est active :
301
+
302
+ ```
303
+ http://localhost:3000/api/docs
304
+ ```
305
+
306
+ ## Autres commandes
307
+
308
+ ### Verifier l'environnement
309
+
310
+ ```bash
311
+ nestcraftx test
312
+ ```
313
+
314
+ ### Informations CLI
315
+
316
+ ```bash
317
+ nestcraftx info
318
+ ```
319
+
320
+ ### Aide
321
+
322
+ ```bash
323
+ nestcraftx --help
324
+ ```
325
+
326
+ ## Notes importantes
327
+
328
+ - Les secrets JWT sont auto-generes de maniere securisee (64 caracteres)
329
+ - DATABASE_URL est automatiquement construit selon l'ORM choisi
330
+ - Docker est active par defaut en mode LIGHT
331
+ - Le mode FULL necessite une configuration interactive si aucune option n'est fournie