@oalacea/daemon 0.6.4 → 0.7.1
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/bin/docker-entrypoint.sh +293 -0
- 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 +13 -4
- 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,293 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Daemon Docker Container Entrypoint v0.7.0
|
|
3
|
+
# This script handles container initialization, environment setup, and cleanup
|
|
4
|
+
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
# ============================================================================
|
|
8
|
+
# COLORS FOR OUTPUT
|
|
9
|
+
# ============================================================================
|
|
10
|
+
export RED='\033[0;31m'
|
|
11
|
+
export GREEN='\033[0;32m'
|
|
12
|
+
export YELLOW='\033[1;33m'
|
|
13
|
+
export BLUE='\033[0;34m'
|
|
14
|
+
export PURPLE='\033[0;35m'
|
|
15
|
+
export CYAN='\033[0;36m'
|
|
16
|
+
export NC='\033[0m' # No Color
|
|
17
|
+
|
|
18
|
+
# ============================================================================
|
|
19
|
+
# BANNER
|
|
20
|
+
# ============================================================================
|
|
21
|
+
print_banner() {
|
|
22
|
+
cat << "EOF"
|
|
23
|
+
╔═══════════════════════════════════════════════════════════╗
|
|
24
|
+
║ ║
|
|
25
|
+
║ ███╗ ██╗███████╗██╗ ██╗██╗ ██╗███████╗ ║
|
|
26
|
+
║ ████╗ ██║██╔════╝╚██╗██╔╝██║ ██║██╔════╝ ║
|
|
27
|
+
║ ██╔██╗ ██║█████╗ ╚███╔╝ ██║ ██║███████╗ ║
|
|
28
|
+
║ ██║╚██╗██║██╔══╝ ██╔██╗ ██║ ██║╚════██║ ║
|
|
29
|
+
║ ██║ ╚████║███████╗██╔╝ ██╗╚██████╔╝███████║ ║
|
|
30
|
+
║ ╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ║
|
|
31
|
+
║ ║
|
|
32
|
+
║ v0.7.0 - Testing Suite ║
|
|
33
|
+
║ ║
|
|
34
|
+
╚═══════════════════════════════════════════════════════════╝
|
|
35
|
+
EOF
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
# ============================================================================
|
|
39
|
+
# LOGGING FUNCTIONS
|
|
40
|
+
# ============================================================================
|
|
41
|
+
log_info() {
|
|
42
|
+
echo -e "${BLUE}[INFO]${NC} $1"
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
log_success() {
|
|
46
|
+
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
log_warning() {
|
|
50
|
+
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
log_error() {
|
|
54
|
+
echo -e "${RED}[ERROR]${NC} $1"
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
log_tool() {
|
|
58
|
+
echo -e "${CYAN}[TOOL]${NC} $1"
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
# ============================================================================
|
|
62
|
+
# ENVIRONMENT SETUP
|
|
63
|
+
# ============================================================================
|
|
64
|
+
setup_environment() {
|
|
65
|
+
log_info "Setting up environment..."
|
|
66
|
+
|
|
67
|
+
# Set timezone if specified
|
|
68
|
+
if [ -n "${TZ}" ]; then
|
|
69
|
+
export TZ="${TZ}"
|
|
70
|
+
log_info "Timezone set to ${TZ}"
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
# Ensure Rust is in PATH
|
|
74
|
+
if [ -d "/usr/local/cargo/bin" ]; then
|
|
75
|
+
export PATH="/usr/local/cargo/bin:${PATH}"
|
|
76
|
+
log_success "Rust toolchain configured"
|
|
77
|
+
fi
|
|
78
|
+
|
|
79
|
+
# Create working directory if it doesn't exist
|
|
80
|
+
mkdir -p /app/{logs,reports,temp}
|
|
81
|
+
|
|
82
|
+
# Set Node environment
|
|
83
|
+
export NODE_ENV="${NODE_ENV:-development}"
|
|
84
|
+
|
|
85
|
+
log_success "Environment setup complete"
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
# ============================================================================
|
|
89
|
+
# TOOL VERSION DISPLAY
|
|
90
|
+
# ============================================================================
|
|
91
|
+
show_versions() {
|
|
92
|
+
log_info "Installed tools:"
|
|
93
|
+
echo ""
|
|
94
|
+
|
|
95
|
+
# Node.js
|
|
96
|
+
log_tool "Node.js: $(node --version 2>/dev/null || echo 'not installed')"
|
|
97
|
+
|
|
98
|
+
# Rust
|
|
99
|
+
log_tool "Rust: $(rustc --version 2>/dev/null || echo 'not installed')"
|
|
100
|
+
log_tool "Cargo: $(cargo --version 2>/dev/null || echo 'not installed')"
|
|
101
|
+
|
|
102
|
+
# Testing frameworks
|
|
103
|
+
log_tool "Vitest: $(vitest --version 2>/dev/null || echo 'not installed')"
|
|
104
|
+
log_tool "Playwright: $(playwright --version 2>/dev/null || echo 'not installed')"
|
|
105
|
+
|
|
106
|
+
# Performance tools
|
|
107
|
+
log_tool "k6: $(k6 version 2>/dev/null | head -1 || echo 'not installed')"
|
|
108
|
+
log_tool "Lighthouse: $(lighthouse --version 2>/dev/null || echo 'not installed')"
|
|
109
|
+
|
|
110
|
+
# Security tools
|
|
111
|
+
log_tool "Snyk: $(snyk --version 2>/dev/null || echo 'not installed')"
|
|
112
|
+
|
|
113
|
+
# Code quality
|
|
114
|
+
log_tool "ESLint: $(eslint --version 2>/dev/null || echo 'not installed')"
|
|
115
|
+
log_tool "Prettier: $(prettier --version 2>/dev/null || echo 'not installed')"
|
|
116
|
+
|
|
117
|
+
# Database
|
|
118
|
+
log_tool "Prisma: $(prisma --version 2>/dev/null || echo 'not installed')"
|
|
119
|
+
|
|
120
|
+
# Accessibility
|
|
121
|
+
log_tool "Pa11y: $(pa11y --version 2>/dev/null || echo 'not installed')"
|
|
122
|
+
|
|
123
|
+
# TypeScript
|
|
124
|
+
log_tool "TypeScript: $(tsc --version 2>/dev/null || echo 'not installed')"
|
|
125
|
+
|
|
126
|
+
echo ""
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
# ============================================================================
|
|
130
|
+
# AVAILABLE COMMANDS HELP
|
|
131
|
+
# ============================================================================
|
|
132
|
+
show_help() {
|
|
133
|
+
cat << EOF
|
|
134
|
+
${CYAN}Daemon v0.7.0 - Available Commands${NC}
|
|
135
|
+
|
|
136
|
+
${YELLOW}Testing Commands:${NC}
|
|
137
|
+
vitest Run Vitest unit tests
|
|
138
|
+
playwright Run Playwright E2E tests
|
|
139
|
+
k6 run <script> Run k6 performance test
|
|
140
|
+
lighthouse <url> Run Lighthouse audit
|
|
141
|
+
|
|
142
|
+
${YELLOW}Code Quality:${NC}
|
|
143
|
+
eslint <files> Run ESLint
|
|
144
|
+
prettier <files> Run Prettier
|
|
145
|
+
rustfmt <files> Format Rust code
|
|
146
|
+
clippy Run Rust linter
|
|
147
|
+
|
|
148
|
+
${YELLOW}Security:${NC}
|
|
149
|
+
snyk test Run Snyk security scan
|
|
150
|
+
npm audit Audit npm dependencies
|
|
151
|
+
cargo audit Audit Rust dependencies
|
|
152
|
+
|
|
153
|
+
${YELLOW}Accessibility:${NC}
|
|
154
|
+
pa11y <url> Run accessibility test
|
|
155
|
+
axe <url> Run axe-core test
|
|
156
|
+
|
|
157
|
+
${YELLOW}Database:${NC}
|
|
158
|
+
prisma <command> Run Prisma CLI
|
|
159
|
+
|
|
160
|
+
${YELLOW}Utilities:${NC}
|
|
161
|
+
versions Show all tool versions
|
|
162
|
+
help Show this help message
|
|
163
|
+
shell Start bash shell
|
|
164
|
+
|
|
165
|
+
${YELLOW}Examples:${NC}
|
|
166
|
+
vitest run --coverage
|
|
167
|
+
playwright test --project=chromium
|
|
168
|
+
k6 run performance/test.js
|
|
169
|
+
lighthouse https://example.com --output html
|
|
170
|
+
snyk test --json
|
|
171
|
+
|
|
172
|
+
EOF
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
# ============================================================================
|
|
176
|
+
# CLEANUP FUNCTION
|
|
177
|
+
# ============================================================================
|
|
178
|
+
cleanup() {
|
|
179
|
+
log_info "Cleaning up before exit..."
|
|
180
|
+
|
|
181
|
+
# Remove temporary files
|
|
182
|
+
rm -rf /app/temp/*
|
|
183
|
+
|
|
184
|
+
# Clean npm cache
|
|
185
|
+
npm cache clean --force 2>/dev/null || true
|
|
186
|
+
|
|
187
|
+
log_success "Cleanup complete"
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
# ============================================================================
|
|
191
|
+
# SIGNAL HANDLERS
|
|
192
|
+
# ============================================================================
|
|
193
|
+
trap cleanup EXIT INT TERM
|
|
194
|
+
|
|
195
|
+
# ============================================================================
|
|
196
|
+
# COMMAND ROUTING
|
|
197
|
+
# ============================================================================
|
|
198
|
+
route_command() {
|
|
199
|
+
local cmd="$1"
|
|
200
|
+
|
|
201
|
+
case "${cmd}" in
|
|
202
|
+
versions|--version|-v)
|
|
203
|
+
show_versions
|
|
204
|
+
exit 0
|
|
205
|
+
;;
|
|
206
|
+
help|--help|-h)
|
|
207
|
+
show_help
|
|
208
|
+
exit 0
|
|
209
|
+
;;
|
|
210
|
+
shell)
|
|
211
|
+
exec /bin/bash
|
|
212
|
+
;;
|
|
213
|
+
vitest)
|
|
214
|
+
shift
|
|
215
|
+
exec vitest "$@"
|
|
216
|
+
;;
|
|
217
|
+
playwright)
|
|
218
|
+
shift
|
|
219
|
+
exec playwright "$@"
|
|
220
|
+
;;
|
|
221
|
+
eslint)
|
|
222
|
+
shift
|
|
223
|
+
exec eslint "$@"
|
|
224
|
+
;;
|
|
225
|
+
prettier)
|
|
226
|
+
shift
|
|
227
|
+
exec prettier "$@"
|
|
228
|
+
;;
|
|
229
|
+
k6)
|
|
230
|
+
shift
|
|
231
|
+
exec k6 "$@"
|
|
232
|
+
;;
|
|
233
|
+
lighthouse)
|
|
234
|
+
shift
|
|
235
|
+
exec lighthouse "$@"
|
|
236
|
+
;;
|
|
237
|
+
snyk)
|
|
238
|
+
shift
|
|
239
|
+
exec snyk "$@"
|
|
240
|
+
;;
|
|
241
|
+
pa11y)
|
|
242
|
+
shift
|
|
243
|
+
exec pa11y "$@"
|
|
244
|
+
;;
|
|
245
|
+
prisma)
|
|
246
|
+
shift
|
|
247
|
+
exec prisma "$@"
|
|
248
|
+
;;
|
|
249
|
+
cargo)
|
|
250
|
+
shift
|
|
251
|
+
exec cargo "$@"
|
|
252
|
+
;;
|
|
253
|
+
rustc)
|
|
254
|
+
shift
|
|
255
|
+
exec rustc "$@"
|
|
256
|
+
;;
|
|
257
|
+
"")
|
|
258
|
+
# No command specified, keep container alive
|
|
259
|
+
log_info "No command specified. Container running..."
|
|
260
|
+
log_info "Use 'docker exec -it <container> help' for available commands"
|
|
261
|
+
exec sleep infinity
|
|
262
|
+
;;
|
|
263
|
+
*)
|
|
264
|
+
# Pass through unknown commands
|
|
265
|
+
log_info "Executing: $@"
|
|
266
|
+
exec "$@"
|
|
267
|
+
;;
|
|
268
|
+
esac
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
# ============================================================================
|
|
272
|
+
# MAIN ENTRYPOINT
|
|
273
|
+
# ============================================================================
|
|
274
|
+
main() {
|
|
275
|
+
print_banner
|
|
276
|
+
setup_environment
|
|
277
|
+
|
|
278
|
+
# If no arguments, show versions and keep alive
|
|
279
|
+
if [ $# -eq 0 ]; then
|
|
280
|
+
echo ""
|
|
281
|
+
show_versions
|
|
282
|
+
echo ""
|
|
283
|
+
log_info "Container ready. Use 'docker exec -it <container> <command>' to run commands"
|
|
284
|
+
echo ""
|
|
285
|
+
exec sleep infinity
|
|
286
|
+
fi
|
|
287
|
+
|
|
288
|
+
# Route the command
|
|
289
|
+
route_command "$@"
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
# Run main function
|
|
293
|
+
main "$@"
|
package/dist/cli/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AACA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAcH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8D;;IAcvF;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0DxC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAyChB;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GAAG,UAAU;CAQf"}
|
package/dist/cli/cli.js
CHANGED
|
@@ -8,6 +8,11 @@ import { createLogger } from '../shared/utils/logger.js';
|
|
|
8
8
|
import { InitCommand } from './commands/init.command.js';
|
|
9
9
|
import { DetectCommand } from './commands/detect.command.js';
|
|
10
10
|
import { TestCommand } from './commands/test.command.js';
|
|
11
|
+
import { ScoreCommand } from './commands/score.command.js';
|
|
12
|
+
import { ReviewCommand } from './commands/review.command.js';
|
|
13
|
+
import { OptimizeCommand } from './commands/optimize.command.js';
|
|
14
|
+
import { ReportCommand } from './commands/report.command.js';
|
|
15
|
+
import { HistoryCommand } from './commands/history.command.js';
|
|
11
16
|
const logger = createLogger('DaemonCli');
|
|
12
17
|
/**
|
|
13
18
|
* Main CLI class for Daemon
|
|
@@ -21,6 +26,11 @@ export class DaemonCli {
|
|
|
21
26
|
this.commands.set('init', new InitCommand());
|
|
22
27
|
this.commands.set('detect', new DetectCommand());
|
|
23
28
|
this.commands.set('test', new TestCommand());
|
|
29
|
+
this.commands.set('score', new ScoreCommand());
|
|
30
|
+
this.commands.set('review', new ReviewCommand());
|
|
31
|
+
this.commands.set('optimize', new OptimizeCommand());
|
|
32
|
+
this.commands.set('report', new ReportCommand());
|
|
33
|
+
this.commands.set('history', new HistoryCommand());
|
|
24
34
|
}
|
|
25
35
|
/**
|
|
26
36
|
* Run the CLI with provided arguments
|
|
@@ -58,7 +68,7 @@ export class DaemonCli {
|
|
|
58
68
|
return;
|
|
59
69
|
}
|
|
60
70
|
if (args[0] === '--version') {
|
|
61
|
-
console.log('v0.
|
|
71
|
+
console.log('v0.7.0');
|
|
62
72
|
return;
|
|
63
73
|
}
|
|
64
74
|
const commandName = args[0] ?? '';
|
|
@@ -82,7 +92,7 @@ export class DaemonCli {
|
|
|
82
92
|
*/
|
|
83
93
|
showHelp() {
|
|
84
94
|
console.log(`
|
|
85
|
-
Daemon v0.
|
|
95
|
+
Daemon v0.7.0 - AI-powered code quality toolkit
|
|
86
96
|
|
|
87
97
|
USAGE:
|
|
88
98
|
daemon <command> [options]
|
|
@@ -91,6 +101,11 @@ COMMANDS:
|
|
|
91
101
|
init Initialize project with Daemon (creates EXECUTE.md + Dockerfile.daemon)
|
|
92
102
|
detect Detect project framework and tools
|
|
93
103
|
test Generate and run tests
|
|
104
|
+
score Show quality scores across dimensions (test, security, performance, etc.)
|
|
105
|
+
review Perform comprehensive code review
|
|
106
|
+
optimize Analyze and apply code optimizations
|
|
107
|
+
report Generate quality reports (HTML, Markdown, JSON, JUnit)
|
|
108
|
+
history View score history and trends
|
|
94
109
|
|
|
95
110
|
OPTIONS:
|
|
96
111
|
--help, -h Show this help message
|
|
@@ -100,6 +115,11 @@ EXAMPLES:
|
|
|
100
115
|
daemon init
|
|
101
116
|
daemon detect
|
|
102
117
|
daemon test --coverage
|
|
118
|
+
daemon score --dim all
|
|
119
|
+
daemon review --fix --auto
|
|
120
|
+
daemon optimize --perf --apply
|
|
121
|
+
daemon report --format=html --output=report.html
|
|
122
|
+
daemon history --limit=20 --compare
|
|
103
123
|
|
|
104
124
|
GETTING STARTED:
|
|
105
125
|
1. Run "daemon init" to initialize your project
|
package/dist/cli/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Types
|
|
3
|
+
*
|
|
4
|
+
* Shared types for CLI commands.
|
|
5
|
+
*
|
|
6
|
+
* @module cli/commands/command.types
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Dimension type for scoring and analysis
|
|
10
|
+
*/
|
|
11
|
+
export type Dimension = 'test' | 'security' | 'performance' | 'reliability' | 'maintainability' | 'coverage';
|
|
12
|
+
/**
|
|
13
|
+
* Output format for commands
|
|
14
|
+
*/
|
|
15
|
+
export type OutputFormat = 'text' | 'json' | 'html' | 'markdown' | 'junit';
|
|
16
|
+
/**
|
|
17
|
+
* Base command options
|
|
18
|
+
*/
|
|
19
|
+
export interface BaseCommandOptions {
|
|
20
|
+
/** Verbose output */
|
|
21
|
+
verbose?: boolean;
|
|
22
|
+
/** Silent mode (minimal output) */
|
|
23
|
+
silent?: boolean;
|
|
24
|
+
/** JSON output */
|
|
25
|
+
json?: boolean;
|
|
26
|
+
/** Output format */
|
|
27
|
+
format?: OutputFormat;
|
|
28
|
+
/** Project directory (defaults to cwd) */
|
|
29
|
+
projectDir?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Score command options
|
|
33
|
+
*/
|
|
34
|
+
export interface ScoreOptions extends BaseCommandOptions {
|
|
35
|
+
/** Specific dimension(s) to show */
|
|
36
|
+
dim?: Dimension | Dimension[];
|
|
37
|
+
/** Show trend/history */
|
|
38
|
+
trend?: boolean;
|
|
39
|
+
/** Number of historical points to show */
|
|
40
|
+
historyPoints?: number;
|
|
41
|
+
/** Compare with previous score */
|
|
42
|
+
compare?: boolean;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Review command options
|
|
46
|
+
*/
|
|
47
|
+
export interface ReviewOptions extends BaseCommandOptions {
|
|
48
|
+
/** Apply auto-fixes for issues found */
|
|
49
|
+
fix?: boolean;
|
|
50
|
+
/** Non-interactive mode (auto-confirm) */
|
|
51
|
+
auto?: boolean;
|
|
52
|
+
/** Report format */
|
|
53
|
+
output?: OutputFormat;
|
|
54
|
+
/** Specific dimension(s) to review */
|
|
55
|
+
dim?: Dimension | Dimension[];
|
|
56
|
+
/** Severity threshold */
|
|
57
|
+
severity?: 'low' | 'medium' | 'high' | 'critical';
|
|
58
|
+
/** Output file path */
|
|
59
|
+
outputFile?: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Optimize command options
|
|
63
|
+
*/
|
|
64
|
+
export interface OptimizeOptions extends BaseCommandOptions {
|
|
65
|
+
/** Performance optimizations only */
|
|
66
|
+
perf?: boolean;
|
|
67
|
+
/** Bug fixes only */
|
|
68
|
+
bugs?: boolean;
|
|
69
|
+
/** Security fixes only */
|
|
70
|
+
security?: boolean;
|
|
71
|
+
/** Apply optimizations (dry-run if false) */
|
|
72
|
+
apply?: boolean;
|
|
73
|
+
/** Show what would be done without applying */
|
|
74
|
+
dryRun?: boolean;
|
|
75
|
+
/** Maximum number of optimizations to apply */
|
|
76
|
+
maxChanges?: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Command execution result
|
|
80
|
+
*/
|
|
81
|
+
export interface CommandResult {
|
|
82
|
+
/** Exit code (0 = success) */
|
|
83
|
+
exitCode: number;
|
|
84
|
+
/** Result message */
|
|
85
|
+
message?: string;
|
|
86
|
+
/** Additional data */
|
|
87
|
+
data?: unknown;
|
|
88
|
+
/** Error if any */
|
|
89
|
+
error?: Error;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Progress callback for long-running operations
|
|
93
|
+
*/
|
|
94
|
+
export interface ProgressCallbacks {
|
|
95
|
+
/** Called when operation starts */
|
|
96
|
+
onStart?: (message: string) => void;
|
|
97
|
+
/** Called with progress update (0-100) */
|
|
98
|
+
onProgress?: (percent: number, message?: string) => void;
|
|
99
|
+
/** Called when operation completes */
|
|
100
|
+
onComplete?: (message: string) => void;
|
|
101
|
+
/** Called when operation fails */
|
|
102
|
+
onError?: (error: Error) => void;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Score breakdown by dimension
|
|
106
|
+
*/
|
|
107
|
+
export interface ScoreBreakdown {
|
|
108
|
+
/** Dimension name */
|
|
109
|
+
dimension: Dimension;
|
|
110
|
+
/** Score (0-100) */
|
|
111
|
+
score: number;
|
|
112
|
+
/** Weight in overall score */
|
|
113
|
+
weight: number;
|
|
114
|
+
/** Status */
|
|
115
|
+
status: 'excellent' | 'good' | 'fair' | 'poor' | 'critical';
|
|
116
|
+
/** Issues found */
|
|
117
|
+
issues: number;
|
|
118
|
+
/** Recommendations */
|
|
119
|
+
recommendations: number;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Trend data point
|
|
123
|
+
*/
|
|
124
|
+
export interface TrendDataPoint {
|
|
125
|
+
/** Timestamp */
|
|
126
|
+
timestamp: Date;
|
|
127
|
+
/** Overall score */
|
|
128
|
+
score: number;
|
|
129
|
+
/** Breakdown by dimension */
|
|
130
|
+
breakdown: Record<string, number>;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Dimension parser helper
|
|
134
|
+
*/
|
|
135
|
+
export declare class DimensionParser {
|
|
136
|
+
private static readonly ALL_DIMENSIONS;
|
|
137
|
+
private static readonly VALID_DIMENSIONS;
|
|
138
|
+
/**
|
|
139
|
+
* Parse dimension argument(s) into array
|
|
140
|
+
*/
|
|
141
|
+
static parse(dimInput?: string | string[]): Dimension[];
|
|
142
|
+
/**
|
|
143
|
+
* Validate a dimension string
|
|
144
|
+
*/
|
|
145
|
+
static validate(dim: string): Dimension;
|
|
146
|
+
/**
|
|
147
|
+
* Get all available dimensions
|
|
148
|
+
*/
|
|
149
|
+
static getAll(): Dimension[];
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Report command options
|
|
153
|
+
*/
|
|
154
|
+
export interface ReportOptions extends BaseCommandOptions {
|
|
155
|
+
/** Report format */
|
|
156
|
+
format?: 'html' | 'markdown' | 'json' | 'junit' | 'text';
|
|
157
|
+
/** Output file path */
|
|
158
|
+
output?: string;
|
|
159
|
+
/** Include trend data */
|
|
160
|
+
includeTrend?: boolean;
|
|
161
|
+
/** Include charts in HTML */
|
|
162
|
+
includeCharts?: boolean;
|
|
163
|
+
/** Theme for HTML report */
|
|
164
|
+
theme?: 'light' | 'dark' | 'auto';
|
|
165
|
+
/** Open report after generation */
|
|
166
|
+
open?: boolean;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* History command options
|
|
170
|
+
*/
|
|
171
|
+
export interface HistoryOptions extends BaseCommandOptions {
|
|
172
|
+
/** Maximum number of entries to show */
|
|
173
|
+
limit?: number;
|
|
174
|
+
/** Clear all history */
|
|
175
|
+
clear?: boolean;
|
|
176
|
+
/** Prune old entries */
|
|
177
|
+
prune?: boolean;
|
|
178
|
+
/** Compare with previous entry */
|
|
179
|
+
compare?: boolean;
|
|
180
|
+
/** Focus on specific dimension */
|
|
181
|
+
dimension?: string;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Init command options
|
|
185
|
+
*/
|
|
186
|
+
export interface InitOptions extends BaseCommandOptions {
|
|
187
|
+
/** Force overwrite existing files */
|
|
188
|
+
force?: boolean;
|
|
189
|
+
/** Skip Dockerfile creation */
|
|
190
|
+
skipDocker?: boolean;
|
|
191
|
+
/** Custom test directory */
|
|
192
|
+
testDir?: string;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Detect command options
|
|
196
|
+
*/
|
|
197
|
+
export interface DetectOptions extends BaseCommandOptions {
|
|
198
|
+
/** Show detailed output */
|
|
199
|
+
detailed?: boolean;
|
|
200
|
+
/** JSON output */
|
|
201
|
+
json?: boolean;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Test command options
|
|
205
|
+
*/
|
|
206
|
+
export interface TestOptions extends BaseCommandOptions {
|
|
207
|
+
/** Run with coverage */
|
|
208
|
+
coverage?: boolean;
|
|
209
|
+
/** Watch mode */
|
|
210
|
+
watch?: boolean;
|
|
211
|
+
/** Specific test file/pattern */
|
|
212
|
+
pattern?: string;
|
|
213
|
+
/** Test runner to use */
|
|
214
|
+
runner?: 'vitest' | 'jest' | 'mocha' | 'pytest';
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=command.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.types.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/command.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Types
|
|
3
|
+
*
|
|
4
|
+
* Shared types for CLI commands.
|
|
5
|
+
*
|
|
6
|
+
* @module cli/commands/command.types
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Dimension parser helper
|
|
10
|
+
*/
|
|
11
|
+
export class DimensionParser {
|
|
12
|
+
static ALL_DIMENSIONS = [
|
|
13
|
+
'test',
|
|
14
|
+
'security',
|
|
15
|
+
'performance',
|
|
16
|
+
'reliability',
|
|
17
|
+
'maintainability',
|
|
18
|
+
'coverage',
|
|
19
|
+
];
|
|
20
|
+
// Explicit string array for 'all' validation
|
|
21
|
+
static VALID_DIMENSIONS = [
|
|
22
|
+
'test',
|
|
23
|
+
'security',
|
|
24
|
+
'performance',
|
|
25
|
+
'reliability',
|
|
26
|
+
'maintainability',
|
|
27
|
+
'coverage',
|
|
28
|
+
'all',
|
|
29
|
+
];
|
|
30
|
+
/**
|
|
31
|
+
* Parse dimension argument(s) into array
|
|
32
|
+
*/
|
|
33
|
+
static parse(dimInput) {
|
|
34
|
+
if (!dimInput) {
|
|
35
|
+
return [...this.ALL_DIMENSIONS];
|
|
36
|
+
}
|
|
37
|
+
if (typeof dimInput === 'string') {
|
|
38
|
+
if (dimInput === 'all') {
|
|
39
|
+
return [...this.ALL_DIMENSIONS];
|
|
40
|
+
}
|
|
41
|
+
return dimInput.split(',').map((d) => this.validate(d.trim()));
|
|
42
|
+
}
|
|
43
|
+
return dimInput.map((d) => (typeof d === 'string' ? this.validate(d) : d));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Validate a dimension string
|
|
47
|
+
*/
|
|
48
|
+
static validate(dim) {
|
|
49
|
+
if (this.VALID_DIMENSIONS.includes(dim)) {
|
|
50
|
+
if (dim === 'all') {
|
|
51
|
+
throw new Error(`Use 'all' as a standalone value, not as a dimension`);
|
|
52
|
+
}
|
|
53
|
+
return dim;
|
|
54
|
+
}
|
|
55
|
+
throw new Error(`Invalid dimension: ${dim}. Valid: ${this.VALID_DIMENSIONS.filter(d => d !== 'all').join(', ')}`);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get all available dimensions
|
|
59
|
+
*/
|
|
60
|
+
static getAll() {
|
|
61
|
+
return [...this.ALL_DIMENSIONS];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=command.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.types.js","sourceRoot":"","sources":["../../../src/cli/commands/command.types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8IH;;GAEG;AACH,MAAM,OAAO,eAAe;IAClB,MAAM,CAAU,cAAc,GAAgB;QACpD,MAAM;QACN,UAAU;QACV,aAAa;QACb,aAAa;QACb,iBAAiB;QACjB,UAAU;KACF,CAAC;IAEX,6CAA6C;IACrC,MAAM,CAAU,gBAAgB,GAAG;QACzC,MAAM;QACN,UAAU;QACV,aAAa;QACb,aAAa;QACb,iBAAiB;QACjB,UAAU;QACV,KAAK;KACG,CAAC;IAEX;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,QAA4B;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAU,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,GAAgB,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,YAAY,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC"}
|