@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.
- package/README.md +268 -58
- package/bin/Dockerfile +158 -16
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +22 -2
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands/command.types.d.ts +216 -0
- package/dist/cli/commands/command.types.d.ts.map +1 -0
- package/dist/cli/commands/command.types.js +64 -0
- package/dist/cli/commands/command.types.js.map +1 -0
- package/dist/cli/commands/history.command.d.ts +91 -0
- package/dist/cli/commands/history.command.d.ts.map +1 -0
- package/dist/cli/commands/history.command.js +336 -0
- package/dist/cli/commands/history.command.js.map +1 -0
- package/dist/cli/commands/index.d.ts +14 -3
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +7 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/optimize.command.d.ts +110 -0
- package/dist/cli/commands/optimize.command.d.ts.map +1 -0
- package/dist/cli/commands/optimize.command.js +497 -0
- package/dist/cli/commands/optimize.command.js.map +1 -0
- package/dist/cli/commands/report.command.d.ts +110 -0
- package/dist/cli/commands/report.command.d.ts.map +1 -0
- package/dist/cli/commands/report.command.js +532 -0
- package/dist/cli/commands/report.command.js.map +1 -0
- package/dist/cli/commands/review.command.d.ts +110 -0
- package/dist/cli/commands/review.command.d.ts.map +1 -0
- package/dist/cli/commands/review.command.js +520 -0
- package/dist/cli/commands/review.command.js.map +1 -0
- package/dist/cli/commands/score.command.d.ts +47 -0
- package/dist/cli/commands/score.command.d.ts.map +1 -0
- package/dist/cli/commands/score.command.js +261 -0
- package/dist/cli/commands/score.command.js.map +1 -0
- package/dist/cli/utils/index.d.ts +10 -0
- package/dist/cli/utils/index.d.ts.map +1 -0
- package/dist/cli/utils/index.js +10 -0
- package/dist/cli/utils/index.js.map +1 -0
- package/dist/cli/utils/output.d.ts +192 -0
- package/dist/cli/utils/output.d.ts.map +1 -0
- package/dist/cli/utils/output.js +411 -0
- package/dist/cli/utils/output.js.map +1 -0
- package/dist/cli/utils/progress.d.ts +204 -0
- package/dist/cli/utils/progress.d.ts.map +1 -0
- package/dist/cli/utils/progress.js +396 -0
- package/dist/cli/utils/progress.js.map +1 -0
- package/dist/core/types/index.d.ts +1 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/project.types.d.ts +3 -3
- package/dist/core/types/project.types.d.ts.map +1 -1
- package/dist/core/types/scoring.types.d.ts +301 -0
- package/dist/core/types/scoring.types.d.ts.map +1 -0
- package/dist/core/types/scoring.types.js +8 -0
- package/dist/core/types/scoring.types.js.map +1 -0
- package/dist/services/detection/framework-detector.d.ts.map +1 -1
- package/dist/services/detection/framework-detector.js +74 -5
- package/dist/services/detection/framework-detector.js.map +1 -1
- package/dist/services/index.d.ts +12 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +14 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/optimization/detectors/bug-detector.d.ts +82 -0
- package/dist/services/optimization/detectors/bug-detector.d.ts.map +1 -0
- package/dist/services/optimization/detectors/bug-detector.js +443 -0
- package/dist/services/optimization/detectors/bug-detector.js.map +1 -0
- package/dist/services/optimization/detectors/code-smell-detector.d.ts +108 -0
- package/dist/services/optimization/detectors/code-smell-detector.d.ts.map +1 -0
- package/dist/services/optimization/detectors/code-smell-detector.js +569 -0
- package/dist/services/optimization/detectors/code-smell-detector.js.map +1 -0
- package/dist/services/optimization/detectors/index.d.ts +7 -0
- package/dist/services/optimization/detectors/index.d.ts.map +1 -0
- package/dist/services/optimization/detectors/index.js +7 -0
- package/dist/services/optimization/detectors/index.js.map +1 -0
- package/dist/services/optimization/detectors/perf-detector.d.ts +80 -0
- package/dist/services/optimization/detectors/perf-detector.d.ts.map +1 -0
- package/dist/services/optimization/detectors/perf-detector.js +451 -0
- package/dist/services/optimization/detectors/perf-detector.js.map +1 -0
- package/dist/services/optimization/index.d.ts +61 -0
- package/dist/services/optimization/index.d.ts.map +1 -0
- package/dist/services/optimization/index.js +69 -0
- package/dist/services/optimization/index.js.map +1 -0
- package/dist/services/optimization/optimization.service.d.ts +65 -0
- package/dist/services/optimization/optimization.service.d.ts.map +1 -0
- package/dist/services/optimization/optimization.service.js +511 -0
- package/dist/services/optimization/optimization.service.js.map +1 -0
- package/dist/services/optimization/optimization.types.d.ts +343 -0
- package/dist/services/optimization/optimization.types.d.ts.map +1 -0
- package/dist/services/optimization/optimization.types.js +8 -0
- package/dist/services/optimization/optimization.types.js.map +1 -0
- package/dist/services/optimization/optimizers/code-optimizer.d.ts +87 -0
- package/dist/services/optimization/optimizers/code-optimizer.d.ts.map +1 -0
- package/dist/services/optimization/optimizers/code-optimizer.js +436 -0
- package/dist/services/optimization/optimizers/code-optimizer.js.map +1 -0
- package/dist/services/optimization/optimizers/index.d.ts +7 -0
- package/dist/services/optimization/optimizers/index.d.ts.map +1 -0
- package/dist/services/optimization/optimizers/index.js +7 -0
- package/dist/services/optimization/optimizers/index.js.map +1 -0
- package/dist/services/optimization/optimizers/perf-optimizer.d.ts +64 -0
- package/dist/services/optimization/optimizers/perf-optimizer.d.ts.map +1 -0
- package/dist/services/optimization/optimizers/perf-optimizer.js +330 -0
- package/dist/services/optimization/optimizers/perf-optimizer.js.map +1 -0
- package/dist/services/optimization/optimizers/refact-optimizer.d.ts +82 -0
- package/dist/services/optimization/optimizers/refact-optimizer.d.ts.map +1 -0
- package/dist/services/optimization/optimizers/refact-optimizer.js +354 -0
- package/dist/services/optimization/optimizers/refact-optimizer.js.map +1 -0
- package/dist/services/optimization/patterns/anti-patterns.d.ts +31 -0
- package/dist/services/optimization/patterns/anti-patterns.d.ts.map +1 -0
- package/dist/services/optimization/patterns/anti-patterns.js +501 -0
- package/dist/services/optimization/patterns/anti-patterns.js.map +1 -0
- package/dist/services/optimization/patterns/index.d.ts +5 -0
- package/dist/services/optimization/patterns/index.d.ts.map +1 -0
- package/dist/services/optimization/patterns/index.js +5 -0
- package/dist/services/optimization/patterns/index.js.map +1 -0
- package/dist/services/reporting/export/chart.exporter.d.ts +59 -0
- package/dist/services/reporting/export/chart.exporter.d.ts.map +1 -0
- package/dist/services/reporting/export/chart.exporter.js +350 -0
- package/dist/services/reporting/export/chart.exporter.js.map +1 -0
- package/dist/services/reporting/export/index.d.ts +9 -0
- package/dist/services/reporting/export/index.d.ts.map +1 -0
- package/dist/services/reporting/export/index.js +10 -0
- package/dist/services/reporting/export/index.js.map +1 -0
- package/dist/services/reporting/export/pdf.exporter.d.ts +133 -0
- package/dist/services/reporting/export/pdf.exporter.d.ts.map +1 -0
- package/dist/services/reporting/export/pdf.exporter.js +270 -0
- package/dist/services/reporting/export/pdf.exporter.js.map +1 -0
- package/dist/services/reporting/history.service.d.ts +93 -0
- package/dist/services/reporting/history.service.d.ts.map +1 -0
- package/dist/services/reporting/history.service.js +285 -0
- package/dist/services/reporting/history.service.js.map +1 -0
- package/dist/services/reporting/index.d.ts +15 -0
- package/dist/services/reporting/index.d.ts.map +1 -0
- package/dist/services/reporting/index.js +16 -0
- package/dist/services/reporting/index.js.map +1 -0
- package/dist/services/reporting/report.service.d.ts +102 -0
- package/dist/services/reporting/report.service.d.ts.map +1 -0
- package/dist/services/reporting/report.service.js +240 -0
- package/dist/services/reporting/report.service.js.map +1 -0
- package/dist/services/reporting/reporting.types.d.ts +329 -0
- package/dist/services/reporting/reporting.types.d.ts.map +1 -0
- package/dist/services/reporting/reporting.types.js +8 -0
- package/dist/services/reporting/reporting.types.js.map +1 -0
- package/dist/services/reporting/templates/html.template.d.ts +81 -0
- package/dist/services/reporting/templates/html.template.d.ts.map +1 -0
- package/dist/services/reporting/templates/html.template.js +741 -0
- package/dist/services/reporting/templates/html.template.js.map +1 -0
- package/dist/services/reporting/templates/json.template.d.ts +85 -0
- package/dist/services/reporting/templates/json.template.d.ts.map +1 -0
- package/dist/services/reporting/templates/json.template.js +308 -0
- package/dist/services/reporting/templates/json.template.js.map +1 -0
- package/dist/services/reporting/templates/markdown.template.d.ts +69 -0
- package/dist/services/reporting/templates/markdown.template.d.ts.map +1 -0
- package/dist/services/reporting/templates/markdown.template.js +311 -0
- package/dist/services/reporting/templates/markdown.template.js.map +1 -0
- package/dist/services/reporting/trend-analyzer.d.ts +73 -0
- package/dist/services/reporting/trend-analyzer.d.ts.map +1 -0
- package/dist/services/reporting/trend-analyzer.js +291 -0
- package/dist/services/reporting/trend-analyzer.js.map +1 -0
- package/dist/services/review/analyzers/dependency-analyzer.d.ts +87 -0
- package/dist/services/review/analyzers/dependency-analyzer.d.ts.map +1 -0
- package/dist/services/review/analyzers/dependency-analyzer.js +458 -0
- package/dist/services/review/analyzers/dependency-analyzer.js.map +1 -0
- package/dist/services/review/analyzers/index.d.ts +13 -0
- package/dist/services/review/analyzers/index.d.ts.map +1 -0
- package/dist/services/review/analyzers/index.js +13 -0
- package/dist/services/review/analyzers/index.js.map +1 -0
- package/dist/services/review/analyzers/nestjs-analyzer.d.ts +210 -0
- package/dist/services/review/analyzers/nestjs-analyzer.d.ts.map +1 -0
- package/dist/services/review/analyzers/nestjs-analyzer.js +571 -0
- package/dist/services/review/analyzers/nestjs-analyzer.js.map +1 -0
- package/dist/services/review/analyzers/performance-analyzer.d.ts +91 -0
- package/dist/services/review/analyzers/performance-analyzer.d.ts.map +1 -0
- package/dist/services/review/analyzers/performance-analyzer.js +589 -0
- package/dist/services/review/analyzers/performance-analyzer.js.map +1 -0
- package/dist/services/review/analyzers/security-analyzer.d.ts +96 -0
- package/dist/services/review/analyzers/security-analyzer.d.ts.map +1 -0
- package/dist/services/review/analyzers/security-analyzer.js +512 -0
- package/dist/services/review/analyzers/security-analyzer.js.map +1 -0
- package/dist/services/review/analyzers/static-analyzer.d.ts +90 -0
- package/dist/services/review/analyzers/static-analyzer.d.ts.map +1 -0
- package/dist/services/review/analyzers/static-analyzer.js +423 -0
- package/dist/services/review/analyzers/static-analyzer.js.map +1 -0
- package/dist/services/review/fixers/auto-fixer.d.ts +94 -0
- package/dist/services/review/fixers/auto-fixer.d.ts.map +1 -0
- package/dist/services/review/fixers/auto-fixer.js +404 -0
- package/dist/services/review/fixers/auto-fixer.js.map +1 -0
- package/dist/services/review/fixers/index.d.ts +11 -0
- package/dist/services/review/fixers/index.d.ts.map +1 -0
- package/dist/services/review/fixers/index.js +11 -0
- package/dist/services/review/fixers/index.js.map +1 -0
- package/dist/services/review/fixers/refactor-suggester.d.ts +100 -0
- package/dist/services/review/fixers/refactor-suggester.d.ts.map +1 -0
- package/dist/services/review/fixers/refactor-suggester.js +555 -0
- package/dist/services/review/fixers/refactor-suggester.js.map +1 -0
- package/dist/services/review/fixers/test-generator.d.ts +99 -0
- package/dist/services/review/fixers/test-generator.d.ts.map +1 -0
- package/dist/services/review/fixers/test-generator.js +458 -0
- package/dist/services/review/fixers/test-generator.js.map +1 -0
- package/dist/services/review/index.d.ts +14 -0
- package/dist/services/review/index.d.ts.map +1 -0
- package/dist/services/review/index.js +14 -0
- package/dist/services/review/index.js.map +1 -0
- package/dist/services/review/reporters/fix-reporter.d.ts +67 -0
- package/dist/services/review/reporters/fix-reporter.d.ts.map +1 -0
- package/dist/services/review/reporters/fix-reporter.js +437 -0
- package/dist/services/review/reporters/fix-reporter.js.map +1 -0
- package/dist/services/review/reporters/index.d.ts +10 -0
- package/dist/services/review/reporters/index.d.ts.map +1 -0
- package/dist/services/review/reporters/index.js +10 -0
- package/dist/services/review/reporters/index.js.map +1 -0
- package/dist/services/review/reporters/score-reporter.d.ts +84 -0
- package/dist/services/review/reporters/score-reporter.d.ts.map +1 -0
- package/dist/services/review/reporters/score-reporter.js +560 -0
- package/dist/services/review/reporters/score-reporter.js.map +1 -0
- package/dist/services/review/review.service.d.ts +129 -0
- package/dist/services/review/review.service.d.ts.map +1 -0
- package/dist/services/review/review.service.js +396 -0
- package/dist/services/review/review.service.js.map +1 -0
- package/dist/services/review/review.types.d.ts +443 -0
- package/dist/services/review/review.types.d.ts.map +1 -0
- package/dist/services/review/review.types.js +11 -0
- package/dist/services/review/review.types.js.map +1 -0
- package/dist/services/scoring/dimensions/accessibility.analyzer.d.ts +53 -0
- package/dist/services/scoring/dimensions/accessibility.analyzer.d.ts.map +1 -0
- package/dist/services/scoring/dimensions/accessibility.analyzer.js +260 -0
- package/dist/services/scoring/dimensions/accessibility.analyzer.js.map +1 -0
- package/dist/services/scoring/dimensions/backend-logic.analyzer.d.ts +138 -0
- package/dist/services/scoring/dimensions/backend-logic.analyzer.d.ts.map +1 -0
- package/dist/services/scoring/dimensions/backend-logic.analyzer.js +713 -0
- package/dist/services/scoring/dimensions/backend-logic.analyzer.js.map +1 -0
- package/dist/services/scoring/dimensions/business-logic.analyzer.d.ts +142 -0
- package/dist/services/scoring/dimensions/business-logic.analyzer.d.ts.map +1 -0
- package/dist/services/scoring/dimensions/business-logic.analyzer.js +747 -0
- package/dist/services/scoring/dimensions/business-logic.analyzer.js.map +1 -0
- package/dist/services/scoring/dimensions/code-quality.analyzer.d.ts +142 -0
- package/dist/services/scoring/dimensions/code-quality.analyzer.d.ts.map +1 -0
- package/dist/services/scoring/dimensions/code-quality.analyzer.js +685 -0
- package/dist/services/scoring/dimensions/code-quality.analyzer.js.map +1 -0
- package/dist/services/scoring/dimensions/index.d.ts +18 -0
- package/dist/services/scoring/dimensions/index.d.ts.map +1 -0
- package/dist/services/scoring/dimensions/index.js +27 -0
- package/dist/services/scoring/dimensions/index.js.map +1 -0
- package/dist/services/scoring/dimensions/performance.analyzer.d.ts +125 -0
- package/dist/services/scoring/dimensions/performance.analyzer.d.ts.map +1 -0
- package/dist/services/scoring/dimensions/performance.analyzer.js +615 -0
- package/dist/services/scoring/dimensions/performance.analyzer.js.map +1 -0
- package/dist/services/scoring/dimensions/security.analyzer.d.ts +53 -0
- package/dist/services/scoring/dimensions/security.analyzer.d.ts.map +1 -0
- package/dist/services/scoring/dimensions/security.analyzer.js +327 -0
- package/dist/services/scoring/dimensions/security.analyzer.js.map +1 -0
- package/dist/services/scoring/dimensions/seo.analyzer.d.ts +77 -0
- package/dist/services/scoring/dimensions/seo.analyzer.d.ts.map +1 -0
- package/dist/services/scoring/dimensions/seo.analyzer.js +502 -0
- package/dist/services/scoring/dimensions/seo.analyzer.js.map +1 -0
- package/dist/services/scoring/dimensions/test-coverage.analyzer.d.ts +106 -0
- package/dist/services/scoring/dimensions/test-coverage.analyzer.d.ts.map +1 -0
- package/dist/services/scoring/dimensions/test-coverage.analyzer.js +496 -0
- package/dist/services/scoring/dimensions/test-coverage.analyzer.js.map +1 -0
- package/dist/services/scoring/dimensions/ui-ux.analyzer.d.ts +126 -0
- package/dist/services/scoring/dimensions/ui-ux.analyzer.d.ts.map +1 -0
- package/dist/services/scoring/dimensions/ui-ux.analyzer.js +665 -0
- package/dist/services/scoring/dimensions/ui-ux.analyzer.js.map +1 -0
- package/dist/services/scoring/index.d.ts +10 -0
- package/dist/services/scoring/index.d.ts.map +1 -0
- package/dist/services/scoring/index.js +10 -0
- package/dist/services/scoring/index.js.map +1 -0
- package/dist/services/scoring/scoring-service.d.ts +222 -0
- package/dist/services/scoring/scoring-service.d.ts.map +1 -0
- package/dist/services/scoring/scoring-service.js +636 -0
- package/dist/services/scoring/scoring-service.js.map +1 -0
- package/package.json +11 -3
- package/templates/README.md +183 -0
- package/templates/nestjs/controller.spec.ts +203 -0
- package/templates/nestjs/e2e/api.e2e-spec.ts +451 -0
- package/templates/nestjs/e2e/auth.e2e-spec.ts +533 -0
- package/templates/nestjs/fixtures/test-module.ts +311 -0
- package/templates/nestjs/guard.spec.ts +314 -0
- package/templates/nestjs/interceptor.spec.ts +458 -0
- package/templates/nestjs/module.spec.ts +173 -0
- package/templates/nestjs/pipe.spec.ts +474 -0
- package/templates/nestjs/service.spec.ts +296 -0
- package/templates/rust/Cargo.toml +72 -0
- package/templates/rust/actix-controller.test.rs +114 -0
- package/templates/rust/axum-handler.test.rs +117 -0
- package/templates/rust/integration.test.rs +63 -0
- package/templates/rust/rocket-route.test.rs +106 -0
- package/templates/rust/unit.test.rs +38 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Review Service
|
|
3
|
+
*
|
|
4
|
+
* Service principal d'orchestration du review et fix:
|
|
5
|
+
* - Analyse complète du projet
|
|
6
|
+
* - Application des corrections automatiques
|
|
7
|
+
* - Analyse et fix en une passe
|
|
8
|
+
* - Génération de rapports
|
|
9
|
+
*
|
|
10
|
+
* @module services/review/review.service
|
|
11
|
+
*/
|
|
12
|
+
import type { Issue, ReviewResult, ReviewOptions, FixResult, FixOptions, ReportFormat } from './review.types.js';
|
|
13
|
+
import { StaticAnalyzer } from './analyzers/static-analyzer.js';
|
|
14
|
+
import { SecurityAnalyzer } from './analyzers/security-analyzer.js';
|
|
15
|
+
import { DependencyAnalyzer } from './analyzers/dependency-analyzer.js';
|
|
16
|
+
import { PerformanceAnalyzer } from './analyzers/performance-analyzer.js';
|
|
17
|
+
import { AutoFixer } from './fixers/auto-fixer.js';
|
|
18
|
+
import { TestGenerator } from './fixers/test-generator.js';
|
|
19
|
+
import { RefactorSuggester } from './fixers/refactor-suggester.js';
|
|
20
|
+
import { DockerManager } from '../docker/docker-manager.js';
|
|
21
|
+
/**
|
|
22
|
+
* Service de Review et Fix
|
|
23
|
+
*/
|
|
24
|
+
export declare class ReviewService {
|
|
25
|
+
private readonly docker;
|
|
26
|
+
private readonly logger;
|
|
27
|
+
private staticAnalyzer;
|
|
28
|
+
private securityAnalyzer;
|
|
29
|
+
private dependencyAnalyzer;
|
|
30
|
+
private performanceAnalyzer;
|
|
31
|
+
private autoFixer;
|
|
32
|
+
private testGenerator;
|
|
33
|
+
private refactorSuggester;
|
|
34
|
+
private scoreReporter;
|
|
35
|
+
private fixReporter;
|
|
36
|
+
constructor(docker?: DockerManager);
|
|
37
|
+
/**
|
|
38
|
+
* Analyse complète d'un projet
|
|
39
|
+
*
|
|
40
|
+
* @param projectPath - Chemin du projet à analyser
|
|
41
|
+
* @param options - Options d'analyse
|
|
42
|
+
* @returns Résultat de l'analyse
|
|
43
|
+
*/
|
|
44
|
+
review(projectPath: string, options?: ReviewOptions): Promise<ReviewResult>;
|
|
45
|
+
/**
|
|
46
|
+
* Applique les corrections sur une liste d'issues
|
|
47
|
+
*
|
|
48
|
+
* @param projectPath - Chemin du projet
|
|
49
|
+
* @param issues - Liste des issues à corriger
|
|
50
|
+
* @param options - Options de correction
|
|
51
|
+
* @returns Résultat des corrections
|
|
52
|
+
*/
|
|
53
|
+
fix(projectPath: string, issues: Issue[], options?: FixOptions): Promise<FixResult>;
|
|
54
|
+
/**
|
|
55
|
+
* Analyse et corrige en une seule passe
|
|
56
|
+
*
|
|
57
|
+
* @param projectPath - Chemin du projet
|
|
58
|
+
* @param reviewOptions - Options d'analyse
|
|
59
|
+
* @param fixOptions - Options de correction
|
|
60
|
+
* @returns Résultat complet avec corrections appliquées
|
|
61
|
+
*/
|
|
62
|
+
analyzeAndFix(projectPath: string, reviewOptions?: ReviewOptions, fixOptions?: FixOptions): Promise<ReviewResult>;
|
|
63
|
+
/**
|
|
64
|
+
* Génère un rapport d'analyse
|
|
65
|
+
*
|
|
66
|
+
* @param result - Résultat de l'analyse
|
|
67
|
+
* @param format - Format du rapport
|
|
68
|
+
* @param outputPath - Chemin de sortie (optionnel)
|
|
69
|
+
*/
|
|
70
|
+
generateReport(result: ReviewResult, format?: ReportFormat, outputPath?: string): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Génère un rapport de corrections
|
|
73
|
+
*
|
|
74
|
+
* @param result - Résultat des corrections
|
|
75
|
+
* @param projectPath - Chemin du projet
|
|
76
|
+
* @param format - Format du rapport
|
|
77
|
+
* @param outputPath - Chemin de sortie (optionnel)
|
|
78
|
+
*/
|
|
79
|
+
generateFixReport(result: FixResult, projectPath: string, format?: ReportFormat, outputPath?: string, suggestions?: any[]): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Retourne l'analyseur statique
|
|
82
|
+
*/
|
|
83
|
+
getStaticAnalyzer(): StaticAnalyzer;
|
|
84
|
+
/**
|
|
85
|
+
* Retourne l'analyseur de sécurité
|
|
86
|
+
*/
|
|
87
|
+
getSecurityAnalyzer(): SecurityAnalyzer;
|
|
88
|
+
/**
|
|
89
|
+
* Retourne l'analyseur de dépendances
|
|
90
|
+
*/
|
|
91
|
+
getDependencyAnalyzer(): DependencyAnalyzer;
|
|
92
|
+
/**
|
|
93
|
+
* Retourne l'analyseur de performance
|
|
94
|
+
*/
|
|
95
|
+
getPerformanceAnalyzer(): PerformanceAnalyzer;
|
|
96
|
+
/**
|
|
97
|
+
* Retourne le fixer automatique
|
|
98
|
+
*/
|
|
99
|
+
getAutoFixer(): AutoFixer;
|
|
100
|
+
/**
|
|
101
|
+
* Retourne le générateur de tests
|
|
102
|
+
*/
|
|
103
|
+
getTestGenerator(): TestGenerator;
|
|
104
|
+
/**
|
|
105
|
+
* Retourne le suggesteur de refactoring
|
|
106
|
+
*/
|
|
107
|
+
getRefactorSuggester(): RefactorSuggester;
|
|
108
|
+
/**
|
|
109
|
+
* Filtre les issues par sévérité minimum
|
|
110
|
+
*/
|
|
111
|
+
private filterBySeverity;
|
|
112
|
+
/**
|
|
113
|
+
* Charge le score précédent depuis le cache
|
|
114
|
+
*/
|
|
115
|
+
private loadPreviousScore;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Obtient ou crée l'instance par défaut du service
|
|
119
|
+
*/
|
|
120
|
+
export declare function getReviewService(docker?: DockerManager): ReviewService;
|
|
121
|
+
/**
|
|
122
|
+
* Fonction de commodité pour analyser un projet
|
|
123
|
+
*/
|
|
124
|
+
export declare function analyzeProject(projectPath: string, options?: ReviewOptions): Promise<ReviewResult>;
|
|
125
|
+
/**
|
|
126
|
+
* Fonction de commodité pour analyser et corriger un projet
|
|
127
|
+
*/
|
|
128
|
+
export declare function analyzeAndFixProject(projectPath: string, reviewOptions?: ReviewOptions, fixOptions?: FixOptions): Promise<ReviewResult>;
|
|
129
|
+
//# sourceMappingURL=review.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.service.d.ts","sourceRoot":"","sources":["../../../src/services/review/review.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Review Service
|
|
3
|
+
*
|
|
4
|
+
* Service principal d'orchestration du review et fix:
|
|
5
|
+
* - Analyse complète du projet
|
|
6
|
+
* - Application des corrections automatiques
|
|
7
|
+
* - Analyse et fix en une passe
|
|
8
|
+
* - Génération de rapports
|
|
9
|
+
*
|
|
10
|
+
* @module services/review/review.service
|
|
11
|
+
*/
|
|
12
|
+
import { existsSync } from 'node:fs';
|
|
13
|
+
import { StaticAnalyzer } from './analyzers/static-analyzer.js';
|
|
14
|
+
import { SecurityAnalyzer } from './analyzers/security-analyzer.js';
|
|
15
|
+
import { DependencyAnalyzer } from './analyzers/dependency-analyzer.js';
|
|
16
|
+
import { PerformanceAnalyzer } from './analyzers/performance-analyzer.js';
|
|
17
|
+
import { AutoFixer } from './fixers/auto-fixer.js';
|
|
18
|
+
import { TestGenerator } from './fixers/test-generator.js';
|
|
19
|
+
import { RefactorSuggester } from './fixers/refactor-suggester.js';
|
|
20
|
+
import { ScoreReporter } from './reporters/score-reporter.js';
|
|
21
|
+
import { FixReporter } from './reporters/fix-reporter.js';
|
|
22
|
+
import { DockerManager } from '../docker/docker-manager.js';
|
|
23
|
+
import { createLogger } from '@/shared/utils/logger.js';
|
|
24
|
+
/**
|
|
25
|
+
* Options par défaut pour le review
|
|
26
|
+
*/
|
|
27
|
+
const DEFAULT_REVIEW_OPTIONS = {
|
|
28
|
+
minSeverity: 'low',
|
|
29
|
+
maxFiles: 1000,
|
|
30
|
+
analyzers: {
|
|
31
|
+
static: true,
|
|
32
|
+
security: true,
|
|
33
|
+
dependency: true,
|
|
34
|
+
performance: true,
|
|
35
|
+
testing: true,
|
|
36
|
+
},
|
|
37
|
+
timeout: 300000,
|
|
38
|
+
useCache: true,
|
|
39
|
+
compareWithPrevious: true,
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Options par défaut pour le fix
|
|
43
|
+
*/
|
|
44
|
+
const DEFAULT_FIX_OPTIONS = {
|
|
45
|
+
autoApply: true,
|
|
46
|
+
maxSeverity: 'medium',
|
|
47
|
+
maxEffort: 5,
|
|
48
|
+
createBackup: true,
|
|
49
|
+
generateTests: false,
|
|
50
|
+
dryRun: false,
|
|
51
|
+
ignore: [],
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Service de Review et Fix
|
|
55
|
+
*/
|
|
56
|
+
export class ReviewService {
|
|
57
|
+
docker;
|
|
58
|
+
logger;
|
|
59
|
+
staticAnalyzer;
|
|
60
|
+
securityAnalyzer;
|
|
61
|
+
dependencyAnalyzer;
|
|
62
|
+
performanceAnalyzer;
|
|
63
|
+
autoFixer;
|
|
64
|
+
testGenerator;
|
|
65
|
+
refactorSuggester;
|
|
66
|
+
scoreReporter;
|
|
67
|
+
fixReporter;
|
|
68
|
+
constructor(docker) {
|
|
69
|
+
this.docker = docker ?? new DockerManager();
|
|
70
|
+
this.logger = createLogger('ReviewService');
|
|
71
|
+
// Initialiser les analyseurs
|
|
72
|
+
this.staticAnalyzer = new StaticAnalyzer({}, this.docker);
|
|
73
|
+
this.securityAnalyzer = new SecurityAnalyzer({}, this.docker);
|
|
74
|
+
this.dependencyAnalyzer = new DependencyAnalyzer({}, this.docker);
|
|
75
|
+
this.performanceAnalyzer = new PerformanceAnalyzer({}, this.docker);
|
|
76
|
+
// Initialiser les fixers
|
|
77
|
+
this.autoFixer = new AutoFixer(this.docker);
|
|
78
|
+
this.testGenerator = new TestGenerator(this.docker);
|
|
79
|
+
this.refactorSuggester = new RefactorSuggester(this.docker);
|
|
80
|
+
// Initialiser les reporters
|
|
81
|
+
this.scoreReporter = new ScoreReporter();
|
|
82
|
+
this.fixReporter = new FixReporter();
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Analyse complète d'un projet
|
|
86
|
+
*
|
|
87
|
+
* @param projectPath - Chemin du projet à analyser
|
|
88
|
+
* @param options - Options d'analyse
|
|
89
|
+
* @returns Résultat de l'analyse
|
|
90
|
+
*/
|
|
91
|
+
async review(projectPath, options = {}) {
|
|
92
|
+
const startTime = globalThis.performance.now();
|
|
93
|
+
const mergedOptions = { ...DEFAULT_REVIEW_OPTIONS, ...options };
|
|
94
|
+
this.logger.info(`Starting review for: ${projectPath}`);
|
|
95
|
+
// Vérifier que le projet existe
|
|
96
|
+
if (!existsSync(projectPath)) {
|
|
97
|
+
throw new Error(`Project path does not exist: ${projectPath}`);
|
|
98
|
+
}
|
|
99
|
+
// S'assurer que le conteneur Docker est prêt
|
|
100
|
+
await this.docker.setup({ silent: true });
|
|
101
|
+
const issues = [];
|
|
102
|
+
let coverage, dependencies, performance;
|
|
103
|
+
// Analyse statique
|
|
104
|
+
if (mergedOptions.analyzers.static) {
|
|
105
|
+
this.logger.info('Running static analysis...');
|
|
106
|
+
try {
|
|
107
|
+
const staticIssues = await this.staticAnalyzer.analyze(projectPath, mergedOptions.exclude ?? []);
|
|
108
|
+
issues.push(...staticIssues);
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
this.logger.warn('Static analysis failed', error);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Analyse de sécurité
|
|
115
|
+
if (mergedOptions.analyzers.security) {
|
|
116
|
+
this.logger.info('Running security analysis...');
|
|
117
|
+
try {
|
|
118
|
+
const securityIssues = await this.securityAnalyzer.analyze(projectPath, mergedOptions.exclude ?? []);
|
|
119
|
+
issues.push(...securityIssues);
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
this.logger.warn('Security analysis failed', error);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Analyse des dépendances
|
|
126
|
+
if (mergedOptions.analyzers.dependency) {
|
|
127
|
+
this.logger.info('Running dependency analysis...');
|
|
128
|
+
try {
|
|
129
|
+
const { analysis: depAnalysis, issues: depIssues } = await this.dependencyAnalyzer.analyze(projectPath);
|
|
130
|
+
dependencies = depAnalysis;
|
|
131
|
+
issues.push(...depIssues);
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
this.logger.warn('Dependency analysis failed', error);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// Analyse des performances
|
|
138
|
+
if (mergedOptions.analyzers.performance) {
|
|
139
|
+
this.logger.info('Running performance analysis...');
|
|
140
|
+
try {
|
|
141
|
+
const { metrics: perfMetrics, issues: perfIssues } = await this.performanceAnalyzer.analyze(projectPath);
|
|
142
|
+
performance = perfMetrics;
|
|
143
|
+
issues.push(...perfIssues);
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
this.logger.warn('Performance analysis failed', error);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Filtrer les issues par sévérité
|
|
150
|
+
const filteredIssues = this.filterBySeverity(issues, mergedOptions.minSeverity);
|
|
151
|
+
// Filtrer par catégories si spécifié
|
|
152
|
+
const categorizedIssues = mergedOptions.categories
|
|
153
|
+
? filteredIssues.filter((i) => mergedOptions.categories?.includes(i.category))
|
|
154
|
+
: filteredIssues;
|
|
155
|
+
// Générer les suggestions de refactoring
|
|
156
|
+
const suggestions = await this.refactorSuggester.analyze(projectPath, mergedOptions.exclude ?? []);
|
|
157
|
+
// Calculer le score
|
|
158
|
+
const previousScore = mergedOptions.compareWithPrevious
|
|
159
|
+
? await this.loadPreviousScore(projectPath)
|
|
160
|
+
: undefined;
|
|
161
|
+
const score = this.scoreReporter.calculateScore(categorizedIssues, previousScore);
|
|
162
|
+
const duration = Math.round(globalThis.performance.now() - startTime);
|
|
163
|
+
this.logger.info(`Review completed in ${duration}ms (${categorizedIssues.length} issues, score: ${score.overall}/100)`);
|
|
164
|
+
return {
|
|
165
|
+
projectPath,
|
|
166
|
+
timestamp: new Date(),
|
|
167
|
+
duration,
|
|
168
|
+
score,
|
|
169
|
+
issues: categorizedIssues,
|
|
170
|
+
fixes: [],
|
|
171
|
+
suggestions,
|
|
172
|
+
coverage,
|
|
173
|
+
dependencies,
|
|
174
|
+
performance,
|
|
175
|
+
summary: {
|
|
176
|
+
totalIssues: categorizedIssues.length,
|
|
177
|
+
fixableIssues: categorizedIssues.filter((i) => i.fixable).length,
|
|
178
|
+
fixedIssues: 0,
|
|
179
|
+
suggestions: suggestions.length,
|
|
180
|
+
},
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Applique les corrections sur une liste d'issues
|
|
185
|
+
*
|
|
186
|
+
* @param projectPath - Chemin du projet
|
|
187
|
+
* @param issues - Liste des issues à corriger
|
|
188
|
+
* @param options - Options de correction
|
|
189
|
+
* @returns Résultat des corrections
|
|
190
|
+
*/
|
|
191
|
+
async fix(projectPath, issues, options = {}) {
|
|
192
|
+
const startTime = performance.now();
|
|
193
|
+
const mergedOptions = { ...DEFAULT_FIX_OPTIONS, ...options };
|
|
194
|
+
this.logger.info(`Starting auto-fix for ${issues.length} issues`);
|
|
195
|
+
// Filtrer les issues corrigibles
|
|
196
|
+
const fixableIssues = issues.filter((i) => i.fixable && !mergedOptions.ignore?.includes(i.id));
|
|
197
|
+
if (fixableIssues.length === 0) {
|
|
198
|
+
this.logger.info('No fixable issues found');
|
|
199
|
+
return {
|
|
200
|
+
success: true,
|
|
201
|
+
attempted: 0,
|
|
202
|
+
applied: 0,
|
|
203
|
+
failed: 0,
|
|
204
|
+
fixes: [],
|
|
205
|
+
remainingSuggestions: [],
|
|
206
|
+
duration: 0,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
// Appliquer les corrections automatiques
|
|
210
|
+
const fixes = await this.autoFixer.applyFixes(fixableIssues, projectPath, {
|
|
211
|
+
dryRun: mergedOptions.dryRun,
|
|
212
|
+
maxSeverity: mergedOptions.maxSeverity,
|
|
213
|
+
maxEffort: mergedOptions.maxEffort,
|
|
214
|
+
createBackup: mergedOptions.createBackup,
|
|
215
|
+
});
|
|
216
|
+
const applied = fixes.filter((f) => f.applied).length;
|
|
217
|
+
const failed = fixes.filter((f) => !f.applied).length;
|
|
218
|
+
// Générer des tests si demandé
|
|
219
|
+
if (mergedOptions.generateTests) {
|
|
220
|
+
this.logger.info('Generating tests for uncovered code...');
|
|
221
|
+
try {
|
|
222
|
+
await this.testGenerator.generateTests(projectPath, {
|
|
223
|
+
framework: 'vitest',
|
|
224
|
+
dryRun: mergedOptions.dryRun,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
this.logger.warn('Test generation failed', error);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
const duration = Math.round(globalThis.performance.now() - startTime);
|
|
232
|
+
this.logger.info(`Auto-fix completed: ${applied} applied, ${failed} failed`);
|
|
233
|
+
return {
|
|
234
|
+
success: failed === 0,
|
|
235
|
+
attempted: fixes.length,
|
|
236
|
+
applied,
|
|
237
|
+
failed,
|
|
238
|
+
fixes,
|
|
239
|
+
remainingSuggestions: [],
|
|
240
|
+
duration,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Analyse et corrige en une seule passe
|
|
245
|
+
*
|
|
246
|
+
* @param projectPath - Chemin du projet
|
|
247
|
+
* @param reviewOptions - Options d'analyse
|
|
248
|
+
* @param fixOptions - Options de correction
|
|
249
|
+
* @returns Résultat complet avec corrections appliquées
|
|
250
|
+
*/
|
|
251
|
+
async analyzeAndFix(projectPath, reviewOptions = {}, fixOptions = {}) {
|
|
252
|
+
this.logger.info(`Starting analyze-and-fix for: ${projectPath}`);
|
|
253
|
+
// 1. Analyser
|
|
254
|
+
const reviewResult = await this.review(projectPath, reviewOptions);
|
|
255
|
+
// 2. Corriger les issues corrigibles
|
|
256
|
+
const fixableIssues = reviewResult.issues.filter((i) => i.fixable);
|
|
257
|
+
if (fixableIssues.length > 0) {
|
|
258
|
+
const fixResult = await this.fix(projectPath, fixableIssues, fixOptions);
|
|
259
|
+
// Mettre à jour le résultat avec les corrections
|
|
260
|
+
reviewResult.fixes = fixResult.fixes;
|
|
261
|
+
reviewResult.summary.fixedIssues = fixResult.applied;
|
|
262
|
+
// Recalculer le score après corrections
|
|
263
|
+
const remainingIssues = reviewResult.issues.filter((i) => {
|
|
264
|
+
return !fixResult.fixes.find((f) => f.issueId === i.id && f.applied);
|
|
265
|
+
});
|
|
266
|
+
reviewResult.score = this.scoreReporter.calculateScore(remainingIssues);
|
|
267
|
+
}
|
|
268
|
+
return reviewResult;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Génère un rapport d'analyse
|
|
272
|
+
*
|
|
273
|
+
* @param result - Résultat de l'analyse
|
|
274
|
+
* @param format - Format du rapport
|
|
275
|
+
* @param outputPath - Chemin de sortie (optionnel)
|
|
276
|
+
*/
|
|
277
|
+
async generateReport(result, format = 'console', outputPath) {
|
|
278
|
+
const options = {
|
|
279
|
+
format,
|
|
280
|
+
outputPath,
|
|
281
|
+
includeSuggestions: true,
|
|
282
|
+
showDelta: true,
|
|
283
|
+
verbosity: 'normal',
|
|
284
|
+
};
|
|
285
|
+
await this.scoreReporter.generateReport(result, options);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Génère un rapport de corrections
|
|
289
|
+
*
|
|
290
|
+
* @param result - Résultat des corrections
|
|
291
|
+
* @param projectPath - Chemin du projet
|
|
292
|
+
* @param format - Format du rapport
|
|
293
|
+
* @param outputPath - Chemin de sortie (optionnel)
|
|
294
|
+
*/
|
|
295
|
+
async generateFixReport(result, projectPath, format = 'console', outputPath, suggestions) {
|
|
296
|
+
const options = {
|
|
297
|
+
format,
|
|
298
|
+
outputPath,
|
|
299
|
+
includeSuggestions: true,
|
|
300
|
+
verbosity: 'normal',
|
|
301
|
+
};
|
|
302
|
+
await this.fixReporter.generateReport(result, projectPath, {
|
|
303
|
+
...options,
|
|
304
|
+
suggestions,
|
|
305
|
+
remainingIssues: result.attempted - result.applied,
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Retourne l'analyseur statique
|
|
310
|
+
*/
|
|
311
|
+
getStaticAnalyzer() {
|
|
312
|
+
return this.staticAnalyzer;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Retourne l'analyseur de sécurité
|
|
316
|
+
*/
|
|
317
|
+
getSecurityAnalyzer() {
|
|
318
|
+
return this.securityAnalyzer;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Retourne l'analyseur de dépendances
|
|
322
|
+
*/
|
|
323
|
+
getDependencyAnalyzer() {
|
|
324
|
+
return this.dependencyAnalyzer;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Retourne l'analyseur de performance
|
|
328
|
+
*/
|
|
329
|
+
getPerformanceAnalyzer() {
|
|
330
|
+
return this.performanceAnalyzer;
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Retourne le fixer automatique
|
|
334
|
+
*/
|
|
335
|
+
getAutoFixer() {
|
|
336
|
+
return this.autoFixer;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Retourne le générateur de tests
|
|
340
|
+
*/
|
|
341
|
+
getTestGenerator() {
|
|
342
|
+
return this.testGenerator;
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Retourne le suggesteur de refactoring
|
|
346
|
+
*/
|
|
347
|
+
getRefactorSuggester() {
|
|
348
|
+
return this.refactorSuggester;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Filtre les issues par sévérité minimum
|
|
352
|
+
*/
|
|
353
|
+
filterBySeverity(issues, minSeverity) {
|
|
354
|
+
const severityOrder = ['critical', 'high', 'medium', 'low', 'info'];
|
|
355
|
+
const minIndex = severityOrder.indexOf(minSeverity);
|
|
356
|
+
return issues.filter((issue) => {
|
|
357
|
+
const index = severityOrder.indexOf(issue.severity);
|
|
358
|
+
return index <= minIndex;
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Charge le score précédent depuis le cache
|
|
363
|
+
*/
|
|
364
|
+
async loadPreviousScore(projectPath) {
|
|
365
|
+
// Implémentation simple - pourrait être étendue
|
|
366
|
+
return undefined;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Instance par défaut du service
|
|
371
|
+
*/
|
|
372
|
+
let defaultService = null;
|
|
373
|
+
/**
|
|
374
|
+
* Obtient ou crée l'instance par défaut du service
|
|
375
|
+
*/
|
|
376
|
+
export function getReviewService(docker) {
|
|
377
|
+
if (!defaultService) {
|
|
378
|
+
defaultService = new ReviewService(docker);
|
|
379
|
+
}
|
|
380
|
+
return defaultService;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Fonction de commodité pour analyser un projet
|
|
384
|
+
*/
|
|
385
|
+
export async function analyzeProject(projectPath, options) {
|
|
386
|
+
const service = getReviewService();
|
|
387
|
+
return service.review(projectPath, options);
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Fonction de commodité pour analyser et corriger un projet
|
|
391
|
+
*/
|
|
392
|
+
export async function analyzeAndFixProject(projectPath, reviewOptions, fixOptions) {
|
|
393
|
+
const service = getReviewService();
|
|
394
|
+
return service.analyzeAndFix(projectPath, reviewOptions, fixOptions);
|
|
395
|
+
}
|
|
396
|
+
//# sourceMappingURL=review.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.service.js","sourceRoot":"","sources":["../../../src/services/review/review.service.ts"],"names":[],"mappings":"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"}
|