driftdetect-lsp 0.9.27 → 0.9.29

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 (111) hide show
  1. package/package.json +3 -3
  2. package/dist/bin/server.d.ts +0 -12
  3. package/dist/bin/server.js +0 -26
  4. package/dist/bin/server.js.map +0 -1
  5. package/dist/capabilities.d.ts +0 -91
  6. package/dist/capabilities.d.ts.map +0 -1
  7. package/dist/capabilities.js +0 -183
  8. package/dist/capabilities.js.map +0 -1
  9. package/dist/commands/approve-pattern.d.ts +0 -15
  10. package/dist/commands/approve-pattern.js +0 -83
  11. package/dist/commands/approve-pattern.js.map +0 -1
  12. package/dist/commands/create-variant.d.ts +0 -22
  13. package/dist/commands/create-variant.js +0 -109
  14. package/dist/commands/create-variant.js.map +0 -1
  15. package/dist/commands/explain-ai.d.ts +0 -11
  16. package/dist/commands/explain-ai.js +0 -144
  17. package/dist/commands/explain-ai.js.map +0 -1
  18. package/dist/commands/fix-ai.d.ts +0 -11
  19. package/dist/commands/fix-ai.js +0 -146
  20. package/dist/commands/fix-ai.js.map +0 -1
  21. package/dist/commands/ignore-once.d.ts +0 -33
  22. package/dist/commands/ignore-once.js +0 -147
  23. package/dist/commands/ignore-once.js.map +0 -1
  24. package/dist/commands/ignore-pattern.d.ts +0 -15
  25. package/dist/commands/ignore-pattern.js +0 -77
  26. package/dist/commands/ignore-pattern.js.map +0 -1
  27. package/dist/commands/index.d.ts +0 -14
  28. package/dist/commands/index.js +0 -14
  29. package/dist/commands/index.js.map +0 -1
  30. package/dist/commands/rescan.d.ts +0 -19
  31. package/dist/commands/rescan.js +0 -125
  32. package/dist/commands/rescan.js.map +0 -1
  33. package/dist/commands/show-patterns.d.ts +0 -30
  34. package/dist/commands/show-patterns.js +0 -175
  35. package/dist/commands/show-patterns.js.map +0 -1
  36. package/dist/commands/show-violations.d.ts +0 -11
  37. package/dist/commands/show-violations.js +0 -259
  38. package/dist/commands/show-violations.js.map +0 -1
  39. package/dist/handlers/code-actions.d.ts +0 -32
  40. package/dist/handlers/code-actions.js +0 -184
  41. package/dist/handlers/code-actions.js.map +0 -1
  42. package/dist/handlers/code-lens.d.ts +0 -32
  43. package/dist/handlers/code-lens.js +0 -162
  44. package/dist/handlers/code-lens.js.map +0 -1
  45. package/dist/handlers/commands.d.ts +0 -48
  46. package/dist/handlers/commands.js +0 -360
  47. package/dist/handlers/commands.js.map +0 -1
  48. package/dist/handlers/diagnostics.d.ts +0 -73
  49. package/dist/handlers/diagnostics.js +0 -259
  50. package/dist/handlers/diagnostics.js.map +0 -1
  51. package/dist/handlers/document-sync.d.ts +0 -37
  52. package/dist/handlers/document-sync.js +0 -49
  53. package/dist/handlers/document-sync.js.map +0 -1
  54. package/dist/handlers/hover.d.ts +0 -30
  55. package/dist/handlers/hover.js +0 -119
  56. package/dist/handlers/hover.js.map +0 -1
  57. package/dist/handlers/index.d.ts +0 -23
  58. package/dist/handlers/index.js +0 -16
  59. package/dist/handlers/index.js.map +0 -1
  60. package/dist/handlers/initialize.d.ts +0 -41
  61. package/dist/handlers/initialize.d.ts.map +0 -1
  62. package/dist/handlers/initialize.js +0 -33
  63. package/dist/handlers/initialize.js.map +0 -1
  64. package/dist/index.d.ts +0 -22
  65. package/dist/index.js +0 -26
  66. package/dist/index.js.map +0 -1
  67. package/dist/integration/core-scanner.d.ts +0 -89
  68. package/dist/integration/core-scanner.js +0 -309
  69. package/dist/integration/core-scanner.js.map +0 -1
  70. package/dist/integration/index.d.ts +0 -11
  71. package/dist/integration/index.js +0 -11
  72. package/dist/integration/index.js.map +0 -1
  73. package/dist/integration/pattern-store-adapter.d.ts +0 -117
  74. package/dist/integration/pattern-store-adapter.js +0 -349
  75. package/dist/integration/pattern-store-adapter.js.map +0 -1
  76. package/dist/integration/types.d.ts +0 -134
  77. package/dist/integration/types.js +0 -39
  78. package/dist/integration/types.js.map +0 -1
  79. package/dist/server/index.d.ts +0 -5
  80. package/dist/server/index.js +0 -5
  81. package/dist/server/index.js.map +0 -1
  82. package/dist/server/types.d.ts +0 -139
  83. package/dist/server/types.js +0 -8
  84. package/dist/server/types.js.map +0 -1
  85. package/dist/server.d.ts +0 -63
  86. package/dist/server.js +0 -208
  87. package/dist/server.js.map +0 -1
  88. package/dist/types/index.d.ts +0 -5
  89. package/dist/types/index.js +0 -5
  90. package/dist/types/index.js.map +0 -1
  91. package/dist/types/lsp-types.d.ts +0 -321
  92. package/dist/types/lsp-types.js +0 -274
  93. package/dist/types/lsp-types.js.map +0 -1
  94. package/dist/utils/diagnostic.d.ts +0 -84
  95. package/dist/utils/diagnostic.js +0 -256
  96. package/dist/utils/diagnostic.js.map +0 -1
  97. package/dist/utils/document.d.ts +0 -40
  98. package/dist/utils/document.d.ts.map +0 -1
  99. package/dist/utils/document.js +0 -138
  100. package/dist/utils/document.js.map +0 -1
  101. package/dist/utils/index.d.ts +0 -8
  102. package/dist/utils/index.d.ts.map +0 -1
  103. package/dist/utils/index.js +0 -8
  104. package/dist/utils/index.js.map +0 -1
  105. package/dist/utils/position.d.ts +0 -44
  106. package/dist/utils/position.d.ts.map +0 -1
  107. package/dist/utils/position.js +0 -96
  108. package/dist/utils/position.js.map +0 -1
  109. package/dist/utils/workspace.d.ts +0 -98
  110. package/dist/utils/workspace.js +0 -241
  111. package/dist/utils/workspace.js.map +0 -1
