docstodev 1.0.2 → 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.
- package/package.json +1 -1
- package/src/ai/analyzer.ts +3 -1
- package/src/analyzers/languageAnalyzer.ts +297 -5
- package/src/commands/generateSummary.ts +129 -39
- package/src/exporters/html.ts +134 -52
- package/.env +0 -1
- package/dist/ai/analyzer.d.ts +0 -3
- package/dist/ai/analyzer.d.ts.map +0 -1
- package/dist/ai/analyzer.js +0 -43
- package/dist/ai/analyzer.js.map +0 -1
- package/dist/analyzers/languageAnalyzer.d.ts +0 -18
- package/dist/analyzers/languageAnalyzer.d.ts.map +0 -1
- package/dist/analyzers/languageAnalyzer.js +0 -251
- package/dist/analyzers/languageAnalyzer.js.map +0 -1
- package/dist/cache/cacheManager.d.ts +0 -38
- package/dist/cache/cacheManager.d.ts.map +0 -1
- package/dist/cache/cacheManager.js +0 -141
- package/dist/cache/cacheManager.js.map +0 -1
- package/dist/cli/index.d.ts +0 -3
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -316
- package/dist/cli/index.js.map +0 -1
- package/dist/commands/classify.d.ts +0 -2
- package/dist/commands/classify.d.ts.map +0 -1
- package/dist/commands/classify.js +0 -37
- package/dist/commands/classify.js.map +0 -1
- package/dist/commands/generateSummary.d.ts +0 -5
- package/dist/commands/generateSummary.d.ts.map +0 -1
- package/dist/commands/generateSummary.js +0 -54
- package/dist/commands/generateSummary.js.map +0 -1
- package/dist/commands/run.d.ts +0 -5
- package/dist/commands/run.d.ts.map +0 -1
- package/dist/commands/run.js +0 -326
- package/dist/commands/run.js.map +0 -1
- package/dist/exporters/html.d.ts +0 -6
- package/dist/exporters/html.d.ts.map +0 -1
- package/dist/exporters/html.js +0 -517
- package/dist/exporters/html.js.map +0 -1
- package/src/commands/classify.ts +0 -40
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
export interface CacheEntry {
|
|
2
|
-
hash: string;
|
|
3
|
-
timestamp: number;
|
|
4
|
-
analysis: any;
|
|
5
|
-
metadata: {
|
|
6
|
-
lines: number;
|
|
7
|
-
size: number;
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
export interface CacheManifest {
|
|
11
|
-
version: string;
|
|
12
|
-
files: Map<string, CacheEntry>;
|
|
13
|
-
lastUpdate: number;
|
|
14
|
-
}
|
|
15
|
-
export declare class CacheManager {
|
|
16
|
-
private cacheDir;
|
|
17
|
-
private manifestPath;
|
|
18
|
-
private manifest;
|
|
19
|
-
private readonly CACHE_VERSION;
|
|
20
|
-
constructor(projectRoot: string);
|
|
21
|
-
private loadManifest;
|
|
22
|
-
private createNewManifest;
|
|
23
|
-
private saveManifest;
|
|
24
|
-
private computeHash;
|
|
25
|
-
isCached(filePath: string, content: string): boolean;
|
|
26
|
-
get(filePath: string): CacheEntry | null;
|
|
27
|
-
set(filePath: string, content: string, analysis: any): void;
|
|
28
|
-
invalidate(filePath: string): void;
|
|
29
|
-
invalidateAll(): void;
|
|
30
|
-
getStats(): {
|
|
31
|
-
total: number;
|
|
32
|
-
size: number;
|
|
33
|
-
oldestEntry: number;
|
|
34
|
-
};
|
|
35
|
-
pruneOldEntries(maxAgeMs?: number): number;
|
|
36
|
-
getModifiedFiles(files: string[]): string[];
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=cacheManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,141 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cacheManager.js","sourceRoot":"","sources":["../../src/cache/cacheManager.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts
DELETED
package/dist/cli/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|
package/dist/cli/index.js
DELETED
|
@@ -1,316 +0,0 @@
|
|
|
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
|
package/dist/cli/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/commands/classify.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,IAAI,GAAG,IAAW,GAAG,MAAM,CAoCjG"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
// Emplacement absolu : M:\workspace\extensions\docstodev\src\commands\classify.ts
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
export function determineRole(filePath, content, lang = "fr") {
|
|
4
|
-
const fileName = path.basename(filePath).toLowerCase();
|
|
5
|
-
const ext = path.extname(filePath);
|
|
6
|
-
const roles = {
|
|
7
|
-
fr: {
|
|
8
|
-
cli: "Lanceur CLI",
|
|
9
|
-
logic: "Logique Métier / Service",
|
|
10
|
-
ui: "Interface Utilisateur (UI)",
|
|
11
|
-
api: "Point d'Entrée API",
|
|
12
|
-
config: "Configuration Système",
|
|
13
|
-
unknown: "Inconnu"
|
|
14
|
-
},
|
|
15
|
-
en: {
|
|
16
|
-
cli: "CLI Entry Point",
|
|
17
|
-
logic: "Business Logic / Service",
|
|
18
|
-
ui: "User Interface (UI)",
|
|
19
|
-
api: "API Endpoint",
|
|
20
|
-
config: "System Configuration",
|
|
21
|
-
unknown: "Unknown"
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
const t = roles[lang];
|
|
25
|
-
if (filePath.includes("cli") || fileName === "index.ts")
|
|
26
|
-
return t.cli;
|
|
27
|
-
if (filePath.includes("commands") || content.includes("export function"))
|
|
28
|
-
return t.logic;
|
|
29
|
-
if (content.includes("react") || ext === ".tsx")
|
|
30
|
-
return t.ui;
|
|
31
|
-
if (content.includes("NextResponse") || filePath.includes("api/"))
|
|
32
|
-
return t.api;
|
|
33
|
-
if (fileName.includes("config") || ext === ".json")
|
|
34
|
-
return t.config;
|
|
35
|
-
return t.unknown;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=classify.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"classify.js","sourceRoot":"","sources":["../../src/commands/classify.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,OAAe,EAAE,OAAoB,IAAI;IACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEnC,MAAM,KAAK,GAAG;QACV,EAAE,EAAE;YACA,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,0BAA0B;YACjC,EAAE,EAAE,4BAA4B;YAChC,GAAG,EAAE,oBAAoB;YACzB,MAAM,EAAE,uBAAuB;YAC/B,OAAO,EAAE,SAAS;SACrB;QACD,EAAE,EAAE;YACA,GAAG,EAAE,iBAAiB;YACtB,KAAK,EAAE,0BAA0B;YACjC,EAAE,EAAE,qBAAqB;YACzB,GAAG,EAAE,cAAc;YACnB,MAAM,EAAE,sBAAsB;YAC9B,OAAO,EAAE,SAAS;SACrB;KACJ,CAAC;IAEF,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAEtB,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,KAAK,UAAU;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC;IAEtE,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,OAAO,CAAC,CAAC,KAAK,CAAC;IAEzF,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAE7D,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC;IAEhF,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC;IAEpE,OAAO,CAAC,CAAC,OAAO,CAAC;AACrB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateSummary.d.ts","sourceRoot":"","sources":["../../src/commands/generateSummary.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,IAAI,GAAG,IAAW,QAmD5F"}
|
|
@@ -1,54 +0,0 @@
|
|
|
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, totalFiles, lang = "fr") {
|
|
8
|
-
mkdirSync(docsDir, { recursive: true });
|
|
9
|
-
const dateStr = new Date().toLocaleString();
|
|
10
|
-
// Contenu bilingue avec un ton "Expert & Humain"
|
|
11
|
-
const content = lang === "fr"
|
|
12
|
-
? `# 📊 Vue d'ensemble du Projet – DocsToDev
|
|
13
|
-
|
|
14
|
-
> 📅 **Rapport généré le :** ${dateStr}
|
|
15
|
-
|
|
16
|
-
## 🚀 État des lieux
|
|
17
|
-
Salut ! J'ai passé ton projet au peigne fin. Voici un résumé rapide de ce que j'ai trouvé :
|
|
18
|
-
- **Volume traité :** ${totalFiles} fichiers analysés avec succès.
|
|
19
|
-
- **Diagnostic :** La structure est claire et l'analyse est complète. ✅
|
|
20
|
-
|
|
21
|
-
## 🧭 Navigation Rapide
|
|
22
|
-
Pour aller plus loin, tu peux consulter les documents suivants :
|
|
23
|
-
- **[📂 Arborescence & Analyse](../docs/docs-to-dev.md)** : Pour comprendre la vocation de chaque fichier et les capacités du système.
|
|
24
|
-
- **[💻 Code Source](../)** : Pour retourner explorer la racine de ton projet.
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
*DocsToDev – Ton allié pour une documentation technique vivante et intelligente.*
|
|
28
|
-
`
|
|
29
|
-
: `# 📊 Project Overview – DocsToDev
|
|
30
|
-
|
|
31
|
-
> 📅 **Generated on:** ${dateStr}
|
|
32
|
-
|
|
33
|
-
## 🚀 Project Status
|
|
34
|
-
Hey! I've scanned your entire codebase. Here's a quick summary of the findings:
|
|
35
|
-
- **Volume processed:** ${totalFiles} files successfully analyzed.
|
|
36
|
-
- **Diagnosis:** The structure is clear and the analysis is complete. ✅
|
|
37
|
-
|
|
38
|
-
## 🧭 Quick Navigation
|
|
39
|
-
To dive deeper, check out these documents:
|
|
40
|
-
- **[📂 Tree & Analysis](../docs/docs-to-dev.md)**: Explore file purposes and system capabilities.
|
|
41
|
-
- **[💻 Source Code](../)**: Head back to the project root.
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
*DocsToDev – Your partner for living and intelligent technical documentation.*
|
|
45
|
-
`;
|
|
46
|
-
const outputPath = path.join(docsDir, "summary.md");
|
|
47
|
-
writeFileSync(outputPath, content);
|
|
48
|
-
// Log de succès bilingue
|
|
49
|
-
const successMsg = lang === "fr"
|
|
50
|
-
? `📑 Résumé humain généré avec succès : ${outputPath}`
|
|
51
|
-
: `📑 Human-friendly summary successfully generated: ${outputPath}`;
|
|
52
|
-
console.log(successMsg);
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=generateSummary.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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;AAE7B;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,UAAkB,EAAE,OAAoB,IAAI;IAC3F,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAExC,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;IAE5C,iDAAiD;IACjD,MAAM,OAAO,GAAG,IAAI,KAAK,IAAI;QAC3B,CAAC,CAAC;;+BAEyB,OAAO;;;;wBAId,UAAU;;;;;;;;;;CAUjC;QACG,CAAC,CAAC;;yBAEmB,OAAO;;;;0BAIN,UAAU;;;;;;;;;;CAUnC,CAAC;IAEA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACpD,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEnC,yBAAyB;IACzB,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"}
|