Skip to content

Latest commit

 

History

History
261 lines (203 loc) · 15.6 KB

File metadata and controls

261 lines (203 loc) · 15.6 KB

✅ NestCraftX — Suivi de Progression vers v1.0

Fichier de check indépendant — le roadmap complet est dans AUDIT_ROADMAP.md Ne jamais modifier AUDIT_ROADMAP.md — il est la référence figée de l'audit.


📊 Tableau de bord

Phase Statut Tickets Complétés Progression
Phase 0 — Stabilisation (v0.3.0) ✅ Terminé 17 17 100%
Phase 1 — Refactorisation (v0.4.0) ✅ Terminé 18 18 100%
Phase 2 — Qualité & Sécurité (v0.5.0) ✅ Terminé 11 11 100%
Phase 3 — Tests & CI/CD (v0.6.0) ✅ Terminé 15 15 100%
Phase 4 — Features (v0.7–0.9) ✅ Terminé 12 12 100%
Phase 5 — Documentation (v0.9.x) ✅ Terminé 7 7 100%
Phase 6 — Release v1.0 ✅ Terminé 7 7 100%
TOTAL (v1.0) 87 87 100%

Mis à jour : 2026-06-29


🔴 PHASE 0 — Stabilisation d'urgence (v0.3.0)

Objectif : Zéro crash, zéro bug bloquant

0A — Crash & Stabilité (priorité maximale)

Ticket Description Fichier(s) Statut Date
PROD-03 Refactoriser runCommand : ajouter { critical: boolean } utils/shell.js ✅ Terminé 2026-06-05
PROD-01a Dégradation gracieuse si prisma format échoue utils/setups/setupPrisma.js ✅ Terminé 2026-06-05
PROD-01b Capitalisation modèles Prisma (capitalize(from/to)) utils/setups/setupPrisma.js ✅ Terminé 2026-06-05
PROD-01c Déduplication FK dans le 2e pass des relations utils/setups/setupPrisma.js ✅ Terminé 2026-06-05
BUG-09 forEach asyncfor...of dans setupCleanArchitecture utils/configs/setupCleanArchitecture.js ✅ Terminé 2026-06-05
BUG-01 Unifier module system ESM/CJS (utils.js + userInput.js) utils/utils.js, utils/userInput.js ✅ Terminé 2026-06-06

0B — Comportement incorrect

Ticket Description Fichier(s) Statut Date
BUG-03 Fixer logique hasAllLightModeFlags / hasAllFullModeFlags commands/new.js ✅ Terminé 2026-06-06
BUG-06 setupAuth : utiliser inputs.packageManager (pas npm hardcodé) utils/setups/setupAuth.js ✅ Terminé 2026-06-06
BUG-07 setupMongoose : ne plus écraser le .env complet utils/setups/setupMongoose.js ✅ Terminé 2026-06-07
BUG-04 createFile : vraiment ne pas écraser quand overwrite: false utils/userInput.js ✅ Terminé 2026-06-07
BUG-08 Corriger regex AppModule dans safeUpdateAppModule utils/userInput.js ✅ Terminé 2026-06-07

0C — Nettoyage immédiat

Ticket Description Fichier(s) Statut Date
BUG-12 help.js : version dynamique depuis package.json commands/help.js ✅ Terminé 2026-06-07
MP-07a Supprimer code mort dans cliParser.js (45 lignes) utils/cliParser.js ✅ Terminé 2026-06-07
MP-07b Supprimer code mort dans setupPrisma.js (44 lignes) utils/setups/setupPrisma.js ✅ Terminé 2026-06-07
BUG-02 handleAuthGeneration : implémenter ou message clair commands/generate.js ✅ Terminé 2026-06-07
BUG-11 Retirer console.log debug du RolesGuard généré utils/setups/setupAuth.js ✅ Terminé 2026-06-07
BUG-12b Corriger commentaire PostMapper hardcodé dans mapper généré utils/utils.js ✅ Terminé 2026-06-07

🟠 PHASE 1 — Refactorisation Architecture (v0.4.0)

Objectif : Code maintenable, testable, sans duplication

1A — Découpage des gros fichiers

