docstodev 1.0.0 → 1.0.3

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.
Files changed (43) hide show
  1. package/package.json +2 -2
  2. package/src/ai/analyzer.ts +6 -2
  3. package/src/analyzers/languageAnalyzer.ts +580 -0
  4. package/src/cache/cacheManager.ts +179 -0
  5. package/src/cli/index.ts +307 -23
  6. package/src/commands/generateSummary.ts +129 -39
  7. package/src/commands/run.ts +312 -75
  8. package/src/exporters/html.ts +604 -106
  9. package/.env +0 -1
  10. package/dist/ai/analyzer.d.ts +0 -3
  11. package/dist/ai/analyzer.d.ts.map +0 -1
  12. package/dist/ai/analyzer.js +0 -42
  13. package/dist/ai/analyzer.js.map +0 -1
  14. package/dist/cli/index.d.ts +0 -3
  15. package/dist/cli/index.d.ts.map +0 -1
  16. package/dist/cli/index.js +0 -59
  17. package/dist/cli/index.js.map +0 -1
  18. package/dist/commands/classify.d.ts +0 -2
  19. package/dist/commands/classify.d.ts.map +0 -1
  20. package/dist/commands/classify.js +0 -37
  21. package/dist/commands/classify.js.map +0 -1
  22. package/dist/commands/generateSummary.d.ts +0 -5
  23. package/dist/commands/generateSummary.d.ts.map +0 -1
  24. package/dist/commands/generateSummary.js +0 -54
  25. package/dist/commands/generateSummary.js.map +0 -1
  26. package/dist/commands/run.d.ts +0 -2
  27. package/dist/commands/run.d.ts.map +0 -1
  28. package/dist/commands/run.js +0 -142
  29. package/dist/commands/run.js.map +0 -1
  30. package/dist/exporters/html.d.ts +0 -2
  31. package/dist/exporters/html.d.ts.map +0 -1
  32. package/dist/exporters/html.js +0 -148
  33. package/dist/exporters/html.js.map +0 -1
  34. package/dist/index.d.ts +0 -2
  35. package/dist/index.d.ts.map +0 -1
  36. package/dist/index.js +0 -2
  37. package/dist/index.js.map +0 -1
  38. package/docs/docs-to-dev.md +0 -111
  39. package/docs/report.html +0 -90
  40. package/docs/report.pdf +0 -0
  41. package/docs/summary.md +0 -16
  42. package/src/commands/classify.ts +0 -40
  43. package/src/index.ts +0 -0
