docstodev 2.0.0 → 2.0.1
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/docs/docs-to-dev.md +47 -62
- package/docs/report.html +3 -3
- package/docs/summary.md +1 -1
- package/package.json +2 -2
- package/src/cli/index.ts +8 -7
package/docs/docs-to-dev.md
CHANGED
|
@@ -1,85 +1,70 @@
|
|
|
1
1
|
# Rapport Technique DocsToDev
|
|
2
2
|
|
|
3
|
-
> 📅 Généré le : vendredi 9 janvier 2026 à 09:
|
|
3
|
+
> 📅 Généré le : vendredi 9 janvier 2026 à 09:22
|
|
4
4
|
> 📊 7 fichiers analysés • 15 dépendances identifiées
|
|
5
5
|
|
|
6
6
|
## 💡 Analyse Intelligente
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
## 1.
|
|
9
9
|
|
|
10
10
|
**`But` du `Projet`**
|
|
11
|
-
`Le` projet `DocsToDev`
|
|
11
|
+
`Le` projet `DocsToDev` vise à analyser des données techniques brutes et à les transformer en documentation métier claire et structurée.
|
|
12
12
|
|
|
13
|
-
`Il`
|
|
13
|
+
`Il` résout les problèmes de compréhension et d'analyse de données techniques complexes pour les développeurs et les équipes de développement.
|
|
14
14
|
|
|
15
|
-
`Le`
|
|
15
|
+
`Le` public cible de ce projet inclut les développeurs, les architectes logiciels, et les équipes de développement qui cherchent à améliorer la qualité et la compréhension de leurs projets logiciels.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
## 2.
|
|
18
18
|
|
|
19
19
|
**`Design` `System` Détecté**
|
|
20
|
-
`Le`
|
|
21
|
-
- **`Palette` de couleurs** : `Les` couleurs
|
|
20
|
+
`Le` design system détecté dans le projet inclut :
|
|
21
|
+
- **`Palette` de couleurs** : `Les` couleurs primaires et secondaires utilisées dans le projet ne sont pas explicitement définies dans les extraits de code fournis, mais il est mentionné que la palette de couleurs fait partie de l'analyse du design system.
|
|
22
22
|
|
|
23
|
-
- **`Typographie`** : `
|
|
23
|
+
- **`Typographie`** : `Les` polices utilisées ne sont pas spécifiquement mentionnées dans les extraits de code fournis.
|
|
24
24
|
|
|
25
|
-
- **`Patterns` de composants** : `Les` patterns de composants
|
|
25
|
+
- **`Patterns` de composants** : `Les` patterns de composants, tels que les cartes, les modales, les formulaires, etc., sont détectés et documentés dans le projet.
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
## 3.
|
|
28
28
|
|
|
29
29
|
**⚠️ `Risques` `Identifi`és**
|
|
30
|
-
`Les` risques potentiels
|
|
31
|
-
- 🔴 **`Critique`** :
|
|
30
|
+
`Les` risques potentiels identifiés dans le projet sont classés par niveau :
|
|
31
|
+
- 🔴 **`Critique`** :
|
|
32
|
+
- `La` sécurité du projet pourrait être compromise si les clés API comme `GROQ_API_KEY` ne sont pas sécurisées correctement.
|
|
32
33
|
|
|
33
|
-
|
|
34
|
+
- L'architecture du projet pourrait être affectée par la complexité et la maintenance des fichiers et des dépendances.
|
|
34
35
|
|
|
35
|
-
- 🟡 **`Moyen`** :
|
|
36
|
+
- 🟡 **`Moyen`** :
|
|
37
|
+
- `La` dette technique et les performances du projet pourraient être impactées par la complexité croissante des analyses et des exports.
|
|
36
38
|
|
|
37
|
-
|
|
39
|
+
- 🟢 **`Faible`** :
|
|
40
|
+
- `Les` améliorations mineures pourraient inclure la optimisation des requêtes, la mise à jour des dépendances, et la réduction de la duplication de code.
|
|
38
41
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
### 4.
|
|
42
|
+
## 4.
|
|
42
43
|
|
|
43
44
|
**💡 `Recommandations`**
|
|
44
|
-
`
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
**`Refactoring`** : `Simplifier` et modulariser le code complexe pour améliorer la lisibilité et la maintenabilité.
|
|
48
|
-
|
|
49
|
-
2.
|
|
50
|
-
|
|
51
|
-
**`Optimisations`** : `Utiliser` des techniques d'optimisation pour améliorer les performances, comme la mise en cache des résultats d'analyse ou l'utilisation de workers pour les tâches longues.
|
|
52
|
-
|
|
53
|
-
3.
|
|
45
|
+
`Les` actions concrètes pour améliorer le projet sont :
|
|
46
|
+
- **`Refactoring`** : Réorganiser le code pour améliorer la lisibilité et la maintainabilité.
|
|
54
47
|
|
|
55
|
-
|
|
48
|
+
- **`Optimisations`** : `Optimiser` les performances en utilisant des méthodes plus efficaces pour les analyses et les exports.
|
|
56
49
|
|
|
57
|
-
|
|
50
|
+
- **`Bonnes` pratiques** : `Adopter` des bonnes pratiques de développement telles que les tests unitaires et d'intégration, et la mise à jour régulière des dépendances.
|
|
58
51
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
5.
|
|
62
|
-
|
|
63
|
-
**`Documentation`** : `Maintenir` une documentation claire et à jour sur l'architecture, les APIs, et les bonnes pratiques de développement pour faciliter la contribution et la maintenance.
|
|
64
|
-
|
|
65
|
-
### 5.
|
|
52
|
+
## 5.
|
|
66
53
|
|
|
67
54
|
**`Analyse` Détaillée des `Fichiers`**
|
|
68
|
-
- **`src/ai/`analyzer.ts`** : `Ce` fichier
|
|
55
|
+
- **`src/ai/`analyzer.ts`** : `Ce` fichier contient les fonctions d'analyse de l'IA, notamment `askAI` et `askAIDetailed`, qui analysent les données techniques et retournent des résultats détaillés.
|
|
69
56
|
|
|
70
|
-
`
|
|
57
|
+
- **`src/analyzers/`languageAnalyzer`.ts`** : `Ce` fichier contient les classes et les fonctions d'analyse de langage, notamment `TSJSAnalyzer`, qui analyse les fichiers de code et retourne des informations sur les exports, les imports, les fonctions, les classes, etc.
|
|
71
58
|
|
|
72
|
-
- **`src/cache/`cacheManager`.ts`** :
|
|
59
|
+
- **`src/cache/`cacheManager`.ts`** : `Ce` fichier contient la classe `CacheManager`, qui gère le cache des analyses pour améliorer les performances.
|
|
73
60
|
|
|
74
|
-
- **`src/
|
|
61
|
+
- **`src/cli/`index.ts`** : `Ce` fichier contient le point d'entrée de la ligne de commande, qui utilise les commandes pour exécuter les analyses et générer les rapports.
|
|
75
62
|
|
|
76
|
-
- **`src/
|
|
63
|
+
- **`src/commands/`generateSummary`.ts`** : `Ce` fichier contient la fonction `generateSummary`, qui génère un résumé du projet en fonction des données d'analyse.
|
|
77
64
|
|
|
78
|
-
- **`src/commands/`
|
|
65
|
+
- **`src/commands/`run.ts`** : `Ce` fichier contient la fonction `runCommand`, qui exécute les analyses et génère les rapports en fonction des options de la ligne de commande.
|
|
79
66
|
|
|
80
|
-
- **`src/
|
|
81
|
-
|
|
82
|
-
- **`src/exporters/`html.ts`** : `Exporte` le rapport d'analyse au format HTML, permettant une visualisation facile des résultats dans un navigateur web.
|
|
67
|
+
- **`src/exporters/`html.ts`** : `Ce` fichier contient la fonction `exportToHTML`, qui exporte les résultats des analyses en format HTML.
|
|
83
68
|
|
|
84
69
|
## 📂 Architecture du projet
|
|
85
70
|
|
|
@@ -110,6 +95,20 @@
|
|
|
110
95
|
|
|
111
96
|
---
|
|
112
97
|
|
|
98
|
+
### 📄 [`src/analyzers/languageAnalyzer.ts`](../src/analyzers/languageAnalyzer.ts)
|
|
99
|
+
|
|
100
|
+
**Complexité et maintenance** : 580 lignes • 🟠 Élevée (270)
|
|
101
|
+
|
|
102
|
+
**Fonctions** : `getAnalyzer()`, `getSupportedExtensions()`, `isExplicitlySupported()`
|
|
103
|
+
|
|
104
|
+
**Classes** : `TSJSAnalyzer`, `PythonAnalyzer`, `JavaAnalyzer`, `CSharpAnalyzer`, `GoAnalyzer`, `RustAnalyzer`, `HTMLAnalyzer`, `CSSAnalyzer`, `PHPAnalyzer`, `RubyAnalyzer`, `SQLAnalyzer`, `DefaultAnalyzer`
|
|
105
|
+
|
|
106
|
+
**Types/Interfaces** : `LanguageAnalyzer`, `FileAnalysisResult`
|
|
107
|
+
|
|
108
|
+
**Exports publics** : `LanguageAnalyzer`, `FileAnalysisResult`, `getAnalyzer`, `getSupportedExtensions`, `isExplicitlySupported`
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
113
112
|
### 📄 [`src/cache/cacheManager.ts`](../src/cache/cacheManager.ts)
|
|
114
113
|
|
|
115
114
|
**Complexité et maintenance** : 179 lignes • 🟢 Faible (36)
|
|
@@ -128,23 +127,9 @@
|
|
|
128
127
|
|
|
129
128
|
---
|
|
130
129
|
|
|
131
|
-
### 📄 [`src/analyzers/languageAnalyzer.ts`](../src/analyzers/languageAnalyzer.ts)
|
|
132
|
-
|
|
133
|
-
**Complexité et maintenance** : 580 lignes • 🟠 Élevée (270)
|
|
134
|
-
|
|
135
|
-
**Fonctions** : `getAnalyzer()`, `getSupportedExtensions()`, `isExplicitlySupported()`
|
|
136
|
-
|
|
137
|
-
**Classes** : `TSJSAnalyzer`, `PythonAnalyzer`, `JavaAnalyzer`, `CSharpAnalyzer`, `GoAnalyzer`, `RustAnalyzer`, `HTMLAnalyzer`, `CSSAnalyzer`, `PHPAnalyzer`, `RubyAnalyzer`, `SQLAnalyzer`, `DefaultAnalyzer`
|
|
138
|
-
|
|
139
|
-
**Types/Interfaces** : `LanguageAnalyzer`, `FileAnalysisResult`
|
|
140
|
-
|
|
141
|
-
**Exports publics** : `LanguageAnalyzer`, `FileAnalysisResult`, `getAnalyzer`, `getSupportedExtensions`, `isExplicitlySupported`
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
130
|
### 📄 [`src/cli/index.ts`](../src/cli/index.ts)
|
|
146
131
|
|
|
147
|
-
**Complexité et maintenance** :
|
|
132
|
+
**Complexité et maintenance** : 355 lignes • 🟡 Modérée (77)
|
|
148
133
|
|
|
149
134
|
**Fonctions** : `typeWriter()`, `showBanner()`, `selectLanguage()`, `showTransition()`
|
|
150
135
|
|
package/docs/report.html
CHANGED
|
@@ -541,8 +541,8 @@ graph TD
|
|
|
541
541
|
node1["📄 package.json"]:::configStyle
|
|
542
542
|
node2["📄 tsconfig.json"]:::configStyle
|
|
543
543
|
node3["📄 srcaianalyzer.ts"]:::tsStyle
|
|
544
|
-
node4["📄
|
|
545
|
-
node5["📄
|
|
544
|
+
node4["📄 srcanalyzerslanguageAnalyzer.ts"]:::tsStyle
|
|
545
|
+
node5["📄 srccachecacheManager.ts"]:::tsStyle
|
|
546
546
|
node6["📄 srccliindex.ts"]:::tsStyle
|
|
547
547
|
node7["📄 srccommandsgenerateSummary.ts"]:::tsStyle
|
|
548
548
|
node8["📄 srccommandsrun.ts"]:::tsStyle
|
|
@@ -582,7 +582,7 @@ graph LR
|
|
|
582
582
|
</div>
|
|
583
583
|
</div>
|
|
584
584
|
|
|
585
|
-
<div id="content-area"><h1>Rapport Technique DocsToDev</h1><p>> 📅 Généré le : vendredi 9 janvier 2026 à 09:13</p><p>> 📊 7 fichiers analysés • 15 dépendances identifiées</p><h2>💡 Analyse Intelligente</h2><section class="component"><h3>1.</h3><p><code>But</code> du <code>Projet</code></p><p><code>Le</code> projet <code>DocsToDev</code> est conçu pour analyser et documenter des projets logiciels de manière automatique.</p><p><code>Il</code> utilise l'intelligence artificielle pour comprendre la structure, les dépendances et la complexité du code, puis génère une documentation claire et lisible.</p><p><code>Le</code> but principal est de faciliter la compréhension et la maintenance des projets logiciels en fournissant une vue d'ensemble détaillée de leur architecture, de leurs composants et de leurs interactions.</p></section><section class="component"><h3>2.</h3><p><code>Design</code> <code>System</code> Détecté</p><p><code>Le</code> projet semble utiliser un design system personnalisé, avec les éléments suivants détectés :</p><div class="list-item"><code>Palette</code> de couleurs : <code>Les</code> couleurs spécifiques utilisées ne sont pas explicitement définies dans les extraits de code fournis, mais il est mentionné que l'analyse peut inclure la détection de la palette de couleurs (<code>primaryColors</code>) dans le design system.</div><div class="list-item"><code>Typographie</code> : <code>Il</code> n'y a pas d'informations spécifiques sur les polices utilisées, mais l'analyse du code peut inclure la détection de la typographie utilisée dans le projet.</div><div class="list-item"><code>Patterns</code> de composants : <code>Les</code> patterns de composants (comme les cards, les modals, les formulaires, etc.) peuvent être détectés et analysés comme partie du design system du projet.</div></section><section class="component"><h3>3.</h3><p>⚠️ <code>Risques</code> <code>Identifi</code>és</p><p><code>Les</code> risques potentiels incluent :</p><div class="list-item">🔴 <code>Critique</code> : Dépendance à des clés API externes (comme la clé GROQ_API_KEY) qui pourraient être exposées ou non sécurisées.</div><p><code>Une</code> faille de sécurité dans le stockage ou l'utilisation de ces clés pourrait compromettre la sécurité du projet.</p><div class="list-item">🟡 <code>Moyen</code> : <code>La</code> complexité du code dans certains fichiers (comme <code>languageAnalyzer</code>.ts`) pourrait rendre la maintenance difficile.</div><p><code>Il</code> est important de maintenir une dette technique faible pour assurer la facilité de modification et d'extension du code.</p><div class="list-item">🟢 <code>Faible</code> : L'utilisation de versions spécifiques de bibliothèques et frameworks pourrait nécessiter des mises à jour régulières pour garantir la compatibilité et la sécurité.</div></section><section class="component"><h3>4.</h3><p>💡 <code>Recommandations</code></p><p><code>Pour</code> améliorer le projet, les actions suivantes sont recommandées :</p><p>1.</p><p><code>Refactoring</code> : <code>Simplifier</code> et modulariser le code complexe pour améliorer la lisibilité et la maintenabilité.</p><p>2.</p><p><code>Optimisations</code> : <code>Utiliser</code> des techniques d'optimisation pour améliorer les performances, comme la mise en cache des résultats d'analyse ou l'utilisation de workers pour les tâches longues.</p><p>3.</p><p>Sécurité : <code>Mettre</code> en place des mesures de sécurité robustes pour protéger les clés API et les données sensibles, comme l'utilisation de variables d'environnement sécurisées ou de services de gestion de secrets.</p><p>4.</p><p><code>Tests</code> <code>Automatis</code>és : Développer des tests unitaires et d'intégration pour garantir la stabilité et la qualité du code.</p><p>5.</p><p><code>Documentation</code> : <code>Maintenir</code> une documentation claire et à jour sur l'architecture, les APIs, et les bonnes pratiques de développement pour faciliter la contribution et la maintenance.</p></section><section class="component"><h3>5.</h3><p><code>Analyse</code> Détaillée des <code>Fichiers</code></p><div class="tree-line">- <code>src/ai/</code>analyzer.ts<code> : </code>Ce` fichier est responsable de l'analyse intelligente du projet, utilisant des options configurables pour déterminer ce qui doit être analysé.</div><p><code>Il</code> exporte des fonctions pour demander une analyse simplifiée ou détaillée.</p><div class="tree-line">- <code>src/cache/</code>cacheManager<code>.ts</code> : Gère le système de cache pour stocker les résultats d'analyse, améliorant ainsi les performances en évitant les analyses redondantes.</div><div class="tree-line">- <code>src/analyzers/</code>languageAnalyzer<code>.ts</code> : <code>Contient</code> des analyseurs pour différents langages de programmation, permettant d'extraire des informations spécifiques à chaque langage.</div><div class="tree-line">- <code>src/cli/</code>index.ts<code> : </code>Point` d'entrée de l'interface de ligne de commande, permettant aux utilisateurs d'exécuter des commandes pour analyser des projets et générer des rapports.</div><div class="tree-line">- <code>src/commands/</code>generateSummary<code>.ts</code> : Génère un résumé du projet analysé, incluant des informations sur les fichiers, la complexité, et les langages détectés.</div><div class="tree-line">- <code>src/commands/</code>run.ts<code> : </code>Ex`écute l'analyse du projet et génère un rapport détaillé, utilisant les informations collectées par les analyseurs.</div><div class="tree-line">- <code>src/exporters/</code>html.ts<code> : </code>Exporte` le rapport d'analyse au format HTML, permettant une visualisation facile des résultats dans un navigateur web.</div></section><h2>📂 Architecture du projet</h2><p><code></code>`</p><div class="tree-line"><span class="branch">├─</span> <a href="../package-lock.json">package-lock.json</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../package.json">package.json</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/ai/analyzer.ts">src/ai/analyzer.ts</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/analyzers/languageAnalyzer.ts">src/analyzers/languageAnalyzer.ts</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/cache/cacheManager.ts">src/cache/cacheManager.ts</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/cli/index.ts">src/cli/index.ts</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/commands/generateSummary.ts">src/commands/generateSummary.ts</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/commands/run.ts">src/commands/run.ts</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/exporters/html.ts">src/exporters/html.ts</a></div><div class="tree-line"><span class="branch">└─</span> <a href="../tsconfig.json">tsconfig.json</a></div><p><code></code>`</p><h2>🔬 Analyse détaillée des composants</h2><div class="tree-line">### 📄 <a href="../src/ai/analyzer.ts"><code>src/ai/analyzer.ts</code></a></div><p>Complexité et maintenance : 289 lignes • 🟢 Faible (46)</p><p>Fonctions : <code>askAI()</code>, <code>askAIDetailed()</code>, <code>buildSystemPrompt()</code>, <code>parseAIResponse()</code></p><div class="tree-line">Types/Interfaces : <code>AIAnalysisOptions</code>, <code>AIAnalysisResult</code></div><p>Exports publics : <code>AIAnalysisOptions</code>, <code>AIAnalysisResult</code>, <code>askAI</code>, <code>askAIDetailed</code></p><p>---</p><div class="tree-line">### 📄 <a href="../src/cache/cacheManager.ts"><code>src/cache/cacheManager.ts</code></a></div><p>Complexité et maintenance : 179 lignes • 🟢 Faible (36)</p><p>Classes : <code>CacheManager</code></p><div class="tree-line">Types/Interfaces : <code>CacheEntry</code>, <code>CacheManifest</code></div><p>Exports publics : <code>CacheEntry</code>, <code>CacheManifest</code>, <code>CacheManager</code></p><p>Dépendances :</p><div class="list-item"><code>node:crypto</code> (Node.js) → utilise <code>createHash</code></div><div class="list-item"><code>node:fs</code> (Node.js) → utilise <code>readFileSync, writeFileSync, existsSync, statSync, mkdirSync</code></div><div class="list-item"><code>node:path</code> (Node.js) → utilise <code>path</code></div><p>---</p><div class="tree-line">### 📄 <a href="../src/analyzers/languageAnalyzer.ts"><code>src/analyzers/languageAnalyzer.ts</code></a></div><p>Complexité et maintenance : 580 lignes • 🟠 Élevée (270)</p><p>Fonctions : <code>getAnalyzer()</code>, <code>getSupportedExtensions()</code>, <code>isExplicitlySupported()</code></p><p>Classes : <code>TSJSAnalyzer</code>, <code>PythonAnalyzer</code>, <code>JavaAnalyzer</code>, <code>CSharpAnalyzer</code>, <code>GoAnalyzer</code>, <code>RustAnalyzer</code>, <code>HTMLAnalyzer</code>, <code>CSSAnalyzer</code>, <code>PHPAnalyzer</code>, <code>RubyAnalyzer</code>, <code>SQLAnalyzer</code>, <code>DefaultAnalyzer</code></p><div class="tree-line">Types/Interfaces : <code>LanguageAnalyzer</code>, <code>FileAnalysisResult</code></div><p>Exports publics : <code>LanguageAnalyzer</code>, <code>FileAnalysisResult</code>, <code>getAnalyzer</code>, <code>getSupportedExtensions</code>, <code>isExplicitlySupported</code></p><p>---</p><div class="tree-line">### 📄 <a href="../src/cli/index.ts"><code>src/cli/index.ts</code></a></div><p>Complexité et maintenance : 354 lignes • 🟡 Modérée (76)</p><p>Fonctions : <code>typeWriter()</code>, <code>showBanner()</code>, <code>selectLanguage()</code>, <code>showTransition()</code></p><p>Classes : <code>Spinner</code>, <code>ProgressBar</code></p><p>Dépendances :</p><div class="list-item"><code>commander</code> (NPM) → utilise <code>Command</code></div><div class="tree-line">• <code>../commands/run.js</code> (Interne) → utilise <code>runCommand</code></div><div class="tree-line">• <code>../commands/generateSummary.js</code> (Interne) → utilise <code>generateSummary</code></div><div class="tree-line">• <code>node:readline/promises</code> (Node.js) → utilise <code>readline</code></div><div class="list-item"><code>node:process</code> (Node.js) → utilise <code>stdin as input, stdout as output</code></div><div class="list-item"><code>node:path</code> (Node.js) → utilise <code>path</code></div><p>---</p><div class="tree-line">### 📄 <a href="../src/commands/generateSummary.ts"><code>src/commands/generateSummary.ts</code></a></div><p>Complexité et maintenance : 150 lignes • 🟢 Faible (27)</p><p>Fonctions : <code>generateSummary()</code></p><div class="tree-line">Types/Interfaces : <code>SummaryData</code></div><p>Exports publics : <code>generateSummary</code></p><p>Dépendances :</p><div class="list-item"><code>node:fs</code> (Node.js) → utilise <code>writeFileSync, mkdirSync</code></div><div class="list-item"><code>node:path</code> (Node.js) → utilise <code>path</code></div><p>---</p><div class="tree-line">### 📄 <a href="../src/commands/run.ts"><code>src/commands/run.ts</code></a></div><p>Complexité et maintenance : 459 lignes • 🟡 Modérée (108)</p><p>Fonctions : <code>buildTree()</code>, <code>renderTree()</code>, <code>analyzeFile()</code>, <code>getComplexityLevel()</code>, <code>formatAISummary()</code>, <code>runCommand()</code>, <code>generatePDF()</code></p><div class="tree-line">Types/Interfaces : <code>AIAnalysisOptions</code>, <code>TreeNode</code>, <code>FileAnalysis</code></div><p>Exports publics : <code>runCommand</code></p><p>Dépendances :</p><div class="list-item"><code>globby</code> (NPM) → utilise <code>globby</code></div><div class="list-item"><code>node:fs</code> (Node.js) → utilise <code>writeFileSync, readFileSync, existsSync, mkdirSync</code></div><div class="list-item"><code>node:path</code> (Node.js) → utilise <code>path</code></div><div class="list-item"><code>puppeteer</code> (NPM) → utilise <code>puppeteer</code></div><div class="tree-line">• <code>../exporters/html.js</code> (Interne) → utilise <code>exportToHTML</code></div><div class="tree-line">• <code>../ai/analyzer.js</code> (Interne) → utilise <code>askAIDetailed, type AIAnalysisOptions</code></div><div class="tree-line">• <code>../analyzers/languageAnalyzer.js</code> (Interne) → utilise <code>getAnalyzer, getSupportedExtensions</code></div><div class="tree-line">• <code>../cache/cacheManager.js</code> (Interne) → utilise <code>CacheManager</code></div><p>---</p><div class="tree-line">### 📄 <a href="../src/exporters/html.ts"><code>src/exporters/html.ts</code></a></div><p>Complexité et maintenance : 894 lignes • 🟠 Élevée (152)</p><p>Fonctions : <code>exportToHTML()</code>, <code>toggleTheme()</code>, <code>sanitizeMermaidGraph()</code>, <code>generateHierarchyGraph()</code>, <code>sanitizeLabel()</code>, <code>getFileExtension()</code>, <code>getNodeStyle()</code>, <code>traverse()</code>, <code>getDefaultHierarchyGraph()</code>, <code>generateDataFlowGraph()</code>, <code>formatRisksSection()</code>, <code>formatText()</code></p><div class="tree-line">Types/Interfaces : <code>TreeStructure</code></div><p>Exports publics : <code>exportToHTML</code></p><p>Dépendances :</p><div class="list-item"><code>node:fs</code> (Node.js) → utilise <code>writeFileSync</code></div><div class="list-item"><code>node:path</code> (Node.js) → utilise <code>path</code></div><div class="tree-line">• <code>https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs</code> (NPM) → utilise <code>mermaid</code></div><p>---</p><h2>📦 Modules externes</h2><div class="table-container"><table><tr><th>Module</th><th>Type</th><th>Occurrences</th></tr><tr><td><code>../ai/analyzer.js</code></td><td>Interne</td><td>1</td></tr><tr><td><code>../analyzers/languageAnalyzer.js</code></td><td>Interne</td><td>1</td></tr><tr><td><code>../cache/cacheManager.js</code></td><td>Interne</td><td>1</td></tr><tr><td><code>../commands/generateSummary.js</code></td><td>Interne</td><td>1</td></tr><tr><td><code>../commands/run.js</code></td><td>Interne</td><td>1</td></tr><tr><td><code>../exporters/html.js</code></td><td>Interne</td><td>1</td></tr><tr><td><code>commander</code></td><td>NPM</td><td>1</td></tr><tr><td><code>globby</code></td><td>NPM</td><td>1</td></tr><tr><td><code>https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs</code></td><td>NPM</td><td>1</td></tr><tr><td><code>node:crypto</code></td><td>Node.js</td><td>1</td></tr><tr><td><code>node:fs</code></td><td>Node.js</td><td>4</td></tr><tr><td><code>node:path</code></td><td>Node.js</td><td>5</td></tr><tr><td><code>node:process</code></td><td>Node.js</td><td>1</td></tr><tr><td><code>node:readline/promises</code></td><td>Node.js</td><td>1</td></tr><tr><td><code>puppeteer</code></td><td>NPM</td><td>1</td></tr></table></div></div>
|
|
585
|
+
<div id="content-area"><h1>Rapport Technique DocsToDev</h1><p>> 📅 Généré le : vendredi 9 janvier 2026 à 09:22</p><p>> 📊 7 fichiers analysés • 15 dépendances identifiées</p><h2>💡 Analyse Intelligente</h2><h2>1.</h2><p><code>But</code> du <code>Projet</code></p><p><code>Le</code> projet <code>DocsToDev</code> vise à analyser des données techniques brutes et à les transformer en documentation métier claire et structurée.</p><p><code>Il</code> résout les problèmes de compréhension et d'analyse de données techniques complexes pour les développeurs et les équipes de développement.</p><p><code>Le</code> public cible de ce projet inclut les développeurs, les architectes logiciels, et les équipes de développement qui cherchent à améliorer la qualité et la compréhension de leurs projets logiciels.</p><h2>2.</h2><p><code>Design</code> <code>System</code> Détecté</p><p><code>Le</code> design system détecté dans le projet inclut :</p><div class="list-item"><code>Palette</code> de couleurs : <code>Les</code> couleurs primaires et secondaires utilisées dans le projet ne sont pas explicitement définies dans les extraits de code fournis, mais il est mentionné que la palette de couleurs fait partie de l'analyse du design system.</div><div class="list-item"><code>Typographie</code> : <code>Les</code> polices utilisées ne sont pas spécifiquement mentionnées dans les extraits de code fournis.</div><div class="list-item"><code>Patterns</code> de composants : <code>Les</code> patterns de composants, tels que les cartes, les modales, les formulaires, etc., sont détectés et documentés dans le projet.</div><h2>3.</h2><p>⚠️ <code>Risques</code> <code>Identifi</code>és</p><p><code>Les</code> risques potentiels identifiés dans le projet sont classés par niveau :</p><div class="list-item">🔴 <code>Critique</code> :</div><div class="list-item"><code>La</code> sécurité du projet pourrait être compromise si les clés API comme <code>GROQ_API_KEY</code> ne sont pas sécurisées correctement.</div><div class="list-item">L'architecture du projet pourrait être affectée par la complexité et la maintenance des fichiers et des dépendances.</div><div class="list-item">🟡 <code>Moyen</code> :</div><div class="list-item"><code>La</code> dette technique et les performances du projet pourraient être impactées par la complexité croissante des analyses et des exports.</div><div class="list-item">🟢 <code>Faible</code> :</div><div class="list-item"><code>Les</code> améliorations mineures pourraient inclure la optimisation des requêtes, la mise à jour des dépendances, et la réduction de la duplication de code.</div><h2>4.</h2><p>💡 <code>Recommandations</code></p><p><code>Les</code> actions concrètes pour améliorer le projet sont :</p><div class="list-item"><code>Refactoring</code> : Réorganiser le code pour améliorer la lisibilité et la maintainabilité.</div><div class="list-item"><code>Optimisations</code> : <code>Optimiser</code> les performances en utilisant des méthodes plus efficaces pour les analyses et les exports.</div><div class="list-item"><code>Bonnes</code> pratiques : <code>Adopter</code> des bonnes pratiques de développement telles que les tests unitaires et d'intégration, et la mise à jour régulière des dépendances.</div><h2>5.</h2><p><code>Analyse</code> Détaillée des <code>Fichiers</code></p><div class="tree-line">- <code>src/ai/</code>analyzer.ts<code> : </code>Ce<code> fichier contient les fonctions d'analyse de l'IA, notamment </code>askAI<code> et </code>askAIDetailed`, qui analysent les données techniques et retournent des résultats détaillés.</div><div class="tree-line">- <code>src/analyzers/</code>languageAnalyzer<code>.ts</code> : <code>Ce</code> fichier contient les classes et les fonctions d'analyse de langage, notamment <code>TSJSAnalyzer</code>, qui analyse les fichiers de code et retourne des informations sur les exports, les imports, les fonctions, les classes, etc.</div><div class="tree-line">- <code>src/cache/</code>cacheManager<code>.ts</code> : <code>Ce</code> fichier contient la classe <code>CacheManager</code>, qui gère le cache des analyses pour améliorer les performances.</div><div class="tree-line">- <code>src/cli/</code>index.ts<code> : </code>Ce` fichier contient le point d'entrée de la ligne de commande, qui utilise les commandes pour exécuter les analyses et générer les rapports.</div><div class="tree-line">- <code>src/commands/</code>generateSummary<code>.ts</code> : <code>Ce</code> fichier contient la fonction <code>generateSummary</code>, qui génère un résumé du projet en fonction des données d'analyse.</div><div class="tree-line">- <code>src/commands/</code>run.ts<code> : </code>Ce<code> fichier contient la fonction </code>runCommand`, qui exécute les analyses et génère les rapports en fonction des options de la ligne de commande.</div><div class="tree-line">- <code>src/exporters/</code>html.ts<code> : </code>Ce<code> fichier contient la fonction </code>exportToHTML`, qui exporte les résultats des analyses en format HTML.</div><h2>📂 Architecture du projet</h2><p><code></code>`</p><div class="tree-line"><span class="branch">├─</span> <a href="../package-lock.json">package-lock.json</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../package.json">package.json</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/ai/analyzer.ts">src/ai/analyzer.ts</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/analyzers/languageAnalyzer.ts">src/analyzers/languageAnalyzer.ts</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/cache/cacheManager.ts">src/cache/cacheManager.ts</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/cli/index.ts">src/cli/index.ts</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/commands/generateSummary.ts">src/commands/generateSummary.ts</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/commands/run.ts">src/commands/run.ts</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/exporters/html.ts">src/exporters/html.ts</a></div><div class="tree-line"><span class="branch">└─</span> <a href="../tsconfig.json">tsconfig.json</a></div><p><code></code>`</p><h2>🔬 Analyse détaillée des composants</h2><div class="tree-line">### 📄 <a href="../src/ai/analyzer.ts"><code>src/ai/analyzer.ts</code></a></div><p>Complexité et maintenance : 289 lignes • 🟢 Faible (46)</p><p>Fonctions : <code>askAI()</code>, <code>askAIDetailed()</code>, <code>buildSystemPrompt()</code>, <code>parseAIResponse()</code></p><div class="tree-line">Types/Interfaces : <code>AIAnalysisOptions</code>, <code>AIAnalysisResult</code></div><p>Exports publics : <code>AIAnalysisOptions</code>, <code>AIAnalysisResult</code>, <code>askAI</code>, <code>askAIDetailed</code></p><p>---</p><div class="tree-line">### 📄 <a href="../src/analyzers/languageAnalyzer.ts"><code>src/analyzers/languageAnalyzer.ts</code></a></div><p>Complexité et maintenance : 580 lignes • 🟠 Élevée (270)</p><p>Fonctions : <code>getAnalyzer()</code>, <code>getSupportedExtensions()</code>, <code>isExplicitlySupported()</code></p><p>Classes : <code>TSJSAnalyzer</code>, <code>PythonAnalyzer</code>, <code>JavaAnalyzer</code>, <code>CSharpAnalyzer</code>, <code>GoAnalyzer</code>, <code>RustAnalyzer</code>, <code>HTMLAnalyzer</code>, <code>CSSAnalyzer</code>, <code>PHPAnalyzer</code>, <code>RubyAnalyzer</code>, <code>SQLAnalyzer</code>, <code>DefaultAnalyzer</code></p><div class="tree-line">Types/Interfaces : <code>LanguageAnalyzer</code>, <code>FileAnalysisResult</code></div><p>Exports publics : <code>LanguageAnalyzer</code>, <code>FileAnalysisResult</code>, <code>getAnalyzer</code>, <code>getSupportedExtensions</code>, <code>isExplicitlySupported</code></p><p>---</p><div class="tree-line">### 📄 <a href="../src/cache/cacheManager.ts"><code>src/cache/cacheManager.ts</code></a></div><p>Complexité et maintenance : 179 lignes • 🟢 Faible (36)</p><p>Classes : <code>CacheManager</code></p><div class="tree-line">Types/Interfaces : <code>CacheEntry</code>, <code>CacheManifest</code></div><p>Exports publics : <code>CacheEntry</code>, <code>CacheManifest</code>, <code>CacheManager</code></p><p>Dépendances :</p><div class="list-item"><code>node:crypto</code> (Node.js) → utilise <code>createHash</code></div><div class="list-item"><code>node:fs</code> (Node.js) → utilise <code>readFileSync, writeFileSync, existsSync, statSync, mkdirSync</code></div><div class="list-item"><code>node:path</code> (Node.js) → utilise <code>path</code></div><p>---</p><div class="tree-line">### 📄 <a href="../src/cli/index.ts"><code>src/cli/index.ts</code></a></div><p>Complexité et maintenance : 355 lignes • 🟡 Modérée (77)</p><p>Fonctions : <code>typeWriter()</code>, <code>showBanner()</code>, <code>selectLanguage()</code>, <code>showTransition()</code></p><p>Classes : <code>Spinner</code>, <code>ProgressBar</code></p><p>Dépendances :</p><div class="list-item"><code>commander</code> (NPM) → utilise <code>Command</code></div><div class="tree-line">• <code>../commands/run.js</code> (Interne) → utilise <code>runCommand</code></div><div class="tree-line">• <code>../commands/generateSummary.js</code> (Interne) → utilise <code>generateSummary</code></div><div class="tree-line">• <code>node:readline/promises</code> (Node.js) → utilise <code>readline</code></div><div class="list-item"><code>node:process</code> (Node.js) → utilise <code>stdin as input, stdout as output</code></div><div class="list-item"><code>node:path</code> (Node.js) → utilise <code>path</code></div><p>---</p><div class="tree-line">### 📄 <a href="../src/commands/generateSummary.ts"><code>src/commands/generateSummary.ts</code></a></div><p>Complexité et maintenance : 150 lignes • 🟢 Faible (27)</p><p>Fonctions : <code>generateSummary()</code></p><div class="tree-line">Types/Interfaces : <code>SummaryData</code></div><p>Exports publics : <code>generateSummary</code></p><p>Dépendances :</p><div class="list-item"><code>node:fs</code> (Node.js) → utilise <code>writeFileSync, mkdirSync</code></div><div class="list-item"><code>node:path</code> (Node.js) → utilise <code>path</code></div><p>---</p><div class="tree-line">### 📄 <a href="../src/commands/run.ts"><code>src/commands/run.ts</code></a></div><p>Complexité et maintenance : 459 lignes • 🟡 Modérée (108)</p><p>Fonctions : <code>buildTree()</code>, <code>renderTree()</code>, <code>analyzeFile()</code>, <code>getComplexityLevel()</code>, <code>formatAISummary()</code>, <code>runCommand()</code>, <code>generatePDF()</code></p><div class="tree-line">Types/Interfaces : <code>AIAnalysisOptions</code>, <code>TreeNode</code>, <code>FileAnalysis</code></div><p>Exports publics : <code>runCommand</code></p><p>Dépendances :</p><div class="list-item"><code>globby</code> (NPM) → utilise <code>globby</code></div><div class="list-item"><code>node:fs</code> (Node.js) → utilise <code>writeFileSync, readFileSync, existsSync, mkdirSync</code></div><div class="list-item"><code>node:path</code> (Node.js) → utilise <code>path</code></div><div class="list-item"><code>puppeteer</code> (NPM) → utilise <code>puppeteer</code></div><div class="tree-line">• <code>../exporters/html.js</code> (Interne) → utilise <code>exportToHTML</code></div><div class="tree-line">• <code>../ai/analyzer.js</code> (Interne) → utilise <code>askAIDetailed, type AIAnalysisOptions</code></div><div class="tree-line">• <code>../analyzers/languageAnalyzer.js</code> (Interne) → utilise <code>getAnalyzer, getSupportedExtensions</code></div><div class="tree-line">• <code>../cache/cacheManager.js</code> (Interne) → utilise <code>CacheManager</code></div><p>---</p><div class="tree-line">### 📄 <a href="../src/exporters/html.ts"><code>src/exporters/html.ts</code></a></div><p>Complexité et maintenance : 894 lignes • 🟠 Élevée (152)</p><p>Fonctions : <code>exportToHTML()</code>, <code>toggleTheme()</code>, <code>sanitizeMermaidGraph()</code>, <code>generateHierarchyGraph()</code>, <code>sanitizeLabel()</code>, <code>getFileExtension()</code>, <code>getNodeStyle()</code>, <code>traverse()</code>, <code>getDefaultHierarchyGraph()</code>, <code>generateDataFlowGraph()</code>, <code>formatRisksSection()</code>, <code>formatText()</code></p><div class="tree-line">Types/Interfaces : <code>TreeStructure</code></div><p>Exports publics : <code>exportToHTML</code></p><p>Dépendances :</p><div class="list-item"><code>node:fs</code> (Node.js) → utilise <code>writeFileSync</code></div><div class="list-item"><code>node:path</code> (Node.js) → utilise <code>path</code></div><div class="tree-line">• <code>https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs</code> (NPM) → utilise <code>mermaid</code></div><p>---</p><h2>📦 Modules externes</h2><div class="table-container"><table><tr><th>Module</th><th>Type</th><th>Occurrences</th></tr><tr><td><code>../ai/analyzer.js</code></td><td>Interne</td><td>1</td></tr><tr><td><code>../analyzers/languageAnalyzer.js</code></td><td>Interne</td><td>1</td></tr><tr><td><code>../cache/cacheManager.js</code></td><td>Interne</td><td>1</td></tr><tr><td><code>../commands/generateSummary.js</code></td><td>Interne</td><td>1</td></tr><tr><td><code>../commands/run.js</code></td><td>Interne</td><td>1</td></tr><tr><td><code>../exporters/html.js</code></td><td>Interne</td><td>1</td></tr><tr><td><code>commander</code></td><td>NPM</td><td>1</td></tr><tr><td><code>globby</code></td><td>NPM</td><td>1</td></tr><tr><td><code>https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs</code></td><td>NPM</td><td>1</td></tr><tr><td><code>node:crypto</code></td><td>Node.js</td><td>1</td></tr><tr><td><code>node:fs</code></td><td>Node.js</td><td>4</td></tr><tr><td><code>node:path</code></td><td>Node.js</td><td>5</td></tr><tr><td><code>node:process</code></td><td>Node.js</td><td>1</td></tr><tr><td><code>node:readline/promises</code></td><td>Node.js</td><td>1</td></tr><tr><td><code>puppeteer</code></td><td>NPM</td><td>1</td></tr></table></div></div>
|
|
586
586
|
|
|
587
587
|
</div>
|
|
588
588
|
|
package/docs/summary.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 📊 Vue d'ensemble du Projet – DocsToDev
|
|
2
2
|
|
|
3
|
-
> 📅 **Rapport généré le :** vendredi 9 janvier 2026 à 09:
|
|
3
|
+
> 📅 **Rapport généré le :** vendredi 9 janvier 2026 à 09:22
|
|
4
4
|
|
|
5
5
|
## 🚀 État des lieux
|
|
6
6
|
Salut ! J'ai passé ton projet au peigne fin. Voici un résumé rapide de ce que j'ai trouvé :
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docstodev",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "Solution d’automatisation de documentation technique intelligente avec IA",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cli/index.js",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"mermaid",
|
|
21
21
|
"pdf"
|
|
22
22
|
],
|
|
23
|
-
"author": "Chadrack Massamba",
|
|
23
|
+
"author": "Chadrack Massamba | Espoir dev",
|
|
24
24
|
"license": "ISC",
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/node": "^22.0.0",
|
package/src/cli/index.ts
CHANGED
|
@@ -111,17 +111,18 @@ async function showBanner(lang: "fr" | "en"): Promise<void> {
|
|
|
111
111
|
const banner = `
|
|
112
112
|
╔═══════════════════════════════════════════════════════╗
|
|
113
113
|
║ ║
|
|
114
|
-
║ ██████╗ ██████╗ ██████╗███████╗████████╗
|
|
115
|
-
║ ██╔══██╗██╔═══██╗██╔════╝██╔════╝╚══██╔══╝
|
|
116
|
-
║ ██║ ██║██║ ██║██║ ███████╗ ██║
|
|
117
|
-
║ ██║ ██║██║ ██║██║ ╚════██║ ██║
|
|
118
|
-
║ ██████╔╝╚██████╔╝╚██████╗███████║ ██║
|
|
119
|
-
║ ╚═════╝ ╚═════╝ ╚═════╝╚══════╝ ╚═╝ DEV
|
|
114
|
+
║ ██████╗ ██████╗ ██████╗███████╗████████╗ ║
|
|
115
|
+
║ ██╔══██╗██╔═══██╗██╔════╝██╔════╝╚══██╔══╝ ║
|
|
116
|
+
║ ██║ ██║██║ ██║██║ ███████╗ ██║ ║
|
|
117
|
+
║ ██║ ██║██║ ██║██║ ╚════██║ ██║ ║
|
|
118
|
+
║ ██████╔╝╚██████╔╝╚██████╗███████║ ██║ ║
|
|
119
|
+
║ ╚═════╝ ╚═════╝ ╚═════╝╚══════╝ ╚═╝ DEV ║
|
|
120
120
|
║ ║
|
|
121
121
|
║ 📚 Analyse Technique & Documentation ║
|
|
122
|
-
║
|
|
122
|
+
║ Intelligent ║
|
|
123
123
|
║ ║
|
|
124
124
|
╚═══════════════════════════════════════════════════════╝
|
|
125
|
+
By EspoirDev Massamba Kiminou chadrack delmard
|
|
125
126
|
`;
|
|
126
127
|
|
|
127
128
|
console.clear();
|