1adb6820dd
refactor: fix bugs et réduire duplication + extraire modales BrowseComponent
...
- fix(dto): ajouter @IsEmail() sur contactFunctionalEmail/TechnicalEmail dans UpdateApiEntryDto
- fix(docs): corriger stringify des erreurs (String(error) → error.message)
- refactor(mapper): extraire toApiEntryListItem() dans api-entry.mapper.ts partagé
- refactor(categories): supprimer CONVENTION_LABELS et toApiEntryListItem locaux dupliqués
- refactor(browse): extraire CategoryFormModalComponent et CategoryDeleteModalComponent
- refactor(api-detail): convertir editPreviewTitle() en computed()
Generated with [Claude Code](https://claude.ai/code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: Happy <yesreply@happy.engineering >
2026-06-11 15:10:38 +00:00
1e68ceb211
fix(docs-generation): utiliser @asyncapi/generator en API programmatique
...
Remplace execFile('asyncapi') par l'API Node.js directe — aucun appel
réseau vers registry.npmjs.org, template résolu depuis node_modules local.
Generated with [Claude Code](https://claude.ai/code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: Happy <yesreply@happy.engineering >
2026-05-29 14:16:52 +00:00
67609231d9
fix(docs-generation): utiliser le chemin local du template asyncapi
...
Passer le chemin absolu node_modules/@asyncapi/html-template au lieu
du nom de package — bypasse la vérification registry.npmjs.org.
Generated with [Claude Code](https://claude.ai/code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: Happy <yesreply@happy.engineering >
2026-05-29 14:02:30 +00:00
90eab514b2
fix(docs-generation): pré-installer @asyncapi/html-template sans accès npm
...
- Ajout @asyncapi/html-template@3.5.6 en dépendance locale
- Suppression du flag --install (template trouvé dans node_modules)
- Évite l'appel réseau vers registry.npmjs.org lors de la génération
Generated with [Claude Code](https://claude.ai/code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: Happy <yesreply@happy.engineering >
2026-05-29 13:52:02 +00:00
f27542e71f
fix: injecter node_modules/.bin dans le PATH des CLIs de génération
...
execFileAsync ne voit pas node_modules/.bin par défaut — on l'ajoute
explicitement à l'env du process enfant pour asyncapi et redocly.
Fonctionne aussi bien en local qu'en Docker (priorité locale, fallback global).
Generated with [Claude Code](https://claude.ai/code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: Happy <yesreply@happy.engineering >
2026-05-29 13:22:30 +00:00
235e8053d1
fix: compatibilité Windows pour la génération de docs
...
- execFileAsync avec shell:true pour trouver asyncapi.cmd/redocly.cmd sur Windows
- DOCS_OUTPUT_DIR par défaut ./docs-output (cross-platform) au lieu de /app/docs-output
Generated with [Claude Code](https://claude.ai/code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: Happy <yesreply@happy.engineering >
2026-05-22 15:22:07 +00:00
921a6e652b
feat: initial scaffold — MVP catalogue de données d'API
...
- Backend NestJS : CRUD api_entries + categories, upload YAML multi-fichiers,
génération docs AsyncAPI (@asyncapi/cli@6.0.0) et OpenAPI (redocly)
- Fix: route wildcard GET /api/apis/:id/*path pour servir les assets statiques
(CSS/JS) générés par AsyncAPI HTML template (contournement bug path-to-regexp v8)
- Frontend Angular 19 : pages catalog, browse, api-detail, doc-viewer, upload (DSFR)
- Seeder de données de démo (idempotent)
- Docker Compose dev + Dockerfiles + manifests K8s
- Documentation : README, architecture, référence API REST
Generated with [Claude Code](https://claude.ai/code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: Happy <yesreply@happy.engineering >
2026-05-22 08:42:54 +00:00