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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cacheManager.d.ts","sourceRoot":"","sources":["../../src/cache/cacheManager.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAW;gBAE7B,WAAW,EAAE,MAAM;IAW/B,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;IAMZ,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAQpD,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAIxC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAmB3D,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKlC,aAAa,IAAI,IAAI;IAKrB,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;IAShE,eAAe,CAAC,QAAQ,GAAE,MAAgC,GAAG,MAAM;IAkBnE,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAmBnD"}
@@ -0,0 +1,141 @@
1
+ // Emplacement : M:\workspace\extensions\docstodev\src\cache\cacheManager.ts
2
+ import { createHash } from "node:crypto";
3
+ import { readFileSync, writeFileSync, existsSync, statSync, mkdirSync } from "node:fs";
4
+ import path from "node:path";
5
+ export class CacheManager {
6
+ cacheDir;
7
+ manifestPath;
8
+ manifest;
9
+ CACHE_VERSION = "1.0.0";
10
+ constructor(projectRoot) {
11
+ this.cacheDir = path.join(projectRoot, ".docstodev", "cache");
12
+ this.manifestPath = path.join(this.cacheDir, "manifest.json");
13
+ if (!existsSync(this.cacheDir)) {
14
+ mkdirSync(this.cacheDir, { recursive: true });
15
+ }
16
+ this.manifest = this.loadManifest();
17
+ }
18
+ loadManifest() {
19
+ if (existsSync(this.manifestPath)) {
20
+ try {
21
+ const data = JSON.parse(readFileSync(this.manifestPath, "utf-8"));
22
+ // Vérifier la version du cache
23
+ if (data.version !== this.CACHE_VERSION) {
24
+ console.log("⚠️ Cache version mismatch, clearing cache...");
25
+ return this.createNewManifest();
26
+ }
27
+ // Reconstituer la Map depuis l'objet
28
+ return {
29
+ version: data.version,
30
+ files: new Map(Object.entries(data.files || {})),
31
+ lastUpdate: data.lastUpdate
32
+ };
33
+ }
34
+ catch (e) {
35
+ console.error("⚠️ Failed to load cache manifest:", e);
36
+ return this.createNewManifest();
37
+ }
38
+ }
39
+ return this.createNewManifest();
40
+ }
41
+ createNewManifest() {
42
+ return {
43
+ version: this.CACHE_VERSION,
44
+ files: new Map(),
45
+ lastUpdate: Date.now()
46
+ };
47
+ }
48
+ saveManifest() {
49
+ try {
50
+ const data = {
51
+ version: this.manifest.version,
52
+ files: Object.fromEntries(this.manifest.files),
53
+ lastUpdate: this.manifest.lastUpdate
54
+ };
55
+ writeFileSync(this.manifestPath, JSON.stringify(data, null, 2));
56
+ }
57
+ catch (e) {
58
+ console.error("⚠️ Failed to save cache manifest:", e);
59
+ }
60
+ }
61
+ computeHash(filePath, content) {
62
+ const stats = statSync(filePath);
63
+ const hashContent = `${content}|${stats.mtime.getTime()}|${stats.size}`;
64
+ return createHash("sha256").update(hashContent).digest("hex");
65
+ }
66
+ isCached(filePath, content) {
67
+ const entry = this.manifest.files.get(filePath);
68
+ if (!entry)
69
+ return false;
70
+ const currentHash = this.computeHash(filePath, content);
71
+ return entry.hash === currentHash;
72
+ }
73
+ get(filePath) {
74
+ return this.manifest.files.get(filePath) || null;
75
+ }
76
+ set(filePath, content, analysis) {
77
+ const stats = statSync(filePath);
78
+ const hash = this.computeHash(filePath, content);
79
+ const entry = {
80
+ hash,
81
+ timestamp: Date.now(),
82
+ analysis,
83
+ metadata: {
84
+ lines: content.split(/\r?\n/).length,
85
+ size: stats.size
86
+ }
87
+ };
88
+ this.manifest.files.set(filePath, entry);
89
+ this.manifest.lastUpdate = Date.now();
90
+ this.saveManifest();
91
+ }
92
+ invalidate(filePath) {
93
+ this.manifest.files.delete(filePath);
94
+ this.saveManifest();
95
+ }
96
+ invalidateAll() {
97
+ this.manifest = this.createNewManifest();
98
+ this.saveManifest();
99
+ }
100
+ getStats() {
101
+ const entries = Array.from(this.manifest.files.values());
102
+ return {
103
+ total: entries.length,
104
+ size: entries.reduce((sum, e) => sum + e.metadata.size, 0),
105
+ oldestEntry: Math.min(...entries.map(e => e.timestamp), Date.now())
106
+ };
107
+ }
108
+ pruneOldEntries(maxAgeMs = 7 * 24 * 60 * 60 * 1000) {
109
+ const now = Date.now();
110
+ let pruned = 0;
111
+ for (const [filePath, entry] of this.manifest.files.entries()) {
112
+ if (now - entry.timestamp > maxAgeMs) {
113
+ this.manifest.files.delete(filePath);
114
+ pruned++;
115
+ }
116
+ }
117
+ if (pruned > 0) {
118
+ this.saveManifest();
119
+ }
120
+ return pruned;
121
+ }
122
+ getModifiedFiles(files) {
123
+ const modified = [];
124
+ for (const file of files) {
125
+ if (!existsSync(file))
126
+ continue;
127
+ try {
128
+ const content = readFileSync(file, "utf-8");
129
+ if (!this.isCached(file, content)) {
130
+ modified.push(file);
131
+ }
132
+ }
133
+ catch (e) {
134
+ // Si erreur de lecture, considérer comme modifié
135
+ modified.push(file);
136
+ }
137
+ }
138
+ return modified;
139
+ }
140
+ }
141
+ //# sourceMappingURL=cacheManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cacheManager.js","sourceRoot":"","sources":["../../src/cache/cacheManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,316 @@
1
+ #!/usr/bin/env node
2
+ // Emplacement absolu : M:\workspace\extensions\docstodev\src\cli\index.ts
3
+ import { Command } from "commander";
4
+ import { runCommand } from "../commands/run.js";
5
+ import { generateSummary } from "../commands/generateSummary.js";
6
+ import readline from "node:readline/promises";
7
+ import { stdin as input, stdout as output } from "node:process";
8
+ import path from "node:path";
9
+ const program = new Command();
10
+ // Spinner pour les effets de chargement
11
+ class Spinner {
12
+ frames = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
13
+ currentFrame = 0;
14
+ interval = null;
15
+ message = "";
16
+ start(message) {
17
+ this.message = message;
18
+ this.currentFrame = 0;
19
+ // Cacher le curseur
20
+ process.stdout.write("\x1B[?25l");
21
+ this.interval = setInterval(() => {
22
+ const frame = this.frames[this.currentFrame];
23
+ process.stdout.write(`\r${frame} ${this.message}`);
24
+ this.currentFrame = (this.currentFrame + 1) % this.frames.length;
25
+ }, 80);
26
+ }
27
+ update(message) {
28
+ this.message = message;
29
+ }
30
+ succeed(message) {
31
+ this.stop();
32
+ console.log(`✓ ${message}`);
33
+ }
34
+ fail(message) {
35
+ this.stop();
36
+ console.log(`✗ ${message}`);
37
+ }
38
+ stop() {
39
+ if (this.interval) {
40
+ clearInterval(this.interval);
41
+ this.interval = null;
42
+ }
43
+ // Effacer la ligne actuelle
44
+ if (process.stdout.clearLine) {
45
+ process.stdout.clearLine(0);
46
+ process.stdout.cursorTo(0);
47
+ }
48
+ // Réafficher le curseur
49
+ process.stdout.write("\x1B[?25h");
50
+ }
51
+ }
52
+ // Barre de progression
53
+ class ProgressBar {
54
+ total;
55
+ current = 0;
56
+ barLength = 30;
57
+ constructor(total) {
58
+ this.total = total;
59
+ }
60
+ update(current, message) {
61
+ this.current = current;
62
+ const percentage = Math.floor((this.current / this.total) * 100);
63
+ const filledLength = Math.floor((this.current / this.total) * this.barLength);
64
+ const bar = "█".repeat(filledLength) + "░".repeat(this.barLength - filledLength);
65
+ const msg = message ? ` ${message}` : "";
66
+ const output = `\r[${bar}] ${percentage}%${msg}`;
67
+ process.stdout.write(output);
68
+ }
69
+ complete(message) {
70
+ this.update(this.total);
71
+ console.log(`\n✓ ${message}`);
72
+ }
73
+ }
74
+ // Animation de texte
75
+ function typeWriter(text, delay = 30) {
76
+ return new Promise((resolve) => {
77
+ let i = 0;
78
+ const chars = text.split('');
79
+ const interval = setInterval(() => {
80
+ if (i < chars.length) {
81
+ process.stdout.write(chars[i] || '');
82
+ i++;
83
+ }
84
+ else {
85
+ clearInterval(interval);
86
+ process.stdout.write("\n");
87
+ resolve();
88
+ }
89
+ }, delay);
90
+ });
91
+ }
92
+ // Bannière animée
93
+ async function showBanner(lang) {
94
+ const banner = `
95
+ ╔═══════════════════════════════════════════════════════╗
96
+ ║ ║
97
+ ║ ██████╗ ██████╗ ██████╗███████╗████████╗ ║
98
+ ║ ██╔══██╗██╔═══██╗██╔════╝██╔════╝╚══██╔══╝ ║
99
+ ║ ██║ ██║██║ ██║██║ ███████╗ ██║ ║
100
+ ║ ██║ ██║██║ ██║██║ ╚════██║ ██║ ║
101
+ ║ ██████╔╝╚██████╔╝╚██████╗███████║ ██║ ║
102
+ ║ ╚═════╝ ╚═════╝ ╚═════╝╚══════╝ ╚═╝ DEV ║
103
+ ║ ║
104
+ ║ 📚 Analyse Technique & Documentation ║
105
+ ║ Intelligente ║
106
+ ║ ║
107
+ ╚═══════════════════════════════════════════════════════╝
108
+ `;
109
+ console.clear();
110
+ const coloredBanner = "\x1b[36m" + banner + "\x1b[0m";
111
+ console.log(coloredBanner);
112
+ const tagline = lang === "fr"
113
+ ? " Transformez votre code en documentation professionnelle"
114
+ : " Transform your code into professional documentation";
115
+ await typeWriter(tagline, 20);
116
+ console.log("");
117
+ }
118
+ // Sélection de langue interactive
119
+ async function selectLanguage() {
120
+ console.log("\n🌍 Language Selection / Sélection de la langue\n");
121
+ console.log(" [1] 🇫🇷 Français");
122
+ console.log(" [2] 🇬🇧 English\n");
123
+ const rl = readline.createInterface({ input, output });
124
+ let answer = "";
125
+ while (!["1", "2", "fr", "en"].includes(answer.toLowerCase())) {
126
+ answer = await rl.question("👉 Votre choix / Your choice (1/2 or fr/en): ");
127
+ }
128
+ rl.close();
129
+ if (answer === "1" || answer.toLowerCase() === "fr") {
130
+ return "fr";
131
+ }
132
+ return "en";
133
+ }
134
+ // Effet de transition
135
+ function showTransition(message) {
136
+ return new Promise((resolve) => {
137
+ const dots = [" ", ". ", ".. ", "..."];
138
+ let i = 0;
139
+ const interval = setInterval(() => {
140
+ const output = `\r${message}${dots[i % dots.length]}`;
141
+ process.stdout.write(output);
142
+ i++;
143
+ if (i >= 8) {
144
+ clearInterval(interval);
145
+ if (process.stdout.clearLine) {
146
+ process.stdout.clearLine(0);
147
+ process.stdout.cursorTo(0);
148
+ }
149
+ resolve();
150
+ }
151
+ }, 200);
152
+ });
153
+ }
154
+ // Configuration de base du CLI
155
+ program
156
+ .name("docs-to-dev")
157
+ .description("DocsToDev CLI - Analyse technique & Documentation intelligente")
158
+ .version("1.0.0");
159
+ program
160
+ .command("run")
161
+ .description("Lancer le cycle complet d'analyse et de documentation")
162
+ .option("-l, --lang <lang>", "Langue forcée du rapport (fr | en)")
163
+ .option("--no-animation", "Désactiver les animations")
164
+ .option("-i, --incremental", "Mode incrémental (analyser uniquement les fichiers modifiés)")
165
+ .option("--clear-cache", "Vider le cache avant l'analyse")
166
+ .action(async (options) => {
167
+ const useAnimation = options.animation !== false;
168
+ let lang;
169
+ // --- 1. Bannière et Sélection de Langue ---
170
+ if (useAnimation) {
171
+ await showBanner(options.lang || "fr");
172
+ }
173
+ if (options.lang === "fr" || options.lang === "en") {
174
+ lang = options.lang;
175
+ }
176
+ else {
177
+ lang = await selectLanguage();
178
+ }
179
+ const messages = {
180
+ fr: {
181
+ initializing: "Initialisation de l'environnement",
182
+ scanning: "Scan des fichiers du projet",
183
+ analyzing: "Analyse approfondie du code",
184
+ generating: "Génération de l'analyse IA",
185
+ building: "Construction du rapport",
186
+ exporting: "Export HTML avec graphiques",
187
+ creating: "Création du PDF",
188
+ finalizing: "Finalisation",
189
+ success: "Documentation générée avec succès !",
190
+ error: "Une erreur est survenue lors de l'analyse"
191
+ },
192
+ en: {
193
+ initializing: "Initializing environment",
194
+ scanning: "Scanning project files",
195
+ analyzing: "Deep code analysis",
196
+ generating: "Generating AI insights",
197
+ building: "Building report",
198
+ exporting: "Exporting HTML with graphs",
199
+ creating: "Creating PDF",
200
+ finalizing: "Finalizing",
201
+ success: "Documentation generated successfully!",
202
+ error: "An error occurred during analysis"
203
+ }
204
+ }[lang];
205
+ console.log(`\n\x1b[1m${lang === "fr" ? "🚀 Démarrage de l'analyse" : "🚀 Starting analysis"}\x1b[0m\n`);
206
+ try {
207
+ // --- 2. Phase d'initialisation ---
208
+ if (useAnimation) {
209
+ const spinner = new Spinner();
210
+ spinner.start(messages.initializing);
211
+ await new Promise(resolve => setTimeout(resolve, 800));
212
+ spinner.succeed(messages.initializing);
213
+ await new Promise(resolve => setTimeout(resolve, 200));
214
+ }
215
+ // --- 3. Exécution du Moteur avec feedback ---
216
+ console.log("");
217
+ const fileCount = await runCommand(lang, {
218
+ incremental: options.incremental,
219
+ clearCache: options.clearCache
220
+ });
221
+ // --- 4. Génération du Résumé ---
222
+ if (useAnimation) {
223
+ await showTransition(messages.finalizing);
224
+ }
225
+ generateSummary("docs", fileCount || 0, lang);
226
+ // --- 5. Message de succès avec animation ---
227
+ console.log("");
228
+ if (useAnimation) {
229
+ await new Promise(resolve => setTimeout(resolve, 300));
230
+ console.log("\n\x1b[32m" + "═".repeat(60) + "\x1b[0m");
231
+ console.log(`\x1b[32m✨ ${messages.success}\x1b[0m`);
232
+ console.log("\x1b[32m" + "═".repeat(60) + "\x1b[0m\n");
233
+ }
234
+ else {
235
+ console.log(`\n✨ ${messages.success}\n`);
236
+ }
237
+ // --- 6. Informations finales ---
238
+ const outputDir = path.join(process.cwd(), "docs");
239
+ console.log(`📂 ${lang === "fr" ? "Dossier de sortie" : "Output folder"}: \x1b[36m${outputDir}\x1b[0m`);
240
+ console.log(`📊 ${lang === "fr" ? "Fichiers analysés" : "Files analyzed"}: \x1b[33m${fileCount}\x1b[0m`);
241
+ console.log(`\n📄 ${lang === "fr" ? "Fichiers générés" : "Generated files"}:`);
242
+ console.log(` • docs-to-dev.md`);
243
+ console.log(` • report.html`);
244
+ console.log(` • report.pdf`);
245
+ console.log(` • summary.json\n`);
246
+ if (lang === "fr") {
247
+ console.log("💡 \x1b[2mOuvrez report.html dans votre navigateur pour une visualisation interactive\x1b[0m\n");
248
+ }
249
+ else {
250
+ console.log("💡 \x1b[2mOpen report.html in your browser for an interactive view\x1b[0m\n");
251
+ }
252
+ }
253
+ catch (error) {
254
+ console.log("");
255
+ console.error(`\n\x1b[31m❌ ${messages.error}:\x1b[0m`, error);
256
+ process.exit(1);
257
+ }
258
+ });
259
+ // Commande info
260
+ program
261
+ .command("info")
262
+ .description("Afficher les informations sur DocsToDev")
263
+ .action(() => {
264
+ console.log("\n\x1b[36m╔═══════════════════════════════════════╗\x1b[0m");
265
+ console.log("\x1b[36m║ DocsToDev - Info ║\x1b[0m");
266
+ console.log("\x1b[36m╚═══════════════════════════════════════╝\x1b[0m\n");
267
+ console.log("📦 Version: 1.0.0");
268
+ console.log("👨‍💻 Auteur: Makazou");
269
+ console.log("📝 Description: Outil d'analyse de code et génération de documentation");
270
+ console.log("🔗 Repository: https://github.com/votre-repo/docstodev");
271
+ console.log("\n✨ Fonctionnalités:");
272
+ console.log(" • Analyse statique multi-langages (TS/JS, Python, Java, C#, Go, Rust)");
273
+ console.log(" • Génération de graphiques de dépendances");
274
+ console.log(" • Synthèse intelligente par IA");
275
+ console.log(" • Export multi-formats (MD, HTML, PDF)");
276
+ console.log(" • Support i18n (FR/EN)");
277
+ console.log(" • Cache intelligent avec mode incrémental");
278
+ console.log("\n📚 Langages supportés:");
279
+ console.log(" • TypeScript/JavaScript (.ts, .js, .tsx, .jsx, .mjs, .cjs)");
280
+ console.log(" • Python (.py)");
281
+ console.log(" • Java (.java)");
282
+ console.log(" • C# (.cs)");
283
+ console.log(" • Go (.go)");
284
+ console.log(" • Rust (.rs)\n");
285
+ });
286
+ // Commande cache
287
+ program
288
+ .command("cache")
289
+ .description("Gérer le cache des analyses")
290
+ .option("--clear", "Vider complètement le cache")
291
+ .option("--stats", "Afficher les statistiques du cache")
292
+ .option("--prune", "Supprimer les entrées de plus de 7 jours")
293
+ .action((options) => {
294
+ const { CacheManager } = require("../cache/cacheManager.js");
295
+ const cache = new CacheManager(process.cwd());
296
+ if (options.clear) {
297
+ cache.invalidateAll();
298
+ console.log("\n✓ Cache vidé avec succès\n");
299
+ }
300
+ else if (options.prune) {
301
+ const pruned = cache.pruneOldEntries();
302
+ console.log(`\n✓ ${pruned} entrées obsolètes supprimées\n`);
303
+ }
304
+ else if (options.stats) {
305
+ const stats = cache.getStats();
306
+ console.log("\n📊 Statistiques du cache:");
307
+ console.log(` • Entrées totales: ${stats.total}`);
308
+ console.log(` • Taille: ${Math.round(stats.size / 1024)} KB`);
309
+ console.log(` • Entrée la plus ancienne: ${new Date(stats.oldestEntry).toLocaleString()}\n`);
310
+ }
311
+ else {
312
+ console.log("\n⚠️ Spécifiez une option: --clear, --stats, ou --prune\n");
313
+ }
314
+ });
315
+ program.parse(process.argv);
316
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ interface SummaryData {
2
+ totalFiles: number;
3
+ sourceFiles?: number;
4
+ totalComplexity?: number;
5
+ avgComplexity?: number;
6
+ totalDeps?: number;
7
+ topLanguages?: {
8
+ lang: string;
9
+ count: number;
10
+ }[];
11
+ criticalFiles?: string[];
12
+ }
13
+ /**
14
+ * Génère un résumé global du projet avec un ton humain et bilingue.
15
+ */
16
+ export declare function generateSummary(docsDir: string, data: SummaryData | number, lang?: "fr" | "en"): void;
17
+ export {};
18
+ //# sourceMappingURL=generateSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSummary.d.ts","sourceRoot":"","sources":["../../src/commands/generateSummary.ts"],"names":[],"mappings":"AAKA,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,GAAG,MAAM,EAC1B,IAAI,GAAE,IAAI,GAAG,IAAW,QAgIzB"}
@@ -0,0 +1,116 @@
1
+ // Emplacement absolu : M:\workspace\extensions\docstodev\src\commands\generateSummary.ts
2
+ import { writeFileSync, mkdirSync } from "node:fs";
3
+ import path from "node:path";
4
+ /**
5
+ * Génère un résumé global du projet avec un ton humain et bilingue.
6
+ */
7
+ export function generateSummary(docsDir, data, lang = "fr") {
8
+ mkdirSync(docsDir, { recursive: true });
9
+ // Support de l'ancien format (juste un nombre) et du nouveau format (objet complet)
10
+ const summaryData = typeof data === 'number'
11
+ ? { totalFiles: data }
12
+ : data;
13
+ const dateStr = new Date().toLocaleString(lang === "fr" ? "fr-FR" : "en-US", {
14
+ dateStyle: "full",
15
+ timeStyle: "short"
16
+ });
17
+ const t = lang === "fr" ? {
18
+ title: "📊 Vue d'ensemble du Projet – DocsToDev",
19
+ genOn: "Rapport généré le",
20
+ status: "🚀 État des lieux",
21
+ intro: "Salut ! J'ai passé ton projet au peigne fin. Voici un résumé rapide de ce que j'ai trouvé :",
22
+ volume: "Volume traité",
23
+ filesAnalyzed: "fichiers analysés avec succès",
24
+ sourceFiles: "fichiers sources détectés",
25
+ diagnosis: "Diagnostic",
26
+ structureClear: "La structure est claire et l'analyse est complète. ✅",
27
+ metrics: "📈 Métriques clés",
28
+ complexity: "Complexité totale",
29
+ avgComplexity: "Complexité moyenne",
30
+ dependencies: "Dépendances uniques",
31
+ topLangs: "🔤 Langages détectés",
32
+ criticalFiles: "⚠️ Fichiers critiques (haute complexité)",
33
+ navigation: "🧭 Navigation Rapide",
34
+ navDesc: "Pour aller plus loin, tu peux consulter les documents suivants :",
35
+ treeLink: "📂 Arborescence & Analyse",
36
+ treeDesc: "Pour comprendre la vocation de chaque fichier et les capacités du système.",
37
+ codeLink: "💻 Code Source",
38
+ codeDesc: "Pour retourner explorer la racine de ton projet.",
39
+ footer: "DocsToDev – Ton allié pour une documentation technique vivante et intelligente."
40
+ } : {
41
+ title: "📊 Project Overview – DocsToDev",
42
+ genOn: "Generated on",
43
+ status: "🚀 Project Status",
44
+ intro: "Hey! I've scanned your entire codebase. Here's a quick summary of the findings:",
45
+ volume: "Volume processed",
46
+ filesAnalyzed: "files successfully analyzed",
47
+ sourceFiles: "source files detected",
48
+ diagnosis: "Diagnosis",
49
+ structureClear: "The structure is clear and the analysis is complete. ✅",
50
+ metrics: "📈 Key Metrics",
51
+ complexity: "Total complexity",
52
+ avgComplexity: "Average complexity",
53
+ dependencies: "Unique dependencies",
54
+ topLangs: "🔤 Languages Detected",
55
+ criticalFiles: "⚠️ Critical Files (high complexity)",
56
+ navigation: "🧭 Quick Navigation",
57
+ navDesc: "To dive deeper, check out these documents:",
58
+ treeLink: "📂 Tree & Analysis",
59
+ treeDesc: "Explore file purposes and system capabilities.",
60
+ codeLink: "💻 Source Code",
61
+ codeDesc: "Head back to the project root.",
62
+ footer: "DocsToDev – Your partner for living and intelligent technical documentation."
63
+ };
64
+ let content = `# ${t.title}\n\n`;
65
+ content += `> 📅 **${t.genOn} :** ${dateStr}\n\n`;
66
+ content += `## ${t.status}\n`;
67
+ content += `${t.intro}\n`;
68
+ content += `- **${t.volume} :** ${summaryData.totalFiles} ${t.filesAnalyzed}.\n`;
69
+ if (summaryData.sourceFiles) {
70
+ content += `- **${t.sourceFiles} :** ${summaryData.sourceFiles} ${t.sourceFiles.toLowerCase()}.\n`;
71
+ }
72
+ content += `- **${t.diagnosis} :** ${t.structureClear}\n\n`;
73
+ // Métriques additionnelles si disponibles
74
+ if (summaryData.totalComplexity || summaryData.avgComplexity || summaryData.totalDeps) {
75
+ content += `## ${t.metrics}\n`;
76
+ if (summaryData.totalComplexity) {
77
+ content += `- **${t.complexity} :** ${summaryData.totalComplexity}\n`;
78
+ }
79
+ if (summaryData.avgComplexity) {
80
+ content += `- **${t.avgComplexity} :** ${summaryData.avgComplexity}\n`;
81
+ }
82
+ if (summaryData.totalDeps) {
83
+ content += `- **${t.dependencies} :** ${summaryData.totalDeps}\n`;
84
+ }
85
+ content += `\n`;
86
+ }
87
+ // Langages détectés
88
+ if (summaryData.topLanguages && summaryData.topLanguages.length > 0) {
89
+ content += `## ${t.topLangs}\n`;
90
+ summaryData.topLanguages.forEach(({ lang, count }) => {
91
+ content += `- **${lang}** : ${count} ${lang === "fr" ? "fichiers" : "files"}\n`;
92
+ });
93
+ content += `\n`;
94
+ }
95
+ // Fichiers critiques
96
+ if (summaryData.criticalFiles && summaryData.criticalFiles.length > 0) {
97
+ content += `## ${t.criticalFiles}\n`;
98
+ summaryData.criticalFiles.forEach(file => {
99
+ content += `- \`${file}\`\n`;
100
+ });
101
+ content += `\n`;
102
+ }
103
+ content += `## ${t.navigation}\n`;
104
+ content += `${t.navDesc}\n`;
105
+ content += `- **[${t.treeLink}](../docs/docs-to-dev.md)** : ${t.treeDesc}\n`;
106
+ content += `- **[${t.codeLink}](../)** : ${t.codeDesc}\n\n`;
107
+ content += `---\n`;
108
+ content += `*${t.footer}*\n`;
109
+ const outputPath = path.join(docsDir, "summary.md");
110
+ writeFileSync(outputPath, content);
111
+ const successMsg = lang === "fr"
112
+ ? `📑 Résumé humain généré avec succès : ${outputPath}`
113
+ : `📑 Human-friendly summary successfully generated: ${outputPath}`;
114
+ console.log(successMsg);
115
+ }
116
+ //# sourceMappingURL=generateSummary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSummary.js","sourceRoot":"","sources":["../../src/commands/generateSummary.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAY7B;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,IAA0B,EAC1B,OAAoB,IAAI;IAExB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAExC,oFAAoF;IACpF,MAAM,WAAW,GAAgB,OAAO,IAAI,KAAK,QAAQ;QACvD,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;QACtB,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE;QAC3E,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;QACxB,KAAK,EAAE,yCAAyC;QAChD,KAAK,EAAE,mBAAmB;QAC1B,MAAM,EAAE,mBAAmB;QAC3B,KAAK,EAAE,6FAA6F;QACpG,MAAM,EAAE,eAAe;QACvB,aAAa,EAAE,+BAA+B;QAC9C,WAAW,EAAE,2BAA2B;QACxC,SAAS,EAAE,YAAY;QACvB,cAAc,EAAE,sDAAsD;QACtE,OAAO,EAAE,mBAAmB;QAC5B,UAAU,EAAE,mBAAmB;QAC/B,aAAa,EAAE,oBAAoB;QACnC,YAAY,EAAE,qBAAqB;QACnC,QAAQ,EAAE,sBAAsB;QAChC,aAAa,EAAE,0CAA0C;QACzD,UAAU,EAAE,sBAAsB;QAClC,OAAO,EAAE,kEAAkE;QAC3E,QAAQ,EAAE,2BAA2B;QACrC,QAAQ,EAAE,4EAA4E;QACtF,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,kDAAkD;QAC5D,MAAM,EAAE,iFAAiF;KAC1F,CAAC,CAAC,CAAC;QACF,KAAK,EAAE,iCAAiC;QACxC,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,mBAAmB;QAC3B,KAAK,EAAE,iFAAiF;QACxF,MAAM,EAAE,kBAAkB;QAC1B,aAAa,EAAE,6BAA6B;QAC5C,WAAW,EAAE,uBAAuB;QACpC,SAAS,EAAE,WAAW;QACtB,cAAc,EAAE,wDAAwD;QACxE,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,kBAAkB;QAC9B,aAAa,EAAE,oBAAoB;QACnC,YAAY,EAAE,qBAAqB;QACnC,QAAQ,EAAE,uBAAuB;QACjC,aAAa,EAAE,qCAAqC;QACpD,UAAU,EAAE,qBAAqB;QACjC,OAAO,EAAE,4CAA4C;QACrD,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,gDAAgD;QAC1D,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,gCAAgC;QAC1C,MAAM,EAAE,8EAA8E;KACvF,CAAC;IAEF,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC;IACjC,OAAO,IAAI,UAAU,CAAC,CAAC,KAAK,QAAQ,OAAO,MAAM,CAAC;IAElD,OAAO,IAAI,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC;IAC9B,OAAO,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;IAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,MAAM,QAAQ,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC;IAEjF,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,WAAW,QAAQ,WAAW,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC;IACrG,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,cAAc,MAAM,CAAC;IAE5D,0CAA0C;IAC1C,IAAI,WAAW,CAAC,eAAe,IAAI,WAAW,CAAC,aAAa,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;QACtF,OAAO,IAAI,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;QAE/B,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC;YAChC,OAAO,IAAI,OAAO,CAAC,CAAC,UAAU,QAAQ,WAAW,CAAC,eAAe,IAAI,CAAC;QACxE,CAAC;QAED,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;YAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,aAAa,QAAQ,WAAW,CAAC,aAAa,IAAI,CAAC;QACzE,CAAC;QAED,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,YAAY,QAAQ,WAAW,CAAC,SAAS,IAAI,CAAC;QACpE,CAAC;QAED,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,oBAAoB;IACpB,IAAI,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,MAAM,CAAC,CAAC,QAAQ,IAAI,CAAC;QAChC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;YACnD,OAAO,IAAI,OAAO,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC;QAClF,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,qBAAqB;IACrB,IAAI,WAAW,CAAC,aAAa,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,MAAM,CAAC,CAAC,aAAa,IAAI,CAAC;QACrC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvC,OAAO,IAAI,OAAO,IAAI,MAAM,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,MAAM,CAAC,CAAC,UAAU,IAAI,CAAC;IAClC,OAAO,IAAI,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC;IAC5B,OAAO,IAAI,QAAQ,CAAC,CAAC,QAAQ,iCAAiC,CAAC,CAAC,QAAQ,IAAI,CAAC;IAC7E,OAAO,IAAI,QAAQ,CAAC,CAAC,QAAQ,cAAc,CAAC,CAAC,QAAQ,MAAM,CAAC;IAE5D,OAAO,IAAI,OAAO,CAAC;IACnB,OAAO,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;IAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACpD,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEnC,MAAM,UAAU,GAAG,IAAI,KAAK,IAAI;QAC9B,CAAC,CAAC,yCAAyC,UAAU,EAAE;QACvD,CAAC,CAAC,qDAAqD,UAAU,EAAE,CAAC;IAEtE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function runCommand(language?: "fr" | "en", options?: {
2
+ incremental?: boolean;
3
+ clearCache?: boolean;
4
+ }): Promise<number>;
5
+ //# sourceMappingURL=run.d.ts.map