@oalacea/daemon 0.6.4 → 0.7.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.
Files changed (285) hide show
  1. package/README.md +268 -58
  2. package/bin/Dockerfile +158 -16
  3. package/dist/cli/cli.d.ts.map +1 -1
  4. package/dist/cli/cli.js +22 -2
  5. package/dist/cli/cli.js.map +1 -1
  6. package/dist/cli/commands/command.types.d.ts +216 -0
  7. package/dist/cli/commands/command.types.d.ts.map +1 -0
  8. package/dist/cli/commands/command.types.js +64 -0
  9. package/dist/cli/commands/command.types.js.map +1 -0
  10. package/dist/cli/commands/history.command.d.ts +91 -0
  11. package/dist/cli/commands/history.command.d.ts.map +1 -0
  12. package/dist/cli/commands/history.command.js +336 -0
  13. package/dist/cli/commands/history.command.js.map +1 -0
  14. package/dist/cli/commands/index.d.ts +14 -3
  15. package/dist/cli/commands/index.d.ts.map +1 -1
  16. package/dist/cli/commands/index.js +7 -0
  17. package/dist/cli/commands/index.js.map +1 -1
  18. package/dist/cli/commands/optimize.command.d.ts +110 -0
  19. package/dist/cli/commands/optimize.command.d.ts.map +1 -0
  20. package/dist/cli/commands/optimize.command.js +497 -0
  21. package/dist/cli/commands/optimize.command.js.map +1 -0
  22. package/dist/cli/commands/report.command.d.ts +110 -0
  23. package/dist/cli/commands/report.command.d.ts.map +1 -0
  24. package/dist/cli/commands/report.command.js +532 -0
  25. package/dist/cli/commands/report.command.js.map +1 -0
  26. package/dist/cli/commands/review.command.d.ts +110 -0
  27. package/dist/cli/commands/review.command.d.ts.map +1 -0
  28. package/dist/cli/commands/review.command.js +520 -0
  29. package/dist/cli/commands/review.command.js.map +1 -0
  30. package/dist/cli/commands/score.command.d.ts +47 -0
  31. package/dist/cli/commands/score.command.d.ts.map +1 -0
  32. package/dist/cli/commands/score.command.js +261 -0
  33. package/dist/cli/commands/score.command.js.map +1 -0
  34. package/dist/cli/utils/index.d.ts +10 -0
  35. package/dist/cli/utils/index.d.ts.map +1 -0
  36. package/dist/cli/utils/index.js +10 -0
  37. package/dist/cli/utils/index.js.map +1 -0
  38. package/dist/cli/utils/output.d.ts +192 -0
  39. package/dist/cli/utils/output.d.ts.map +1 -0
  40. package/dist/cli/utils/output.js +411 -0
  41. package/dist/cli/utils/output.js.map +1 -0
  42. package/dist/cli/utils/progress.d.ts +204 -0
  43. package/dist/cli/utils/progress.d.ts.map +1 -0
  44. package/dist/cli/utils/progress.js +396 -0
  45. package/dist/cli/utils/progress.js.map +1 -0
  46. package/dist/core/types/index.d.ts +1 -0
  47. package/dist/core/types/index.d.ts.map +1 -1
  48. package/dist/core/types/project.types.d.ts +3 -3
  49. package/dist/core/types/project.types.d.ts.map +1 -1
  50. package/dist/core/types/scoring.types.d.ts +301 -0
  51. package/dist/core/types/scoring.types.d.ts.map +1 -0
  52. package/dist/core/types/scoring.types.js +8 -0
  53. package/dist/core/types/scoring.types.js.map +1 -0
  54. package/dist/services/detection/framework-detector.d.ts.map +1 -1
  55. package/dist/services/detection/framework-detector.js +74 -5
  56. package/dist/services/detection/framework-detector.js.map +1 -1
  57. package/dist/services/index.d.ts +12 -0
  58. package/dist/services/index.d.ts.map +1 -1
  59. package/dist/services/index.js +14 -0
  60. package/dist/services/index.js.map +1 -1
  61. package/dist/services/optimization/detectors/bug-detector.d.ts +82 -0
  62. package/dist/services/optimization/detectors/bug-detector.d.ts.map +1 -0
  63. package/dist/services/optimization/detectors/bug-detector.js +443 -0
  64. package/dist/services/optimization/detectors/bug-detector.js.map +1 -0
  65. package/dist/services/optimization/detectors/code-smell-detector.d.ts +108 -0
  66. package/dist/services/optimization/detectors/code-smell-detector.d.ts.map +1 -0
  67. package/dist/services/optimization/detectors/code-smell-detector.js +569 -0
  68. package/dist/services/optimization/detectors/code-smell-detector.js.map +1 -0
  69. package/dist/services/optimization/detectors/index.d.ts +7 -0
  70. package/dist/services/optimization/detectors/index.d.ts.map +1 -0
  71. package/dist/services/optimization/detectors/index.js +7 -0
  72. package/dist/services/optimization/detectors/index.js.map +1 -0
  73. package/dist/services/optimization/detectors/perf-detector.d.ts +80 -0
  74. package/dist/services/optimization/detectors/perf-detector.d.ts.map +1 -0
  75. package/dist/services/optimization/detectors/perf-detector.js +451 -0
  76. package/dist/services/optimization/detectors/perf-detector.js.map +1 -0
  77. package/dist/services/optimization/index.d.ts +61 -0
  78. package/dist/services/optimization/index.d.ts.map +1 -0
  79. package/dist/services/optimization/index.js +69 -0
  80. package/dist/services/optimization/index.js.map +1 -0
  81. package/dist/services/optimization/optimization.service.d.ts +65 -0
  82. package/dist/services/optimization/optimization.service.d.ts.map +1 -0
  83. package/dist/services/optimization/optimization.service.js +511 -0
  84. package/dist/services/optimization/optimization.service.js.map +1 -0
  85. package/dist/services/optimization/optimization.types.d.ts +343 -0
  86. package/dist/services/optimization/optimization.types.d.ts.map +1 -0
  87. package/dist/services/optimization/optimization.types.js +8 -0
  88. package/dist/services/optimization/optimization.types.js.map +1 -0
  89. package/dist/services/optimization/optimizers/code-optimizer.d.ts +87 -0
  90. package/dist/services/optimization/optimizers/code-optimizer.d.ts.map +1 -0
  91. package/dist/services/optimization/optimizers/code-optimizer.js +436 -0
  92. package/dist/services/optimization/optimizers/code-optimizer.js.map +1 -0
  93. package/dist/services/optimization/optimizers/index.d.ts +7 -0
  94. package/dist/services/optimization/optimizers/index.d.ts.map +1 -0
  95. package/dist/services/optimization/optimizers/index.js +7 -0
  96. package/dist/services/optimization/optimizers/index.js.map +1 -0
  97. package/dist/services/optimization/optimizers/perf-optimizer.d.ts +64 -0
  98. package/dist/services/optimization/optimizers/perf-optimizer.d.ts.map +1 -0
  99. package/dist/services/optimization/optimizers/perf-optimizer.js +330 -0
  100. package/dist/services/optimization/optimizers/perf-optimizer.js.map +1 -0
  101. package/dist/services/optimization/optimizers/refact-optimizer.d.ts +82 -0
  102. package/dist/services/optimization/optimizers/refact-optimizer.d.ts.map +1 -0
  103. package/dist/services/optimization/optimizers/refact-optimizer.js +354 -0
  104. package/dist/services/optimization/optimizers/refact-optimizer.js.map +1 -0
  105. package/dist/services/optimization/patterns/anti-patterns.d.ts +31 -0
  106. package/dist/services/optimization/patterns/anti-patterns.d.ts.map +1 -0
  107. package/dist/services/optimization/patterns/anti-patterns.js +501 -0
  108. package/dist/services/optimization/patterns/anti-patterns.js.map +1 -0
  109. package/dist/services/optimization/patterns/index.d.ts +5 -0
  110. package/dist/services/optimization/patterns/index.d.ts.map +1 -0
  111. package/dist/services/optimization/patterns/index.js +5 -0
  112. package/dist/services/optimization/patterns/index.js.map +1 -0
  113. package/dist/services/reporting/export/chart.exporter.d.ts +59 -0
  114. package/dist/services/reporting/export/chart.exporter.d.ts.map +1 -0
  115. package/dist/services/reporting/export/chart.exporter.js +350 -0
  116. package/dist/services/reporting/export/chart.exporter.js.map +1 -0
  117. package/dist/services/reporting/export/index.d.ts +9 -0
  118. package/dist/services/reporting/export/index.d.ts.map +1 -0
  119. package/dist/services/reporting/export/index.js +10 -0
  120. package/dist/services/reporting/export/index.js.map +1 -0
  121. package/dist/services/reporting/export/pdf.exporter.d.ts +133 -0
  122. package/dist/services/reporting/export/pdf.exporter.d.ts.map +1 -0
  123. package/dist/services/reporting/export/pdf.exporter.js +270 -0
  124. package/dist/services/reporting/export/pdf.exporter.js.map +1 -0
  125. package/dist/services/reporting/history.service.d.ts +93 -0
  126. package/dist/services/reporting/history.service.d.ts.map +1 -0
  127. package/dist/services/reporting/history.service.js +285 -0
  128. package/dist/services/reporting/history.service.js.map +1 -0
  129. package/dist/services/reporting/index.d.ts +15 -0
  130. package/dist/services/reporting/index.d.ts.map +1 -0
  131. package/dist/services/reporting/index.js +16 -0
  132. package/dist/services/reporting/index.js.map +1 -0
  133. package/dist/services/reporting/report.service.d.ts +102 -0
  134. package/dist/services/reporting/report.service.d.ts.map +1 -0
  135. package/dist/services/reporting/report.service.js +240 -0
  136. package/dist/services/reporting/report.service.js.map +1 -0
  137. package/dist/services/reporting/reporting.types.d.ts +329 -0
  138. package/dist/services/reporting/reporting.types.d.ts.map +1 -0
  139. package/dist/services/reporting/reporting.types.js +8 -0
  140. package/dist/services/reporting/reporting.types.js.map +1 -0
  141. package/dist/services/reporting/templates/html.template.d.ts +81 -0
  142. package/dist/services/reporting/templates/html.template.d.ts.map +1 -0
  143. package/dist/services/reporting/templates/html.template.js +741 -0
  144. package/dist/services/reporting/templates/html.template.js.map +1 -0
  145. package/dist/services/reporting/templates/json.template.d.ts +85 -0
  146. package/dist/services/reporting/templates/json.template.d.ts.map +1 -0
  147. package/dist/services/reporting/templates/json.template.js +308 -0
  148. package/dist/services/reporting/templates/json.template.js.map +1 -0
  149. package/dist/services/reporting/templates/markdown.template.d.ts +69 -0
  150. package/dist/services/reporting/templates/markdown.template.d.ts.map +1 -0
  151. package/dist/services/reporting/templates/markdown.template.js +311 -0
  152. package/dist/services/reporting/templates/markdown.template.js.map +1 -0
  153. package/dist/services/reporting/trend-analyzer.d.ts +73 -0
  154. package/dist/services/reporting/trend-analyzer.d.ts.map +1 -0
  155. package/dist/services/reporting/trend-analyzer.js +291 -0
  156. package/dist/services/reporting/trend-analyzer.js.map +1 -0
  157. package/dist/services/review/analyzers/dependency-analyzer.d.ts +87 -0
  158. package/dist/services/review/analyzers/dependency-analyzer.d.ts.map +1 -0
  159. package/dist/services/review/analyzers/dependency-analyzer.js +458 -0
  160. package/dist/services/review/analyzers/dependency-analyzer.js.map +1 -0
  161. package/dist/services/review/analyzers/index.d.ts +13 -0
  162. package/dist/services/review/analyzers/index.d.ts.map +1 -0
  163. package/dist/services/review/analyzers/index.js +13 -0
  164. package/dist/services/review/analyzers/index.js.map +1 -0
  165. package/dist/services/review/analyzers/nestjs-analyzer.d.ts +210 -0
  166. package/dist/services/review/analyzers/nestjs-analyzer.d.ts.map +1 -0
  167. package/dist/services/review/analyzers/nestjs-analyzer.js +571 -0
  168. package/dist/services/review/analyzers/nestjs-analyzer.js.map +1 -0
  169. package/dist/services/review/analyzers/performance-analyzer.d.ts +91 -0
  170. package/dist/services/review/analyzers/performance-analyzer.d.ts.map +1 -0
  171. package/dist/services/review/analyzers/performance-analyzer.js +589 -0
  172. package/dist/services/review/analyzers/performance-analyzer.js.map +1 -0
  173. package/dist/services/review/analyzers/security-analyzer.d.ts +96 -0
  174. package/dist/services/review/analyzers/security-analyzer.d.ts.map +1 -0
  175. package/dist/services/review/analyzers/security-analyzer.js +512 -0
  176. package/dist/services/review/analyzers/security-analyzer.js.map +1 -0
  177. package/dist/services/review/analyzers/static-analyzer.d.ts +90 -0
  178. package/dist/services/review/analyzers/static-analyzer.d.ts.map +1 -0
  179. package/dist/services/review/analyzers/static-analyzer.js +423 -0
  180. package/dist/services/review/analyzers/static-analyzer.js.map +1 -0
  181. package/dist/services/review/fixers/auto-fixer.d.ts +94 -0
  182. package/dist/services/review/fixers/auto-fixer.d.ts.map +1 -0
  183. package/dist/services/review/fixers/auto-fixer.js +404 -0
  184. package/dist/services/review/fixers/auto-fixer.js.map +1 -0
  185. package/dist/services/review/fixers/index.d.ts +11 -0
  186. package/dist/services/review/fixers/index.d.ts.map +1 -0
  187. package/dist/services/review/fixers/index.js +11 -0
  188. package/dist/services/review/fixers/index.js.map +1 -0
  189. package/dist/services/review/fixers/refactor-suggester.d.ts +100 -0
  190. package/dist/services/review/fixers/refactor-suggester.d.ts.map +1 -0
  191. package/dist/services/review/fixers/refactor-suggester.js +555 -0
  192. package/dist/services/review/fixers/refactor-suggester.js.map +1 -0
  193. package/dist/services/review/fixers/test-generator.d.ts +99 -0
  194. package/dist/services/review/fixers/test-generator.d.ts.map +1 -0
  195. package/dist/services/review/fixers/test-generator.js +458 -0
  196. package/dist/services/review/fixers/test-generator.js.map +1 -0
  197. package/dist/services/review/index.d.ts +14 -0
  198. package/dist/services/review/index.d.ts.map +1 -0
  199. package/dist/services/review/index.js +14 -0
  200. package/dist/services/review/index.js.map +1 -0
  201. package/dist/services/review/reporters/fix-reporter.d.ts +67 -0
  202. package/dist/services/review/reporters/fix-reporter.d.ts.map +1 -0
  203. package/dist/services/review/reporters/fix-reporter.js +437 -0
  204. package/dist/services/review/reporters/fix-reporter.js.map +1 -0
  205. package/dist/services/review/reporters/index.d.ts +10 -0
  206. package/dist/services/review/reporters/index.d.ts.map +1 -0
  207. package/dist/services/review/reporters/index.js +10 -0
  208. package/dist/services/review/reporters/index.js.map +1 -0
  209. package/dist/services/review/reporters/score-reporter.d.ts +84 -0
  210. package/dist/services/review/reporters/score-reporter.d.ts.map +1 -0
  211. package/dist/services/review/reporters/score-reporter.js +560 -0
  212. package/dist/services/review/reporters/score-reporter.js.map +1 -0
  213. package/dist/services/review/review.service.d.ts +129 -0
  214. package/dist/services/review/review.service.d.ts.map +1 -0
  215. package/dist/services/review/review.service.js +396 -0
  216. package/dist/services/review/review.service.js.map +1 -0
  217. package/dist/services/review/review.types.d.ts +443 -0
  218. package/dist/services/review/review.types.d.ts.map +1 -0
  219. package/dist/services/review/review.types.js +11 -0
  220. package/dist/services/review/review.types.js.map +1 -0
  221. package/dist/services/scoring/dimensions/accessibility.analyzer.d.ts +53 -0
  222. package/dist/services/scoring/dimensions/accessibility.analyzer.d.ts.map +1 -0
  223. package/dist/services/scoring/dimensions/accessibility.analyzer.js +260 -0
  224. package/dist/services/scoring/dimensions/accessibility.analyzer.js.map +1 -0
  225. package/dist/services/scoring/dimensions/backend-logic.analyzer.d.ts +138 -0
  226. package/dist/services/scoring/dimensions/backend-logic.analyzer.d.ts.map +1 -0
  227. package/dist/services/scoring/dimensions/backend-logic.analyzer.js +713 -0
  228. package/dist/services/scoring/dimensions/backend-logic.analyzer.js.map +1 -0
  229. package/dist/services/scoring/dimensions/business-logic.analyzer.d.ts +142 -0
  230. package/dist/services/scoring/dimensions/business-logic.analyzer.d.ts.map +1 -0
  231. package/dist/services/scoring/dimensions/business-logic.analyzer.js +747 -0
  232. package/dist/services/scoring/dimensions/business-logic.analyzer.js.map +1 -0
  233. package/dist/services/scoring/dimensions/code-quality.analyzer.d.ts +142 -0
  234. package/dist/services/scoring/dimensions/code-quality.analyzer.d.ts.map +1 -0
  235. package/dist/services/scoring/dimensions/code-quality.analyzer.js +685 -0
  236. package/dist/services/scoring/dimensions/code-quality.analyzer.js.map +1 -0
  237. package/dist/services/scoring/dimensions/index.d.ts +18 -0
  238. package/dist/services/scoring/dimensions/index.d.ts.map +1 -0
  239. package/dist/services/scoring/dimensions/index.js +27 -0
  240. package/dist/services/scoring/dimensions/index.js.map +1 -0
  241. package/dist/services/scoring/dimensions/performance.analyzer.d.ts +125 -0
  242. package/dist/services/scoring/dimensions/performance.analyzer.d.ts.map +1 -0
  243. package/dist/services/scoring/dimensions/performance.analyzer.js +615 -0
  244. package/dist/services/scoring/dimensions/performance.analyzer.js.map +1 -0
  245. package/dist/services/scoring/dimensions/security.analyzer.d.ts +53 -0
  246. package/dist/services/scoring/dimensions/security.analyzer.d.ts.map +1 -0
  247. package/dist/services/scoring/dimensions/security.analyzer.js +327 -0
  248. package/dist/services/scoring/dimensions/security.analyzer.js.map +1 -0
  249. package/dist/services/scoring/dimensions/seo.analyzer.d.ts +77 -0
  250. package/dist/services/scoring/dimensions/seo.analyzer.d.ts.map +1 -0
  251. package/dist/services/scoring/dimensions/seo.analyzer.js +502 -0
  252. package/dist/services/scoring/dimensions/seo.analyzer.js.map +1 -0
  253. package/dist/services/scoring/dimensions/test-coverage.analyzer.d.ts +106 -0
  254. package/dist/services/scoring/dimensions/test-coverage.analyzer.d.ts.map +1 -0
  255. package/dist/services/scoring/dimensions/test-coverage.analyzer.js +496 -0
  256. package/dist/services/scoring/dimensions/test-coverage.analyzer.js.map +1 -0
  257. package/dist/services/scoring/dimensions/ui-ux.analyzer.d.ts +126 -0
  258. package/dist/services/scoring/dimensions/ui-ux.analyzer.d.ts.map +1 -0
  259. package/dist/services/scoring/dimensions/ui-ux.analyzer.js +665 -0
  260. package/dist/services/scoring/dimensions/ui-ux.analyzer.js.map +1 -0
  261. package/dist/services/scoring/index.d.ts +10 -0
  262. package/dist/services/scoring/index.d.ts.map +1 -0
  263. package/dist/services/scoring/index.js +10 -0
  264. package/dist/services/scoring/index.js.map +1 -0
  265. package/dist/services/scoring/scoring-service.d.ts +222 -0
  266. package/dist/services/scoring/scoring-service.d.ts.map +1 -0
  267. package/dist/services/scoring/scoring-service.js +636 -0
  268. package/dist/services/scoring/scoring-service.js.map +1 -0
  269. package/package.json +11 -3
  270. package/templates/README.md +183 -0
  271. package/templates/nestjs/controller.spec.ts +203 -0
  272. package/templates/nestjs/e2e/api.e2e-spec.ts +451 -0
  273. package/templates/nestjs/e2e/auth.e2e-spec.ts +533 -0
  274. package/templates/nestjs/fixtures/test-module.ts +311 -0
  275. package/templates/nestjs/guard.spec.ts +314 -0
  276. package/templates/nestjs/interceptor.spec.ts +458 -0
  277. package/templates/nestjs/module.spec.ts +173 -0
  278. package/templates/nestjs/pipe.spec.ts +474 -0
  279. package/templates/nestjs/service.spec.ts +296 -0
  280. package/templates/rust/Cargo.toml +72 -0
  281. package/templates/rust/actix-controller.test.rs +114 -0
  282. package/templates/rust/axum-handler.test.rs +117 -0
  283. package/templates/rust/integration.test.rs +63 -0
  284. package/templates/rust/rocket-route.test.rs +106 -0
  285. package/templates/rust/unit.test.rs +38 -0
