docstodev 1.0.3 → 2.0.0
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/dist/ai/analyzer.d.ts +3 -0
- package/dist/ai/analyzer.d.ts.map +1 -0
- package/dist/ai/analyzer.js +45 -0
- package/dist/ai/analyzer.js.map +1 -0
- package/dist/analyzers/languageAnalyzer.d.ts +20 -0
- package/dist/analyzers/languageAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/languageAnalyzer.js +513 -0
- package/dist/analyzers/languageAnalyzer.js.map +1 -0
- package/dist/cache/cacheManager.d.ts +38 -0
- package/dist/cache/cacheManager.d.ts.map +1 -0
- package/dist/cache/cacheManager.js +141 -0
- package/dist/cache/cacheManager.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +316 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/commands/generateSummary.d.ts +18 -0
- package/dist/commands/generateSummary.d.ts.map +1 -0
- package/dist/commands/generateSummary.js +116 -0
- package/dist/commands/generateSummary.js.map +1 -0
- package/dist/commands/run.d.ts +5 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +326 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/exporters/html.d.ts +6 -0
- package/dist/exporters/html.d.ts.map +1 -0
- package/dist/exporters/html.js +596 -0
- package/dist/exporters/html.js.map +1 -0
- package/docs/docs-to-dev.md +240 -0
- package/docs/report.html +633 -0
- package/docs/report.pdf +0 -0
- package/docs/summary.md +16 -0
- package/package.json +1 -1
- package/src/ai/analyzer.ts +258 -19
- package/src/commands/run.ts +149 -83
- package/src/exporters/html.ts +302 -48
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# Rapport Technique DocsToDev
|
|
2
|
+
|
|
3
|
+
> 📅 Généré le : vendredi 9 janvier 2026 à 09:13
|
|
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` est conçu pour analyser et documenter des projets logiciels de manière automatique.
|
|
12
|
+
|
|
13
|
+
`Il` 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.
|
|
14
|
+
|
|
15
|
+
`Le` 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.
|
|
16
|
+
|
|
17
|
+
### 2.
|
|
18
|
+
|
|
19
|
+
**`Design` `System` Détecté**
|
|
20
|
+
`Le` projet semble utiliser un design system personnalisé, avec les éléments suivants détectés :
|
|
21
|
+
- **`Palette` de couleurs** : `Les` 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 (`primaryColors`) dans le design system.
|
|
22
|
+
|
|
23
|
+
- **`Typographie`** : `Il` 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.
|
|
24
|
+
|
|
25
|
+
- **`Patterns` de composants** : `Les` 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.
|
|
26
|
+
|
|
27
|
+
### 3.
|
|
28
|
+
|
|
29
|
+
**⚠️ `Risques` `Identifi`és**
|
|
30
|
+
`Les` risques potentiels incluent :
|
|
31
|
+
- 🔴 **`Critique`** : Dépendance à des clés API externes (comme la clé GROQ_API_KEY) qui pourraient être exposées ou non sécurisées.
|
|
32
|
+
|
|
33
|
+
`Une` faille de sécurité dans le stockage ou l'utilisation de ces clés pourrait compromettre la sécurité du projet.
|
|
34
|
+
|
|
35
|
+
- 🟡 **`Moyen`** : `La` complexité du code dans certains fichiers (comme `languageAnalyzer`.ts`) pourrait rendre la maintenance difficile.
|
|
36
|
+
|
|
37
|
+
`Il` est important de maintenir une dette technique faible pour assurer la facilité de modification et d'extension du code.
|
|
38
|
+
|
|
39
|
+
- 🟢 **`Faible`** : 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é.
|
|
40
|
+
|
|
41
|
+
### 4.
|
|
42
|
+
|
|
43
|
+
**💡 `Recommandations`**
|
|
44
|
+
`Pour` améliorer le projet, les actions suivantes sont recommandées :
|
|
45
|
+
1.
|
|
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.
|
|
54
|
+
|
|
55
|
+
**Sécurité** : `Mettre` 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.
|
|
56
|
+
|
|
57
|
+
4.
|
|
58
|
+
|
|
59
|
+
**`Tests` `Automatis`és** : Développer des tests unitaires et d'intégration pour garantir la stabilité et la qualité du code.
|
|
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.
|
|
66
|
+
|
|
67
|
+
**`Analyse` Détaillée des `Fichiers`**
|
|
68
|
+
- **`src/ai/`analyzer.ts`** : `Ce` fichier est responsable de l'analyse intelligente du projet, utilisant des options configurables pour déterminer ce qui doit être analysé.
|
|
69
|
+
|
|
70
|
+
`Il` exporte des fonctions pour demander une analyse simplifiée ou détaillée.
|
|
71
|
+
|
|
72
|
+
- **`src/cache/`cacheManager`.ts`** : Gère le système de cache pour stocker les résultats d'analyse, améliorant ainsi les performances en évitant les analyses redondantes.
|
|
73
|
+
|
|
74
|
+
- **`src/analyzers/`languageAnalyzer`.ts`** : `Contient` des analyseurs pour différents langages de programmation, permettant d'extraire des informations spécifiques à chaque langage.
|
|
75
|
+
|
|
76
|
+
- **`src/cli/`index.ts`** : `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.
|
|
77
|
+
|
|
78
|
+
- **`src/commands/`generateSummary`.ts`** : Génère un résumé du projet analysé, incluant des informations sur les fichiers, la complexité, et les langages détectés.
|
|
79
|
+
|
|
80
|
+
- **`src/commands/`run.ts`** : `Ex`écute l'analyse du projet et génère un rapport détaillé, utilisant les informations collectées par les analyseurs.
|
|
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.
|
|
83
|
+
|
|
84
|
+
## 📂 Architecture du projet
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
├─ [package-lock.json](../package-lock.json)
|
|
88
|
+
├─ [package.json](../package.json)
|
|
89
|
+
├─ [src/ai/analyzer.ts](../src/ai/analyzer.ts)
|
|
90
|
+
├─ [src/analyzers/languageAnalyzer.ts](../src/analyzers/languageAnalyzer.ts)
|
|
91
|
+
├─ [src/cache/cacheManager.ts](../src/cache/cacheManager.ts)
|
|
92
|
+
├─ [src/cli/index.ts](../src/cli/index.ts)
|
|
93
|
+
├─ [src/commands/generateSummary.ts](../src/commands/generateSummary.ts)
|
|
94
|
+
├─ [src/commands/run.ts](../src/commands/run.ts)
|
|
95
|
+
├─ [src/exporters/html.ts](../src/exporters/html.ts)
|
|
96
|
+
└─ [tsconfig.json](../tsconfig.json)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## 🔬 Analyse détaillée des composants
|
|
100
|
+
|
|
101
|
+
### 📄 [`src/ai/analyzer.ts`](../src/ai/analyzer.ts)
|
|
102
|
+
|
|
103
|
+
**Complexité et maintenance** : 289 lignes • 🟢 Faible (46)
|
|
104
|
+
|
|
105
|
+
**Fonctions** : `askAI()`, `askAIDetailed()`, `buildSystemPrompt()`, `parseAIResponse()`
|
|
106
|
+
|
|
107
|
+
**Types/Interfaces** : `AIAnalysisOptions`, `AIAnalysisResult`
|
|
108
|
+
|
|
109
|
+
**Exports publics** : `AIAnalysisOptions`, `AIAnalysisResult`, `askAI`, `askAIDetailed`
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
### 📄 [`src/cache/cacheManager.ts`](../src/cache/cacheManager.ts)
|
|
114
|
+
|
|
115
|
+
**Complexité et maintenance** : 179 lignes • 🟢 Faible (36)
|
|
116
|
+
|
|
117
|
+
**Classes** : `CacheManager`
|
|
118
|
+
|
|
119
|
+
**Types/Interfaces** : `CacheEntry`, `CacheManifest`
|
|
120
|
+
|
|
121
|
+
**Exports publics** : `CacheEntry`, `CacheManifest`, `CacheManager`
|
|
122
|
+
|
|
123
|
+
**Dépendances** :
|
|
124
|
+
|
|
125
|
+
• `node:crypto` (Node.js) → utilise `createHash`
|
|
126
|
+
• `node:fs` (Node.js) → utilise `readFileSync, writeFileSync, existsSync, statSync, mkdirSync`
|
|
127
|
+
• `node:path` (Node.js) → utilise `path`
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
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
|
+
### 📄 [`src/cli/index.ts`](../src/cli/index.ts)
|
|
146
|
+
|
|
147
|
+
**Complexité et maintenance** : 354 lignes • 🟡 Modérée (76)
|
|
148
|
+
|
|
149
|
+
**Fonctions** : `typeWriter()`, `showBanner()`, `selectLanguage()`, `showTransition()`
|
|
150
|
+
|
|
151
|
+
**Classes** : `Spinner`, `ProgressBar`
|
|
152
|
+
|
|
153
|
+
**Dépendances** :
|
|
154
|
+
|
|
155
|
+
• `commander` (NPM) → utilise `Command`
|
|
156
|
+
• `../commands/run.js` (Interne) → utilise `runCommand`
|
|
157
|
+
• `../commands/generateSummary.js` (Interne) → utilise `generateSummary`
|
|
158
|
+
• `node:readline/promises` (Node.js) → utilise `readline`
|
|
159
|
+
• `node:process` (Node.js) → utilise `stdin as input, stdout as output`
|
|
160
|
+
• `node:path` (Node.js) → utilise `path`
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
### 📄 [`src/commands/generateSummary.ts`](../src/commands/generateSummary.ts)
|
|
165
|
+
|
|
166
|
+
**Complexité et maintenance** : 150 lignes • 🟢 Faible (27)
|
|
167
|
+
|
|
168
|
+
**Fonctions** : `generateSummary()`
|
|
169
|
+
|
|
170
|
+
**Types/Interfaces** : `SummaryData`
|
|
171
|
+
|
|
172
|
+
**Exports publics** : `generateSummary`
|
|
173
|
+
|
|
174
|
+
**Dépendances** :
|
|
175
|
+
|
|
176
|
+
• `node:fs` (Node.js) → utilise `writeFileSync, mkdirSync`
|
|
177
|
+
• `node:path` (Node.js) → utilise `path`
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
### 📄 [`src/commands/run.ts`](../src/commands/run.ts)
|
|
182
|
+
|
|
183
|
+
**Complexité et maintenance** : 459 lignes • 🟡 Modérée (108)
|
|
184
|
+
|
|
185
|
+
**Fonctions** : `buildTree()`, `renderTree()`, `analyzeFile()`, `getComplexityLevel()`, `formatAISummary()`, `runCommand()`, `generatePDF()`
|
|
186
|
+
|
|
187
|
+
**Types/Interfaces** : `AIAnalysisOptions`, `TreeNode`, `FileAnalysis`
|
|
188
|
+
|
|
189
|
+
**Exports publics** : `runCommand`
|
|
190
|
+
|
|
191
|
+
**Dépendances** :
|
|
192
|
+
|
|
193
|
+
• `globby` (NPM) → utilise `globby`
|
|
194
|
+
• `node:fs` (Node.js) → utilise `writeFileSync, readFileSync, existsSync, mkdirSync`
|
|
195
|
+
• `node:path` (Node.js) → utilise `path`
|
|
196
|
+
• `puppeteer` (NPM) → utilise `puppeteer`
|
|
197
|
+
• `../exporters/html.js` (Interne) → utilise `exportToHTML`
|
|
198
|
+
• `../ai/analyzer.js` (Interne) → utilise `askAIDetailed, type AIAnalysisOptions`
|
|
199
|
+
• `../analyzers/languageAnalyzer.js` (Interne) → utilise `getAnalyzer, getSupportedExtensions`
|
|
200
|
+
• `../cache/cacheManager.js` (Interne) → utilise `CacheManager`
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
### 📄 [`src/exporters/html.ts`](../src/exporters/html.ts)
|
|
205
|
+
|
|
206
|
+
**Complexité et maintenance** : 894 lignes • 🟠 Élevée (152)
|
|
207
|
+
|
|
208
|
+
**Fonctions** : `exportToHTML()`, `toggleTheme()`, `sanitizeMermaidGraph()`, `generateHierarchyGraph()`, `sanitizeLabel()`, `getFileExtension()`, `getNodeStyle()`, `traverse()`, `getDefaultHierarchyGraph()`, `generateDataFlowGraph()`, `formatRisksSection()`, `formatText()`
|
|
209
|
+
|
|
210
|
+
**Types/Interfaces** : `TreeStructure`
|
|
211
|
+
|
|
212
|
+
**Exports publics** : `exportToHTML`
|
|
213
|
+
|
|
214
|
+
**Dépendances** :
|
|
215
|
+
|
|
216
|
+
• `node:fs` (Node.js) → utilise `writeFileSync`
|
|
217
|
+
• `node:path` (Node.js) → utilise `path`
|
|
218
|
+
• `https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs` (NPM) → utilise `mermaid`
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## 📦 Modules externes
|
|
223
|
+
|
|
224
|
+
| Module | Type | Occurrences |
|
|
225
|
+
| :--- | :--- | :---: |
|
|
226
|
+
| `../ai/analyzer.js` | Interne | 1 |
|
|
227
|
+
| `../analyzers/languageAnalyzer.js` | Interne | 1 |
|
|
228
|
+
| `../cache/cacheManager.js` | Interne | 1 |
|
|
229
|
+
| `../commands/generateSummary.js` | Interne | 1 |
|
|
230
|
+
| `../commands/run.js` | Interne | 1 |
|
|
231
|
+
| `../exporters/html.js` | Interne | 1 |
|
|
232
|
+
| `commander` | NPM | 1 |
|
|
233
|
+
| `globby` | NPM | 1 |
|
|
234
|
+
| `https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs` | NPM | 1 |
|
|
235
|
+
| `node:crypto` | Node.js | 1 |
|
|
236
|
+
| `node:fs` | Node.js | 4 |
|
|
237
|
+
| `node:path` | Node.js | 5 |
|
|
238
|
+
| `node:process` | Node.js | 1 |
|
|
239
|
+
| `node:readline/promises` | Node.js | 1 |
|
|
240
|
+
| `puppeteer` | NPM | 1 |
|