xray-manager 1.8.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +102 -42
- package/dist/cli.mjs +8587 -0
- package/dist/cli.mjs.map +7 -0
- package/package.json +13 -5
- package/dist/cli.d.ts +0 -11
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -134
- package/dist/cli.js.map +0 -1
- package/dist/commands/clash.d.ts +0 -20
- package/dist/commands/clash.d.ts.map +0 -1
- package/dist/commands/clash.js +0 -156
- package/dist/commands/clash.js.map +0 -1
- package/dist/commands/config.d.ts +0 -56
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -461
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/interactive.d.ts +0 -55
- package/dist/commands/interactive.d.ts.map +0 -1
- package/dist/commands/interactive.js +0 -418
- package/dist/commands/interactive.js.map +0 -1
- package/dist/commands/logs.d.ts +0 -62
- package/dist/commands/logs.d.ts.map +0 -1
- package/dist/commands/logs.js +0 -389
- package/dist/commands/logs.js.map +0 -1
- package/dist/commands/quota.d.ts +0 -54
- package/dist/commands/quota.d.ts.map +0 -1
- package/dist/commands/quota.js +0 -661
- package/dist/commands/quota.js.map +0 -1
- package/dist/commands/review.d.ts +0 -8
- package/dist/commands/review.d.ts.map +0 -1
- package/dist/commands/review.js +0 -79
- package/dist/commands/review.js.map +0 -1
- package/dist/commands/service.d.ts +0 -43
- package/dist/commands/service.d.ts.map +0 -1
- package/dist/commands/service.js +0 -202
- package/dist/commands/service.js.map +0 -1
- package/dist/commands/user.d.ts +0 -49
- package/dist/commands/user.d.ts.map +0 -1
- package/dist/commands/user.js +0 -371
- package/dist/commands/user.js.map +0 -1
- package/dist/components/dashboard-widget.d.ts +0 -21
- package/dist/components/dashboard-widget.d.ts.map +0 -1
- package/dist/components/dashboard-widget.js +0 -234
- package/dist/components/dashboard-widget.js.map +0 -1
- package/dist/components/progress-bar.d.ts +0 -67
- package/dist/components/progress-bar.d.ts.map +0 -1
- package/dist/components/progress-bar.js +0 -138
- package/dist/components/progress-bar.js.map +0 -1
- package/dist/components/user-table.d.ts +0 -8
- package/dist/components/user-table.d.ts.map +0 -1
- package/dist/components/user-table.js +0 -91
- package/dist/components/user-table.js.map +0 -1
- package/dist/config/i18n.d.ts +0 -136
- package/dist/config/i18n.d.ts.map +0 -1
- package/dist/config/i18n.js +0 -323
- package/dist/config/i18n.js.map +0 -1
- package/dist/constants/error-codes.d.ts +0 -344
- package/dist/constants/error-codes.d.ts.map +0 -1
- package/dist/constants/error-codes.js +0 -462
- package/dist/constants/error-codes.js.map +0 -1
- package/dist/constants/exit-codes.d.ts +0 -49
- package/dist/constants/exit-codes.d.ts.map +0 -1
- package/dist/constants/exit-codes.js +0 -100
- package/dist/constants/exit-codes.js.map +0 -1
- package/dist/constants/paths.d.ts +0 -63
- package/dist/constants/paths.d.ts.map +0 -1
- package/dist/constants/paths.js +0 -78
- package/dist/constants/paths.js.map +0 -1
- package/dist/constants/quota.d.ts +0 -126
- package/dist/constants/quota.d.ts.map +0 -1
- package/dist/constants/quota.js +0 -135
- package/dist/constants/quota.js.map +0 -1
- package/dist/constants/review.d.ts +0 -14
- package/dist/constants/review.d.ts.map +0 -1
- package/dist/constants/review.js +0 -33
- package/dist/constants/review.js.map +0 -1
- package/dist/constants/supported-distros.d.ts +0 -17
- package/dist/constants/supported-distros.d.ts.map +0 -1
- package/dist/constants/supported-distros.js +0 -68
- package/dist/constants/supported-distros.js.map +0 -1
- package/dist/constants/theme.d.ts +0 -34
- package/dist/constants/theme.d.ts.map +0 -1
- package/dist/constants/theme.js +0 -52
- package/dist/constants/theme.js.map +0 -1
- package/dist/constants/timeouts.d.ts +0 -84
- package/dist/constants/timeouts.d.ts.map +0 -1
- package/dist/constants/timeouts.js +0 -111
- package/dist/constants/timeouts.js.map +0 -1
- package/dist/constants/ui-symbols.d.ts +0 -47
- package/dist/constants/ui-symbols.d.ts.map +0 -1
- package/dist/constants/ui-symbols.js +0 -48
- package/dist/constants/ui-symbols.js.map +0 -1
- package/dist/services/clash-config.d.ts +0 -16
- package/dist/services/clash-config.d.ts.map +0 -1
- package/dist/services/clash-config.js +0 -107
- package/dist/services/clash-config.js.map +0 -1
- package/dist/services/config-manager.d.ts +0 -90
- package/dist/services/config-manager.d.ts.map +0 -1
- package/dist/services/config-manager.js +0 -307
- package/dist/services/config-manager.js.map +0 -1
- package/dist/services/layout-manager.d.ts +0 -94
- package/dist/services/layout-manager.d.ts.map +0 -1
- package/dist/services/layout-manager.js +0 -192
- package/dist/services/layout-manager.js.map +0 -1
- package/dist/services/log-manager.d.ts +0 -157
- package/dist/services/log-manager.d.ts.map +0 -1
- package/dist/services/log-manager.js +0 -397
- package/dist/services/log-manager.js.map +0 -1
- package/dist/services/navigation-manager.d.ts +0 -23
- package/dist/services/navigation-manager.d.ts.map +0 -1
- package/dist/services/navigation-manager.js +0 -39
- package/dist/services/navigation-manager.js.map +0 -1
- package/dist/services/platform-detector.d.ts +0 -10
- package/dist/services/platform-detector.d.ts.map +0 -1
- package/dist/services/platform-detector.js +0 -106
- package/dist/services/platform-detector.js.map +0 -1
- package/dist/services/public-ip-manager.d.ts +0 -78
- package/dist/services/public-ip-manager.d.ts.map +0 -1
- package/dist/services/public-ip-manager.js +0 -296
- package/dist/services/public-ip-manager.js.map +0 -1
- package/dist/services/quota-enforcer.d.ts +0 -86
- package/dist/services/quota-enforcer.d.ts.map +0 -1
- package/dist/services/quota-enforcer.js +0 -151
- package/dist/services/quota-enforcer.js.map +0 -1
- package/dist/services/quota-manager.d.ts +0 -101
- package/dist/services/quota-manager.d.ts.map +0 -1
- package/dist/services/quota-manager.js +0 -257
- package/dist/services/quota-manager.js.map +0 -1
- package/dist/services/review/areas/community.d.ts +0 -9
- package/dist/services/review/areas/community.d.ts.map +0 -1
- package/dist/services/review/areas/community.js +0 -59
- package/dist/services/review/areas/community.js.map +0 -1
- package/dist/services/review/areas/contribution.d.ts +0 -9
- package/dist/services/review/areas/contribution.d.ts.map +0 -1
- package/dist/services/review/areas/contribution.js +0 -107
- package/dist/services/review/areas/contribution.js.map +0 -1
- package/dist/services/review/areas/documentation.d.ts +0 -9
- package/dist/services/review/areas/documentation.d.ts.map +0 -1
- package/dist/services/review/areas/documentation.js +0 -110
- package/dist/services/review/areas/documentation.js.map +0 -1
- package/dist/services/review/areas/license.d.ts +0 -9
- package/dist/services/review/areas/license.d.ts.map +0 -1
- package/dist/services/review/areas/license.js +0 -86
- package/dist/services/review/areas/license.js.map +0 -1
- package/dist/services/review/areas/quality.d.ts +0 -9
- package/dist/services/review/areas/quality.d.ts.map +0 -1
- package/dist/services/review/areas/quality.js +0 -84
- package/dist/services/review/areas/quality.js.map +0 -1
- package/dist/services/review/areas/security.d.ts +0 -9
- package/dist/services/review/areas/security.d.ts.map +0 -1
- package/dist/services/review/areas/security.js +0 -64
- package/dist/services/review/areas/security.js.map +0 -1
- package/dist/services/review/evidence.d.ts +0 -10
- package/dist/services/review/evidence.d.ts.map +0 -1
- package/dist/services/review/evidence.js +0 -40
- package/dist/services/review/evidence.js.map +0 -1
- package/dist/services/review/recommendations-filter.d.ts +0 -12
- package/dist/services/review/recommendations-filter.d.ts.map +0 -1
- package/dist/services/review/recommendations-filter.js +0 -20
- package/dist/services/review/recommendations-filter.js.map +0 -1
- package/dist/services/review/repo-scanner.d.ts +0 -8
- package/dist/services/review/repo-scanner.d.ts.map +0 -1
- package/dist/services/review/repo-scanner.js +0 -15
- package/dist/services/review/repo-scanner.js.map +0 -1
- package/dist/services/review/report-renderer.d.ts +0 -15
- package/dist/services/review/report-renderer.d.ts.map +0 -1
- package/dist/services/review/report-renderer.js +0 -120
- package/dist/services/review/report-renderer.js.map +0 -1
- package/dist/services/review/review-engine.d.ts +0 -15
- package/dist/services/review/review-engine.d.ts.map +0 -1
- package/dist/services/review/review-engine.js +0 -61
- package/dist/services/review/review-engine.js.map +0 -1
- package/dist/services/review/summary-builder.d.ts +0 -8
- package/dist/services/review/summary-builder.d.ts.map +0 -1
- package/dist/services/review/summary-builder.js +0 -26
- package/dist/services/review/summary-builder.js.map +0 -1
- package/dist/services/screen-manager.d.ts +0 -13
- package/dist/services/screen-manager.d.ts.map +0 -1
- package/dist/services/screen-manager.js +0 -42
- package/dist/services/screen-manager.js.map +0 -1
- package/dist/services/stats-config-manager.d.ts +0 -110
- package/dist/services/stats-config-manager.d.ts.map +0 -1
- package/dist/services/stats-config-manager.js +0 -443
- package/dist/services/stats-config-manager.js.map +0 -1
- package/dist/services/systemd-manager.d.ts +0 -197
- package/dist/services/systemd-manager.d.ts.map +0 -1
- package/dist/services/systemd-manager.js +0 -458
- package/dist/services/systemd-manager.js.map +0 -1
- package/dist/services/traffic-manager.d.ts +0 -106
- package/dist/services/traffic-manager.d.ts.map +0 -1
- package/dist/services/traffic-manager.js +0 -368
- package/dist/services/traffic-manager.js.map +0 -1
- package/dist/services/user-manager.d.ts +0 -90
- package/dist/services/user-manager.d.ts.map +0 -1
- package/dist/services/user-manager.js +0 -347
- package/dist/services/user-manager.js.map +0 -1
- package/dist/services/user-metadata-manager.d.ts +0 -85
- package/dist/services/user-metadata-manager.d.ts.map +0 -1
- package/dist/services/user-metadata-manager.js +0 -181
- package/dist/services/user-metadata-manager.js.map +0 -1
- package/dist/types/config.d.ts +0 -340
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/config.js +0 -7
- package/dist/types/config.js.map +0 -1
- package/dist/types/layout.d.ts +0 -119
- package/dist/types/layout.d.ts.map +0 -1
- package/dist/types/layout.js +0 -142
- package/dist/types/layout.js.map +0 -1
- package/dist/types/platform.d.ts +0 -72
- package/dist/types/platform.d.ts.map +0 -1
- package/dist/types/platform.js +0 -38
- package/dist/types/platform.js.map +0 -1
- package/dist/types/quota.d.ts +0 -158
- package/dist/types/quota.d.ts.map +0 -1
- package/dist/types/quota.js +0 -26
- package/dist/types/quota.js.map +0 -1
- package/dist/types/review.d.ts +0 -62
- package/dist/types/review.d.ts.map +0 -1
- package/dist/types/review.js +0 -8
- package/dist/types/review.js.map +0 -1
- package/dist/types/server-config.d.ts +0 -53
- package/dist/types/server-config.d.ts.map +0 -1
- package/dist/types/server-config.js +0 -19
- package/dist/types/server-config.js.map +0 -1
- package/dist/types/service.d.ts +0 -96
- package/dist/types/service.d.ts.map +0 -1
- package/dist/types/service.js +0 -7
- package/dist/types/service.js.map +0 -1
- package/dist/types/terminal.d.ts +0 -35
- package/dist/types/terminal.d.ts.map +0 -1
- package/dist/types/terminal.js +0 -20
- package/dist/types/terminal.js.map +0 -1
- package/dist/types/ui-components.d.ts +0 -53
- package/dist/types/ui-components.d.ts.map +0 -1
- package/dist/types/ui-components.js +0 -3
- package/dist/types/ui-components.js.map +0 -1
- package/dist/types/user-metadata.d.ts +0 -43
- package/dist/types/user-metadata.d.ts.map +0 -1
- package/dist/types/user-metadata.js +0 -17
- package/dist/types/user-metadata.js.map +0 -1
- package/dist/types/user.d.ts +0 -134
- package/dist/types/user.d.ts.map +0 -1
- package/dist/types/user.js +0 -7
- package/dist/types/user.js.map +0 -1
- package/dist/utils/clipboard.d.ts +0 -21
- package/dist/utils/clipboard.d.ts.map +0 -1
- package/dist/utils/clipboard.js +0 -45
- package/dist/utils/clipboard.js.map +0 -1
- package/dist/utils/error-formatter.d.ts +0 -60
- package/dist/utils/error-formatter.d.ts.map +0 -1
- package/dist/utils/error-formatter.js +0 -244
- package/dist/utils/error-formatter.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -92
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -143
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/firewall.d.ts +0 -14
- package/dist/utils/firewall.d.ts.map +0 -1
- package/dist/utils/firewall.js +0 -78
- package/dist/utils/firewall.js.map +0 -1
- package/dist/utils/format.d.ts +0 -93
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/format.js +0 -240
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/icons.d.ts +0 -53
- package/dist/utils/icons.d.ts.map +0 -1
- package/dist/utils/icons.js +0 -143
- package/dist/utils/icons.js.map +0 -1
- package/dist/utils/layout.d.ts +0 -142
- package/dist/utils/layout.d.ts.map +0 -1
- package/dist/utils/layout.js +0 -381
- package/dist/utils/layout.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -160
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -351
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/network.d.ts +0 -39
- package/dist/utils/network.d.ts.map +0 -1
- package/dist/utils/network.js +0 -227
- package/dist/utils/network.js.map +0 -1
- package/dist/utils/os-detection.d.ts +0 -10
- package/dist/utils/os-detection.d.ts.map +0 -1
- package/dist/utils/os-detection.js +0 -86
- package/dist/utils/os-detection.js.map +0 -1
- package/dist/utils/preflight.d.ts +0 -57
- package/dist/utils/preflight.d.ts.map +0 -1
- package/dist/utils/preflight.js +0 -215
- package/dist/utils/preflight.js.map +0 -1
- package/dist/utils/repo-scan.d.ts +0 -54
- package/dist/utils/repo-scan.d.ts.map +0 -1
- package/dist/utils/repo-scan.js +0 -165
- package/dist/utils/repo-scan.js.map +0 -1
- package/dist/utils/report-output.d.ts +0 -13
- package/dist/utils/report-output.d.ts.map +0 -1
- package/dist/utils/report-output.js +0 -33
- package/dist/utils/report-output.js.map +0 -1
- package/dist/utils/review-id.d.ts +0 -8
- package/dist/utils/review-id.d.ts.map +0 -1
- package/dist/utils/review-id.js +0 -17
- package/dist/utils/review-id.js.map +0 -1
- package/dist/utils/splash.d.ts +0 -21
- package/dist/utils/splash.d.ts.map +0 -1
- package/dist/utils/splash.js +0 -179
- package/dist/utils/splash.js.map +0 -1
- package/dist/utils/terminal.d.ts +0 -32
- package/dist/utils/terminal.d.ts.map +0 -1
- package/dist/utils/terminal.js +0 -93
- package/dist/utils/terminal.js.map +0 -1
- package/dist/utils/traffic-formatter.d.ts +0 -45
- package/dist/utils/traffic-formatter.d.ts.map +0 -1
- package/dist/utils/traffic-formatter.js +0 -131
- package/dist/utils/traffic-formatter.js.map +0 -1
- package/dist/utils/validator.d.ts +0 -102
- package/dist/utils/validator.d.ts.map +0 -1
- package/dist/utils/validator.js +0 -238
- package/dist/utils/validator.js.map +0 -1
- package/dist/utils/vless-link.d.ts +0 -27
- package/dist/utils/vless-link.d.ts.map +0 -1
- package/dist/utils/vless-link.js +0 -69
- package/dist/utils/vless-link.js.map +0 -1
- package/dist/utils/which.d.ts +0 -13
- package/dist/utils/which.d.ts.map +0 -1
- package/dist/utils/which.js +0 -28
- package/dist/utils/which.js.map +0 -1
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Contribution area evaluation
|
|
4
|
-
*
|
|
5
|
-
* @module services/review/areas/contribution
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.evaluateContribution = evaluateContribution;
|
|
9
|
-
const evidence_1 = require("../evidence");
|
|
10
|
-
function evaluateContribution(scan) {
|
|
11
|
-
const findings = [];
|
|
12
|
-
const recommendations = [];
|
|
13
|
-
if (!scan.files.contributing) {
|
|
14
|
-
findings.push({
|
|
15
|
-
areaId: 'contribution',
|
|
16
|
-
title: 'CONTRIBUTING guide missing',
|
|
17
|
-
details: 'No contribution guide found for new contributors.',
|
|
18
|
-
evidence: [(0, evidence_1.missingEvidence)('CONTRIBUTING.md missing')],
|
|
19
|
-
});
|
|
20
|
-
recommendations.push({
|
|
21
|
-
areaId: 'contribution',
|
|
22
|
-
title: 'Add a contribution guide',
|
|
23
|
-
details: 'Document contribution workflow, coding standards, and review expectations.',
|
|
24
|
-
priority: 'high',
|
|
25
|
-
timeHorizon: 'quick',
|
|
26
|
-
riskIfIgnored: 'Contributors may abandon PRs due to unclear expectations.',
|
|
27
|
-
evidence: [(0, evidence_1.missingEvidence)('CONTRIBUTING.md missing')],
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
findings.push({
|
|
32
|
-
areaId: 'contribution',
|
|
33
|
-
title: 'Contribution guide present',
|
|
34
|
-
details: 'A CONTRIBUTING file exists for contributors.',
|
|
35
|
-
evidence: [(0, evidence_1.fileEvidence)(scan.repoPath, scan.files.contributing)],
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
if (!scan.files.codeOfConduct) {
|
|
39
|
-
recommendations.push({
|
|
40
|
-
areaId: 'contribution',
|
|
41
|
-
title: 'Add a code of conduct',
|
|
42
|
-
details: 'Include a CODE_OF_CONDUCT file to set community expectations.',
|
|
43
|
-
priority: 'medium',
|
|
44
|
-
timeHorizon: 'quick',
|
|
45
|
-
riskIfIgnored: 'Lack of conduct guidance can hinder community trust.',
|
|
46
|
-
evidence: [(0, evidence_1.missingEvidence)('CODE_OF_CONDUCT.md missing')],
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
findings.push({
|
|
51
|
-
areaId: 'contribution',
|
|
52
|
-
title: 'Code of conduct present',
|
|
53
|
-
details: 'A code of conduct is available for community guidelines.',
|
|
54
|
-
evidence: [(0, evidence_1.fileEvidence)(scan.repoPath, scan.files.codeOfConduct)],
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
if (!scan.directories.issueTemplates) {
|
|
58
|
-
recommendations.push({
|
|
59
|
-
areaId: 'contribution',
|
|
60
|
-
title: 'Provide issue templates',
|
|
61
|
-
details: 'Add GitHub issue templates to standardize bug reports and feature requests.',
|
|
62
|
-
priority: 'low',
|
|
63
|
-
timeHorizon: 'long-term',
|
|
64
|
-
riskIfIgnored: 'Issues may lack critical details and slow triage.',
|
|
65
|
-
evidence: [(0, evidence_1.missingEvidence)('.github/ISSUE_TEMPLATE missing')],
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
findings.push({
|
|
70
|
-
areaId: 'contribution',
|
|
71
|
-
title: 'Issue templates available',
|
|
72
|
-
details: 'Issue templates are configured in the repository.',
|
|
73
|
-
evidence: [(0, evidence_1.pathEvidence)(scan.repoPath, scan.directories.issueTemplates)],
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
if (!scan.files.pullRequestTemplate) {
|
|
77
|
-
recommendations.push({
|
|
78
|
-
areaId: 'contribution',
|
|
79
|
-
title: 'Add a pull request template',
|
|
80
|
-
details: 'Provide a PR template to guide contributors through required context and testing.',
|
|
81
|
-
priority: 'low',
|
|
82
|
-
timeHorizon: 'long-term',
|
|
83
|
-
riskIfIgnored: 'Pull requests may omit critical context or validation steps.',
|
|
84
|
-
evidence: [(0, evidence_1.missingEvidence)('Pull request template missing')],
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
findings.push({
|
|
89
|
-
areaId: 'contribution',
|
|
90
|
-
title: 'Pull request template present',
|
|
91
|
-
details: 'A pull request template is available for contributors.',
|
|
92
|
-
evidence: [(0, evidence_1.fileEvidence)(scan.repoPath, scan.files.pullRequestTemplate)],
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
const status = !scan.files.contributing && !scan.files.codeOfConduct
|
|
96
|
-
? 'missing'
|
|
97
|
-
: recommendations.length > 0
|
|
98
|
-
? 'needs-improvement'
|
|
99
|
-
: 'good';
|
|
100
|
-
return {
|
|
101
|
-
areaId: 'contribution',
|
|
102
|
-
status,
|
|
103
|
-
findings,
|
|
104
|
-
recommendations,
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=contribution.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contribution.js","sourceRoot":"","sources":["../../../../src/services/review/areas/contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Documentation area evaluation
|
|
3
|
-
*
|
|
4
|
-
* @module services/review/areas/documentation
|
|
5
|
-
*/
|
|
6
|
-
import { type AreaEvaluation } from '../review-engine';
|
|
7
|
-
import type { RepoScanResult } from '../../../utils/repo-scan';
|
|
8
|
-
export declare function evaluateDocumentation(scan: RepoScanResult): AreaEvaluation;
|
|
9
|
-
//# sourceMappingURL=documentation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"documentation.d.ts","sourceRoot":"","sources":["../../../../src/services/review/areas/documentation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAU/D,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAqG1E"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Documentation area evaluation
|
|
4
|
-
*
|
|
5
|
-
* @module services/review/areas/documentation
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.evaluateDocumentation = evaluateDocumentation;
|
|
9
|
-
const evidence_1 = require("../evidence");
|
|
10
|
-
function hasKeyword(content, keyword) {
|
|
11
|
-
if (!content) {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
return content.toLowerCase().includes(keyword.toLowerCase());
|
|
15
|
-
}
|
|
16
|
-
function evaluateDocumentation(scan) {
|
|
17
|
-
const findings = [];
|
|
18
|
-
const recommendations = [];
|
|
19
|
-
if (!scan.files.readme) {
|
|
20
|
-
findings.push({
|
|
21
|
-
areaId: 'documentation',
|
|
22
|
-
title: 'README not found',
|
|
23
|
-
details: 'The repository does not include a README file at the root or docs directories.',
|
|
24
|
-
evidence: [(0, evidence_1.missingEvidence)('README.md missing')],
|
|
25
|
-
});
|
|
26
|
-
recommendations.push({
|
|
27
|
-
areaId: 'documentation',
|
|
28
|
-
title: 'Add a README with install and usage guidance',
|
|
29
|
-
details: 'Provide a primary README with installation steps, usage examples, and scope.',
|
|
30
|
-
priority: 'high',
|
|
31
|
-
timeHorizon: 'quick',
|
|
32
|
-
riskIfIgnored: 'Users and contributors will struggle to understand how to use the project.',
|
|
33
|
-
evidence: [(0, evidence_1.missingEvidence)('README.md missing')],
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
findings.push({
|
|
38
|
-
areaId: 'documentation',
|
|
39
|
-
title: 'README present',
|
|
40
|
-
details: 'A README file is present and can be used as the primary entry point.',
|
|
41
|
-
evidence: [(0, evidence_1.fileEvidence)(scan.repoPath, scan.files.readme)],
|
|
42
|
-
});
|
|
43
|
-
const hasInstall = hasKeyword(scan.content.readme, 'install');
|
|
44
|
-
const hasUsage = hasKeyword(scan.content.readme, 'usage');
|
|
45
|
-
const hasContributing = hasKeyword(scan.content.readme, 'contributing') ||
|
|
46
|
-
hasKeyword(scan.content.readme, 'contribute');
|
|
47
|
-
if (!hasInstall || !hasUsage) {
|
|
48
|
-
const missingParts = [!hasInstall ? 'installation' : null, !hasUsage ? 'usage' : null]
|
|
49
|
-
.filter((part) => Boolean(part))
|
|
50
|
-
.join(' and ');
|
|
51
|
-
findings.push({
|
|
52
|
-
areaId: 'documentation',
|
|
53
|
-
title: 'README missing key sections',
|
|
54
|
-
details: `README lacks clear ${missingParts} guidance.`,
|
|
55
|
-
evidence: [(0, evidence_1.fileEvidence)(scan.repoPath, scan.files.readme)],
|
|
56
|
-
});
|
|
57
|
-
recommendations.push({
|
|
58
|
-
areaId: 'documentation',
|
|
59
|
-
title: 'Expand README with installation and usage sections',
|
|
60
|
-
details: 'Add concise installation steps and usage examples so new users can start quickly.',
|
|
61
|
-
priority: 'medium',
|
|
62
|
-
timeHorizon: 'quick',
|
|
63
|
-
riskIfIgnored: 'Adoption and onboarding will remain slow and support load will increase.',
|
|
64
|
-
evidence: [(0, evidence_1.fileEvidence)(scan.repoPath, scan.files.readme)],
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
if (!hasContributing) {
|
|
68
|
-
recommendations.push({
|
|
69
|
-
areaId: 'documentation',
|
|
70
|
-
title: 'Link to contribution guidance from README',
|
|
71
|
-
details: 'Add a brief contribution section or link to CONTRIBUTING.md for new contributors.',
|
|
72
|
-
priority: 'low',
|
|
73
|
-
timeHorizon: 'quick',
|
|
74
|
-
riskIfIgnored: 'Potential contributors may not find the right onboarding materials.',
|
|
75
|
-
evidence: [(0, evidence_1.fileEvidence)(scan.repoPath, scan.files.readme)],
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
if (!scan.directories.docs) {
|
|
80
|
-
recommendations.push({
|
|
81
|
-
areaId: 'documentation',
|
|
82
|
-
title: 'Add a dedicated docs directory',
|
|
83
|
-
details: 'Move detailed guides into a docs/ directory for discoverability and maintenance.',
|
|
84
|
-
priority: 'low',
|
|
85
|
-
timeHorizon: 'long-term',
|
|
86
|
-
riskIfIgnored: 'Long-form documentation will be harder to maintain as the project grows.',
|
|
87
|
-
evidence: [(0, evidence_1.missingEvidence)('docs/ directory missing')],
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
findings.push({
|
|
92
|
-
areaId: 'documentation',
|
|
93
|
-
title: 'Docs directory present',
|
|
94
|
-
details: 'Supporting documentation exists in docs/.',
|
|
95
|
-
evidence: [(0, evidence_1.pathEvidence)(scan.repoPath, scan.directories.docs)],
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
const status = !scan.files.readme
|
|
99
|
-
? 'missing'
|
|
100
|
-
: recommendations.length > 0
|
|
101
|
-
? 'needs-improvement'
|
|
102
|
-
: 'good';
|
|
103
|
-
return {
|
|
104
|
-
areaId: 'documentation',
|
|
105
|
-
status,
|
|
106
|
-
findings,
|
|
107
|
-
recommendations,
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=documentation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"documentation.js","sourceRoot":"","sources":["../../../../src/services/review/areas/documentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* License area evaluation
|
|
3
|
-
*
|
|
4
|
-
* @module services/review/areas/license
|
|
5
|
-
*/
|
|
6
|
-
import { type AreaEvaluation } from '../review-engine';
|
|
7
|
-
import type { RepoScanResult } from '../../../utils/repo-scan';
|
|
8
|
-
export declare function evaluateLicense(scan: RepoScanResult): AreaEvaluation;
|
|
9
|
-
//# sourceMappingURL=license.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../../../src/services/review/areas/license.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA6B/D,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAwDpE"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* License area evaluation
|
|
4
|
-
*
|
|
5
|
-
* @module services/review/areas/license
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.evaluateLicense = evaluateLicense;
|
|
9
|
-
const evidence_1 = require("../evidence");
|
|
10
|
-
function detectLicenseType(content) {
|
|
11
|
-
if (!content) {
|
|
12
|
-
return undefined;
|
|
13
|
-
}
|
|
14
|
-
const text = content.toLowerCase();
|
|
15
|
-
if (text.includes('mit license')) {
|
|
16
|
-
return 'MIT';
|
|
17
|
-
}
|
|
18
|
-
if (text.includes('apache license') && text.includes('version 2')) {
|
|
19
|
-
return 'Apache-2.0';
|
|
20
|
-
}
|
|
21
|
-
if (text.includes('gnu general public license') && text.includes('version 3')) {
|
|
22
|
-
return 'GPL-3.0';
|
|
23
|
-
}
|
|
24
|
-
if (text.includes('gnu general public license') && text.includes('version 2')) {
|
|
25
|
-
return 'GPL-2.0';
|
|
26
|
-
}
|
|
27
|
-
if (text.includes('mozilla public license')) {
|
|
28
|
-
return 'MPL-2.0';
|
|
29
|
-
}
|
|
30
|
-
return undefined;
|
|
31
|
-
}
|
|
32
|
-
function evaluateLicense(scan) {
|
|
33
|
-
const findings = [];
|
|
34
|
-
const recommendations = [];
|
|
35
|
-
if (!scan.files.license) {
|
|
36
|
-
findings.push({
|
|
37
|
-
areaId: 'license',
|
|
38
|
-
title: 'License file missing',
|
|
39
|
-
details: 'A license file is required to clarify usage rights for the project.',
|
|
40
|
-
evidence: [(0, evidence_1.missingEvidence)('LICENSE missing')],
|
|
41
|
-
});
|
|
42
|
-
recommendations.push({
|
|
43
|
-
areaId: 'license',
|
|
44
|
-
title: 'Add an explicit license file',
|
|
45
|
-
details: 'Include a LICENSE file that matches the intended distribution terms.',
|
|
46
|
-
priority: 'high',
|
|
47
|
-
timeHorizon: 'quick',
|
|
48
|
-
riskIfIgnored: 'Users and contributors may avoid the project due to legal uncertainty.',
|
|
49
|
-
evidence: [(0, evidence_1.missingEvidence)('LICENSE missing')],
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
const licenseType = detectLicenseType(scan.content.license);
|
|
54
|
-
findings.push({
|
|
55
|
-
areaId: 'license',
|
|
56
|
-
title: 'License file present',
|
|
57
|
-
details: licenseType
|
|
58
|
-
? `Detected license type: ${licenseType}.`
|
|
59
|
-
: 'License file present but type not detected.',
|
|
60
|
-
evidence: [(0, evidence_1.fileEvidence)(scan.repoPath, scan.files.license)],
|
|
61
|
-
});
|
|
62
|
-
if (!licenseType) {
|
|
63
|
-
recommendations.push({
|
|
64
|
-
areaId: 'license',
|
|
65
|
-
title: 'Clarify license type',
|
|
66
|
-
details: 'Ensure the license text is complete and matches a well-known SPDX identifier.',
|
|
67
|
-
priority: 'medium',
|
|
68
|
-
timeHorizon: 'quick',
|
|
69
|
-
riskIfIgnored: 'Ambiguous licensing can slow adoption and contributions.',
|
|
70
|
-
evidence: [(0, evidence_1.fileEvidence)(scan.repoPath, scan.files.license)],
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
const status = !scan.files.license
|
|
75
|
-
? 'missing'
|
|
76
|
-
: recommendations.length > 0
|
|
77
|
-
? 'needs-improvement'
|
|
78
|
-
: 'good';
|
|
79
|
-
return {
|
|
80
|
-
areaId: 'license',
|
|
81
|
-
status,
|
|
82
|
-
findings,
|
|
83
|
-
recommendations,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
//# sourceMappingURL=license.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"license.js","sourceRoot":"","sources":["../../../../src/services/review/areas/license.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Quality area evaluation
|
|
3
|
-
*
|
|
4
|
-
* @module services/review/areas/quality
|
|
5
|
-
*/
|
|
6
|
-
import { type AreaEvaluation } from '../review-engine';
|
|
7
|
-
import type { RepoScanResult } from '../../../utils/repo-scan';
|
|
8
|
-
export declare function evaluateQuality(scan: RepoScanResult): AreaEvaluation;
|
|
9
|
-
//# sourceMappingURL=quality.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../../../src/services/review/areas/quality.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CA2EpE"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Quality area evaluation
|
|
4
|
-
*
|
|
5
|
-
* @module services/review/areas/quality
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.evaluateQuality = evaluateQuality;
|
|
9
|
-
const evidence_1 = require("../evidence");
|
|
10
|
-
function evaluateQuality(scan) {
|
|
11
|
-
const findings = [];
|
|
12
|
-
const recommendations = [];
|
|
13
|
-
if (!scan.signals.hasTests) {
|
|
14
|
-
findings.push({
|
|
15
|
-
areaId: 'quality',
|
|
16
|
-
title: 'Tests not detected',
|
|
17
|
-
details: 'No tests directory found in the repository.',
|
|
18
|
-
evidence: [(0, evidence_1.missingEvidence)('tests/ directory missing')],
|
|
19
|
-
});
|
|
20
|
-
recommendations.push({
|
|
21
|
-
areaId: 'quality',
|
|
22
|
-
title: 'Add automated tests',
|
|
23
|
-
details: 'Introduce unit or integration tests to validate key workflows.',
|
|
24
|
-
priority: 'high',
|
|
25
|
-
timeHorizon: 'long-term',
|
|
26
|
-
riskIfIgnored: 'Regression risk increases and changes become harder to validate.',
|
|
27
|
-
evidence: [(0, evidence_1.missingEvidence)('tests/ directory missing')],
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
else if (scan.directories.tests) {
|
|
31
|
-
findings.push({
|
|
32
|
-
areaId: 'quality',
|
|
33
|
-
title: 'Tests directory present',
|
|
34
|
-
details: 'Automated tests are present in the repository.',
|
|
35
|
-
evidence: [(0, evidence_1.pathEvidence)(scan.repoPath, scan.directories.tests)],
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
if (!scan.signals.hasGithubActions) {
|
|
39
|
-
recommendations.push({
|
|
40
|
-
areaId: 'quality',
|
|
41
|
-
title: 'Add CI workflows',
|
|
42
|
-
details: 'Set up continuous integration to run tests and lint checks.',
|
|
43
|
-
priority: 'medium',
|
|
44
|
-
timeHorizon: 'long-term',
|
|
45
|
-
riskIfIgnored: 'Quality checks will be inconsistent across contributions.',
|
|
46
|
-
evidence: [(0, evidence_1.missingEvidence)('.github/workflows missing')],
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
else if (scan.directories.workflows) {
|
|
50
|
-
findings.push({
|
|
51
|
-
areaId: 'quality',
|
|
52
|
-
title: 'CI workflows detected',
|
|
53
|
-
details: 'GitHub Actions workflows are configured.',
|
|
54
|
-
evidence: [(0, evidence_1.pathEvidence)(scan.repoPath, scan.directories.workflows)],
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
if (!scan.files.changelog) {
|
|
58
|
-
recommendations.push({
|
|
59
|
-
areaId: 'quality',
|
|
60
|
-
title: 'Maintain a changelog',
|
|
61
|
-
details: 'Add a CHANGELOG file to track releases and major changes.',
|
|
62
|
-
priority: 'low',
|
|
63
|
-
timeHorizon: 'long-term',
|
|
64
|
-
riskIfIgnored: 'Users will struggle to track changes between releases.',
|
|
65
|
-
evidence: [(0, evidence_1.missingEvidence)('CHANGELOG.md missing')],
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
findings.push({
|
|
70
|
-
areaId: 'quality',
|
|
71
|
-
title: 'Changelog present',
|
|
72
|
-
details: 'Changelog exists for release tracking.',
|
|
73
|
-
evidence: [(0, evidence_1.fileEvidence)(scan.repoPath, scan.files.changelog)],
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
const status = recommendations.length > 0 ? 'needs-improvement' : 'good';
|
|
77
|
-
return {
|
|
78
|
-
areaId: 'quality',
|
|
79
|
-
status,
|
|
80
|
-
findings,
|
|
81
|
-
recommendations,
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=quality.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quality.js","sourceRoot":"","sources":["../../../../src/services/review/areas/quality.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Security area evaluation
|
|
3
|
-
*
|
|
4
|
-
* @module services/review/areas/security
|
|
5
|
-
*/
|
|
6
|
-
import { type AreaEvaluation } from '../review-engine';
|
|
7
|
-
import type { RepoScanResult } from '../../../utils/repo-scan';
|
|
8
|
-
export declare function evaluateSecurity(scan: RepoScanResult): AreaEvaluation;
|
|
9
|
-
//# sourceMappingURL=security.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../../src/services/review/areas/security.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAyDrE"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Security area evaluation
|
|
4
|
-
*
|
|
5
|
-
* @module services/review/areas/security
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.evaluateSecurity = evaluateSecurity;
|
|
9
|
-
const evidence_1 = require("../evidence");
|
|
10
|
-
function evaluateSecurity(scan) {
|
|
11
|
-
const findings = [];
|
|
12
|
-
const recommendations = [];
|
|
13
|
-
if (!scan.files.security) {
|
|
14
|
-
findings.push({
|
|
15
|
-
areaId: 'security',
|
|
16
|
-
title: 'Security policy missing',
|
|
17
|
-
details: 'No SECURITY.md file was found for reporting vulnerabilities.',
|
|
18
|
-
evidence: [(0, evidence_1.missingEvidence)('SECURITY.md missing')],
|
|
19
|
-
});
|
|
20
|
-
recommendations.push({
|
|
21
|
-
areaId: 'security',
|
|
22
|
-
title: 'Add a security policy',
|
|
23
|
-
details: 'Document how to report vulnerabilities and response expectations.',
|
|
24
|
-
priority: 'high',
|
|
25
|
-
timeHorizon: 'quick',
|
|
26
|
-
riskIfIgnored: 'Security issues may be reported publicly without guidance.',
|
|
27
|
-
evidence: [(0, evidence_1.missingEvidence)('SECURITY.md missing')],
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
findings.push({
|
|
32
|
-
areaId: 'security',
|
|
33
|
-
title: 'Security policy present',
|
|
34
|
-
details: 'A SECURITY.md file exists for vulnerability reporting.',
|
|
35
|
-
evidence: [(0, evidence_1.fileEvidence)(scan.repoPath, scan.files.security)],
|
|
36
|
-
});
|
|
37
|
-
const securityText = scan.content.security?.toLowerCase() ?? '';
|
|
38
|
-
const hasContact = securityText.includes('email') || securityText.includes('contact');
|
|
39
|
-
const hasReport = securityText.includes('report') || securityText.includes('vulnerability');
|
|
40
|
-
if (!hasContact || !hasReport) {
|
|
41
|
-
recommendations.push({
|
|
42
|
-
areaId: 'security',
|
|
43
|
-
title: 'Clarify disclosure instructions',
|
|
44
|
-
details: 'Add contact details and reporting steps to the security policy.',
|
|
45
|
-
priority: 'medium',
|
|
46
|
-
timeHorizon: 'quick',
|
|
47
|
-
riskIfIgnored: 'Reporters may not know how to disclose issues safely.',
|
|
48
|
-
evidence: [(0, evidence_1.fileEvidence)(scan.repoPath, scan.files.security)],
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
const status = !scan.files.security
|
|
53
|
-
? 'missing'
|
|
54
|
-
: recommendations.length > 0
|
|
55
|
-
? 'needs-improvement'
|
|
56
|
-
: 'good';
|
|
57
|
-
return {
|
|
58
|
-
areaId: 'security',
|
|
59
|
-
status,
|
|
60
|
-
findings,
|
|
61
|
-
recommendations,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=security.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../../../src/services/review/areas/security.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAMH,4CAyDC;AA3DD,0CAA4D;AAE5D,SAAgB,gBAAgB,CAAC,IAAoB;IACnD,MAAM,QAAQ,GAA+B,EAAE,CAAC;IAChD,MAAM,eAAe,GAAsC,EAAE,CAAC;IAE9D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,yBAAyB;YAChC,OAAO,EAAE,8DAA8D;YACvE,QAAQ,EAAE,CAAC,IAAA,0BAAe,EAAC,qBAAqB,CAAC,CAAC;SACnD,CAAC,CAAC;QACH,eAAe,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,uBAAuB;YAC9B,OAAO,EAAE,mEAAmE;YAC5E,QAAQ,EAAE,MAAM;YAChB,WAAW,EAAE,OAAO;YACpB,aAAa,EAAE,4DAA4D;YAC3E,QAAQ,EAAE,CAAC,IAAA,0BAAe,EAAC,qBAAqB,CAAC,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,yBAAyB;YAChC,OAAO,EAAE,wDAAwD;YACjE,QAAQ,EAAE,CAAC,IAAA,uBAAY,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC7D,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAChE,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtF,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAE5F,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9B,eAAe,CAAC,IAAI,CAAC;gBACnB,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,iCAAiC;gBACxC,OAAO,EAAE,iEAAiE;gBAC1E,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,OAAO;gBACpB,aAAa,EAAE,uDAAuD;gBACtE,QAAQ,EAAE,CAAC,IAAA,uBAAY,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aAC7D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;QACjC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;YAC1B,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,MAAM,CAAC;IAEb,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,MAAM;QACN,QAAQ;QACR,eAAe;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Evidence helpers for review reports
|
|
3
|
-
*
|
|
4
|
-
* @module services/review/evidence
|
|
5
|
-
*/
|
|
6
|
-
import type { EvidenceReference } from '../../types/review';
|
|
7
|
-
export declare function fileEvidence(repoPath: string, targetPath: string, notes?: string): EvidenceReference;
|
|
8
|
-
export declare function pathEvidence(repoPath: string, targetPath: string, notes?: string): EvidenceReference;
|
|
9
|
-
export declare function missingEvidence(label: string, notes?: string): EvidenceReference;
|
|
10
|
-
//# sourceMappingURL=evidence.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../../src/services/review/evidence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAO5D,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,iBAAiB,CAMnB;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,iBAAiB,CAMnB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAMhF"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Evidence helpers for review reports
|
|
4
|
-
*
|
|
5
|
-
* @module services/review/evidence
|
|
6
|
-
*/
|
|
7
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
-
};
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.fileEvidence = fileEvidence;
|
|
12
|
-
exports.pathEvidence = pathEvidence;
|
|
13
|
-
exports.missingEvidence = missingEvidence;
|
|
14
|
-
const path_1 = __importDefault(require("path"));
|
|
15
|
-
function toRelativePath(repoPath, targetPath) {
|
|
16
|
-
const relative = path_1.default.relative(repoPath, targetPath);
|
|
17
|
-
return relative.length > 0 ? relative : '.';
|
|
18
|
-
}
|
|
19
|
-
function fileEvidence(repoPath, targetPath, notes) {
|
|
20
|
-
return {
|
|
21
|
-
type: 'file',
|
|
22
|
-
target: toRelativePath(repoPath, targetPath),
|
|
23
|
-
notes,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
function pathEvidence(repoPath, targetPath, notes) {
|
|
27
|
-
return {
|
|
28
|
-
type: 'path',
|
|
29
|
-
target: toRelativePath(repoPath, targetPath),
|
|
30
|
-
notes,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
function missingEvidence(label, notes) {
|
|
34
|
-
return {
|
|
35
|
-
type: 'missing',
|
|
36
|
-
target: label,
|
|
37
|
-
notes,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=evidence.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../../src/services/review/evidence.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;AAUH,oCAUC;AAED,oCAUC;AAED,0CAMC;AAtCD,gDAAwB;AAGxB,SAAS,cAAc,CAAC,QAAgB,EAAE,UAAkB;IAC1D,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9C,CAAC;AAED,SAAgB,YAAY,CAC1B,QAAgB,EAChB,UAAkB,EAClB,KAAc;IAEd,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC5C,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAC1B,QAAgB,EAChB,UAAkB,EAClB,KAAc;IAEd,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC5C,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAAC,KAAa,EAAE,KAAc;IAC3D,OAAO;QACL,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,KAAK;QACb,KAAK;KACN,CAAC;AACJ,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Recommendation filtering utilities
|
|
3
|
-
*
|
|
4
|
-
* @module services/review/recommendations-filter
|
|
5
|
-
*/
|
|
6
|
-
import type { Recommendation, ReviewPriority, ReviewTimeHorizon } from '../../types/review';
|
|
7
|
-
export interface RecommendationFilters {
|
|
8
|
-
priority?: ReviewPriority;
|
|
9
|
-
timeHorizon?: ReviewTimeHorizon;
|
|
10
|
-
}
|
|
11
|
-
export declare function filterRecommendations(recommendations: Recommendation[], filters?: RecommendationFilters): Recommendation[];
|
|
12
|
-
//# sourceMappingURL=recommendations-filter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"recommendations-filter.d.ts","sourceRoot":"","sources":["../../../src/services/review/recommendations-filter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5F,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,cAAc,EAAE,EACjC,OAAO,GAAE,qBAA0B,GAClC,cAAc,EAAE,CAUlB"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Recommendation filtering utilities
|
|
4
|
-
*
|
|
5
|
-
* @module services/review/recommendations-filter
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.filterRecommendations = filterRecommendations;
|
|
9
|
-
function filterRecommendations(recommendations, filters = {}) {
|
|
10
|
-
return recommendations.filter((rec) => {
|
|
11
|
-
if (filters.priority && rec.priority !== filters.priority) {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
if (filters.timeHorizon && rec.timeHorizon !== filters.timeHorizon) {
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
17
|
-
return true;
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=recommendations-filter.js.map
|