driftdetect-core 0.1.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/dist/analyzers/ast-analyzer.d.ts +251 -0
- package/dist/analyzers/ast-analyzer.d.ts.map +1 -0
- package/dist/analyzers/ast-analyzer.js +548 -0
- package/dist/analyzers/ast-analyzer.js.map +1 -0
- package/dist/analyzers/flow-analyzer.d.ts +241 -0
- package/dist/analyzers/flow-analyzer.d.ts.map +1 -0
- package/dist/analyzers/flow-analyzer.js +1219 -0
- package/dist/analyzers/flow-analyzer.js.map +1 -0
- package/dist/analyzers/index.d.ts +18 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +19 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/analyzers/semantic-analyzer.d.ts +252 -0
- package/dist/analyzers/semantic-analyzer.d.ts.map +1 -0
- package/dist/analyzers/semantic-analyzer.js +1182 -0
- package/dist/analyzers/semantic-analyzer.js.map +1 -0
- package/dist/analyzers/type-analyzer.d.ts +289 -0
- package/dist/analyzers/type-analyzer.d.ts.map +1 -0
- package/dist/analyzers/type-analyzer.js +1269 -0
- package/dist/analyzers/type-analyzer.js.map +1 -0
- package/dist/analyzers/types.d.ts +537 -0
- package/dist/analyzers/types.d.ts.map +1 -0
- package/dist/analyzers/types.js +11 -0
- package/dist/analyzers/types.js.map +1 -0
- package/dist/config/config-loader.d.ts +166 -0
- package/dist/config/config-loader.d.ts.map +1 -0
- package/dist/config/config-loader.js +429 -0
- package/dist/config/config-loader.js.map +1 -0
- package/dist/config/config-validator.d.ts +204 -0
- package/dist/config/config-validator.d.ts.map +1 -0
- package/dist/config/config-validator.js +632 -0
- package/dist/config/config-validator.js.map +1 -0
- package/dist/config/defaults.d.ts +8 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +26 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +10 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +10 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/types.d.ts +47 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +7 -0
- package/dist/config/types.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest/exporter.d.ts +21 -0
- package/dist/manifest/exporter.d.ts.map +1 -0
- package/dist/manifest/exporter.js +339 -0
- package/dist/manifest/exporter.js.map +1 -0
- package/dist/manifest/index.d.ts +14 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +15 -0
- package/dist/manifest/index.js.map +1 -0
- package/dist/manifest/manifest-store.d.ts +111 -0
- package/dist/manifest/manifest-store.d.ts.map +1 -0
- package/dist/manifest/manifest-store.js +418 -0
- package/dist/manifest/manifest-store.js.map +1 -0
- package/dist/manifest/types.d.ts +238 -0
- package/dist/manifest/types.d.ts.map +1 -0
- package/dist/manifest/types.js +11 -0
- package/dist/manifest/types.js.map +1 -0
- package/dist/matcher/confidence-scorer.d.ts +188 -0
- package/dist/matcher/confidence-scorer.d.ts.map +1 -0
- package/dist/matcher/confidence-scorer.js +302 -0
- package/dist/matcher/confidence-scorer.js.map +1 -0
- package/dist/matcher/index.d.ts +24 -0
- package/dist/matcher/index.d.ts.map +1 -0
- package/dist/matcher/index.js +26 -0
- package/dist/matcher/index.js.map +1 -0
- package/dist/matcher/outlier-detector.d.ts +252 -0
- package/dist/matcher/outlier-detector.d.ts.map +1 -0
- package/dist/matcher/outlier-detector.js +544 -0
- package/dist/matcher/outlier-detector.js.map +1 -0
- package/dist/matcher/pattern-matcher.d.ts +169 -0
- package/dist/matcher/pattern-matcher.d.ts.map +1 -0
- package/dist/matcher/pattern-matcher.js +692 -0
- package/dist/matcher/pattern-matcher.js.map +1 -0
- package/dist/matcher/types.d.ts +476 -0
- package/dist/matcher/types.d.ts.map +1 -0
- package/dist/matcher/types.js +36 -0
- package/dist/matcher/types.js.map +1 -0
- package/dist/parsers/base-parser.d.ts +282 -0
- package/dist/parsers/base-parser.d.ts.map +1 -0
- package/dist/parsers/base-parser.js +421 -0
- package/dist/parsers/base-parser.js.map +1 -0
- package/dist/parsers/css-parser.d.ts +225 -0
- package/dist/parsers/css-parser.d.ts.map +1 -0
- package/dist/parsers/css-parser.js +477 -0
- package/dist/parsers/css-parser.js.map +1 -0
- package/dist/parsers/index.d.ts +15 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +15 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/json-parser.d.ts +219 -0
- package/dist/parsers/json-parser.d.ts.map +1 -0
- package/dist/parsers/json-parser.js +602 -0
- package/dist/parsers/json-parser.js.map +1 -0
- package/dist/parsers/markdown-parser.d.ts +276 -0
- package/dist/parsers/markdown-parser.d.ts.map +1 -0
- package/dist/parsers/markdown-parser.js +731 -0
- package/dist/parsers/markdown-parser.js.map +1 -0
- package/dist/parsers/parser-manager.d.ts +294 -0
- package/dist/parsers/parser-manager.d.ts.map +1 -0
- package/dist/parsers/parser-manager.js +738 -0
- package/dist/parsers/parser-manager.js.map +1 -0
- package/dist/parsers/python-parser.d.ts +204 -0
- package/dist/parsers/python-parser.d.ts.map +1 -0
- package/dist/parsers/python-parser.js +517 -0
- package/dist/parsers/python-parser.js.map +1 -0
- package/dist/parsers/types.d.ts +43 -0
- package/dist/parsers/types.d.ts.map +1 -0
- package/dist/parsers/types.js +7 -0
- package/dist/parsers/types.js.map +1 -0
- package/dist/parsers/typescript-parser.d.ts +264 -0
- package/dist/parsers/typescript-parser.d.ts.map +1 -0
- package/dist/parsers/typescript-parser.js +658 -0
- package/dist/parsers/typescript-parser.js.map +1 -0
- package/dist/rules/evaluator.d.ts +305 -0
- package/dist/rules/evaluator.d.ts.map +1 -0
- package/dist/rules/evaluator.js +579 -0
- package/dist/rules/evaluator.js.map +1 -0
- package/dist/rules/index.d.ts +13 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +13 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/quick-fix-generator.d.ts +334 -0
- package/dist/rules/quick-fix-generator.d.ts.map +1 -0
- package/dist/rules/quick-fix-generator.js +1075 -0
- package/dist/rules/quick-fix-generator.js.map +1 -0
- package/dist/rules/rule-engine.d.ts +241 -0
- package/dist/rules/rule-engine.d.ts.map +1 -0
- package/dist/rules/rule-engine.js +585 -0
- package/dist/rules/rule-engine.js.map +1 -0
- package/dist/rules/severity-manager.d.ts +394 -0
- package/dist/rules/severity-manager.d.ts.map +1 -0
- package/dist/rules/severity-manager.js +619 -0
- package/dist/rules/severity-manager.js.map +1 -0
- package/dist/rules/types.d.ts +370 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +133 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/rules/variant-manager.d.ts +388 -0
- package/dist/rules/variant-manager.d.ts.map +1 -0
- package/dist/rules/variant-manager.js +777 -0
- package/dist/rules/variant-manager.js.map +1 -0
- package/dist/scanner/change-detector.d.ts +164 -0
- package/dist/scanner/change-detector.d.ts.map +1 -0
- package/dist/scanner/change-detector.js +263 -0
- package/dist/scanner/change-detector.js.map +1 -0
- package/dist/scanner/dependency-graph.d.ts +270 -0
- package/dist/scanner/dependency-graph.d.ts.map +1 -0
- package/dist/scanner/dependency-graph.js +436 -0
- package/dist/scanner/dependency-graph.js.map +1 -0
- package/dist/scanner/file-walker.d.ts +127 -0
- package/dist/scanner/file-walker.d.ts.map +1 -0
- package/dist/scanner/file-walker.js +526 -0
- package/dist/scanner/file-walker.js.map +1 -0
- package/dist/scanner/index.d.ts +12 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +12 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/types.d.ts +218 -0
- package/dist/scanner/types.d.ts.map +1 -0
- package/dist/scanner/types.js +10 -0
- package/dist/scanner/types.js.map +1 -0
- package/dist/scanner/worker-pool.d.ts +317 -0
- package/dist/scanner/worker-pool.d.ts.map +1 -0
- package/dist/scanner/worker-pool.js +571 -0
- package/dist/scanner/worker-pool.js.map +1 -0
- package/dist/store/cache-manager.d.ts +179 -0
- package/dist/store/cache-manager.d.ts.map +1 -0
- package/dist/store/cache-manager.js +391 -0
- package/dist/store/cache-manager.js.map +1 -0
- package/dist/store/history-store.d.ts +314 -0
- package/dist/store/history-store.d.ts.map +1 -0
- package/dist/store/history-store.js +707 -0
- package/dist/store/history-store.js.map +1 -0
- package/dist/store/index.d.ts +20 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +26 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/lock-file-manager.d.ts +202 -0
- package/dist/store/lock-file-manager.d.ts.map +1 -0
- package/dist/store/lock-file-manager.js +475 -0
- package/dist/store/lock-file-manager.js.map +1 -0
- package/dist/store/pattern-store.d.ts +289 -0
- package/dist/store/pattern-store.d.ts.map +1 -0
- package/dist/store/pattern-store.js +936 -0
- package/dist/store/pattern-store.js.map +1 -0
- package/dist/store/schema-validator.d.ts +159 -0
- package/dist/store/schema-validator.d.ts.map +1 -0
- package/dist/store/schema-validator.js +1096 -0
- package/dist/store/schema-validator.js.map +1 -0
- package/dist/store/types.d.ts +585 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/store/types.js +82 -0
- package/dist/store/types.js.map +1 -0
- package/dist/types/analysis.d.ts +19 -0
- package/dist/types/analysis.d.ts.map +1 -0
- package/dist/types/analysis.js +5 -0
- package/dist/types/analysis.js.map +1 -0
- package/dist/types/common.d.ts +7 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +5 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/patterns.d.ts +40 -0
- package/dist/types/patterns.d.ts.map +1 -0
- package/dist/types/patterns.js +7 -0
- package/dist/types/patterns.js.map +1 -0
- package/dist/types/violations.d.ts +7 -0
- package/dist/types/violations.d.ts.map +1 -0
- package/dist/types/violations.js +7 -0
- package/dist/types/violations.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Severity Manager - Severity handling
|
|
3
|
+
*
|
|
4
|
+
* Manages default severity per category, config overrides,
|
|
5
|
+
* and severity escalation logic. Provides methods to get effective
|
|
6
|
+
* severity for patterns, check if severity blocks, apply escalation
|
|
7
|
+
* rules, and sort violations by severity.
|
|
8
|
+
*
|
|
9
|
+
* @requirements 24.1 - THE Enforcement_System SHALL support severity levels: error, warning, info, hint
|
|
10
|
+
* @requirements 24.2 - WHEN severity is error, THE Violation SHALL block commits and merges
|
|
11
|
+
* @requirements 24.3 - WHEN severity is warning, THE Violation SHALL be displayed but not block
|
|
12
|
+
* @requirements 24.4 - THE Enforcement_System SHALL allow severity overrides per pattern in config
|
|
13
|
+
* @requirements 24.5 - THE Enforcement_System SHALL support severity escalation after N violations
|
|
14
|
+
*/
|
|
15
|
+
import type { PatternCategory, Severity } from '../store/types.js';
|
|
16
|
+
import type { Violation, SeverityConfig, SeverityEscalationConfig, SeverityEscalationRule } from './types.js';
|
|
17
|
+
/**
|
|
18
|
+
* Default severity levels per pattern category
|
|
19
|
+
*
|
|
20
|
+
* Security and auth patterns default to error (blocking)
|
|
21
|
+
* Most patterns default to warning (non-blocking)
|
|
22
|
+
* Documentation and hints default to info/hint
|
|
23
|
+
*
|
|
24
|
+
* @requirements 24.1 - Support severity levels: error, warning, info, hint
|
|
25
|
+
*/
|
|
26
|
+
export declare const DEFAULT_CATEGORY_SEVERITY: Record<PatternCategory, Severity>;
|
|
27
|
+
/**
|
|
28
|
+
* Default escalation rules
|
|
29
|
+
*
|
|
30
|
+
* @requirements 24.5 - Support severity escalation after N violations
|
|
31
|
+
*/
|
|
32
|
+
export declare const DEFAULT_ESCALATION_RULES: SeverityEscalationRule[];
|
|
33
|
+
/**
|
|
34
|
+
* Configuration options for the SeverityManager
|
|
35
|
+
*/
|
|
36
|
+
export interface SeverityManagerConfig {
|
|
37
|
+
/** Default severity for patterns without explicit configuration */
|
|
38
|
+
defaultSeverity: Severity;
|
|
39
|
+
/** Severity overrides by pattern ID */
|
|
40
|
+
patternOverrides: Record<string, Severity>;
|
|
41
|
+
/** Severity overrides by category */
|
|
42
|
+
categoryOverrides: Record<string, Severity>;
|
|
43
|
+
/** Escalation configuration */
|
|
44
|
+
escalation: SeverityEscalationConfig;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Default SeverityManager configuration
|
|
48
|
+
*/
|
|
49
|
+
export declare const DEFAULT_SEVERITY_MANAGER_CONFIG: SeverityManagerConfig;
|
|
50
|
+
/**
|
|
51
|
+
* Tracks violation counts for escalation purposes
|
|
52
|
+
*/
|
|
53
|
+
export interface ViolationCounts {
|
|
54
|
+
/** Violation count by pattern ID */
|
|
55
|
+
byPattern: Record<string, number>;
|
|
56
|
+
/** Violation count by category */
|
|
57
|
+
byCategory: Record<string, number>;
|
|
58
|
+
/** Total violation count */
|
|
59
|
+
total: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* SeverityManager class for managing severity levels for patterns.
|
|
63
|
+
*
|
|
64
|
+
* Provides functionality for:
|
|
65
|
+
* - Getting effective severity for a pattern (considering overrides)
|
|
66
|
+
* - Checking if a severity level blocks commits/merges
|
|
67
|
+
* - Applying severity escalation rules
|
|
68
|
+
* - Sorting violations by severity
|
|
69
|
+
*
|
|
70
|
+
* @requirements 24.1, 24.2, 24.3, 24.4, 24.5
|
|
71
|
+
*/
|
|
72
|
+
export declare class SeverityManager {
|
|
73
|
+
private config;
|
|
74
|
+
private violationCounts;
|
|
75
|
+
/**
|
|
76
|
+
* Create a new SeverityManager instance.
|
|
77
|
+
*
|
|
78
|
+
* @param config - Optional custom configuration
|
|
79
|
+
*/
|
|
80
|
+
constructor(config?: Partial<SeverityManagerConfig>);
|
|
81
|
+
/**
|
|
82
|
+
* Get the effective severity for a pattern.
|
|
83
|
+
*
|
|
84
|
+
* Priority order:
|
|
85
|
+
* 1. Pattern-specific override (highest priority)
|
|
86
|
+
* 2. Category override
|
|
87
|
+
* 3. Default category severity
|
|
88
|
+
* 4. Default severity (lowest priority)
|
|
89
|
+
*
|
|
90
|
+
* @param patternId - The pattern ID
|
|
91
|
+
* @param category - The pattern category
|
|
92
|
+
* @returns The effective severity level
|
|
93
|
+
*
|
|
94
|
+
* @requirements 24.4 - Allow severity overrides per pattern in config
|
|
95
|
+
*/
|
|
96
|
+
getEffectiveSeverity(patternId: string, category: PatternCategory): Severity;
|
|
97
|
+
/**
|
|
98
|
+
* Get the effective severity with escalation applied.
|
|
99
|
+
*
|
|
100
|
+
* Applies escalation rules based on violation counts.
|
|
101
|
+
*
|
|
102
|
+
* @param patternId - The pattern ID
|
|
103
|
+
* @param category - The pattern category
|
|
104
|
+
* @returns The effective severity level (potentially escalated)
|
|
105
|
+
*
|
|
106
|
+
* @requirements 24.5 - Support severity escalation after N violations
|
|
107
|
+
*/
|
|
108
|
+
getEffectiveSeverityWithEscalation(patternId: string, category: PatternCategory): Severity;
|
|
109
|
+
/**
|
|
110
|
+
* Check if a severity level blocks commits and merges.
|
|
111
|
+
*
|
|
112
|
+
* Only 'error' severity blocks.
|
|
113
|
+
*
|
|
114
|
+
* @param severity - The severity level to check
|
|
115
|
+
* @returns True if the severity blocks, false otherwise
|
|
116
|
+
*
|
|
117
|
+
* @requirements 24.2 - WHEN severity is error, THE Violation SHALL block commits and merges
|
|
118
|
+
* @requirements 24.3 - WHEN severity is warning, THE Violation SHALL be displayed but not block
|
|
119
|
+
*/
|
|
120
|
+
isBlocking(severity: Severity): boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Check if any violations in a list are blocking.
|
|
123
|
+
*
|
|
124
|
+
* @param violations - Array of violations to check
|
|
125
|
+
* @returns True if any violation has blocking severity
|
|
126
|
+
*
|
|
127
|
+
* @requirements 24.2 - Error severity blocks commits and merges
|
|
128
|
+
*/
|
|
129
|
+
hasBlockingViolations(violations: Violation[]): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Get the count of blocking violations.
|
|
132
|
+
*
|
|
133
|
+
* @param violations - Array of violations to check
|
|
134
|
+
* @returns Number of violations with blocking severity
|
|
135
|
+
*/
|
|
136
|
+
getBlockingViolationCount(violations: Violation[]): number;
|
|
137
|
+
/**
|
|
138
|
+
* Apply escalation rules to a severity level.
|
|
139
|
+
*
|
|
140
|
+
* Checks violation counts and applies escalation rules if thresholds are met.
|
|
141
|
+
*
|
|
142
|
+
* @param baseSeverity - The base severity level
|
|
143
|
+
* @param patternId - The pattern ID
|
|
144
|
+
* @param category - The pattern category
|
|
145
|
+
* @returns The escalated severity level
|
|
146
|
+
*
|
|
147
|
+
* @requirements 24.5 - Support severity escalation after N violations
|
|
148
|
+
*/
|
|
149
|
+
applyEscalation(baseSeverity: Severity, patternId: string, category: PatternCategory): Severity;
|
|
150
|
+
/**
|
|
151
|
+
* Find the applicable escalation rule for a severity and count.
|
|
152
|
+
*
|
|
153
|
+
* @param severity - The current severity level
|
|
154
|
+
* @param violationCount - The number of violations
|
|
155
|
+
* @returns The applicable escalation rule, or null if none applies
|
|
156
|
+
*/
|
|
157
|
+
private findApplicableEscalationRule;
|
|
158
|
+
/**
|
|
159
|
+
* Record a violation for escalation tracking.
|
|
160
|
+
*
|
|
161
|
+
* @param patternId - The pattern ID
|
|
162
|
+
* @param category - The pattern category
|
|
163
|
+
*/
|
|
164
|
+
recordViolation(patternId: string, category: PatternCategory): void;
|
|
165
|
+
/**
|
|
166
|
+
* Record multiple violations for escalation tracking.
|
|
167
|
+
*
|
|
168
|
+
* @param violations - Array of violations to record
|
|
169
|
+
* @param categoryMap - Map of pattern ID to category
|
|
170
|
+
*/
|
|
171
|
+
recordViolations(violations: Violation[], categoryMap: Record<string, PatternCategory>): void;
|
|
172
|
+
/**
|
|
173
|
+
* Reset violation counts.
|
|
174
|
+
*/
|
|
175
|
+
resetViolationCounts(): void;
|
|
176
|
+
/**
|
|
177
|
+
* Get current violation counts.
|
|
178
|
+
*
|
|
179
|
+
* @returns Copy of current violation counts
|
|
180
|
+
*/
|
|
181
|
+
getViolationCounts(): ViolationCounts;
|
|
182
|
+
/**
|
|
183
|
+
* Sort violations by severity (most severe first).
|
|
184
|
+
*
|
|
185
|
+
* Errors come before warnings, warnings before info, info before hints.
|
|
186
|
+
*
|
|
187
|
+
* @param violations - Array of violations to sort
|
|
188
|
+
* @returns New array sorted by severity (descending)
|
|
189
|
+
*
|
|
190
|
+
* @requirements 24.1 - Support severity levels: error, warning, info, hint
|
|
191
|
+
*/
|
|
192
|
+
sortBySeverity(violations: Violation[]): Violation[];
|
|
193
|
+
/**
|
|
194
|
+
* Sort violations by severity (least severe first).
|
|
195
|
+
*
|
|
196
|
+
* @param violations - Array of violations to sort
|
|
197
|
+
* @returns New array sorted by severity (ascending)
|
|
198
|
+
*/
|
|
199
|
+
sortBySeverityAscending(violations: Violation[]): Violation[];
|
|
200
|
+
/**
|
|
201
|
+
* Group violations by severity level.
|
|
202
|
+
*
|
|
203
|
+
* @param violations - Array of violations to group
|
|
204
|
+
* @returns Object with violations grouped by severity
|
|
205
|
+
*/
|
|
206
|
+
groupBySeverity(violations: Violation[]): Record<Severity, Violation[]>;
|
|
207
|
+
/**
|
|
208
|
+
* Filter violations by minimum severity level.
|
|
209
|
+
*
|
|
210
|
+
* @param violations - Array of violations to filter
|
|
211
|
+
* @param minSeverity - Minimum severity level to include
|
|
212
|
+
* @returns Filtered array of violations
|
|
213
|
+
*/
|
|
214
|
+
filterByMinSeverity(violations: Violation[], minSeverity: Severity): Violation[];
|
|
215
|
+
/**
|
|
216
|
+
* Filter violations by maximum severity level.
|
|
217
|
+
*
|
|
218
|
+
* @param violations - Array of violations to filter
|
|
219
|
+
* @param maxSeverity - Maximum severity level to include
|
|
220
|
+
* @returns Filtered array of violations
|
|
221
|
+
*/
|
|
222
|
+
filterByMaxSeverity(violations: Violation[], maxSeverity: Severity): Violation[];
|
|
223
|
+
/**
|
|
224
|
+
* Compare two severity levels.
|
|
225
|
+
*
|
|
226
|
+
* @param a - First severity level
|
|
227
|
+
* @param b - Second severity level
|
|
228
|
+
* @returns Negative if a < b, positive if a > b, 0 if equal
|
|
229
|
+
*/
|
|
230
|
+
compareSeverity(a: Severity, b: Severity): number;
|
|
231
|
+
/**
|
|
232
|
+
* Check if severity a is more severe than severity b.
|
|
233
|
+
*
|
|
234
|
+
* @param a - First severity level
|
|
235
|
+
* @param b - Second severity level
|
|
236
|
+
* @returns True if a is more severe than b
|
|
237
|
+
*/
|
|
238
|
+
isMoreSevere(a: Severity, b: Severity): boolean;
|
|
239
|
+
/**
|
|
240
|
+
* Check if severity a is less severe than severity b.
|
|
241
|
+
*
|
|
242
|
+
* @param a - First severity level
|
|
243
|
+
* @param b - Second severity level
|
|
244
|
+
* @returns True if a is less severe than b
|
|
245
|
+
*/
|
|
246
|
+
isLessSevere(a: Severity, b: Severity): boolean;
|
|
247
|
+
/**
|
|
248
|
+
* Get the most severe severity from a list.
|
|
249
|
+
*
|
|
250
|
+
* @param severities - Array of severity levels
|
|
251
|
+
* @returns The most severe level, or 'hint' if empty
|
|
252
|
+
*/
|
|
253
|
+
getMostSevere(severities: Severity[]): Severity;
|
|
254
|
+
/**
|
|
255
|
+
* Get the least severe severity from a list.
|
|
256
|
+
*
|
|
257
|
+
* @param severities - Array of severity levels
|
|
258
|
+
* @returns The least severe level, or 'error' if empty
|
|
259
|
+
*/
|
|
260
|
+
getLeastSevere(severities: Severity[]): Severity;
|
|
261
|
+
/**
|
|
262
|
+
* Set a pattern-specific severity override.
|
|
263
|
+
*
|
|
264
|
+
* @param patternId - The pattern ID
|
|
265
|
+
* @param severity - The severity level to set
|
|
266
|
+
*
|
|
267
|
+
* @requirements 24.4 - Allow severity overrides per pattern in config
|
|
268
|
+
*/
|
|
269
|
+
setPatternOverride(patternId: string, severity: Severity): void;
|
|
270
|
+
/**
|
|
271
|
+
* Remove a pattern-specific severity override.
|
|
272
|
+
*
|
|
273
|
+
* @param patternId - The pattern ID
|
|
274
|
+
*/
|
|
275
|
+
removePatternOverride(patternId: string): void;
|
|
276
|
+
/**
|
|
277
|
+
* Set a category severity override.
|
|
278
|
+
*
|
|
279
|
+
* @param category - The pattern category
|
|
280
|
+
* @param severity - The severity level to set
|
|
281
|
+
*
|
|
282
|
+
* @requirements 24.4 - Allow severity overrides per pattern in config
|
|
283
|
+
*/
|
|
284
|
+
setCategoryOverride(category: PatternCategory, severity: Severity): void;
|
|
285
|
+
/**
|
|
286
|
+
* Remove a category severity override.
|
|
287
|
+
*
|
|
288
|
+
* @param category - The pattern category
|
|
289
|
+
*/
|
|
290
|
+
removeCategoryOverride(category: PatternCategory): void;
|
|
291
|
+
/**
|
|
292
|
+
* Enable or disable escalation.
|
|
293
|
+
*
|
|
294
|
+
* @param enabled - Whether escalation should be enabled
|
|
295
|
+
*
|
|
296
|
+
* @requirements 24.5 - Support severity escalation after N violations
|
|
297
|
+
*/
|
|
298
|
+
setEscalationEnabled(enabled: boolean): void;
|
|
299
|
+
/**
|
|
300
|
+
* Set escalation threshold.
|
|
301
|
+
*
|
|
302
|
+
* @param threshold - Number of violations before escalation
|
|
303
|
+
*
|
|
304
|
+
* @requirements 24.5 - Support severity escalation after N violations
|
|
305
|
+
*/
|
|
306
|
+
setEscalationThreshold(threshold: number): void;
|
|
307
|
+
/**
|
|
308
|
+
* Set escalation rules.
|
|
309
|
+
*
|
|
310
|
+
* @param rules - Array of escalation rules
|
|
311
|
+
*
|
|
312
|
+
* @requirements 24.5 - Support severity escalation after N violations
|
|
313
|
+
*/
|
|
314
|
+
setEscalationRules(rules: SeverityEscalationRule[]): void;
|
|
315
|
+
/**
|
|
316
|
+
* Add an escalation rule.
|
|
317
|
+
*
|
|
318
|
+
* @param rule - The escalation rule to add
|
|
319
|
+
*
|
|
320
|
+
* @requirements 24.5 - Support severity escalation after N violations
|
|
321
|
+
*/
|
|
322
|
+
addEscalationRule(rule: SeverityEscalationRule): void;
|
|
323
|
+
/**
|
|
324
|
+
* Get the current configuration.
|
|
325
|
+
*
|
|
326
|
+
* @returns Copy of current configuration
|
|
327
|
+
*/
|
|
328
|
+
getConfig(): SeverityManagerConfig;
|
|
329
|
+
/**
|
|
330
|
+
* Create a SeverityConfig object from current state.
|
|
331
|
+
*
|
|
332
|
+
* @returns SeverityConfig object
|
|
333
|
+
*/
|
|
334
|
+
toSeverityConfig(): SeverityConfig;
|
|
335
|
+
/**
|
|
336
|
+
* Create a SeverityManager from a SeverityConfig object.
|
|
337
|
+
*
|
|
338
|
+
* @param config - The SeverityConfig to use
|
|
339
|
+
* @returns New SeverityManager instance
|
|
340
|
+
*/
|
|
341
|
+
static fromSeverityConfig(config: SeverityConfig): SeverityManager;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Get the default severity for a category.
|
|
345
|
+
*
|
|
346
|
+
* @param category - The pattern category
|
|
347
|
+
* @returns The default severity for the category
|
|
348
|
+
*/
|
|
349
|
+
export declare function getDefaultCategorySeverity(category: PatternCategory): Severity;
|
|
350
|
+
/**
|
|
351
|
+
* Check if a severity level is blocking.
|
|
352
|
+
*
|
|
353
|
+
* @param severity - The severity level to check
|
|
354
|
+
* @returns True if the severity blocks commits/merges
|
|
355
|
+
*
|
|
356
|
+
* @requirements 24.2 - Error severity blocks commits and merges
|
|
357
|
+
*/
|
|
358
|
+
export declare function isBlockingSeverity(severity: Severity): boolean;
|
|
359
|
+
/**
|
|
360
|
+
* Compare two severity levels.
|
|
361
|
+
*
|
|
362
|
+
* @param a - First severity level
|
|
363
|
+
* @param b - Second severity level
|
|
364
|
+
* @returns Negative if a < b, positive if a > b, 0 if equal
|
|
365
|
+
*/
|
|
366
|
+
export declare function compareSeverity(a: Severity, b: Severity): number;
|
|
367
|
+
/**
|
|
368
|
+
* Sort violations by severity (most severe first).
|
|
369
|
+
*
|
|
370
|
+
* @param violations - Array of violations to sort
|
|
371
|
+
* @returns New array sorted by severity (descending)
|
|
372
|
+
*/
|
|
373
|
+
export declare function sortViolationsBySeverity(violations: Violation[]): Violation[];
|
|
374
|
+
/**
|
|
375
|
+
* Get severity summary from violations.
|
|
376
|
+
*
|
|
377
|
+
* @param violations - Array of violations
|
|
378
|
+
* @returns Object with counts by severity
|
|
379
|
+
*/
|
|
380
|
+
export declare function getSeveritySummary(violations: Violation[]): Record<Severity, number>;
|
|
381
|
+
/**
|
|
382
|
+
* Create a SeverityManager with default configuration.
|
|
383
|
+
*
|
|
384
|
+
* @returns New SeverityManager instance with defaults
|
|
385
|
+
*/
|
|
386
|
+
export declare function createSeverityManager(): SeverityManager;
|
|
387
|
+
/**
|
|
388
|
+
* Create a SeverityManager from DriftConfig severity settings.
|
|
389
|
+
*
|
|
390
|
+
* @param severityOverrides - Severity overrides from config
|
|
391
|
+
* @returns New SeverityManager instance
|
|
392
|
+
*/
|
|
393
|
+
export declare function createSeverityManagerFromConfig(severityOverrides?: Record<string, Severity>): SeverityManager;
|
|
394
|
+
//# sourceMappingURL=severity-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"severity-manager.d.ts","sourceRoot":"","sources":["../../src/rules/severity-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAOpB;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,eAAe,EAAE,QAAQ,CAgBvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,sBAAsB,EAI5D,CAAC;AAMF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,eAAe,EAAE,QAAQ,CAAC;IAE1B,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE3C,qCAAqC;IACrC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE5C,+BAA+B;IAC/B,UAAU,EAAE,wBAAwB,CAAC;CACtC;AAED;;GAEG;AACH,eAAO,MAAM,+BAA+B,EAAE,qBAS7C,CAAC;AAMF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;;;;;;;GAUG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,eAAe,CAAkB;IAEzC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAoBnD;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,QAAQ;IAoB5E;;;;;;;;;;OAUG;IACH,kCAAkC,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,GACxB,QAAQ;IAUX;;;;;;;;;;OAUG;IACH,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAIvC;;;;;;;OAOG;IACH,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO;IAIvD;;;;;OAKG;IACH,yBAAyB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM;IAI1D;;;;;;;;;;;OAWG;IACH,eAAe,CACb,YAAY,EAAE,QAAQ,EACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,GACxB,QAAQ;IAyBX;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B;IAoBpC;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAQnE;;;;;OAKG;IACH,gBAAgB,CACd,UAAU,EAAE,SAAS,EAAE,EACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAC3C,IAAI;IASP;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAQ5B;;;;OAIG;IACH,kBAAkB,IAAI,eAAe;IAQrC;;;;;;;;;OASG;IACH,cAAc,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAQpD;;;;;OAKG;IACH,uBAAuB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAQ7D;;;;;OAKG;IACH,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC;IAevE;;;;;;OAMG;IACH,mBAAmB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,EAAE;IAKhF;;;;;;OAMG;IACH,mBAAmB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,EAAE;IAKhF;;;;;;OAMG;IACH,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM;IAIjD;;;;;;OAMG;IACH,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO;IAI/C;;;;;;OAMG;IACH,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO;IAI/C;;;;;OAKG;IACH,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,QAAQ;IAU/C;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,QAAQ;IAUhD;;;;;;;OAOG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAI/D;;;;OAIG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;;;;OAOG;IACH,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIxE;;;;OAIG;IACH,sBAAsB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAIvD;;;;;;OAMG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI5C;;;;;;OAMG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI/C;;;;;;OAMG;IACH,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAIzD;;;;;;OAMG;IACH,iBAAiB,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI;IAIrD;;;;OAIG;IACH,SAAS,IAAI,qBAAqB;IAYlC;;;;OAIG;IACH,gBAAgB,IAAI,cAAc;IAYlC;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe;CAanE;AAMD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,eAAe,GAAG,QAAQ,CAE9E;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAE9D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAI7E;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,SAAS,EAAE,GACtB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAa1B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC3C,eAAe,CAIjB"}
|