@@ -1,111 +0,0 @@
1
- # Rapport d'Analyse Technique DocsToDev
2
-
3
- > 📅 Généré le : 08/01/2026 19:36:56
4
-
5
- ## 💡 Synthèse Métier (par MakazouIA)
6
- Voici les explications métier pour chaque fichier :
7
-
8
- * Le fichier `src/index.ts` utilise les dépendances pour initialiser l'application et charger les configurations nécessaires.
9
- * Le fichier `src/ai/analyzer.ts` utilise l'API Groq pour demander à l'IA de générer des descriptions métier claires à partir de données techniques brutes.
10
- * Le fichier `src/cli/index.ts` utilise la bibliothèque Commander pour créer une interface de ligne de commande permettant aux utilisateurs d'interagir avec l'application.
11
- * Le fichier `src/commands/classify.ts` utilise les informations de fichier pour déterminer le rôle métier de chaque fichier dans le projet.
12
- * Le fichier `src/commands/generateSummary.ts` utilise les données de projet pour générer un résumé global du projet avec un ton humain et bilingue.
13
- * Le fichier `src/commands/run.ts` utilise les dépendances pour analyser le code source, générer des rapports techniques et créer une représentation visuelle de la structure du projet.
14
- * Le fichier `src/exporters/html.ts` utilise les données de rapport pour générer une version HTML du rapport technique, avec mise en forme et liens vers les parties pertinentes du projet.
15
-
16
- En résumé, chaque fichier utilise ses dépendances pour accomplir une tâche spécifique dans le processus d'analyse et de documentation du projet.
17
-
18
- ## 📂 Architecture des dossiers
19
-
20
- ├─ [package-lock.json](../package-lock.json)
21
- ├─ [package.json](../package.json)
22
- ├─ [src/ai/analyzer.ts](../src/ai/analyzer.ts)
23
- ├─ [src/cli/index.ts](../src/cli/index.ts)
24
- ├─ [src/commands/classify.ts](../src/commands/classify.ts)
25
- ├─ [src/commands/generateSummary.ts](../src/commands/generateSummary.ts)
26
- ├─ [src/commands/run.ts](../src/commands/run.ts)
27
- ├─ [src/exporters/html.ts](../src/exporters/html.ts)
28
- ├─ [src/index.ts](../src/index.ts)
29
- └─ [tsconfig.json](../tsconfig.json)
30
-
31
-
32
- ## 🔬 Analyse détaillée des composants
33
-
34
- ### 📄 [`src/index.ts`](../src/index.ts)
35
- • **Densité et maintenance :** 1 lignes
36
-
37
- ---
38
-
39
- ### 📄 [`src/ai/analyzer.ts`](../src/ai/analyzer.ts)
40
- • **Densité et maintenance :** 46 lignes
41
- • **Capacités offertes :** `askAI`
42
- • **Collaborations sollicitées :**
43
-
44
- ---
45
-
46
- ### 📄 [`src/cli/index.ts`](../src/cli/index.ts)
47
- • **Densité et maintenance :** 70 lignes
48
- • **Collaborations sollicitées :**
49
- - Utilise `commander` (External)
50
- - Utilise `../commands/run.js` (Internal)
51
- - Utilise `../commands/generateSummary.js` (Internal)
52
- - Utilise `node:readline/promises` (Node.js)
53
- - Utilise `node:process` (Node.js)
54
- - Utilise `node:path` (Node.js)
55
-
56
- ---
57
-
58
- ### 📄 [`src/commands/classify.ts`](../src/commands/classify.ts)
59
- • **Densité et maintenance :** 40 lignes
60
- • **Capacités offertes :** `determineRole`
61
- • **Collaborations sollicitées :**
62
- - Utilise `node:path` (Node.js)
63
-
64
- ---
65
-
66
- ### 📄 [`src/commands/generateSummary.ts`](../src/commands/generateSummary.ts)
67
- • **Densité et maintenance :** 60 lignes
68
- • **Capacités offertes :** `generateSummary`
69
- • **Collaborations sollicitées :**
70
- - Utilise `node:fs` (Node.js)
71
- - Utilise `node:path` (Node.js)
72
-
73
- ---
74
-
75
- ### 📄 [`src/commands/run.ts`](../src/commands/run.ts)
76
- • **Densité et maintenance :** 156 lignes
77
- • **Capacités offertes :** `runCommand`
78
- • **Collaborations sollicitées :**
79
- - Utilise `globby` (External)
80
- - Utilise `node:fs` (Node.js)
81
- - Utilise `node:path` (Node.js)
82
- - Utilise `puppeteer` (External)
83
- - Utilise `../exporters/html.js` (Internal)
84
- - Utilise `../ai/analyzer.js` (Internal)
85
-
86
- ---
87
-
88
- ### 📄 [`src/exporters/html.ts`](../src/exporters/html.ts)
89
- • **Densité et maintenance :** 142 lignes
90
- • **Capacités offertes :** `exportToHTML`
91
- • **Collaborations sollicitées :**
92
- - Utilise `node:fs` (Node.js)
93
- - Utilise `node:path` (Node.js)
94
-
95
- ---
96
-
97
- ## 📦 Inventaire des modules externes
98
-
99
- | Module | Type |
100
- | :--- | :--- |
101
- | `../ai/analyzer.js` | Internal |
102
- | `../commands/generateSummary.js` | Internal |
103
- | `../commands/run.js` | Internal |
104
- | `../exporters/html.js` | Internal |
105
- | `commander` | External |
106
- | `globby` | External |
107
- | `node:fs` | Node.js |
108
- | `node:path` | Node.js |
109
- | `node:process` | Node.js |
110
- | `node:readline/promises` | Node.js |
111
- | `puppeteer` | External |
package/docs/report.html DELETED
@@ -1,90 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="fr" data-theme="dark">
3
- <head>
4
- <meta charset="UTF-8">
5
- <title>DocsToDev | Rapport Technique</title>
6
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&family=Fira+Code:wght@400&display=swap" rel="stylesheet">
7
- <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
8
- <style>
9
- :root[data-theme="dark"] {
10
- --bg: #0d1117; --card: #161b22; --text: #c9d1d9; --text-dim: #8b949e;
11
- --accent: #58a6ff; --border: #30363d; --code-bg: rgba(110, 118, 129, 0.2);
12
- --code-text: #ff7b72; --h-color: #f0f6fc;
13
- }
14
- :root[data-theme="light"] {
15
- --bg: #ffffff; --card: #f8f9fa; --text: #24292f; --text-dim: #57606a;
16
- --accent: #0969da; --border: #d0d7de; --code-bg: #afb8c133;
17
- --code-text: #cf222e; --h-color: #1b1f24;
18
- }
19
-
20
- body { font-family: 'Inter', sans-serif; background: var(--bg); color: var(--text); padding: 2rem; line-height: 1.6; font-weight: 300; transition: background 0.3s; }
21
- .container { max-width: 1100px; margin: auto; }
22
-
23
- .controls { position: sticky; top: 10px; display: flex; gap: 1rem; margin-bottom: 2rem; z-index: 100; }
24
- #search { flex: 1; padding: 12px 20px; border-radius: 25px; border: 1px solid var(--border); background: var(--card); color: var(--text); outline: none; font-weight: 300; box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
25
- .btn { padding: 10px 20px; border-radius: 25px; cursor: pointer; border: 1px solid var(--border); background: var(--card); color: var(--text); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 1px; }
26
- .pdf-btn { background: #238636; color: white; border: none; }
27
-
28
- h1 { font-weight: 500; font-size: 2.2rem; color: var(--accent); letter-spacing: -1px; }
29
- h2 { font-weight: 400; color: var(--h-color); border-bottom: 1px solid var(--border); padding-bottom: 10px; margin-top: 3.5rem; }
30
-
31
- .mermaid { background: var(--card); padding: 1.5rem; border-radius: 12px; border: 1px solid var(--border); margin: 1.5rem 0; overflow: auto; }
32
- .component-card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 1.5rem; margin-bottom: 1.5rem; }
33
- .comp-title { margin: 0 0 1rem 0 !important; color: var(--accent) !important; font-weight: 400; font-size: 1.2rem; border-bottom: 1px solid var(--border); padding-bottom: 10px !important; }
34
-
35
- .tree-line { font-family: 'Fira Code', monospace; font-size: 0.85rem; color: var(--text-dim); white-space: pre; line-height: 1.4; }
36
- .branch { color: var(--accent); opacity: 0.7; }
37
-
38
- .table-container { margin: 1.5rem 0; border-radius: 8px; border: 1px solid var(--border); overflow: hidden; }
39
- table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
40
- th { background: rgba(88, 166, 255, 0.05); color: var(--accent); font-weight: 500; text-align: left; padding: 12px; border-bottom: 1px solid var(--border); }
41
- td { padding: 10px 12px; border-bottom: 1px solid var(--border); }
42
-
43
- code { font-family: 'Fira Code', monospace; background: var(--code-bg); color: var(--code-text); padding: 2px 6px; border-radius: 4px; font-size: 0.9em; font-weight: 400; }
44
- a { color: var(--accent); text-decoration: none; }
45
- .list-item { margin-bottom: 8px; }
46
- .list-item::before { content: "•"; color: var(--accent); margin-right: 12px; font-weight: bold; }
47
-
48
- @media print { .controls { display: none; } body { padding: 0; } .container { max-width: 100%; border: none; } }
49
- </style>
50
- </head>
51
- <body>
52
- <div class="container">
53
- <div class="controls">
54
- <input type="text" id="search" placeholder="Rechercher par nom, rôle, technologie...">
55
- <button class="btn pdf-btn" onclick="window.print()">📥 Imprimer / PDF</button>
56
- <button class="btn" onclick="toggleTheme()">🌓 Theme</button>
57
- </div>
58
-
59
- <h2>📊 Graphe des Dépendances</h2>
60
- <div class="mermaid">
61
- graph TD
62
- index_ts --> run_js
63
- index_ts --> generateSummary_js
64
- run_ts --> html_js
65
- run_ts --> analyzer_js
66
-
67
- </div>
68
-
69
- <div id="content-area"><h1>Rapport d'Analyse Technique DocsToDev</h1><p>> 📅 Généré le : 08/01/2026 19:36:56</p><h2>💡 Synthèse Métier (par MakazouIA)</h2><p>Voici les explications métier pour chaque fichier :</p><div class="list-item">Le fichier <code>src/index.ts</code> utilise les dépendances pour initialiser l'application et charger les configurations nécessaires.</div><div class="list-item">Le fichier <code>src/ai/analyzer.ts</code> utilise l'API Groq pour demander à l'IA de générer des descriptions métier claires à partir de données techniques brutes.</div><div class="list-item">Le fichier <code>src/cli/index.ts</code> utilise la bibliothèque Commander pour créer une interface de ligne de commande permettant aux utilisateurs d'interagir avec l'application.</div><div class="list-item">Le fichier <code>src/commands/classify.ts</code> utilise les informations de fichier pour déterminer le rôle métier de chaque fichier dans le projet.</div><div class="list-item">Le fichier <code>src/commands/generateSummary.ts</code> utilise les données de projet pour générer un résumé global du projet avec un ton humain et bilingue.</div><div class="list-item">Le fichier <code>src/commands/run.ts</code> utilise les dépendances pour analyser le code source, générer des rapports techniques et créer une représentation visuelle de la structure du projet.</div><div class="list-item">Le fichier <code>src/exporters/html.ts</code> utilise les données de rapport pour générer une version HTML du rapport technique, avec mise en forme et liens vers les parties pertinentes du projet.</div><p>En résumé, chaque fichier utilise ses dépendances pour accomplir une tâche spécifique dans le processus d'analyse et de documentation du projet.</p><h2>📂 Architecture des dossiers</h2><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/cli/index.ts">src/cli/index.ts</a></div><div class="tree-line"><span class="branch">├─</span> <a href="../src/commands/classify.ts">src/commands/classify.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="../src/index.ts">src/index.ts</a></div><div class="tree-line"><span class="branch">└─</span> <a href="../tsconfig.json">tsconfig.json</a></div><h2>🔬 Analyse détaillée des composants</h2><section class="component-card"><h3 class="comp-title">📄 <a href="../src/index.ts"><code>src/index.ts</code></a></h3><div class="list-item"><strong>Densité et maintenance :</strong> 1 lignes</div><p>---</p><section class="component-card"><h3 class="comp-title">📄 <a href="../src/ai/analyzer.ts"><code>src/ai/analyzer.ts</code></a></h3><div class="list-item"><strong>Densité et maintenance :</strong> 46 lignes</div><div class="list-item"><strong>Capacités offertes :</strong> <code>askAI</code></div><div class="list-item"><strong>Collaborations sollicitées :</strong></div><p>---</p><section class="component-card"><h3 class="comp-title">📄 <a href="../src/cli/index.ts"><code>src/cli/index.ts</code></a></h3><div class="list-item"><strong>Densité et maintenance :</strong> 70 lignes</div><div class="list-item"><strong>Collaborations sollicitées :</strong></div><div class="list-item">Utilise <code>commander</code> (External)</div><div class="list-item">Utilise <code>../commands/run.js</code> (Internal)</div><div class="list-item">Utilise <code>../commands/generateSummary.js</code> (Internal)</div><div class="list-item">Utilise <code>node:readline/promises</code> (Node.js)</div><div class="list-item">Utilise <code>node:process</code> (Node.js)</div><div class="list-item">Utilise <code>node:path</code> (Node.js)</div><p>---</p><section class="component-card"><h3 class="comp-title">📄 <a href="../src/commands/classify.ts"><code>src/commands/classify.ts</code></a></h3><div class="list-item"><strong>Densité et maintenance :</strong> 40 lignes</div><div class="list-item"><strong>Capacités offertes :</strong> <code>determineRole</code></div><div class="list-item"><strong>Collaborations sollicitées :</strong></div><div class="list-item">Utilise <code>node:path</code> (Node.js)</div><p>---</p><section class="component-card"><h3 class="comp-title">📄 <a href="../src/commands/generateSummary.ts"><code>src/commands/generateSummary.ts</code></a></h3><div class="list-item"><strong>Densité et maintenance :</strong> 60 lignes</div><div class="list-item"><strong>Capacités offertes :</strong> <code>generateSummary</code></div><div class="list-item"><strong>Collaborations sollicitées :</strong></div><div class="list-item">Utilise <code>node:fs</code> (Node.js)</div><div class="list-item">Utilise <code>node:path</code> (Node.js)</div><p>---</p><section class="component-card"><h3 class="comp-title">📄 <a href="../src/commands/run.ts"><code>src/commands/run.ts</code></a></h3><div class="list-item"><strong>Densité et maintenance :</strong> 156 lignes</div><div class="list-item"><strong>Capacités offertes :</strong> <code>runCommand</code></div><div class="list-item"><strong>Collaborations sollicitées :</strong></div><div class="list-item">Utilise <code>globby</code> (External)</div><div class="list-item">Utilise <code>node:fs</code> (Node.js)</div><div class="list-item">Utilise <code>node:path</code> (Node.js)</div><div class="list-item">Utilise <code>puppeteer</code> (External)</div><div class="list-item">Utilise <code>../exporters/html.js</code> (Internal)</div><div class="list-item">Utilise <code>../ai/analyzer.js</code> (Internal)</div><p>---</p><section class="component-card"><h3 class="comp-title">📄 <a href="../src/exporters/html.ts"><code>src/exporters/html.ts</code></a></h3><div class="list-item"><strong>Densité et maintenance :</strong> 142 lignes</div><div class="list-item"><strong>Capacités offertes :</strong> <code>exportToHTML</code></div><div class="list-item"><strong>Collaborations sollicitées :</strong></div><div class="list-item">Utilise <code>node:fs</code> (Node.js)</div><div class="list-item">Utilise <code>node:path</code> (Node.js)</div><p>---</p><h2>📦 Inventaire des modules externes</h2><div class="table-container"><table><tr><th>Module</th><th>Type</th></tr><tr><td><code>../ai/analyzer.js</code></td><td>Internal</td></tr><tr><td><code>../commands/generateSummary.js</code></td><td>Internal</td></tr><tr><td><code>../commands/run.js</code></td><td>Internal</td></tr><tr><td><code>../exporters/html.js</code></td><td>Internal</td></tr><tr><td><code>commander</code></td><td>External</td></tr><tr><td><code>globby</code></td><td>External</td></tr><tr><td><code>node:fs</code></td><td>Node.js</td></tr><tr><td><code>node:path</code></td><td>Node.js</td></tr><tr><td><code>node:process</code></td><td>Node.js</td></tr><tr><td><code>node:readline/promises</code></td><td>Node.js</td></tr><tr><td><code>puppeteer</code></td><td>External</td></tr></table></div></section></div>
70
- </div>
71
-
72
- <script>
73
- mermaid.initialize({ startOnLoad: true, theme: 'dark', securityLevel: 'loose' });
74
- function toggleTheme() {
75
- const html = document.documentElement;
76
- const next = html.getAttribute('data-theme') === 'dark' ? 'light' : 'dark';
77
- html.setAttribute('data-theme', next);
78
- localStorage.setItem('docs-theme', next);
79
- }
80
- document.documentElement.setAttribute('data-theme', localStorage.getItem('docs-theme') || 'dark');
81
-
82
- document.getElementById('search').addEventListener('input', (e) => {
83
- const term = e.target.value.toLowerCase();
84
- document.querySelectorAll('.component-card, .tree-line, .table-container').forEach(el => {
85
- el.style.display = el.innerText.toLowerCase().includes(term) ? '' : 'none';
86
- });
87
- });
88
- </script>
89
- </body>
90
- </html>
package/docs/report.pdf DELETED
Binary file
package/docs/summary.md DELETED
@@ -1,16 +0,0 @@
1
- # 📊 Vue d'ensemble du Projet – DocsToDev
2
-
3
- > 📅 **Rapport généré le :** 08/01/2026 19:37:19
4
-
5
- ## 🚀 État des lieux
6
- Salut ! J'ai passé ton projet au peigne fin. Voici un résumé rapide de ce que j'ai trouvé :
7
- - **Volume traité :** 10 fichiers analysés avec succès.
8
- - **Diagnostic :** La structure est claire et l'analyse est complète. ✅
9
-
10
- ## 🧭 Navigation Rapide
11
- Pour aller plus loin, tu peux consulter les documents suivants :
12
- - **[📂 Arborescence & Analyse](../docs/docs-to-dev.md)** : Pour comprendre la vocation de chaque fichier et les capacités du système.
13
- - **[💻 Code Source](../)** : Pour retourner explorer la racine de ton projet.
14
-
15
- ---
16
- *DocsToDev – Ton allié pour une documentation technique vivante et intelligente.*
@@ -1,40 +0,0 @@
1
- // Emplacement absolu : M:\workspace\extensions\docstodev\src\commands\classify.ts
2
- import path from "node:path";
3
-
4
- export function determineRole(filePath: string, content: string, lang: "fr" | "en" = "fr"): string {
5
- const fileName = path.basename(filePath).toLowerCase();
6
- const ext = path.extname(filePath);
7
-
8
- const roles = {
9
- fr: {
10
- cli: "Lanceur CLI",
11
- logic: "Logique Métier / Service",
12
- ui: "Interface Utilisateur (UI)",
13
- api: "Point d'Entrée API",
14
- config: "Configuration Système",
15
- unknown: "Inconnu"
16
- },
17
- en: {
18
- cli: "CLI Entry Point",
19
- logic: "Business Logic / Service",
20
- ui: "User Interface (UI)",
21
- api: "API Endpoint",
22
- config: "System Configuration",
23
- unknown: "Unknown"
24
- }
25
- };
26
-
27
- const t = roles[lang];
28
-
29
- if (filePath.includes("cli") || fileName === "index.ts") return t.cli;
30
-
31
- if (filePath.includes("commands") || content.includes("export function")) return t.logic;
32
-
33
- if (content.includes("react") || ext === ".tsx") return t.ui;
34
-
35
- if (content.includes("NextResponse") || filePath.includes("api/")) return t.api;
36
-
37
- if (fileName.includes("config") || ext === ".json") return t.config;
38
-
39
- return t.unknown;
40
- }
package/src/index.ts DELETED
File without changes