docstodev 1.1.1 → 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.
@@ -0,0 +1,225 @@
1
+ # Rapport Technique DocsToDev
2
+
3
+ > 📅 Généré le : vendredi 9 janvier 2026 à 09:22
4
+ > 📊 7 fichiers analysés • 15 dépendances identifiées
5
+
6
+ ## 💡 Analyse Intelligente
7
+
8
+ ## 1.
9
+
10
+ **`But` du `Projet`**
11
+ `Le` projet `DocsToDev` vise à analyser des données techniques brutes et à les transformer en documentation métier claire et structurée.
12
+
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
+
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
+
17
+ ## 2.
18
+
19
+ **`Design` `System` Détecté**
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
+
23
+ - **`Typographie`** : `Les` polices utilisées ne sont pas spécifiquement mentionnées dans les extraits de code fournis.
24
+
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
+
27
+ ## 3.
28
+
29
+ **⚠️ `Risques` `Identifi`és**
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.
33
+
34
+ - L'architecture du projet pourrait être affectée par la complexité et la maintenance des fichiers et des dépendances.
35
+
36
+ - 🟡 **`Moyen`** :
37
+ - `La` dette technique et les performances du projet pourraient être impactées par la complexité croissante des analyses et des exports.
38
+
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.
41
+
42
+ ## 4.
43
+
44
+ **💡 `Recommandations`**
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é.
47
+
48
+ - **`Optimisations`** : `Optimiser` les performances en utilisant des méthodes plus efficaces pour les analyses et les exports.
49
+
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.
51
+
52
+ ## 5.
53
+
54
+ **`Analyse` Détaillée des `Fichiers`**
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.
56
+
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.
58
+
59
+ - **`src/cache/`cacheManager`.ts`** : `Ce` fichier contient la classe `CacheManager`, qui gère le cache des analyses pour améliorer les performances.
60
+
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.
62
+
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.
64
+
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.
66
+
67
+ - **`src/exporters/`html.ts`** : `Ce` fichier contient la fonction `exportToHTML`, qui exporte les résultats des analyses en format HTML.
68
+
69
+ ## 📂 Architecture du projet
70
+
71
+ ```
72
+ ├─ [package-lock.json](../package-lock.json)
73
+ ├─ [package.json](../package.json)
74
+ ├─ [src/ai/analyzer.ts](../src/ai/analyzer.ts)
75
+ ├─ [src/analyzers/languageAnalyzer.ts](../src/analyzers/languageAnalyzer.ts)
76
+ ├─ [src/cache/cacheManager.ts](../src/cache/cacheManager.ts)
77
+ ├─ [src/cli/index.ts](../src/cli/index.ts)
78
+ ├─ [src/commands/generateSummary.ts](../src/commands/generateSummary.ts)
79
+ ├─ [src/commands/run.ts](../src/commands/run.ts)
80
+ ├─ [src/exporters/html.ts](../src/exporters/html.ts)
81
+ └─ [tsconfig.json](../tsconfig.json)
82
+ ```
83
+
84
+ ## 🔬 Analyse détaillée des composants
85
+
86
+ ### 📄 [`src/ai/analyzer.ts`](../src/ai/analyzer.ts)
87
+
88
+ **Complexité et maintenance** : 289 lignes • 🟢 Faible (46)
89
+
90
+ **Fonctions** : `askAI()`, `askAIDetailed()`, `buildSystemPrompt()`, `parseAIResponse()`
91
+
92
+ **Types/Interfaces** : `AIAnalysisOptions`, `AIAnalysisResult`
93
+
94
+ **Exports publics** : `AIAnalysisOptions`, `AIAnalysisResult`, `askAI`, `askAIDetailed`
95
+
96
+ ---
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
+
112
+ ### 📄 [`src/cache/cacheManager.ts`](../src/cache/cacheManager.ts)
113
+
114
+ **Complexité et maintenance** : 179 lignes • 🟢 Faible (36)
115
+
116
+ **Classes** : `CacheManager`
117
+
118
+ **Types/Interfaces** : `CacheEntry`, `CacheManifest`
119
+
120
+ **Exports publics** : `CacheEntry`, `CacheManifest`, `CacheManager`
121
+
122
+ **Dépendances** :
123
+
124
+ • `node:crypto` (Node.js) → utilise `createHash`
125
+ • `node:fs` (Node.js) → utilise `readFileSync, writeFileSync, existsSync, statSync, mkdirSync`
126
+ • `node:path` (Node.js) → utilise `path`
127
+
128
+ ---
129
+
130
+ ### 📄 [`src/cli/index.ts`](../src/cli/index.ts)
131
+
132
+ **Complexité et maintenance** : 355 lignes • 🟡 Modérée (77)
133
+
134
+ **Fonctions** : `typeWriter()`, `showBanner()`, `selectLanguage()`, `showTransition()`
135
+
136
+ **Classes** : `Spinner`, `ProgressBar`
137
+
138
+ **Dépendances** :
139
+
140
+ • `commander` (NPM) → utilise `Command`
141
+ • `../commands/run.js` (Interne) → utilise `runCommand`
142
+ • `../commands/generateSummary.js` (Interne) → utilise `generateSummary`
143
+ • `node:readline/promises` (Node.js) → utilise `readline`
144
+ • `node:process` (Node.js) → utilise `stdin as input, stdout as output`
145
+ • `node:path` (Node.js) → utilise `path`
146
+
147
+ ---
148
+
149
+ ### 📄 [`src/commands/generateSummary.ts`](../src/commands/generateSummary.ts)
150
+
151
+ **Complexité et maintenance** : 150 lignes • 🟢 Faible (27)
152
+
153
+ **Fonctions** : `generateSummary()`
154
+
155
+ **Types/Interfaces** : `SummaryData`
156
+
157
+ **Exports publics** : `generateSummary`
158
+
159
+ **Dépendances** :
160
+
161
+ • `node:fs` (Node.js) → utilise `writeFileSync, mkdirSync`
162
+ • `node:path` (Node.js) → utilise `path`
163
+
164
+ ---
165
+
166
+ ### 📄 [`src/commands/run.ts`](../src/commands/run.ts)
167
+
168
+ **Complexité et maintenance** : 459 lignes • 🟡 Modérée (108)
169
+
170
+ **Fonctions** : `buildTree()`, `renderTree()`, `analyzeFile()`, `getComplexityLevel()`, `formatAISummary()`, `runCommand()`, `generatePDF()`
171
+
172
+ **Types/Interfaces** : `AIAnalysisOptions`, `TreeNode`, `FileAnalysis`
173
+
174
+ **Exports publics** : `runCommand`
175
+
176
+ **Dépendances** :
177
+
178
+ • `globby` (NPM) → utilise `globby`
179
+ • `node:fs` (Node.js) → utilise `writeFileSync, readFileSync, existsSync, mkdirSync`
180
+ • `node:path` (Node.js) → utilise `path`
181
+ • `puppeteer` (NPM) → utilise `puppeteer`
182
+ • `../exporters/html.js` (Interne) → utilise `exportToHTML`
183
+ • `../ai/analyzer.js` (Interne) → utilise `askAIDetailed, type AIAnalysisOptions`
184
+ • `../analyzers/languageAnalyzer.js` (Interne) → utilise `getAnalyzer, getSupportedExtensions`
185
+ • `../cache/cacheManager.js` (Interne) → utilise `CacheManager`
186
+
187
+ ---
188
+
189
+ ### 📄 [`src/exporters/html.ts`](../src/exporters/html.ts)
190
+
191
+ **Complexité et maintenance** : 894 lignes • 🟠 Élevée (152)
192
+
193
+ **Fonctions** : `exportToHTML()`, `toggleTheme()`, `sanitizeMermaidGraph()`, `generateHierarchyGraph()`, `sanitizeLabel()`, `getFileExtension()`, `getNodeStyle()`, `traverse()`, `getDefaultHierarchyGraph()`, `generateDataFlowGraph()`, `formatRisksSection()`, `formatText()`
194
+
195
+ **Types/Interfaces** : `TreeStructure`
196
+
197
+ **Exports publics** : `exportToHTML`
198
+
199
+ **Dépendances** :
200
+
201
+ • `node:fs` (Node.js) → utilise `writeFileSync`
202
+ • `node:path` (Node.js) → utilise `path`
203
+ • `https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs` (NPM) → utilise `mermaid`
204
+
205
+ ---
206
+
207
+ ## 📦 Modules externes
208
+
209
+ | Module | Type | Occurrences |
210
+ | :--- | :--- | :---: |
211
+ | `../ai/analyzer.js` | Interne | 1 |
212
+ | `../analyzers/languageAnalyzer.js` | Interne | 1 |
213
+ | `../cache/cacheManager.js` | Interne | 1 |
214
+ | `../commands/generateSummary.js` | Interne | 1 |
215
+ | `../commands/run.js` | Interne | 1 |
216
+ | `../exporters/html.js` | Interne | 1 |
217
+ | `commander` | NPM | 1 |
218
+ | `globby` | NPM | 1 |
219
+ | `https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs` | NPM | 1 |
220
+ | `node:crypto` | Node.js | 1 |
221
+ | `node:fs` | Node.js | 4 |
222
+ | `node:path` | Node.js | 5 |
223
+ | `node:process` | Node.js | 1 |
224
+ | `node:readline/promises` | Node.js | 1 |
225
+ | `puppeteer` | NPM | 1 |