@nahisaho/musubix-security 1.8.0 → 1.8.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 +27 -0
- package/dist/analyzers/ai/index.d.ts +6 -0
- package/dist/analyzers/ai/index.d.ts.map +1 -0
- package/dist/analyzers/ai/index.js +6 -0
- package/dist/analyzers/ai/index.js.map +1 -0
- package/dist/analyzers/ai/prompt-injection-detector.d.ts +152 -0
- package/dist/analyzers/ai/prompt-injection-detector.d.ts.map +1 -0
- package/dist/analyzers/ai/prompt-injection-detector.js +468 -0
- package/dist/analyzers/ai/prompt-injection-detector.js.map +1 -0
- package/dist/analyzers/api/api-security-analyzer.d.ts +263 -0
- package/dist/analyzers/api/api-security-analyzer.d.ts.map +1 -0
- package/dist/analyzers/api/api-security-analyzer.js +581 -0
- package/dist/analyzers/api/api-security-analyzer.js.map +1 -0
- package/dist/analyzers/compliance/compliance-checker.d.ts +201 -0
- package/dist/analyzers/compliance/compliance-checker.d.ts.map +1 -0
- package/dist/analyzers/compliance/compliance-checker.js +772 -0
- package/dist/analyzers/compliance/compliance-checker.js.map +1 -0
- package/dist/analyzers/container/image-scanner.d.ts +163 -0
- package/dist/analyzers/container/image-scanner.d.ts.map +1 -0
- package/dist/analyzers/container/image-scanner.js +459 -0
- package/dist/analyzers/container/image-scanner.js.map +1 -0
- package/dist/analyzers/container/index.d.ts +6 -0
- package/dist/analyzers/container/index.d.ts.map +1 -0
- package/dist/analyzers/container/index.js +6 -0
- package/dist/analyzers/container/index.js.map +1 -0
- package/dist/analyzers/dashboard/security-dashboard.d.ts +286 -0
- package/dist/analyzers/dashboard/security-dashboard.d.ts.map +1 -0
- package/dist/analyzers/dashboard/security-dashboard.js +796 -0
- package/dist/analyzers/dashboard/security-dashboard.js.map +1 -0
- package/dist/analyzers/iac/iac-checker.d.ts +124 -0
- package/dist/analyzers/iac/iac-checker.d.ts.map +1 -0
- package/dist/analyzers/iac/iac-checker.js +755 -0
- package/dist/analyzers/iac/iac-checker.js.map +1 -0
- package/dist/analyzers/iac/index.d.ts +6 -0
- package/dist/analyzers/iac/index.d.ts.map +1 -0
- package/dist/analyzers/iac/index.js +6 -0
- package/dist/analyzers/iac/index.js.map +1 -0
- package/dist/analyzers/index.d.ts +9 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +13 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/analyzers/monitor/realtime-monitor.d.ts +216 -0
- package/dist/analyzers/monitor/realtime-monitor.d.ts.map +1 -0
- package/dist/analyzers/monitor/realtime-monitor.js +601 -0
- package/dist/analyzers/monitor/realtime-monitor.js.map +1 -0
- package/dist/analyzers/sast/index.d.ts +7 -0
- package/dist/analyzers/sast/index.d.ts.map +1 -0
- package/dist/analyzers/sast/index.js +7 -0
- package/dist/analyzers/sast/index.js.map +1 -0
- package/dist/analyzers/sast/interprocedural-analyzer.d.ts +276 -0
- package/dist/analyzers/sast/interprocedural-analyzer.d.ts.map +1 -0
- package/dist/analyzers/sast/interprocedural-analyzer.js +635 -0
- package/dist/analyzers/sast/interprocedural-analyzer.js.map +1 -0
- package/dist/analyzers/sast/zero-day-detector.d.ts +183 -0
- package/dist/analyzers/sast/zero-day-detector.d.ts.map +1 -0
- package/dist/analyzers/sast/zero-day-detector.js +593 -0
- package/dist/analyzers/sast/zero-day-detector.js.map +1 -0
- package/dist/analyzers/sca/dependency-scanner.d.ts +275 -0
- package/dist/analyzers/sca/dependency-scanner.d.ts.map +1 -0
- package/dist/analyzers/sca/dependency-scanner.js +642 -0
- package/dist/analyzers/sca/dependency-scanner.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +10 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/pipeline-manager.d.ts +105 -0
- package/dist/core/pipeline-manager.d.ts.map +1 -0
- package/dist/core/pipeline-manager.js +449 -0
- package/dist/core/pipeline-manager.js.map +1 -0
- package/dist/core/result-aggregator.d.ts +96 -0
- package/dist/core/result-aggregator.d.ts.map +1 -0
- package/dist/core/result-aggregator.js +462 -0
- package/dist/core/result-aggregator.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -1
- package/dist/integrations/ci-integration.d.ts +227 -0
- package/dist/integrations/ci-integration.d.ts.map +1 -0
- package/dist/integrations/ci-integration.js +472 -0
- package/dist/integrations/ci-integration.js.map +1 -0
- package/dist/integrations/git-hooks.d.ts +155 -0
- package/dist/integrations/git-hooks.d.ts.map +1 -0
- package/dist/integrations/git-hooks.js +425 -0
- package/dist/integrations/git-hooks.js.map +1 -0
- package/dist/integrations/index.d.ts +9 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +9 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/report-aggregator.d.ts +250 -0
- package/dist/integrations/report-aggregator.d.ts.map +1 -0
- package/dist/integrations/report-aggregator.js +488 -0
- package/dist/integrations/report-aggregator.js.map +1 -0
- package/dist/integrations/vscode-integration.d.ts +245 -0
- package/dist/integrations/vscode-integration.d.ts.map +1 -0
- package/dist/integrations/vscode-integration.js +449 -0
- package/dist/integrations/vscode-integration.js.map +1 -0
- package/dist/intelligence/attack-pattern-matcher.d.ts +217 -0
- package/dist/intelligence/attack-pattern-matcher.d.ts.map +1 -0
- package/dist/intelligence/attack-pattern-matcher.js +887 -0
- package/dist/intelligence/attack-pattern-matcher.js.map +1 -0
- package/dist/intelligence/index.d.ts +12 -0
- package/dist/intelligence/index.d.ts.map +1 -0
- package/dist/intelligence/index.js +18 -0
- package/dist/intelligence/index.js.map +1 -0
- package/dist/intelligence/neuro-symbolic-core.d.ts +88 -0
- package/dist/intelligence/neuro-symbolic-core.d.ts.map +1 -0
- package/dist/intelligence/neuro-symbolic-core.js +403 -0
- package/dist/intelligence/neuro-symbolic-core.js.map +1 -0
- package/dist/intelligence/predictive-analyzer.d.ts +317 -0
- package/dist/intelligence/predictive-analyzer.d.ts.map +1 -0
- package/dist/intelligence/predictive-analyzer.js +714 -0
- package/dist/intelligence/predictive-analyzer.js.map +1 -0
- package/dist/intelligence/risk-scorer.d.ts +333 -0
- package/dist/intelligence/risk-scorer.d.ts.map +1 -0
- package/dist/intelligence/risk-scorer.js +824 -0
- package/dist/intelligence/risk-scorer.js.map +1 -0
- package/dist/intelligence/security-analytics.d.ts +349 -0
- package/dist/intelligence/security-analytics.d.ts.map +1 -0
- package/dist/intelligence/security-analytics.js +813 -0
- package/dist/intelligence/security-analytics.js.map +1 -0
- package/dist/intelligence/threat-intelligence.d.ts +288 -0
- package/dist/intelligence/threat-intelligence.d.ts.map +1 -0
- package/dist/intelligence/threat-intelligence.js +639 -0
- package/dist/intelligence/threat-intelligence.js.map +1 -0
- package/dist/policy/index.d.ts +6 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/index.js +6 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/policy-engine.d.ts +254 -0
- package/dist/policy/policy-engine.d.ts.map +1 -0
- package/dist/policy/policy-engine.js +651 -0
- package/dist/policy/policy-engine.js.map +1 -0
- package/dist/remediation/auto-fixer.d.ts +179 -0
- package/dist/remediation/auto-fixer.d.ts.map +1 -0
- package/dist/remediation/auto-fixer.js +540 -0
- package/dist/remediation/auto-fixer.js.map +1 -0
- package/dist/remediation/fix-validator.d.ts +195 -0
- package/dist/remediation/fix-validator.d.ts.map +1 -0
- package/dist/remediation/fix-validator.js +462 -0
- package/dist/remediation/fix-validator.js.map +1 -0
- package/dist/remediation/index.d.ts +10 -0
- package/dist/remediation/index.d.ts.map +1 -0
- package/dist/remediation/index.js +15 -0
- package/dist/remediation/index.js.map +1 -0
- package/dist/remediation/patch-generator.d.ts +203 -0
- package/dist/remediation/patch-generator.d.ts.map +1 -0
- package/dist/remediation/patch-generator.js +533 -0
- package/dist/remediation/patch-generator.js.map +1 -0
- package/dist/remediation/remediation-planner.d.ts +262 -0
- package/dist/remediation/remediation-planner.d.ts.map +1 -0
- package/dist/remediation/remediation-planner.js +531 -0
- package/dist/remediation/remediation-planner.js.map +1 -0
- package/dist/remediation/secure-code-transformer.d.ts +222 -0
- package/dist/remediation/secure-code-transformer.d.ts.map +1 -0
- package/dist/remediation/secure-code-transformer.js +625 -0
- package/dist/remediation/secure-code-transformer.js.map +1 -0
- package/dist/types/fix.d.ts +3 -1
- package/dist/types/fix.d.ts.map +1 -1
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/interprocedural.d.ts +203 -0
- package/dist/types/interprocedural.d.ts.map +1 -0
- package/dist/types/interprocedural.js +7 -0
- package/dist/types/interprocedural.js.map +1 -0
- package/dist/types/neuro-symbolic.d.ts +179 -0
- package/dist/types/neuro-symbolic.d.ts.map +1 -0
- package/dist/types/neuro-symbolic.js +7 -0
- package/dist/types/neuro-symbolic.js.map +1 -0
- package/dist/types/pipeline.d.ts +173 -0
- package/dist/types/pipeline.d.ts.map +1 -0
- package/dist/types/pipeline.js +7 -0
- package/dist/types/pipeline.js.map +1 -0
- package/dist/types/result.d.ts +134 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +25 -0
- package/dist/types/result.js.map +1 -0
- package/dist/types/vulnerability.d.ts +2 -2
- package/dist/types/vulnerability.d.ts.map +1 -1
- package/dist/types/zero-day.d.ts +146 -0
- package/dist/types/zero-day.d.ts.map +1 -0
- package/dist/types/zero-day.js +7 -0
- package/dist/types/zero-day.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Report Aggregator for Multiple Scan Results
|
|
3
|
+
* @module @nahisaho/musubix-security/integrations/report-aggregator
|
|
4
|
+
*
|
|
5
|
+
* Aggregates multiple security scan results into unified reports
|
|
6
|
+
* with trend analysis and comparison capabilities.
|
|
7
|
+
*/
|
|
8
|
+
import type { ScanResult, Severity, Vulnerability } from '../types/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Aggregated scan entry
|
|
11
|
+
*/
|
|
12
|
+
export interface AggregatedScanEntry {
|
|
13
|
+
/** Scan identifier */
|
|
14
|
+
id: string;
|
|
15
|
+
/** Scan timestamp */
|
|
16
|
+
timestamp: Date;
|
|
17
|
+
/** Scan target/source */
|
|
18
|
+
source: string;
|
|
19
|
+
/** Scan type */
|
|
20
|
+
type: ScanType;
|
|
21
|
+
/** Original scan result */
|
|
22
|
+
result: ScanResult;
|
|
23
|
+
/** Metadata */
|
|
24
|
+
metadata?: Record<string, unknown>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Scan type classification
|
|
28
|
+
*/
|
|
29
|
+
export type ScanType = 'vulnerability' | 'secret' | 'dependency' | 'compliance' | 'container' | 'iac' | 'api' | 'full';
|
|
30
|
+
/**
|
|
31
|
+
* Report aggregator options
|
|
32
|
+
*/
|
|
33
|
+
export interface ReportAggregatorOptions {
|
|
34
|
+
/** Deduplicate similar findings */
|
|
35
|
+
deduplicate?: boolean;
|
|
36
|
+
/** Similarity threshold for deduplication (0-1) */
|
|
37
|
+
similarityThreshold?: number;
|
|
38
|
+
/** Group by file/rule/severity */
|
|
39
|
+
groupBy?: 'file' | 'rule' | 'severity' | 'category';
|
|
40
|
+
/** Include historical comparison */
|
|
41
|
+
includeHistory?: boolean;
|
|
42
|
+
/** Maximum history entries to keep */
|
|
43
|
+
maxHistoryEntries?: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Aggregated report
|
|
47
|
+
*/
|
|
48
|
+
export interface AggregatedReport {
|
|
49
|
+
/** Report generation timestamp */
|
|
50
|
+
generatedAt: Date;
|
|
51
|
+
/** Report ID */
|
|
52
|
+
reportId: string;
|
|
53
|
+
/** Summary statistics */
|
|
54
|
+
summary: AggregatedSummary;
|
|
55
|
+
/** All findings (deduplicated if enabled) */
|
|
56
|
+
findings: AggregatedFinding[];
|
|
57
|
+
/** Grouped findings */
|
|
58
|
+
groupedFindings: GroupedFindings;
|
|
59
|
+
/** Scan sources */
|
|
60
|
+
sources: ScanSource[];
|
|
61
|
+
/** Trend data */
|
|
62
|
+
trends: TrendData;
|
|
63
|
+
/** Comparison with previous */
|
|
64
|
+
comparison?: ReportComparison;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Aggregated summary
|
|
68
|
+
*/
|
|
69
|
+
export interface AggregatedSummary {
|
|
70
|
+
/** Total scans aggregated */
|
|
71
|
+
totalScans: number;
|
|
72
|
+
/** Total unique findings */
|
|
73
|
+
totalFindings: number;
|
|
74
|
+
/** Findings by severity */
|
|
75
|
+
bySeverity: Record<Severity, number>;
|
|
76
|
+
/** Findings by type */
|
|
77
|
+
byType: Record<ScanType, number>;
|
|
78
|
+
/** Files affected */
|
|
79
|
+
filesAffected: number;
|
|
80
|
+
/** Rules triggered */
|
|
81
|
+
rulesTriggered: number;
|
|
82
|
+
/** Overall security score */
|
|
83
|
+
securityScore: number;
|
|
84
|
+
/** Risk level */
|
|
85
|
+
riskLevel: 'critical' | 'high' | 'medium' | 'low' | 'minimal';
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Aggregated finding
|
|
89
|
+
*/
|
|
90
|
+
export interface AggregatedFinding {
|
|
91
|
+
/** Finding ID */
|
|
92
|
+
id: string;
|
|
93
|
+
/** Original vulnerability */
|
|
94
|
+
vulnerability: Vulnerability;
|
|
95
|
+
/** Sources where this finding was detected */
|
|
96
|
+
sources: string[];
|
|
97
|
+
/** Occurrence count */
|
|
98
|
+
occurrences: number;
|
|
99
|
+
/** First seen timestamp */
|
|
100
|
+
firstSeen: Date;
|
|
101
|
+
/** Last seen timestamp */
|
|
102
|
+
lastSeen: Date;
|
|
103
|
+
/** Is new (not in previous report) */
|
|
104
|
+
isNew: boolean;
|
|
105
|
+
/** Is fixed (was in previous, not in current) */
|
|
106
|
+
isFixed: boolean;
|
|
107
|
+
/** Fingerprint for deduplication */
|
|
108
|
+
fingerprint: string;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Grouped findings by category
|
|
112
|
+
*/
|
|
113
|
+
export interface GroupedFindings {
|
|
114
|
+
/** Findings grouped by file */
|
|
115
|
+
byFile: Map<string, AggregatedFinding[]>;
|
|
116
|
+
/** Findings grouped by rule */
|
|
117
|
+
byRule: Map<string, AggregatedFinding[]>;
|
|
118
|
+
/** Findings grouped by severity */
|
|
119
|
+
bySeverity: Map<Severity, AggregatedFinding[]>;
|
|
120
|
+
/** Findings grouped by OWASP category */
|
|
121
|
+
byCategory: Map<string, AggregatedFinding[]>;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Scan source metadata
|
|
125
|
+
*/
|
|
126
|
+
export interface ScanSource {
|
|
127
|
+
/** Source identifier */
|
|
128
|
+
id: string;
|
|
129
|
+
/** Scan type */
|
|
130
|
+
type: ScanType;
|
|
131
|
+
/** Timestamp */
|
|
132
|
+
timestamp: Date;
|
|
133
|
+
/** Target scanned */
|
|
134
|
+
target: string;
|
|
135
|
+
/** Finding count from this source */
|
|
136
|
+
findingCount: number;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Trend data over time
|
|
140
|
+
*/
|
|
141
|
+
export interface TrendData {
|
|
142
|
+
/** Data points */
|
|
143
|
+
dataPoints: TrendDataPoint[];
|
|
144
|
+
/** Trend direction */
|
|
145
|
+
direction: 'improving' | 'stable' | 'degrading';
|
|
146
|
+
/** Change percentage */
|
|
147
|
+
changePercent: number;
|
|
148
|
+
/** Projected risk (if trend continues) */
|
|
149
|
+
projectedRisk: string;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Single trend data point
|
|
153
|
+
*/
|
|
154
|
+
export interface TrendDataPoint {
|
|
155
|
+
/** Timestamp */
|
|
156
|
+
timestamp: Date;
|
|
157
|
+
/** Total findings */
|
|
158
|
+
totalFindings: number;
|
|
159
|
+
/** Critical findings */
|
|
160
|
+
criticalFindings: number;
|
|
161
|
+
/** Security score */
|
|
162
|
+
securityScore: number;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Comparison with previous report
|
|
166
|
+
*/
|
|
167
|
+
export interface ReportComparison {
|
|
168
|
+
/** New findings */
|
|
169
|
+
newFindings: AggregatedFinding[];
|
|
170
|
+
/** Fixed findings */
|
|
171
|
+
fixedFindings: AggregatedFinding[];
|
|
172
|
+
/** Unchanged findings */
|
|
173
|
+
unchangedFindings: AggregatedFinding[];
|
|
174
|
+
/** Finding count change */
|
|
175
|
+
findingDelta: number;
|
|
176
|
+
/** Security score change */
|
|
177
|
+
scoreDelta: number;
|
|
178
|
+
/** Summary text */
|
|
179
|
+
summaryText: string;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Aggregates multiple security scan results
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```typescript
|
|
186
|
+
* const aggregator = createReportAggregator({
|
|
187
|
+
* deduplicate: true,
|
|
188
|
+
* groupBy: 'severity',
|
|
189
|
+
* });
|
|
190
|
+
*
|
|
191
|
+
* aggregator.addScan('vuln-scan', scanResult1, 'vulnerability');
|
|
192
|
+
* aggregator.addScan('secret-scan', scanResult2, 'secret');
|
|
193
|
+
*
|
|
194
|
+
* const report = aggregator.generateReport();
|
|
195
|
+
* ```
|
|
196
|
+
*/
|
|
197
|
+
export declare class ReportAggregator {
|
|
198
|
+
private options;
|
|
199
|
+
private scans;
|
|
200
|
+
private history;
|
|
201
|
+
private scanCounter;
|
|
202
|
+
constructor(options?: ReportAggregatorOptions);
|
|
203
|
+
/**
|
|
204
|
+
* Add a scan result to the aggregator
|
|
205
|
+
*/
|
|
206
|
+
addScan(source: string, result: ScanResult, type?: ScanType, metadata?: Record<string, unknown>): string;
|
|
207
|
+
/**
|
|
208
|
+
* Remove a scan by ID
|
|
209
|
+
*/
|
|
210
|
+
removeScan(id: string): boolean;
|
|
211
|
+
/**
|
|
212
|
+
* Clear all scans
|
|
213
|
+
*/
|
|
214
|
+
clear(): void;
|
|
215
|
+
/**
|
|
216
|
+
* Generate aggregated report
|
|
217
|
+
*/
|
|
218
|
+
generateReport(): AggregatedReport;
|
|
219
|
+
/**
|
|
220
|
+
* Get scan count
|
|
221
|
+
*/
|
|
222
|
+
getScanCount(): number;
|
|
223
|
+
/**
|
|
224
|
+
* Get history
|
|
225
|
+
*/
|
|
226
|
+
getHistory(): AggregatedReport[];
|
|
227
|
+
/**
|
|
228
|
+
* Export report as JSON
|
|
229
|
+
*/
|
|
230
|
+
exportJSON(report: AggregatedReport): string;
|
|
231
|
+
/**
|
|
232
|
+
* Export report as Markdown
|
|
233
|
+
*/
|
|
234
|
+
exportMarkdown(report: AggregatedReport): string;
|
|
235
|
+
private aggregateFindings;
|
|
236
|
+
private deduplicateFindings;
|
|
237
|
+
private groupFindings;
|
|
238
|
+
private generateSummary;
|
|
239
|
+
private generateSources;
|
|
240
|
+
private generateTrends;
|
|
241
|
+
private compareWithPrevious;
|
|
242
|
+
private generateFingerprint;
|
|
243
|
+
private calculateSimilarity;
|
|
244
|
+
private calculateSecurityScore;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Create a report aggregator
|
|
248
|
+
*/
|
|
249
|
+
export declare function createReportAggregator(options?: ReportAggregatorOptions): ReportAggregator;
|
|
250
|
+
//# sourceMappingURL=report-aggregator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-aggregator.d.ts","sourceRoot":"","sources":["../../src/integrations/report-aggregator.ts"],"names":[],"mappings":"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"}
|