Ticket Description Fichier(s) Statut Date
MP-01a Extraire generators/entity.generator.js depuis utils.js utils/utils.js ✅ Terminé 2026-06-07
MP-01b Extraire generators/dto.generator.js depuis utils.js utils/utils.js ✅ Terminé 2026-06-07
MP-01c Extraire generators/controller.generator.js depuis utils.js utils/utils.js ✅ Terminé 2026-06-07
MP-01d Extraire generators/mapper.generator.js depuis utils.js utils/utils.js ✅ Terminé 2026-06-07
MP-01e Extraire generators/service.generator.js depuis utils.js utils/utils.js ✅ Terminé 2026-06-07
MP-01f Extraire utils/helpers.js (capitalize, decapitalize, pluralize) utils/utils.js ✅ Terminé 2026-06-07
MP-07c Éclater userInput.jsutils/file-system.js utils/userInput.js ✅ Terminé 2026-06-07
MP-07d Éclater userInput.jsutils/app-module.updater.js utils/userInput.js ✅ Terminé 2026-06-07
MP-03 Supprimer generateDtox (doublon de generateDto) utils/utils.js ✅ Terminé 2026-06-07

1B — Refonte du flow d'input entités (PROD-04 + PROD-05)

Ticket Description Fichier(s) Statut Date
PROD-04a Étendre modèle de champ : unique, nullable, default utils/fullModeInput.js, utils/lightModeInput.js ✅ Terminé 2026-06-14
PROD-05 Écran de révision d'entité (modifier, supprimer, renommer) utils/fullModeInput.js, utils/lightModeInput.js ✅ Terminé 2026-06-14
PROD-04b Refonte state-based : EntityBuilder navigable utils/fullModeInput.js ✅ Terminé 2026-06-14
MP-02 Dédupliquer addCustomEntities et addRelations utils/fullModeInput.js, utils/lightModeInput.js ✅ Terminé 2026-06-14

1C — Architecture générale

Ticket Description Fichier(s) Statut Date
MA-05 Extraire flow commun demo.js → partager avec new.js commands/demo.js, commands/new.js ✅ Terminé 2026-06-16
MP-04 Remplacer execSync par execa avec timeout utils/shell.js ✅ Terminé 2026-06-16
MA-01 Mécanisme de rapport final (accumuler warnings, afficher en bloc) utils/shell.js, commands/new.js ✅ Terminé 2026-06-16
MA-02 Isoler process.chdir — vérifier CWD avant chaque I/O utils/setups/projectSetup.js ✅ Terminé 2026-06-16
DRY-01 Ajouter --dry-run flag (simuler sans écrire) bin/nestcraft.js, commands/new.js ✅ Terminé 2026-06-16

🟠 PHASE 2 — Qualité & Sécurité (v0.5.0)

Objectif : Code généré sécurisé et professionnel

2A — Sécurité du code généré