package/dist/index.d.ts DELETED
@@ -1,22 +0,0 @@
1
- /**
2
- * @drift/lsp - Language Server Protocol implementation for Drift
3
- *
4
- * Provides LSP server capabilities for IDE integration:
5
- * - Document synchronization (open, change, save, close)
6
- * - Diagnostic publishing for violations
7
- * - Code actions for quick fixes
8
- * - Hover information for violations
9
- * - Code lens for pattern information
10
- * - Command handling for pattern management
11
- *
12
- * @requirements 27.1-27.7 - LSP Server Core Capabilities
13
- * @requirements 28.1-28.9 - LSP Server Commands
14
- */
15
- export declare const VERSION = "0.0.1";
16
- export { createDriftServer, startDriftServer } from './server.js';
17
- export type { DriftServer, ServerOptions } from './server.js';
18
- export { buildServerCapabilities, DRIFT_COMMANDS, SERVER_INFO } from './capabilities.js';
19
- export * from './handlers/index.js';
20
- export * from './utils/index.js';
21
- export * from './integration/index.js';
22
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js DELETED
@@ -1,26 +0,0 @@
1
- /**
2
- * @drift/lsp - Language Server Protocol implementation for Drift
3
- *
4
- * Provides LSP server capabilities for IDE integration:
5
- * - Document synchronization (open, change, save, close)
6
- * - Diagnostic publishing for violations
7
- * - Code actions for quick fixes
8
- * - Hover information for violations
9
- * - Code lens for pattern information
10
- * - Command handling for pattern management
11
- *
12
- * @requirements 27.1-27.7 - LSP Server Core Capabilities
13
- * @requirements 28.1-28.9 - LSP Server Commands
14
- */
15
- export const VERSION = '0.0.1';
16
- // Server exports
17
- export { createDriftServer, startDriftServer } from './server.js';
18
- // Capabilities exports
19
- export { buildServerCapabilities, DRIFT_COMMANDS, SERVER_INFO } from './capabilities.js';
20
- // Handler exports
21
- export * from './handlers/index.js';
22
- // Utility exports
23
- export * from './utils/index.js';
24
- // Integration exports
25
- export * from './integration/index.js';
26
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,iBAAiB;AACjB,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGlE,uBAAuB;AACvB,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEzF,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,kBAAkB;AAClB,cAAc,kBAAkB,CAAC;AAEjC,sBAAsB;AACtB,cAAc,wBAAwB,CAAC"}
@@ -1,89 +0,0 @@
1
- /**
2
- * Core Scanner Integration
3
- *
4
- * Connects the LSP diagnostics handler to driftdetect-core scanner
5
- * and driftdetect-detectors for pattern detection and violation generation.
6
- *
7
- * @requirements 27.3 - THE LSP_Server SHALL publish diagnostics for violations
8
- * @requirements 27.7 - THE LSP_Server SHALL respond to diagnostics within 200ms of file change
9
- */
10
- import { PatternStore } from 'driftdetect-core';
11
- import type { CoreIntegrationConfig, ScanResult, ScanOptions } from './types.js';
12
- /**
13
- * Logger interface for the core scanner
14
- */
15
- interface Logger {
16
- error(message: string): void;
17
- warn(message: string): void;
18
- info(message: string): void;
19
- debug(message: string): void;
20
- }
21
- /**
22
- * Core Scanner - Integrates driftdetect-core with LSP diagnostics
23
- *
24
- * This class bridges the LSP server with the core drift detection engine.
25
- * It manages the pattern store, parser manager, evaluator, and detector registry
26
- * to scan documents and generate violations.
27
- */
28
- export declare class CoreScanner {
29
- private config;
30
- private logger;
31
- private patternStore;
32
- private parserManager;
33
- private evaluator;
34
- private initialized;
35
- private scanCache;
36
- private cacheTimeout;
37
- constructor(config: Partial<CoreIntegrationConfig> | undefined, logger: Logger);
38
- /**
39
- * Initialize the core scanner
40
- *
41
- * Sets up the pattern store, parser manager, evaluator, and detector registry.
42
- */
43
- initialize(): Promise<void>;
44
- /**
45
- * Check if the scanner is initialized
46
- */
47
- isInitialized(): boolean;
48
- /**
49
- * Get the pattern store instance
50
- */
51
- getPatternStore(): PatternStore | null;
52
- /**
53
- * Scan a document for violations
54
- *
55
- * @requirements 27.3 - Publish diagnostics for violations
56
- * @requirements 27.7 - Respond within 200ms
57
- */
58
- scan(uri: string, content: string, options?: ScanOptions): Promise<ScanResult>;
59
- /**
60
- * Invalidate cache for a document
61
- */
62
- invalidateCache(uri: string): void;
63
- /**
64
- * Clear all cached scan results
65
- */
66
- clearCache(): void;
67
- /**
68
- * Convert a driftdetect-core Violation to ViolationInfo
69
- */
70
- private violationToInfo;
71
- /**
72
- * Convert a URI to a file path
73
- */
74
- private uriToPath;
75
- /**
76
- * Get the language from a URI based on file extension
77
- */
78
- private getLanguageFromUri;
79
- /**
80
- * Shutdown the core scanner
81
- */
82
- shutdown(): Promise<void>;
83
- }
84
- /**
85
- * Create a core scanner instance
86
- */
87
- export declare function createCoreScanner(config: Partial<CoreIntegrationConfig> | undefined, logger: Logger): CoreScanner;
88
- export {};
89
- //# sourceMappingURL=core-scanner.d.ts.map
@@ -1,309 +0,0 @@
1
- /**
2
- * Core Scanner Integration
3
- *
4
- * Connects the LSP diagnostics handler to driftdetect-core scanner
5
- * and driftdetect-detectors for pattern detection and violation generation.
6
- *
7
- * @requirements 27.3 - THE LSP_Server SHALL publish diagnostics for violations
8
- * @requirements 27.7 - THE LSP_Server SHALL respond to diagnostics within 200ms of file change
9
- */
10
- import { URI } from 'vscode-uri';
11
- import { PatternStore, Evaluator, ParserManager, TypeScriptParser, PythonParser, CSSParser, JSONParser, MarkdownParser, } from 'driftdetect-core';
12
- import { DEFAULT_CORE_INTEGRATION_CONFIG } from './types.js';
13
- /**
14
- * Core Scanner - Integrates driftdetect-core with LSP diagnostics
15
- *
16
- * This class bridges the LSP server with the core drift detection engine.
17
- * It manages the pattern store, parser manager, evaluator, and detector registry
18
- * to scan documents and generate violations.
19
- */
20
- export class CoreScanner {
21
- config;
22
- logger;
23
- patternStore = null;
24
- parserManager = null;
25
- evaluator = null;
26
- initialized = false;
27
- scanCache = new Map();
28
- cacheTimeout = 5000; // 5 seconds cache
29
- constructor(config = {}, logger) {
30
- this.config = { ...DEFAULT_CORE_INTEGRATION_CONFIG, ...config };
31
- this.logger = logger;
32
- }
33
- /**
34
- * Initialize the core scanner
35
- *
36
- * Sets up the pattern store, parser manager, evaluator, and detector registry.
37
- */
38
- async initialize() {
39
- if (this.initialized) {
40
- return;
41
- }
42
- this.logger.info('Initializing core scanner...');
43
- try {
44
- // Initialize pattern store
45
- const storeConfig = {
46
- rootDir: this.config.rootDir,
47
- validateSchema: this.config.validateSchema,
48
- trackHistory: this.config.trackHistory,
49
- autoSave: this.config.autoSave,
50
- };
51
- this.patternStore = new PatternStore(storeConfig);
52
- await this.patternStore.initialize();
53
- this.logger.info('Pattern store initialized');
54
- // Initialize parser manager with language parsers
55
- this.parserManager = new ParserManager();
56
- this.parserManager.registerParser(new TypeScriptParser());
57
- this.parserManager.registerParser(new PythonParser());
58
- this.parserManager.registerParser(new CSSParser());
59
- this.parserManager.registerParser(new JSONParser());
60
- this.parserManager.registerParser(new MarkdownParser());
61
- this.logger.info('Parser manager initialized');
62
- // Initialize evaluator
63
- const evaluatorConfig = {
64
- aiExplainAvailable: this.config.aiEnabled,
65
- aiFixAvailable: this.config.aiEnabled,
66
- minConfidence: this.config.minConfidence,
67
- projectRoot: this.config.rootDir,
68
- };
69
- this.evaluator = new Evaluator(evaluatorConfig);
70
- this.logger.info('Evaluator initialized');
71
- this.initialized = true;
72
- this.logger.info('Core scanner initialization complete');
73
- }
74
- catch (error) {
75
- this.logger.error(`Failed to initialize core scanner: ${error}`);
76
- throw error;
77
- }
78
- }
79
- /**
80
- * Check if the scanner is initialized
81
- */
82
- isInitialized() {
83
- return this.initialized;
84
- }
85
- /**
86
- * Get the pattern store instance
87
- */
88
- getPatternStore() {
89
- return this.patternStore;
90
- }
91
- /**
92
- * Scan a document for violations
93
- *
94
- * @requirements 27.3 - Publish diagnostics for violations
95
- * @requirements 27.7 - Respond within 200ms
96
- */
97
- async scan(uri, content, options = {}) {
98
- const startTime = Date.now();
99
- const errors = [];
100
- let violations = [];
101
- let patterns = [];
102
- // Check cache unless force rescan
103
- if (!options.force) {
104
- const cached = this.scanCache.get(uri);
105
- if (cached && Date.now() - cached.timestamp < this.cacheTimeout) {
106
- this.logger.debug(`Using cached scan result for ${uri}`);
107
- return {
108
- uri,
109
- violations: cached.violations,
110
- patterns: [],
111
- duration: Date.now() - startTime,
112
- errors: [],
113
- };
114
- }
115
- }
116
- if (!this.initialized) {
117
- errors.push({
118
- message: 'Core scanner not initialized',
119
- code: 'NOT_INITIALIZED',
120
- recoverable: false,
121
- });
122
- return { uri, violations, patterns, duration: Date.now() - startTime, errors };
123
- }
124
- try {
125
- // Parse the document
126
- const filePath = this.uriToPath(uri);
127
- const language = this.getLanguageFromUri(uri);
128
- this.logger.debug(`Scanning ${filePath} (${language})`);
129
- // Get AST if parser is available
130
- let ast = null;
131
- if (this.parserManager && language) {
132
- try {
133
- const parseResult = this.parserManager.parse(content, language);
134
- if (parseResult.success && parseResult.ast) {
135
- ast = parseResult.ast;
136
- }
137
- }
138
- catch (parseError) {
139
- this.logger.warn(`Parse error for ${uri}: ${parseError}`);
140
- errors.push({
141
- message: `Parse error: ${parseError}`,
142
- code: 'PARSE_ERROR',
143
- recoverable: true,
144
- });
145
- }
146
- }
147
- // Get approved patterns to evaluate against
148
- const approvedPatterns = this.patternStore?.getApproved() ?? [];
149
- // Filter patterns by options
150
- let patternsToEvaluate = approvedPatterns;
151
- if (options.categories && options.categories.length > 0) {
152
- patternsToEvaluate = patternsToEvaluate.filter((p) => options.categories.includes(p.category));
153
- }
154
- if (options.patternIds && options.patternIds.length > 0) {
155
- patternsToEvaluate = patternsToEvaluate.filter((p) => options.patternIds.includes(p.id));
156
- }
157
- // Evaluate patterns against the document
158
- if (this.evaluator && patternsToEvaluate.length > 0) {
159
- const evaluationInput = {
160
- file: filePath,
161
- content,
162
- ast,
163
- language: language || 'unknown',
164
- };
165
- const results = this.evaluator.evaluateAll(evaluationInput, patternsToEvaluate);
166
- // Convert evaluation results to ViolationInfo
167
- for (const result of results) {
168
- for (const violation of result.violations) {
169
- // Apply minimum confidence filter
170
- const minConf = options.minConfidence ?? this.config.minConfidence;
171
- const pattern = patternsToEvaluate.find((p) => p.id === violation.patternId);
172
- if (pattern && pattern.confidence.score >= minConf) {
173
- violations.push(this.violationToInfo(violation, uri));
174
- }
175
- }
176
- }
177
- }
178
- // Pattern discovery would be handled by detectors
179
- // For now, we just return the violations from approved patterns
180
- patterns = [];
181
- // Cache the result
182
- this.scanCache.set(uri, { violations, timestamp: Date.now() });
183
- const duration = Date.now() - startTime;
184
- this.logger.debug(`Scan complete for ${uri}: ${violations.length} violations in ${duration}ms`);
185
- // Warn if we exceeded the 200ms target
186
- if (duration > 200) {
187
- this.logger.warn(`Scan latency exceeded 200ms target: ${duration}ms for ${uri}`);
188
- }
189
- return { uri, violations, patterns, duration, errors };
190
- }
191
- catch (error) {
192
- const errorMessage = error instanceof Error ? error.message : String(error);
193
- this.logger.error(`Scan error for ${uri}: ${errorMessage}`);
194
- errors.push({
195
- message: errorMessage,
196
- code: 'SCAN_ERROR',
197
- recoverable: true,
198
- });
199
- return { uri, violations, patterns, duration: Date.now() - startTime, errors };
200
- }
201
- }
202
- /**
203
- * Invalidate cache for a document
204
- */
205
- invalidateCache(uri) {
206
- this.scanCache.delete(uri);
207
- }
208
- /**
209
- * Clear all cached scan results
210
- */
211
- clearCache() {
212
- this.scanCache.clear();
213
- }
214
- /**
215
- * Convert a driftdetect-core Violation to ViolationInfo
216
- */
217
- violationToInfo(violation, uri) {
218
- return {
219
- id: violation.id,
220
- patternId: violation.patternId,
221
- message: violation.message,
222
- severity: violation.severity,
223
- file: uri,
224
- range: violation.range,
225
- expected: violation.expected,
226
- actual: violation.actual,
227
- explanation: violation.explanation,
228
- quickFix: violation.quickFix
229
- ? {
230
- title: violation.quickFix.title,
231
- isPreferred: violation.quickFix.isPreferred,
232
- confidence: violation.quickFix.confidence,
233
- }
234
- : undefined,
235
- aiExplainAvailable: violation.aiExplainAvailable,
236
- aiFixAvailable: violation.aiFixAvailable,
237
- };
238
- }
239
- /**
240
- * Convert a URI to a file path
241
- */
242
- uriToPath(uri) {
243
- try {
244
- return URI.parse(uri).fsPath;
245
- }
246
- catch {
247
- // If URI parsing fails, assume it's already a path
248
- return uri;
249
- }
250
- }
251
- /**
252
- * Get the language from a URI based on file extension
253
- */
254
- getLanguageFromUri(uri) {
255
- const ext = uri.split('.').pop()?.toLowerCase();
256
- switch (ext) {
257
- case 'ts':
258
- case 'tsx':
259
- return 'typescript';
260
- case 'js':
261
- case 'jsx':
262
- case 'mjs':
263
- case 'cjs':
264
- return 'javascript';
265
- case 'py':
266
- return 'python';
267
- case 'css':
268
- case 'scss':
269
- case 'sass':
270
- case 'less':
271
- return 'css';
272
- case 'json':
273
- return 'json';
274
- case 'yaml':
275
- case 'yml':
276
- return 'yaml';
277
- case 'md':
278
- case 'markdown':
279
- return 'markdown';
280
- default:
281
- return null;
282
- }
283
- }
284
- /**
285
- * Shutdown the core scanner
286
- */
287
- async shutdown() {
288
- this.logger.info('Shutting down core scanner...');
289
- // Save pattern store if auto-save is enabled
290
- if (this.patternStore && this.config.autoSave) {
291
- try {
292
- await this.patternStore.saveAll();
293
- }
294
- catch (error) {
295
- this.logger.error(`Error saving pattern store: ${error}`);
296
- }
297
- }
298
- this.scanCache.clear();
299
- this.initialized = false;
300
- this.logger.info('Core scanner shutdown complete');
301
- }
302
- }
303
- /**
304
- * Create a core scanner instance
305
- */
306
- export function createCoreScanner(config = {}, logger) {
307
- return new CoreScanner(config, logger);
308
- }
309
- //# sourceMappingURL=core-scanner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-scanner.js","sourceRoot":"","sources":["../../src/integration/core-scanner.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Integration module exports
3
- *
4
- * Provides integration between @drift/lsp and driftdetect-core.
5
- * Connects the LSP server to the core scanner, pattern store,
6
- * and variant manager for full drift detection functionality.
7
- */
8
- export * from './core-scanner.js';
9
- export * from './pattern-store-adapter.js';
10
- export * from './types.js';
11
- //# sourceMappingURL=index.d.ts.map
@@ -1,11 +0,0 @@
1
- /**
2
- * Integration module exports
3
- *
4
- * Provides integration between @drift/lsp and driftdetect-core.
5
- * Connects the LSP server to the core scanner, pattern store,
6
- * and variant manager for full drift detection functionality.
7
- */
8
- export * from './core-scanner.js';
9
- export * from './pattern-store-adapter.js';
10
- export * from './types.js';
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,YAAY,CAAC"}
@@ -1,117 +0,0 @@
1
- /**
2
- * Pattern Store Adapter
3
- *
4
- * Adapts driftdetect-core PatternStore and VariantManager for use in LSP commands.
5
- * Provides approve, ignore, and variant operations that persist to disk.
6
- *
7
- * @requirements 28.1 - drift.approvePattern
8
- * @requirements 28.2 - drift.ignorePattern
9
- * @requirements 28.3 - drift.ignoreOnce
10
- * @requirements 28.4 - drift.createVariant
11
- */
12
- import { PatternStore, VariantManager } from 'driftdetect-core';
13
- import type { ViolationInfo, PatternInfo } from '../types/lsp-types.js';
14
- import type { ApproveResult, IgnoreResult, CreateVariantResult, CreateVariantInput, CoreIntegrationConfig } from './types.js';
15
- /**
16
- * Logger interface
17
- */
18
- interface Logger {
19
- error(message: string): void;
20
- warn(message: string): void;
21
- info(message: string): void;
22
- debug(message: string): void;
23
- }
24
- /**
25
- * Pattern Store Adapter
26
- *
27
- * Provides a simplified interface for LSP commands to interact with
28
- * the driftdetect-core PatternStore and VariantManager.
29
- */
30
- export declare class PatternStoreAdapter {
31
- private config;
32
- private logger;
33
- private patternStore;
34
- private variantManager;
35
- private initialized;
36
- constructor(config: Partial<CoreIntegrationConfig> | undefined, logger: Logger);
37
- /**
38
- * Initialize the adapter
39
- */
40
- initialize(): Promise<void>;
41
- /**
42
- * Check if the adapter is initialized
43
- */
44
- isInitialized(): boolean;
45
- /**
46
- * Get the pattern store instance
47
- */
48
- getPatternStore(): PatternStore | null;
49
- /**
50
- * Get the variant manager instance
51
- */
52
- getVariantManager(): VariantManager | null;
53
- /**
54
- * Approve a pattern
55
- *
56
- * Moves the pattern from discovered to approved status and persists the change.
57
- *
58
- * @requirements 28.1 - drift.approvePattern
59
- */
60
- approve(patternId: string, approvedBy?: string): Promise<ApproveResult>;
61
- /**
62
- * Ignore a pattern
63
- *
64
- * Moves the pattern to ignored status and persists the change.
65
- *
66
- * @requirements 28.2 - drift.ignorePattern
67
- */
68
- ignore(patternId: string): Promise<IgnoreResult>;
69
- /**
70
- * Create a variant for a pattern
71
- *
72
- * Creates an intentional deviation from a pattern and persists it.
73
- *
74
- * @requirements 28.4 - drift.createVariant
75
- */
76
- createVariant(input: CreateVariantInput): Promise<CreateVariantResult>;
77
- /**
78
- * Check if a location is covered by a variant
79
- *
80
- * Used to filter out violations that are covered by variants.
81
- */
82
- isLocationCovered(patternId: string, file: string, line: number, column: number): boolean;
83
- /**
84
- * Get all patterns
85
- */
86
- getAllPatterns(): PatternInfo[];
87
- /**
88
- * Get approved patterns
89
- */
90
- getApprovedPatterns(): PatternInfo[];
91
- /**
92
- * Get discovered patterns
93
- */
94
- getDiscoveredPatterns(): PatternInfo[];
95
- /**
96
- * Get ignored patterns
97
- */
98
- getIgnoredPatterns(): PatternInfo[];
99
- /**
100
- * Get a pattern by ID
101
- */
102
- getPattern(patternId: string): PatternInfo | undefined;
103
- /**
104
- * Filter violations by removing those covered by variants
105
- */
106
- filterViolationsByVariants(violations: ViolationInfo[]): ViolationInfo[];
107
- /**
108
- * Shutdown the adapter
109
- */
110
- shutdown(): Promise<void>;
111
- }
112
- /**
113
- * Create a pattern store adapter instance
114
- */
115
- export declare function createPatternStoreAdapter(config: Partial<CoreIntegrationConfig> | undefined, logger: Logger): PatternStoreAdapter;
116
- export {};
117
- //# sourceMappingURL=pattern-store-adapter.d.ts.map