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,289 @@
1
+ /**
2
+ * Pattern Store - Pattern persistence and querying
3
+ *
4
+ * Loads and saves patterns to .drift/patterns/ directory.
5
+ * Supports querying by category, confidence, and status.
6
+ * Handles pattern state transitions (discovered → approved/ignored).
7
+ *
8
+ * @requirements 4.1 - THE Pattern_Store SHALL persist patterns as JSON in .drift/patterns/ directory
9
+ * @requirements 4.3 - WHEN a pattern is approved, THE Pattern_Store SHALL move it from discovered/ to approved/
10
+ * @requirements 4.6 - THE Pattern_Store SHALL support querying patterns by category, confidence, and status
11
+ */
12
+ import { EventEmitter } from 'node:events';
13
+ import type { Pattern, PatternCategory, PatternStatus, PatternQueryOptions, PatternQueryResult, PatternStoreConfig, PatternStoreStats, ConfidenceLevel } from './types.js';
14
+ /**
15
+ * Error thrown when a pattern is not found
16
+ */
17
+ export declare class PatternNotFoundError extends Error {
18
+ readonly patternId: string;
19
+ readonly category?: PatternCategory | undefined;
20
+ constructor(patternId: string, category?: PatternCategory | undefined);
21
+ }
22
+ /**
23
+ * Error thrown when an invalid state transition is attempted
24
+ */
25
+ export declare class InvalidStateTransitionError extends Error {
26
+ readonly patternId: string;
27
+ readonly fromStatus: PatternStatus;
28
+ readonly toStatus: PatternStatus;
29
+ constructor(patternId: string, fromStatus: PatternStatus, toStatus: PatternStatus);
30
+ }
31
+ /**
32
+ * Error thrown when a pattern store operation fails
33
+ */
34
+ export declare class PatternStoreError extends Error {
35
+ readonly errorCause: Error | undefined;
36
+ constructor(message: string, errorCause?: Error);
37
+ }
38
+ /**
39
+ * Pattern Store - Manages pattern persistence and querying
40
+ *
41
+ * Patterns are stored in .drift/patterns/ directory organized by status:
42
+ * - .drift/patterns/discovered/ - Patterns found but not yet reviewed
43
+ * - .drift/patterns/approved/ - User-approved patterns (enforced)
44
+ * - .drift/patterns/ignored/ - Patterns explicitly ignored by user
45
+ *
46
+ * Each status directory contains JSON files named by category (e.g., structural.json).
47
+ *
48
+ * @requirements 4.1 - Patterns persisted as JSON in .drift/patterns/
49
+ * @requirements 4.3 - Patterns move between status directories on approval/ignore
50
+ * @requirements 4.6 - Patterns queryable by category, confidence, status
51
+ */
52
+ export declare class PatternStore extends EventEmitter {
53
+ private readonly config;
54
+ private readonly patternsDir;
55
+ private patterns;
56
+ private loaded;
57
+ private dirty;
58
+ private saveTimeout;
59
+ constructor(config?: Partial<PatternStoreConfig>);
60
+ /**
61
+ * Initialize the pattern store
62
+ *
63
+ * Creates necessary directories and loads existing patterns.
64
+ */
65
+ initialize(): Promise<void>;
66
+ /**
67
+ * Ensure the directory structure exists
68
+ */
69
+ private ensureDirectoryStructure;
70
+ /**
71
+ * Load all patterns from disk
72
+ *
73
+ * @requirements 4.1 - Load patterns from .drift/patterns/
74
+ */
75
+ loadAll(): Promise<void>;
76
+ /**
77
+ * Load patterns for a specific status
78
+ */
79
+ private loadByStatus;
80
+ /**
81
+ * Load a single category file
82
+ */
83
+ private loadCategoryFile;
84
+ /**
85
+ * Save all patterns to disk
86
+ *
87
+ * @requirements 4.1 - Persist patterns as JSON in .drift/patterns/
88
+ */
89
+ saveAll(): Promise<void>;
90
+ /**
91
+ * Group patterns by status and category
92
+ */
93
+ private groupPatternsByStatusAndCategory;
94
+ /**
95
+ * Save a single category file
96
+ */
97
+ private saveCategoryFile;
98
+ /**
99
+ * Create a backup of a file
100
+ */
101
+ private createBackup;
102
+ /**
103
+ * Clean up old backups, keeping only the most recent ones
104
+ */
105
+ private cleanupBackups;
106
+ /**
107
+ * Schedule an auto-save if enabled
108
+ */
109
+ private scheduleAutoSave;
110
+ /**
111
+ * Get a pattern by ID
112
+ *
113
+ * @param id - Pattern ID
114
+ * @returns The pattern or undefined if not found
115
+ */
116
+ get(id: string): Pattern | undefined;
117
+ /**
118
+ * Get a pattern by ID, throwing if not found
119
+ *
120
+ * @param id - Pattern ID
121
+ * @returns The pattern
122
+ * @throws PatternNotFoundError if pattern not found
123
+ */
124
+ getOrThrow(id: string): Pattern;
125
+ /**
126
+ * Check if a pattern exists
127
+ *
128
+ * @param id - Pattern ID
129
+ * @returns True if pattern exists
130
+ */
131
+ has(id: string): boolean;
132
+ /**
133
+ * Add a new pattern
134
+ *
135
+ * @param pattern - Pattern to add
136
+ * @throws Error if pattern with same ID already exists
137
+ */
138
+ add(pattern: Pattern): void;
139
+ /**
140
+ * Update an existing pattern
141
+ *
142
+ * @param id - Pattern ID
143
+ * @param updates - Partial pattern updates
144
+ * @returns The updated pattern
145
+ * @throws PatternNotFoundError if pattern not found
146
+ */
147
+ update(id: string, updates: Partial<Omit<Pattern, 'id'>>): Pattern;
148
+ /**
149
+ * Delete a pattern
150
+ *
151
+ * @param id - Pattern ID
152
+ * @returns True if pattern was deleted
153
+ */
154
+ delete(id: string): boolean;
155
+ /**
156
+ * Approve a pattern (move from discovered to approved)
157
+ *
158
+ * @requirements 4.3 - Move pattern from discovered/ to approved/
159
+ *
160
+ * @param id - Pattern ID
161
+ * @param approvedBy - User who approved the pattern
162
+ * @returns The updated pattern
163
+ * @throws PatternNotFoundError if pattern not found
164
+ * @throws InvalidStateTransitionError if transition is invalid
165
+ */
166
+ approve(id: string, approvedBy?: string): Pattern;
167
+ /**
168
+ * Ignore a pattern (move to ignored)
169
+ *
170
+ * @param id - Pattern ID
171
+ * @returns The updated pattern
172
+ * @throws PatternNotFoundError if pattern not found
173
+ * @throws InvalidStateTransitionError if transition is invalid
174
+ */
175
+ ignore(id: string): Pattern;
176
+ /**
177
+ * Transition a pattern to a new status
178
+ *
179
+ * @requirements 4.3 - Move patterns between status directories
180
+ *
181
+ * @param id - Pattern ID
182
+ * @param newStatus - Target status
183
+ * @param user - User performing the transition
184
+ * @returns The updated pattern
185
+ */
186
+ private transitionStatus;
187
+ /**
188
+ * Query patterns with filtering, sorting, and pagination
189
+ *
190
+ * @requirements 4.6 - Support querying by category, confidence, status
191
+ *
192
+ * @param options - Query options
193
+ * @returns Query result with matching patterns
194
+ */
195
+ query(options?: PatternQueryOptions): PatternQueryResult;
196
+ /**
197
+ * Apply filters to patterns
198
+ */
199
+ private applyFilters;
200
+ /**
201
+ * Apply sorting to patterns
202
+ */
203
+ private applySorting;
204
+ /**
205
+ * Get all patterns
206
+ */
207
+ getAll(): Pattern[];
208
+ /**
209
+ * Get patterns by category
210
+ *
211
+ * @requirements 4.6 - Query by category
212
+ */
213
+ getByCategory(category: PatternCategory): Pattern[];
214
+ /**
215
+ * Get patterns by status
216
+ *
217
+ * @requirements 4.6 - Query by status
218
+ */
219
+ getByStatus(status: PatternStatus): Pattern[];
220
+ /**
221
+ * Get patterns by confidence level
222
+ *
223
+ * @requirements 4.6 - Query by confidence
224
+ */
225
+ getByConfidenceLevel(level: ConfidenceLevel): Pattern[];
226
+ /**
227
+ * Get patterns with minimum confidence score
228
+ *
229
+ * @requirements 4.6 - Query by confidence
230
+ */
231
+ getByMinConfidence(minScore: number): Pattern[];
232
+ /**
233
+ * Get approved patterns
234
+ */
235
+ getApproved(): Pattern[];
236
+ /**
237
+ * Get discovered patterns
238
+ */
239
+ getDiscovered(): Pattern[];
240
+ /**
241
+ * Get ignored patterns
242
+ */
243
+ getIgnored(): Pattern[];
244
+ /**
245
+ * Get patterns that have locations in a specific file
246
+ */
247
+ getByFile(file: string): Pattern[];
248
+ /**
249
+ * Get patterns with outliers
250
+ */
251
+ getWithOutliers(): Pattern[];
252
+ /**
253
+ * Get high confidence patterns
254
+ */
255
+ getHighConfidence(): Pattern[];
256
+ /**
257
+ * Get statistics about the pattern store
258
+ */
259
+ getStats(): PatternStoreStats;
260
+ /**
261
+ * Emit a pattern store event
262
+ */
263
+ private emitEvent;
264
+ /**
265
+ * Get the number of patterns in the store
266
+ */
267
+ get size(): number;
268
+ /**
269
+ * Check if the store has been loaded
270
+ */
271
+ get isLoaded(): boolean;
272
+ /**
273
+ * Check if there are unsaved changes
274
+ */
275
+ get isDirty(): boolean;
276
+ /**
277
+ * Get the patterns directory path
278
+ */
279
+ get path(): string;
280
+ /**
281
+ * Clear all patterns from memory (does not affect disk)
282
+ */
283
+ clear(): void;
284
+ /**
285
+ * Dispose of the pattern store
286
+ */
287
+ dispose(): void;
288
+ }
289
+ //# sourceMappingURL=pattern-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-store.d.ts","sourceRoot":"","sources":["../../src/store/pattern-store.ts"],"names":[],"mappings":"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"}