Ticket Description Fichier(s) Statut Date
MP-17 resetPassword : stocker et valider le token (table DB / Redis) utils/setups/setupAuth.js ✅ Terminé 2026-06-16
MP-16 OTPs : utiliser DB ou Redis au lieu de Map en mémoire utils/setups/setupAuth.js ✅ Terminé 2026-06-16
MA-06 Pinning versions dépendances générées (ranges semver stricts) utils/setups/*.js ✅ Terminé 2026-06-16

2B — Descriptions Swagger (PROD-02)

Ticket Description Fichier(s) Statut Date
PROD-02a Système de descriptions sémantiques par catégorie de champ utils/generators/application/dtoGenerator.js ✅ Terminé 2026-06-16
PROD-02b Description manuelle optionnelle dans getFullModeInputs utils/interactive/entityBuilder.js ✅ Terminé 2026-06-16
PROD-02c Description contextuelle Create vs Update DTO utils/generators/application/dtoGenerator.js ✅ Terminé 2026-06-16

2C — Corrections qualité

Ticket Description Fichier(s) Statut Date
BUG-18 Corriger condition De Morgan dans cleanModuleGenerator utils/generators/cleanModuleGenerator.js ✅ Terminé 2026-06-16
MP-09 Corriger détection ORM dans generateConf (ordre priorité) commands/generateConf.js ✅ Terminé 2026-06-16
MP-13 JWT vars conditionnelles à useAuth dans envGenerator utils/envGenerator.js ✅ Terminé 2026-06-16
MP-10 Supporter mode LIGHT sans nom en argument dans new.js commands/new.js ✅ Terminé 2026-06-16
MA-09 Timeout 5 min sur npm install dans runCommand utils/shell.js ✅ Terminé 2026-06-16

🟡 PHASE 3 — Tests & CI/CD (v0.6.0)

Objectif : Zéro régression possible sur chaque PR

3A — Tests unitaires (Jest)

Ticket Description Statut Date
TEST-01 generateDto() — output TypeScript valide pour chaque ORM ✅ Terminé 2026-06-16
TEST-02 generateEntityFileContent() — structure domaine correcte ✅ Terminé 2026-06-16
TEST-03 generateController() — routes, guards, decorators ✅ Terminé 2026-06-16
TEST-04 mapTypeToPrisma() — tous les types ✅ Terminé 2026-06-16
TEST-05 mapTypeToMongoose() — tous les types ✅ Terminé 2026-06-16
TEST-06 Schema Prisma relations 1-n (FK, inverse, capitalisation) ✅ Terminé 2026-06-16
TEST-07 Schema Prisma relations n-n et 1-1 ✅ Terminé 2026-06-16
TEST-08 CLI Parser — tous les cas de flags ✅ Terminé 2026-06-16
TEST-09 safeUpdateAppModule — différents états app.module.ts ✅ Terminé 2026-06-16

3B — Tests d'intégration E2E

Ticket Description Statut Date
E2E-01 Générer test-full-prismatsc --noEmit passe ✅ Terminé 2026-06-16
E2E-02 Générer test-full-typeormtsc --noEmit passe ✅ Terminé 2026-06-16
E2E-03 Générer test-full-mongoosetsc --noEmit passe ✅ Terminé 2026-06-16
E2E-04 Générer test-light-prismatsc --noEmit passe ✅ Terminé 2026-06-16
E2E-05 Générer avec auth → auth.module.ts correctement câblé ✅ Terminé 2026-06-16
E2E-06 Générer avec relations 1-n → schema Prisma valide ✅ Terminé 2026-06-16
E2E-07 Test résilience PROD-03 : erreur migration → reste généré ✅ Terminé 2026-06-16

3C — CI/CD

Ticket Description Statut Date
CI-01 ESLint sur chaque PR ✅ Terminé 2026-06-16
CI-02 Tests Node 18, 20, 22 LTS (matrix) ✅ Terminé 2026-06-16
CI-03 Génération sur Ubuntu + Windows (matrix) ✅ Terminé 2026-06-16
CI-04 Semantic Release automatique ✅ Terminé 2026-06-16
CI-05 Publish automatique sur npm ✅ Terminé 2026-06-16

🟡 PHASE 4 — Features Manquantes (v0.7.0–v0.9.0)

Objectif : Être feature-complete avant la v1.0

4A — Features CLI

Ticket Description Statut Date
FEAT-01 nestcraftx g auth — implémenter complètement ✅ Terminé 2026-06-18
FEAT-02 Mode non-interactif complet (tous les flags) ✅ Terminé 2026-06-18
FEAT-03 nestcraftx update — auto-update de la CLI ⏸️ Post-v1.0
FEAT-04 nestcraftx list — lister entités depuis .nestcraftxrc ✅ Terminé 2026-06-18
FEAT-05 Support pnpm ✅ Terminé 2026-06-18

4B — Qualité du code généré

Ticket Description Statut Date
FEAT-06 Pagination GET all (?page=1&limit=10) ✅ Terminé 2026-06-29
FEAT-07 Filtering & Sorting query params ✅ Terminé 2026-06-29
FEAT-08 Rate limiting global (@nestjs/throttler) ✅ Terminé 2026-07-02
FEAT-09 Health check endpoint (/health) ✅ Terminé 2026-07-02
FEAT-10 Exception filter global typé ✅ Terminé 2026-06-29
FEAT-11 Guards RBAC conditionnels sur endpoints ✅ Terminé 2026-07-01
FEAT-12 Support MySQL/SQLite (Prisma/TypeORM) ⏸️ Post-v1.0

4C — Expérience développeur

Ticket Description Statut Date
FEAT-13 Templates personnalisés depuis GitHub ⏸️ Post-v1.0
FEAT-14 nestcraftx g relation — relation entre modules existants ✅ Terminé 2026-07-02
FEAT-15 Rapport de génération en fin de commande ✅ Terminé 2026-07-02

🟢 PHASE 5 — Documentation & Site Web (v0.9.x)

Objectif : Site officiel avant la v1.0

Ticket Description Statut Date
DOC-01 Créer site Docusaurus/VitePress (nestcraftx.dev) ✅ Terminé 2026-07-02
DOC-02 Page Getting Started (5 minutes) ✅ Terminé 2026-07-02
DOC-03 CLI Reference (toutes les commandes et flags) ✅ Terminé 2026-07-02
DOC-04 Architecture Guide (Clean Arch générée) ✅ Terminé 2026-07-02
DOC-05 ORM Guide (Prisma vs TypeORM vs Mongoose) ✅ Terminé 2026-07-02
DOC-06 Auth Deep Dive (JWT, guards, roles) ✅ Terminé 2026-07-02
DOC-07 Troubleshooting & Migration Guide (0.2.x → 1.0) ✅ Terminé 2026-07-02
DOC-08 Playground interactif dans le navigateur ⏸️ Post-v1.0

🟢 PHASE 6 — Release v1.0 stable

Ticket Description Statut Date
REL-01 Audit de sécurité final ✅ Terminé 2026-07-02
REL-02 Test complet Windows + macOS + Linux ✅ Terminé 2026-07-02
REL-03 Revue de toutes les sorties CLI ✅ Terminé 2026-07-02
REL-04 README mis à jour avec badges CI ✅ Terminé 2026-07-02
REL-05 CHANGELOG complet depuis v0.2.6 ✅ Terminé 2026-07-02
REL-06 Publication npm avec tag @stable ✅ Terminé 2026-07-02
REL-07 Annonce GitHub Release avec notes détaillées ✅ Terminé 2026-07-02

📝 Journal des changements

| 2026-06-05 | 0.2.6 | — | Audit initial + retours prod intégrés | | 2026-06-05 | 0.3.0-wip | PROD-03, PROD-01a, PROD-01b, PROD-01c, BUG-09 | runCommand refactorisé (PROD-03). Prisma relations : capitalisation forcée des modèles et types, déduplication complète des clés étrangères (PROD-01a, b, c). Correction de la boucle asynchrone des use cases clean architecture (BUG-09). | | 2026-06-06 | 0.3.0-wip | BUG-01, BUG-03, BUG-06 | Unification du module system en CommonJS (BUG-01). Validation non-interactive des flags (BUG-03). Utilisation de inputs.packageManager dynamique dans setupAuth.js au lieu de npm en dur (BUG-06). | | 2026-06-07 | 0.3.0 | BUG-07, BUG-04, BUG-08, BUG-12, MP-07a, MP-07b, BUG-02, BUG-11, BUG-12b | Clôture de la Phase 0. Mongoose .env préservé. createFile supporte overwrite. safeUpdateAppModule robuste aux crochets imbriqués. help.js dynamic. Nettoyage de code mort et debug logs. | | 2026-06-14 | 0.3.0-wip | PROD-04a, PROD-04b, PROD-05, MP-02 | Refonte state-based interactive de la saisie d'entités avec EntityBuilder. Support des contraintes unique, nullable et valeurs par défaut. Alignement et déduplication des générateurs (Prisma, TypeORM, Mongoose, DTOs, et Domain Entities). | | 2026-06-16 | 0.6.0 | TEST-01..09, E2E-01..07, CI-01..05 | Clôture de la Phase 3. Ajout de 26 tests unitaires Jest, tests d'intégration E2E vérifiant la compilation TypeScript sans erreur des projets générés (Prisma/TypeORM/Mongoose) et pipeline GitHub Actions (Ubuntu/Windows). | | 2026-06-18 | 0.7.0 | FEAT-01, FEAT-02, FEAT-04, FEAT-05 | Clôture des tickets CLI de la Phase 4. Implémentation complète de nestcraftx g auth (multi-ORM, secrets JWT et migrations), mode de génération non-interactif robuste via CLI flags, commande nestcraftx list avec tableaux ASCII, et support complet multi-package manager (pnpm, yarn). |


🔑 Légende des statuts

Icône Signification
⬜ À faire Ticket non démarré
🔵 En cours Travail en cours
✅ Terminé Ticket complété et validé
❌ Annulé Ticket annulé (avec raison dans Notes)
⏸️ Bloqué En attente d'un autre ticket

Ce fichier est mis à jour manuellement à chaque session de travail. Pour le détail technique de chaque ticket, voir AUDIT_ROADMAP.md