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.
Files changed (221) hide show
  1. package/dist/analyzers/ast-analyzer.d.ts +251 -0
  2. package/dist/analyzers/ast-analyzer.d.ts.map +1 -0
  3. package/dist/analyzers/ast-analyzer.js +548 -0
  4. package/dist/analyzers/ast-analyzer.js.map +1 -0
  5. package/dist/analyzers/flow-analyzer.d.ts +241 -0
  6. package/dist/analyzers/flow-analyzer.d.ts.map +1 -0
  7. package/dist/analyzers/flow-analyzer.js +1219 -0
  8. package/dist/analyzers/flow-analyzer.js.map +1 -0
  9. package/dist/analyzers/index.d.ts +18 -0
  10. package/dist/analyzers/index.d.ts.map +1 -0
  11. package/dist/analyzers/index.js +19 -0
  12. package/dist/analyzers/index.js.map +1 -0
  13. package/dist/analyzers/semantic-analyzer.d.ts +252 -0
  14. package/dist/analyzers/semantic-analyzer.d.ts.map +1 -0
  15. package/dist/analyzers/semantic-analyzer.js +1182 -0
  16. package/dist/analyzers/semantic-analyzer.js.map +1 -0
  17. package/dist/analyzers/type-analyzer.d.ts +289 -0
  18. package/dist/analyzers/type-analyzer.d.ts.map +1 -0
  19. package/dist/analyzers/type-analyzer.js +1269 -0
  20. package/dist/analyzers/type-analyzer.js.map +1 -0
  21. package/dist/analyzers/types.d.ts +537 -0
  22. package/dist/analyzers/types.d.ts.map +1 -0
  23. package/dist/analyzers/types.js +11 -0
  24. package/dist/analyzers/types.js.map +1 -0
  25. package/dist/config/config-loader.d.ts +166 -0
  26. package/dist/config/config-loader.d.ts.map +1 -0
  27. package/dist/config/config-loader.js +429 -0
  28. package/dist/config/config-loader.js.map +1 -0
  29. package/dist/config/config-validator.d.ts +204 -0
  30. package/dist/config/config-validator.d.ts.map +1 -0
  31. package/dist/config/config-validator.js +632 -0
  32. package/dist/config/config-validator.js.map +1 -0
  33. package/dist/config/defaults.d.ts +8 -0
  34. package/dist/config/defaults.d.ts.map +1 -0
  35. package/dist/config/defaults.js +26 -0
  36. package/dist/config/defaults.js.map +1 -0
  37. package/dist/config/index.d.ts +10 -0
  38. package/dist/config/index.d.ts.map +1 -0
  39. package/dist/config/index.js +10 -0
  40. package/dist/config/index.js.map +1 -0
  41. package/dist/config/types.d.ts +47 -0
  42. package/dist/config/types.d.ts.map +1 -0
  43. package/dist/config/types.js +7 -0
  44. package/dist/config/types.js.map +1 -0
  45. package/dist/index.d.ts +37 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +39 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/manifest/exporter.d.ts +21 -0
  50. package/dist/manifest/exporter.d.ts.map +1 -0
  51. package/dist/manifest/exporter.js +339 -0
  52. package/dist/manifest/exporter.js.map +1 -0
  53. package/dist/manifest/index.d.ts +14 -0
  54. package/dist/manifest/index.d.ts.map +1 -0
  55. package/dist/manifest/index.js +15 -0
  56. package/dist/manifest/index.js.map +1 -0
  57. package/dist/manifest/manifest-store.d.ts +111 -0
  58. package/dist/manifest/manifest-store.d.ts.map +1 -0
  59. package/dist/manifest/manifest-store.js +418 -0
  60. package/dist/manifest/manifest-store.js.map +1 -0
  61. package/dist/manifest/types.d.ts +238 -0
  62. package/dist/manifest/types.d.ts.map +1 -0
  63. package/dist/manifest/types.js +11 -0
  64. package/dist/manifest/types.js.map +1 -0
  65. package/dist/matcher/confidence-scorer.d.ts +188 -0
  66. package/dist/matcher/confidence-scorer.d.ts.map +1 -0
  67. package/dist/matcher/confidence-scorer.js +302 -0
  68. package/dist/matcher/confidence-scorer.js.map +1 -0
  69. package/dist/matcher/index.d.ts +24 -0
  70. package/dist/matcher/index.d.ts.map +1 -0
  71. package/dist/matcher/index.js +26 -0
  72. package/dist/matcher/index.js.map +1 -0
  73. package/dist/matcher/outlier-detector.d.ts +252 -0
  74. package/dist/matcher/outlier-detector.d.ts.map +1 -0
  75. package/dist/matcher/outlier-detector.js +544 -0
  76. package/dist/matcher/outlier-detector.js.map +1 -0
  77. package/dist/matcher/pattern-matcher.d.ts +169 -0
  78. package/dist/matcher/pattern-matcher.d.ts.map +1 -0
  79. package/dist/matcher/pattern-matcher.js +692 -0
  80. package/dist/matcher/pattern-matcher.js.map +1 -0
  81. package/dist/matcher/types.d.ts +476 -0
  82. package/dist/matcher/types.d.ts.map +1 -0
  83. package/dist/matcher/types.js +36 -0
  84. package/dist/matcher/types.js.map +1 -0
  85. package/dist/parsers/base-parser.d.ts +282 -0
  86. package/dist/parsers/base-parser.d.ts.map +1 -0
  87. package/dist/parsers/base-parser.js +421 -0
  88. package/dist/parsers/base-parser.js.map +1 -0
  89. package/dist/parsers/css-parser.d.ts +225 -0
  90. package/dist/parsers/css-parser.d.ts.map +1 -0
  91. package/dist/parsers/css-parser.js +477 -0
  92. package/dist/parsers/css-parser.js.map +1 -0
  93. package/dist/parsers/index.d.ts +15 -0
  94. package/dist/parsers/index.d.ts.map +1 -0
  95. package/dist/parsers/index.js +15 -0
  96. package/dist/parsers/index.js.map +1 -0
  97. package/dist/parsers/json-parser.d.ts +219 -0
  98. package/dist/parsers/json-parser.d.ts.map +1 -0
  99. package/dist/parsers/json-parser.js +602 -0
  100. package/dist/parsers/json-parser.js.map +1 -0
  101. package/dist/parsers/markdown-parser.d.ts +276 -0
  102. package/dist/parsers/markdown-parser.d.ts.map +1 -0
  103. package/dist/parsers/markdown-parser.js +731 -0
  104. package/dist/parsers/markdown-parser.js.map +1 -0
  105. package/dist/parsers/parser-manager.d.ts +294 -0
  106. package/dist/parsers/parser-manager.d.ts.map +1 -0
  107. package/dist/parsers/parser-manager.js +738 -0
  108. package/dist/parsers/parser-manager.js.map +1 -0
  109. package/dist/parsers/python-parser.d.ts +204 -0
  110. package/dist/parsers/python-parser.d.ts.map +1 -0
  111. package/dist/parsers/python-parser.js +517 -0
  112. package/dist/parsers/python-parser.js.map +1 -0
  113. package/dist/parsers/types.d.ts +43 -0
  114. package/dist/parsers/types.d.ts.map +1 -0
  115. package/dist/parsers/types.js +7 -0
  116. package/dist/parsers/types.js.map +1 -0
  117. package/dist/parsers/typescript-parser.d.ts +264 -0
  118. package/dist/parsers/typescript-parser.d.ts.map +1 -0
  119. package/dist/parsers/typescript-parser.js +658 -0
  120. package/dist/parsers/typescript-parser.js.map +1 -0
  121. package/dist/rules/evaluator.d.ts +305 -0
  122. package/dist/rules/evaluator.d.ts.map +1 -0
  123. package/dist/rules/evaluator.js +579 -0
  124. package/dist/rules/evaluator.js.map +1 -0
  125. package/dist/rules/index.d.ts +13 -0
  126. package/dist/rules/index.d.ts.map +1 -0
  127. package/dist/rules/index.js +13 -0
  128. package/dist/rules/index.js.map +1 -0
  129. package/dist/rules/quick-fix-generator.d.ts +334 -0
  130. package/dist/rules/quick-fix-generator.d.ts.map +1 -0
  131. package/dist/rules/quick-fix-generator.js +1075 -0
  132. package/dist/rules/quick-fix-generator.js.map +1 -0
  133. package/dist/rules/rule-engine.d.ts +241 -0
  134. package/dist/rules/rule-engine.d.ts.map +1 -0
  135. package/dist/rules/rule-engine.js +585 -0
  136. package/dist/rules/rule-engine.js.map +1 -0
  137. package/dist/rules/severity-manager.d.ts +394 -0
  138. package/dist/rules/severity-manager.d.ts.map +1 -0
  139. package/dist/rules/severity-manager.js +619 -0
  140. package/dist/rules/severity-manager.js.map +1 -0
  141. package/dist/rules/types.d.ts +370 -0
  142. package/dist/rules/types.d.ts.map +1 -0
  143. package/dist/rules/types.js +133 -0
  144. package/dist/rules/types.js.map +1 -0
  145. package/dist/rules/variant-manager.d.ts +388 -0
  146. package/dist/rules/variant-manager.d.ts.map +1 -0
  147. package/dist/rules/variant-manager.js +777 -0
  148. package/dist/rules/variant-manager.js.map +1 -0
  149. package/dist/scanner/change-detector.d.ts +164 -0
  150. package/dist/scanner/change-detector.d.ts.map +1 -0
  151. package/dist/scanner/change-detector.js +263 -0
  152. package/dist/scanner/change-detector.js.map +1 -0
  153. package/dist/scanner/dependency-graph.d.ts +270 -0
  154. package/dist/scanner/dependency-graph.d.ts.map +1 -0
  155. package/dist/scanner/dependency-graph.js +436 -0
  156. package/dist/scanner/dependency-graph.js.map +1 -0
  157. package/dist/scanner/file-walker.d.ts +127 -0
  158. package/dist/scanner/file-walker.d.ts.map +1 -0
  159. package/dist/scanner/file-walker.js +526 -0
  160. package/dist/scanner/file-walker.js.map +1 -0
  161. package/dist/scanner/index.d.ts +12 -0
  162. package/dist/scanner/index.d.ts.map +1 -0
  163. package/dist/scanner/index.js +12 -0
  164. package/dist/scanner/index.js.map +1 -0
  165. package/dist/scanner/types.d.ts +218 -0
  166. package/dist/scanner/types.d.ts.map +1 -0
  167. package/dist/scanner/types.js +10 -0
  168. package/dist/scanner/types.js.map +1 -0
  169. package/dist/scanner/worker-pool.d.ts +317 -0
  170. package/dist/scanner/worker-pool.d.ts.map +1 -0
  171. package/dist/scanner/worker-pool.js +571 -0
  172. package/dist/scanner/worker-pool.js.map +1 -0
  173. package/dist/store/cache-manager.d.ts +179 -0
  174. package/dist/store/cache-manager.d.ts.map +1 -0
  175. package/dist/store/cache-manager.js +391 -0
  176. package/dist/store/cache-manager.js.map +1 -0
  177. package/dist/store/history-store.d.ts +314 -0
  178. package/dist/store/history-store.d.ts.map +1 -0
  179. package/dist/store/history-store.js +707 -0
  180. package/dist/store/history-store.js.map +1 -0
  181. package/dist/store/index.d.ts +20 -0
  182. package/dist/store/index.d.ts.map +1 -0
  183. package/dist/store/index.js +26 -0
  184. package/dist/store/index.js.map +1 -0
  185. package/dist/store/lock-file-manager.d.ts +202 -0
  186. package/dist/store/lock-file-manager.d.ts.map +1 -0
  187. package/dist/store/lock-file-manager.js +475 -0
  188. package/dist/store/lock-file-manager.js.map +1 -0
  189. package/dist/store/pattern-store.d.ts +289 -0
  190. package/dist/store/pattern-store.d.ts.map +1 -0
  191. package/dist/store/pattern-store.js +936 -0
  192. package/dist/store/pattern-store.js.map +1 -0
  193. package/dist/store/schema-validator.d.ts +159 -0
  194. package/dist/store/schema-validator.d.ts.map +1 -0
  195. package/dist/store/schema-validator.js +1096 -0
  196. package/dist/store/schema-validator.js.map +1 -0
  197. package/dist/store/types.d.ts +585 -0
  198. package/dist/store/types.d.ts.map +1 -0
  199. package/dist/store/types.js +82 -0
  200. package/dist/store/types.js.map +1 -0
  201. package/dist/types/analysis.d.ts +19 -0
  202. package/dist/types/analysis.d.ts.map +1 -0
  203. package/dist/types/analysis.js +5 -0
  204. package/dist/types/analysis.js.map +1 -0
  205. package/dist/types/common.d.ts +7 -0
  206. package/dist/types/common.d.ts.map +1 -0
  207. package/dist/types/common.js +5 -0
  208. package/dist/types/common.js.map +1 -0
  209. package/dist/types/index.d.ts +12 -0
  210. package/dist/types/index.d.ts.map +1 -0
  211. package/dist/types/index.js +10 -0
  212. package/dist/types/index.js.map +1 -0
  213. package/dist/types/patterns.d.ts +40 -0
  214. package/dist/types/patterns.d.ts.map +1 -0
  215. package/dist/types/patterns.js +7 -0
  216. package/dist/types/patterns.js.map +1 -0
  217. package/dist/types/violations.d.ts +7 -0
  218. package/dist/types/violations.d.ts.map +1 -0
  219. package/dist/types/violations.js +7 -0
  220. package/dist/types/violations.js.map +1 -0
  221. 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"}