@@ -0,0 +1,437 @@
1
+ /**
2
+ * Fix Reporter
3
+ *
4
+ * Génération de rapports de corrections:
5
+ * - Liste des corrections appliquées
6
+ * - Suggestions en attente
7
+ * - Corrections manuelles nécessaires
8
+ * - Estimation de l'effort restant
9
+ *
10
+ * @module services/review/reporters/fix-reporter
11
+ */
12
+ import { writeFile, mkdir } from 'node:fs/promises';
13
+ import { join, dirname } from 'node:path';
14
+ import { createLogger } from '../../../shared/utils/logger.js';
15
+ /**
16
+ * Reporter de corrections
17
+ */
18
+ export class FixReporter {
19
+ logger;
20
+ constructor() {
21
+ this.logger = createLogger('FixReporter');
22
+ }
23
+ /**
24
+ * Génère un rapport de corrections
25
+ *
26
+ * @param result - Résultat des corrections
27
+ * @param projectPath - Chemin du projet
28
+ * @param options - Options de génération
29
+ */
30
+ async generateReport(result, projectPath, options = { format: 'console' }) {
31
+ this.logger.info(`Generating ${options.format} fix report`);
32
+ switch (options.format) {
33
+ case 'json':
34
+ await this.generateJsonReport(result, projectPath, options);
35
+ break;
36
+ case 'html':
37
+ await this.generateHtmlReport(result, projectPath, options);
38
+ break;
39
+ case 'markdown':
40
+ await this.generateMarkdownReport(result, projectPath, options);
41
+ break;
42
+ case 'console':
43
+ this.generateConsoleReport(result, projectPath, options);
44
+ break;
45
+ }
46
+ }
47
+ /**
48
+ * Génère un rapport JSON
49
+ */
50
+ async generateJsonReport(result, projectPath, options) {
51
+ const outputPath = options.outputPath ?? join(projectPath, 'fix-report.json');
52
+ const report = {
53
+ projectPath,
54
+ timestamp: new Date().toISOString(),
55
+ success: result.success,
56
+ summary: {
57
+ attempted: result.attempted,
58
+ applied: result.applied,
59
+ failed: result.failed,
60
+ },
61
+ fixes: result.fixes,
62
+ suggestions: options.suggestions ?? [],
63
+ remainingIssues: options.remainingIssues ?? 0,
64
+ duration: result.duration,
65
+ error: result.error,
66
+ };
67
+ await this.ensureDirectoryExists(outputPath);
68
+ await writeFile(outputPath, JSON.stringify(report, null, 2), 'utf-8');
69
+ this.logger.info(`JSON fix report saved to: ${outputPath}`);
70
+ }
71
+ /**
72
+ * Génère un rapport HTML
73
+ */
74
+ async generateHtmlReport(result, projectPath, options) {
75
+ const outputPath = options.outputPath ?? join(projectPath, 'fix-report.html');
76
+ const html = this.generateHtmlContent(result, projectPath, options);
77
+ await this.ensureDirectoryExists(outputPath);
78
+ await writeFile(outputPath, html, 'utf-8');
79
+ this.logger.info(`HTML fix report saved to: ${outputPath}`);
80
+ }
81
+ /**
82
+ * Génère un rapport Markdown
83
+ */
84
+ async generateMarkdownReport(result, projectPath, options) {
85
+ const outputPath = options.outputPath ?? join(projectPath, 'FIX-REPORT.md');
86
+ const markdown = this.generateMarkdownContent(result, projectPath, options);
87
+ await this.ensureDirectoryExists(outputPath);
88
+ await writeFile(outputPath, markdown, 'utf-8');
89
+ this.logger.info(`Markdown fix report saved to: ${outputPath}`);
90
+ }
91
+ /**
92
+ * Génère un rapport console
93
+ */
94
+ generateConsoleReport(result, projectPath, options) {
95
+ console.log('\n╔════════════════════════════════════════════════════════════╗');
96
+ console.log('║ AUTO-FIX REPORT ║');
97
+ console.log('╚════════════════════════════════════════════════════════════╝\n');
98
+ console.log(`Project: ${projectPath}`);
99
+ console.log(`Duration: ${(result.duration / 1000).toFixed(1)}s\n`);
100
+ // Statut
101
+ const statusIcon = result.success ? '✅' : '❌';
102
+ console.log(`${statusIcon} Status: ${result.success ? 'Success' : 'Failed'}\n`);
103
+ // Résumé
104
+ console.log('Summary:');
105
+ console.log('─────────────────────────────────────────────────────────────');
106
+ console.log(` Attempted: ${result.attempted}`);
107
+ console.log(` ✅ Applied: ${result.applied}`);
108
+ console.log(` ❌ Failed: ${result.failed}`);
109
+ if (options.suggestions && options.suggestions.length > 0) {
110
+ console.log(` 💡 Suggestions: ${options.suggestions.length}`);
111
+ }
112
+ if (options.remainingIssues !== undefined) {
113
+ console.log(` 📋 Remaining Issues: ${options.remainingIssues}`);
114
+ }
115
+ console.log('─────────────────────────────────────────────────────────────\n');
116
+ // Corrections appliquées
117
+ if (result.fixes.length > 0) {
118
+ console.log('Applied Fixes:');
119
+ console.log('─────────────────────────────────────────────────────────────');
120
+ for (const fix of result.fixes.filter((f) => f.applied)) {
121
+ const icon = fix.automatic ? '🤖' : '👤';
122
+ console.log(` ${icon} ${fix.description}`);
123
+ if (options.verbosity === 'detailed' && fix.filesChanged.length > 0) {
124
+ for (const file of fix.filesChanged) {
125
+ console.log(` 📄 ${file.replace(projectPath, '')}`);
126
+ }
127
+ }
128
+ }
129
+ console.log();
130
+ }
131
+ // Corrections échouées
132
+ if (result.fixes.some((f) => !f.applied)) {
133
+ console.log('Failed Fixes:');
134
+ console.log('─────────────────────────────────────────────────────────────');
135
+ for (const fix of result.fixes.filter((f) => !f.applied)) {
136
+ console.log(` ❌ ${fix.description}`);
137
+ if (fix.error) {
138
+ console.log(` Error: ${fix.error}`);
139
+ }
140
+ }
141
+ console.log();
142
+ }
143
+ // Suggestions
144
+ if (options.includeSuggestions && options.suggestions && options.suggestions.length > 0) {
145
+ console.log('Pending Suggestions:');
146
+ console.log('─────────────────────────────────────────────────────────────');
147
+ // Afficher les 10 suggestions les plus prioritaires
148
+ const topSuggestions = options.suggestions.slice(0, 10);
149
+ for (const suggestion of topSuggestions) {
150
+ const priorityIcon = suggestion.priority >= 7 ? '🔴' : suggestion.priority >= 5 ? '🟡' : '🟢';
151
+ const file = suggestion.location.file.replace(projectPath, '');
152
+ console.log(` ${priorityIcon} [${suggestion.type}] ${suggestion.title}`);
153
+ console.log(` 📄 ${file}:${suggestion.location.line}`);
154
+ console.log(` 💡 ${suggestion.description}`);
155
+ if (options.verbosity === 'detailed' && suggestion.effort) {
156
+ console.log(` ⏱️ Effort: ${suggestion.effort}/10`);
157
+ }
158
+ }
159
+ if (options.suggestions.length > 10) {
160
+ console.log(` ... and ${options.suggestions.length - 10} more suggestions`);
161
+ }
162
+ console.log();
163
+ }
164
+ // Effort restant estimé
165
+ if (options.suggestions) {
166
+ const totalEffort = options.suggestions.reduce((sum, s) => sum + (s.effort ?? 0), 0);
167
+ console.log(`Estimated Remaining Effort: ${totalEffort} points`);
168
+ }
169
+ }
170
+ /**
171
+ * Génère le contenu HTML du rapport
172
+ */
173
+ generateHtmlContent(result, projectPath, options) {
174
+ const successRate = result.attempted > 0 ? Math.round((result.applied / result.attempted) * 100) : 0;
175
+ return `<!DOCTYPE html>
176
+ <html lang="en">
177
+ <head>
178
+ <meta charset="UTF-8">
179
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
180
+ <title>Auto-Fix Report - ${projectPath}</title>
181
+ <style>
182
+ * { margin: 0; padding: 0; box-sizing: border-box; }
183
+ body {
184
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
185
+ background: #0f172a;
186
+ color: #e2e8f0;
187
+ line-height: 1.6;
188
+ }
189
+ .container { max-width: 1200px; margin: 0 auto; padding: 2rem; }
190
+ .header {
191
+ text-align: center;
192
+ padding: 2rem;
193
+ background: linear-gradient(135deg, #10b981 0%, #3b82f6 100%);
194
+ border-radius: 1rem;
195
+ margin-bottom: 2rem;
196
+ }
197
+ .status-badge {
198
+ display: inline-block;
199
+ padding: 0.5rem 1rem;
200
+ border-radius: 0.5rem;
201
+ font-weight: bold;
202
+ margin-top: 1rem;
203
+ }
204
+ .status-success { background: #10b981; }
205
+ .status-failed { background: #ef4444; }
206
+ .stats-grid {
207
+ display: grid;
208
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
209
+ gap: 1rem;
210
+ margin-bottom: 2rem;
211
+ }
212
+ .stat-card {
213
+ background: #1e293b;
214
+ padding: 1.5rem;
215
+ border-radius: 0.75rem;
216
+ text-align: center;
217
+ }
218
+ .stat-value { font-size: 2rem; font-weight: bold; }
219
+ .stat-label { font-size: 0.875rem; color: #94a3b8; }
220
+ .fix-list {
221
+ background: #1e293b;
222
+ border-radius: 0.75rem;
223
+ padding: 1.5rem;
224
+ margin-bottom: 2rem;
225
+ }
226
+ .fix-item {
227
+ padding: 1rem;
228
+ background: #0f172a;
229
+ border-radius: 0.5rem;
230
+ margin-bottom: 0.5rem;
231
+ display: flex;
232
+ align-items: center;
233
+ gap: 1rem;
234
+ }
235
+ .fix-icon { font-size: 1.5rem; }
236
+ .fix-info { flex: 1; }
237
+ .fix-files {
238
+ font-size: 0.75rem;
239
+ color: #94a3b8;
240
+ margin-top: 0.25rem;
241
+ }
242
+ .suggestion-list {
243
+ background: #1e293b;
244
+ border-radius: 0.75rem;
245
+ padding: 1.5rem;
246
+ }
247
+ .suggestion-item {
248
+ padding: 1rem;
249
+ background: #0f172a;
250
+ border-radius: 0.5rem;
251
+ margin-bottom: 0.5rem;
252
+ border-left: 3px solid;
253
+ }
254
+ .prio-high { border-color: #ef4444; }
255
+ .prio-medium { border-color: #f59e0b; }
256
+ .prio-low { border-color: #22c55e; }
257
+ </style>
258
+ </head>
259
+ <body>
260
+ <div class="container">
261
+ <div class="header">
262
+ <h1>🔧 Auto-Fix Report</h1>
263
+ <p style="opacity: 0.8">${projectPath}</p>
264
+ <span class="status-badge ${result.success ? 'status-success' : 'status-failed'}">
265
+ ${result.success ? '✅ Success' : '❌ Failed'}
266
+ </span>
267
+ </div>
268
+
269
+ <div class="stats-grid">
270
+ <div class="stat-card">
271
+ <div class="stat-value">${result.attempted}</div>
272
+ <div class="stat-label">Attempted</div>
273
+ </div>
274
+ <div class="stat-card">
275
+ <div class="stat-value">${result.applied}</div>
276
+ <div class="stat-label">Applied</div>
277
+ </div>
278
+ <div class="stat-card">
279
+ <div class="stat-value">${result.failed}</div>
280
+ <div class="stat-label">Failed</div>
281
+ </div>
282
+ <div class="stat-card">
283
+ <div class="stat-value">${successRate}%</div>
284
+ <div class="stat-label">Success Rate</div>
285
+ </div>
286
+ </div>
287
+
288
+ ${result.fixes.filter(f => f.applied).length > 0 ? `
289
+ <div class="fix-list">
290
+ <h2 style="margin-bottom: 1rem;">✅ Applied Fixes (${result.fixes.filter(f => f.applied).length})</h2>
291
+ ${result.fixes.filter(f => f.applied).slice(0, 50).map(fix => `
292
+ <div class="fix-item">
293
+ <span class="fix-icon">${fix.automatic ? '🤖' : '👤'}</span>
294
+ <div class="fix-info">
295
+ <div>${fix.description}</div>
296
+ ${fix.filesChanged.length > 0 ? `
297
+ <div class="fix-files">
298
+ ${fix.filesChanged.map(f => `<span>${f.replace(projectPath, '')}</span>`).join(', ')}
299
+ </div>
300
+ ` : ''}
301
+ </div>
302
+ </div>
303
+ `).join('')}
304
+ </div>
305
+ ` : ''}
306
+
307
+ ${result.fixes.some(f => !f.applied) ? `
308
+ <div class="fix-list">
309
+ <h2 style="margin-bottom: 1rem;">❌ Failed Fixes (${result.fixes.filter(f => !f.applied).length})</h2>
310
+ ${result.fixes.filter(f => !f.applied).map(fix => `
311
+ <div class="fix-item">
312
+ <span class="fix-icon">❌</span>
313
+ <div class="fix-info">
314
+ <div>${fix.description}</div>
315
+ ${fix.error ? `<div class="fix-files" style="color: #ef4444;">${fix.error}</div>` : ''}
316
+ </div>
317
+ </div>
318
+ `).join('')}
319
+ </div>
320
+ ` : ''}
321
+
322
+ ${options.includeSuggestions && options.suggestions && options.suggestions.length > 0 ? `
323
+ <div class="suggestion-list">
324
+ <h2 style="margin-bottom: 1rem;">💡 Pending Suggestions (${options.suggestions.length})</h2>
325
+ ${options.suggestions.slice(0, 20).map(suggestion => {
326
+ const priority = suggestion.priority >= 7 ? 'prio-high' : suggestion.priority >= 5 ? 'prio-medium' : 'prio-low';
327
+ return `
328
+ <div class="suggestion-item ${priority}">
329
+ <strong>[${suggestion.type}] ${suggestion.title}</strong>
330
+ <p style="color: #94a3b8; font-size: 0.875rem; margin: 0.25rem 0;">
331
+ ${suggestion.location.file.replace(projectPath, '')}:${suggestion.location.line}
332
+ </p>
333
+ <p style="font-size: 0.875rem;">${suggestion.description}</p>
334
+ </div>
335
+ `;
336
+ }).join('')}
337
+ </div>
338
+ ` : ''}
339
+ </div>
340
+ </body>
341
+ </html>`;
342
+ }
343
+ /**
344
+ * Génère le contenu Markdown du rapport
345
+ */
346
+ generateMarkdownContent(result, projectPath, options) {
347
+ const successRate = result.attempted > 0 ? Math.round((result.applied / result.attempted) * 100) : 0;
348
+ let md = `# Auto-Fix Report\n\n`;
349
+ md += `**Project:** ${projectPath}\n`;
350
+ md += `**Date:** ${new Date().toISOString()}\n`;
351
+ md += `**Status:** ${result.success ? '✅ Success' : '❌ Failed'}\n`;
352
+ md += `**Duration:** ${(result.duration / 1000).toFixed(1)}s\n\n`;
353
+ md += `## Summary\n\n`;
354
+ md += `| Metric | Count |\n`;
355
+ md += `|--------|-------|\n`;
356
+ md += `| Attempted | ${result.attempted} |\n`;
357
+ md += `| Applied | ${result.applied} |\n`;
358
+ md += `| Failed | ${result.failed} |\n`;
359
+ md += `| Success Rate | ${successRate}% |\n\n`;
360
+ if (options.remainingIssues !== undefined) {
361
+ md += `**Remaining Issues:** ${options.remainingIssues}\n\n`;
362
+ }
363
+ // Corrections appliquées
364
+ if (result.fixes.some((f) => f.applied)) {
365
+ md += `## Applied Fixes (${result.fixes.filter((f) => f.applied).length})\n\n`;
366
+ for (const fix of result.fixes.filter((f) => f.applied)) {
367
+ const icon = fix.automatic ? '🤖' : '👤';
368
+ md += `### ${icon} ${fix.description}\n\n`;
369
+ if (fix.filesChanged.length > 0) {
370
+ md += `**Files changed:**\n`;
371
+ for (const file of fix.filesChanged) {
372
+ md += `- \`${file.replace(projectPath, '')}\`\n`;
373
+ }
374
+ md += `\n`;
375
+ }
376
+ }
377
+ }
378
+ // Corrections échouées
379
+ if (result.fixes.some((f) => !f.applied)) {
380
+ md += `## Failed Fixes (${result.fixes.filter((f) => !f.applied).length})\n\n`;
381
+ for (const fix of result.fixes.filter((f) => !f.applied)) {
382
+ md += `### ❌ ${fix.description}\n\n`;
383
+ if (fix.error) {
384
+ md += `**Error:** \`${fix.error}\`\n\n`;
385
+ }
386
+ }
387
+ }
388
+ // Suggestions
389
+ if (options.includeSuggestions && options.suggestions && options.suggestions.length > 0) {
390
+ md += `## Pending Suggestions (${options.suggestions.length})\n\n`;
391
+ // Estimer l'effort total
392
+ const totalEffort = options.suggestions.reduce((sum, s) => sum + (s.effort ?? 0), 0);
393
+ md += `**Estimated effort:** ${totalEffort} points\n\n`;
394
+ // Afficher les suggestions prioritaires
395
+ const prioritySuggestions = options.suggestions.filter((s) => s.priority >= 7);
396
+ if (prioritySuggestions.length > 0) {
397
+ md += `### High Priority (${prioritySuggestions.length})\n\n`;
398
+ for (const suggestion of prioritySuggestions.slice(0, 10)) {
399
+ const file = suggestion.location.file.replace(projectPath, '');
400
+ md += `- **[${suggestion.type}]** ${suggestion.title}\n`;
401
+ md += ` - 📄 \`${file}:${suggestion.location.line}\`\n`;
402
+ md += ` - 💡 ${suggestion.description}\n`;
403
+ md += ` - ⏱️ Effort: ${suggestion.effort}/10\n\n`;
404
+ }
405
+ }
406
+ }
407
+ md += `\n---\n*Generated by Daemon v0.7.0*`;
408
+ return md;
409
+ }
410
+ /**
411
+ * Estime l'effort total des suggestions
412
+ */
413
+ estimateEffort(suggestions) {
414
+ const total = suggestions.reduce((sum, s) => sum + (s.effort ?? 0), 0);
415
+ const byPriority = {
416
+ high: suggestions.filter((s) => s.priority >= 7).reduce((sum, s) => sum + (s.effort ?? 0), 0),
417
+ medium: suggestions.filter((s) => s.priority >= 4 && s.priority < 7).reduce((sum, s) => sum + (s.effort ?? 0), 0),
418
+ low: suggestions.filter((s) => s.priority < 4).reduce((sum, s) => sum + (s.effort ?? 0), 0),
419
+ };
420
+ // Quick wins = faible effort, haute priorité
421
+ const quickWins = suggestions.filter((s) => s.priority >= 6 && (s.effort ?? 0) <= 4);
422
+ return { total, byPriority, quickWins };
423
+ }
424
+ /**
425
+ * S'assure que le répertoire existe
426
+ */
427
+ async ensureDirectoryExists(filePath) {
428
+ const dir = dirname(filePath);
429
+ try {
430
+ await mkdir(dir, { recursive: true });
431
+ }
432
+ catch {
433
+ // Peut exister déjà
434
+ }
435
+ }
436
+ }
437
+ //# sourceMappingURL=fix-reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix-reporter.js","sourceRoot":"","sources":["../../../../src/services/review/reporters/fix-reporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Review Reporters
3
+ *
4
+ * Exports all reporters for the review service.
5
+ *
6
+ * @module services/review/reporters
7
+ */
8
+ export { ScoreReporter } from './score-reporter.js';
9
+ export { FixReporter } from './fix-reporter.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/review/reporters/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Review Reporters
3
+ *
4
+ * Exports all reporters for the review service.
5
+ *
6
+ * @module services/review/reporters
7
+ */
8
+ export { ScoreReporter } from './score-reporter.js';
9
+ export { FixReporter } from './fix-reporter.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/review/reporters/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Score Reporter
3
+ *
4
+ * Génération de rapports de score:
5
+ * - Calcul du score de qualité du projet
6
+ * - Comparaison avec le scan précédent
7
+ * - Mise en évidence des améliorations
8
+ * - Export en plusieurs formats (JSON, HTML, Markdown)
9
+ *
10
+ * @module services/review/reporters/score-reporter
11
+ */
12
+ import type { ProjectScore, ReviewResult, ReportOptions, Issue } from '../review.types.js';
13
+ /**
14
+ * Reporter de score
15
+ */
16
+ export declare class ScoreReporter {
17
+ private readonly logger;
18
+ private previousScores;
19
+ constructor();
20
+ /**
21
+ * Génère un rapport de score à partir d'un résultat de review
22
+ *
23
+ * @param result - Résultat de la review
24
+ * @param options - Options de génération
25
+ */
26
+ generateReport(result: ReviewResult, options: ReportOptions): Promise<void>;
27
+ /**
28
+ * Génère un rapport JSON
29
+ */
30
+ private generateJsonReport;
31
+ /**
32
+ * Génère un rapport HTML
33
+ */
34
+ private generateHtmlReport;
35
+ /**
36
+ * Génère un rapport Markdown
37
+ */
38
+ private generateMarkdownReport;
39
+ /**
40
+ * Génère un rapport console
41
+ */
42
+ private generateConsoleReport;
43
+ /**
44
+ * Affiche le score d'une catégorie
45
+ */
46
+ private printCategoryScore;
47
+ /**
48
+ * Génère le contenu HTML du rapport
49
+ */
50
+ private generateHtmlContent;
51
+ /**
52
+ * Rendu d'une catégorie pour HTML
53
+ */
54
+ private renderCategory;
55
+ /**
56
+ * Génère le contenu Markdown du rapport
57
+ */
58
+ private generateMarkdownContent;
59
+ /**
60
+ * Retourne l'icône pour une sévérité
61
+ */
62
+ private getSeverityIcon;
63
+ /**
64
+ * Calcule le score du projet à partir des issues
65
+ */
66
+ calculateScore(issues: Issue[], previousScore?: ProjectScore): ProjectScore;
67
+ /**
68
+ * Calcule le score pour une catégorie spécifique
69
+ */
70
+ private calculateCategoryScore;
71
+ /**
72
+ * Sauvegarde le score pour comparaison future
73
+ */
74
+ private saveScore;
75
+ /**
76
+ * Charge le score précédent pour comparaison
77
+ */
78
+ private loadPreviousScore;
79
+ /**
80
+ * S'assure que le répertoire existe
81
+ */
82
+ private ensureDirectoryExists;
83
+ }
84
+ //# sourceMappingURL=score-reporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"score-reporter.d.ts","sourceRoot":"","sources":["../../../../src/services/review/reporters/score-reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAgB,aAAa,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAoBzG;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,cAAc,CAAoE;;IAM1F;;;;;OAKG;IACG,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BjF;;OAEG;YACW,kBAAkB;IAuBhC;;OAEG;YACW,kBAAkB;IAWhC;;OAEG;YACW,sBAAsB;IAWpC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuD7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuL3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA8D/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,aAAa,CAAC,EAAE,YAAY,GAAG,YAAY;IA0C3E;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;OAEG;YACW,SAAS;IA8BvB;;OAEG;YACW,iBAAiB;IAgB/B;;OAEG;YACW,qBAAqB;CAQpC"}