driftdetect-vscode 0.9.0 → 0.9.2

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 (241) hide show
  1. package/package.json +21 -46
  2. package/.turbo/turbo-build.log +0 -4
  3. package/.turbo/turbo-test.log +0 -138
  4. package/LICENSE +0 -121
  5. package/dist/activation/activation-controller.d.ts +0 -61
  6. package/dist/activation/activation-controller.d.ts.map +0 -1
  7. package/dist/activation/activation-controller.js +0 -235
  8. package/dist/activation/activation-controller.js.map +0 -1
  9. package/dist/activation/activation-phases.d.ts +0 -28
  10. package/dist/activation/activation-phases.d.ts.map +0 -1
  11. package/dist/activation/activation-phases.js +0 -80
  12. package/dist/activation/activation-phases.js.map +0 -1
  13. package/dist/activation/index.d.ts +0 -6
  14. package/dist/activation/index.d.ts.map +0 -1
  15. package/dist/activation/index.js +0 -6
  16. package/dist/activation/index.js.map +0 -1
  17. package/dist/client/connection-config.d.ts +0 -50
  18. package/dist/client/connection-config.d.ts.map +0 -1
  19. package/dist/client/connection-config.js +0 -56
  20. package/dist/client/connection-config.js.map +0 -1
  21. package/dist/client/connection-manager.d.ts +0 -70
  22. package/dist/client/connection-manager.d.ts.map +0 -1
  23. package/dist/client/connection-manager.js +0 -214
  24. package/dist/client/connection-manager.js.map +0 -1
  25. package/dist/client/index.d.ts +0 -8
  26. package/dist/client/index.d.ts.map +0 -1
  27. package/dist/client/index.js +0 -8
  28. package/dist/client/index.js.map +0 -1
  29. package/dist/client/language-client-factory.d.ts +0 -29
  30. package/dist/client/language-client-factory.d.ts.map +0 -1
  31. package/dist/client/language-client-factory.js +0 -76
  32. package/dist/client/language-client-factory.js.map +0 -1
  33. package/dist/client/request-middleware.d.ts +0 -38
  34. package/dist/client/request-middleware.d.ts.map +0 -1
  35. package/dist/client/request-middleware.js +0 -85
  36. package/dist/client/request-middleware.js.map +0 -1
  37. package/dist/commands/command-definitions.d.ts +0 -53
  38. package/dist/commands/command-definitions.d.ts.map +0 -1
  39. package/dist/commands/command-definitions.js +0 -212
  40. package/dist/commands/command-definitions.js.map +0 -1
  41. package/dist/commands/command-router.d.ts +0 -80
  42. package/dist/commands/command-router.d.ts.map +0 -1
  43. package/dist/commands/command-router.js +0 -127
  44. package/dist/commands/command-router.js.map +0 -1
  45. package/dist/commands/handlers/connection-handlers.d.ts +0 -14
  46. package/dist/commands/handlers/connection-handlers.d.ts.map +0 -1
  47. package/dist/commands/handlers/connection-handlers.js +0 -57
  48. package/dist/commands/handlers/connection-handlers.js.map +0 -1
  49. package/dist/commands/handlers/constants-handlers.d.ts +0 -11
  50. package/dist/commands/handlers/constants-handlers.d.ts.map +0 -1
  51. package/dist/commands/handlers/constants-handlers.js +0 -84
  52. package/dist/commands/handlers/constants-handlers.js.map +0 -1
  53. package/dist/commands/handlers/index.d.ts +0 -10
  54. package/dist/commands/handlers/index.d.ts.map +0 -1
  55. package/dist/commands/handlers/index.js +0 -10
  56. package/dist/commands/handlers/index.js.map +0 -1
  57. package/dist/commands/handlers/pattern-handlers.d.ts +0 -13
  58. package/dist/commands/handlers/pattern-handlers.d.ts.map +0 -1
  59. package/dist/commands/handlers/pattern-handlers.js +0 -127
  60. package/dist/commands/handlers/pattern-handlers.js.map +0 -1
  61. package/dist/commands/handlers/scan-handlers.d.ts +0 -15
  62. package/dist/commands/handlers/scan-handlers.d.ts.map +0 -1
  63. package/dist/commands/handlers/scan-handlers.js +0 -74
  64. package/dist/commands/handlers/scan-handlers.js.map +0 -1
  65. package/dist/commands/handlers/ui-handlers.d.ts +0 -12
  66. package/dist/commands/handlers/ui-handlers.d.ts.map +0 -1
  67. package/dist/commands/handlers/ui-handlers.js +0 -74
  68. package/dist/commands/handlers/ui-handlers.js.map +0 -1
  69. package/dist/commands/handlers/violation-handlers.d.ts +0 -13
  70. package/dist/commands/handlers/violation-handlers.d.ts.map +0 -1
  71. package/dist/commands/handlers/violation-handlers.js +0 -76
  72. package/dist/commands/handlers/violation-handlers.js.map +0 -1
  73. package/dist/commands/index.d.ts +0 -7
  74. package/dist/commands/index.d.ts.map +0 -1
  75. package/dist/commands/index.js +0 -7
  76. package/dist/commands/index.js.map +0 -1
  77. package/dist/commands/middleware/connection-check-middleware.d.ts +0 -12
  78. package/dist/commands/middleware/connection-check-middleware.d.ts.map +0 -1
  79. package/dist/commands/middleware/connection-check-middleware.js +0 -34
  80. package/dist/commands/middleware/connection-check-middleware.js.map +0 -1
  81. package/dist/commands/middleware/index.d.ts +0 -7
  82. package/dist/commands/middleware/index.d.ts.map +0 -1
  83. package/dist/commands/middleware/index.js +0 -7
  84. package/dist/commands/middleware/index.js.map +0 -1
  85. package/dist/commands/middleware/logging-middleware.d.ts +0 -12
  86. package/dist/commands/middleware/logging-middleware.d.ts.map +0 -1
  87. package/dist/commands/middleware/logging-middleware.js +0 -24
  88. package/dist/commands/middleware/logging-middleware.js.map +0 -1
  89. package/dist/commands/middleware/telemetry-middleware.d.ts +0 -22
  90. package/dist/commands/middleware/telemetry-middleware.d.ts.map +0 -1
  91. package/dist/commands/middleware/telemetry-middleware.js +0 -30
  92. package/dist/commands/middleware/telemetry-middleware.js.map +0 -1
  93. package/dist/config/config-manager.d.ts +0 -53
  94. package/dist/config/config-manager.d.ts.map +0 -1
  95. package/dist/config/config-manager.js +0 -178
  96. package/dist/config/config-manager.js.map +0 -1
  97. package/dist/config/defaults.d.ts +0 -11
  98. package/dist/config/defaults.d.ts.map +0 -1
  99. package/dist/config/defaults.js +0 -43
  100. package/dist/config/defaults.js.map +0 -1
  101. package/dist/config/index.d.ts +0 -7
  102. package/dist/config/index.d.ts.map +0 -1
  103. package/dist/config/index.js +0 -7
  104. package/dist/config/index.js.map +0 -1
  105. package/dist/config/validator.d.ts +0 -22
  106. package/dist/config/validator.d.ts.map +0 -1
  107. package/dist/config/validator.js +0 -93
  108. package/dist/config/validator.js.map +0 -1
  109. package/dist/extension.d.ts +0 -32
  110. package/dist/extension.d.ts.map +0 -1
  111. package/dist/extension.js +0 -50
  112. package/dist/extension.js.map +0 -1
  113. package/dist/infrastructure/disposable-manager.d.ts +0 -43
  114. package/dist/infrastructure/disposable-manager.d.ts.map +0 -1
  115. package/dist/infrastructure/disposable-manager.js +0 -75
  116. package/dist/infrastructure/disposable-manager.js.map +0 -1
  117. package/dist/infrastructure/event-bus.d.ts +0 -85
  118. package/dist/infrastructure/event-bus.d.ts.map +0 -1
  119. package/dist/infrastructure/event-bus.js +0 -74
  120. package/dist/infrastructure/event-bus.js.map +0 -1
  121. package/dist/infrastructure/index.d.ts +0 -10
  122. package/dist/infrastructure/index.d.ts.map +0 -1
  123. package/dist/infrastructure/index.js +0 -10
  124. package/dist/infrastructure/index.js.map +0 -1
  125. package/dist/infrastructure/logger.d.ts +0 -37
  126. package/dist/infrastructure/logger.d.ts.map +0 -1
  127. package/dist/infrastructure/logger.js +0 -86
  128. package/dist/infrastructure/logger.js.map +0 -1
  129. package/dist/infrastructure/service-container.d.ts +0 -68
  130. package/dist/infrastructure/service-container.d.ts.map +0 -1
  131. package/dist/infrastructure/service-container.js +0 -94
  132. package/dist/infrastructure/service-container.js.map +0 -1
  133. package/dist/state/index.d.ts +0 -7
  134. package/dist/state/index.d.ts.map +0 -1
  135. package/dist/state/index.js +0 -7
  136. package/dist/state/index.js.map +0 -1
  137. package/dist/state/initial-state.d.ts +0 -11
  138. package/dist/state/initial-state.d.ts.map +0 -1
  139. package/dist/state/initial-state.js +0 -58
  140. package/dist/state/initial-state.js.map +0 -1
  141. package/dist/state/selectors.d.ts +0 -41
  142. package/dist/state/selectors.d.ts.map +0 -1
  143. package/dist/state/selectors.js +0 -61
  144. package/dist/state/selectors.js.map +0 -1
  145. package/dist/state/state-manager.d.ts +0 -54
  146. package/dist/state/state-manager.d.ts.map +0 -1
  147. package/dist/state/state-manager.js +0 -166
  148. package/dist/state/state-manager.js.map +0 -1
  149. package/dist/types/config-types.d.ts +0 -69
  150. package/dist/types/config-types.d.ts.map +0 -1
  151. package/dist/types/config-types.js +0 -5
  152. package/dist/types/config-types.js.map +0 -1
  153. package/dist/types/extension-types.d.ts +0 -45
  154. package/dist/types/extension-types.d.ts.map +0 -1
  155. package/dist/types/extension-types.js +0 -5
  156. package/dist/types/extension-types.js.map +0 -1
  157. package/dist/types/index.d.ts +0 -12
  158. package/dist/types/index.d.ts.map +0 -1
  159. package/dist/types/index.js +0 -12
  160. package/dist/types/index.js.map +0 -1
  161. package/dist/types/lsp-types.d.ts +0 -70
  162. package/dist/types/lsp-types.d.ts.map +0 -1
  163. package/dist/types/lsp-types.js +0 -5
  164. package/dist/types/lsp-types.js.map +0 -1
  165. package/dist/types/state-types.d.ts +0 -82
  166. package/dist/types/state-types.d.ts.map +0 -1
  167. package/dist/types/state-types.js +0 -5
  168. package/dist/types/state-types.js.map +0 -1
  169. package/dist/types/vscode-types.d.ts +0 -36
  170. package/dist/types/vscode-types.d.ts.map +0 -1
  171. package/dist/types/vscode-types.js +0 -7
  172. package/dist/types/vscode-types.js.map +0 -1
  173. package/dist/ui/decorations/decoration-controller.d.ts +0 -45
  174. package/dist/ui/decorations/decoration-controller.d.ts.map +0 -1
  175. package/dist/ui/decorations/decoration-controller.js +0 -198
  176. package/dist/ui/decorations/decoration-controller.js.map +0 -1
  177. package/dist/ui/decorations/decoration-types.d.ts +0 -28
  178. package/dist/ui/decorations/decoration-types.d.ts.map +0 -1
  179. package/dist/ui/decorations/decoration-types.js +0 -98
  180. package/dist/ui/decorations/decoration-types.js.map +0 -1
  181. package/dist/ui/decorations/index.d.ts +0 -7
  182. package/dist/ui/decorations/index.d.ts.map +0 -1
  183. package/dist/ui/decorations/index.js +0 -6
  184. package/dist/ui/decorations/index.js.map +0 -1
  185. package/dist/ui/index.d.ts +0 -7
  186. package/dist/ui/index.d.ts.map +0 -1
  187. package/dist/ui/index.js +0 -7
  188. package/dist/ui/index.js.map +0 -1
  189. package/dist/ui/notifications/index.d.ts +0 -5
  190. package/dist/ui/notifications/index.d.ts.map +0 -1
  191. package/dist/ui/notifications/index.js +0 -5
  192. package/dist/ui/notifications/index.js.map +0 -1
  193. package/dist/ui/notifications/notification-service.d.ts +0 -66
  194. package/dist/ui/notifications/notification-service.d.ts.map +0 -1
  195. package/dist/ui/notifications/notification-service.js +0 -103
  196. package/dist/ui/notifications/notification-service.js.map +0 -1
  197. package/dist/ui/status-bar/index.d.ts +0 -6
  198. package/dist/ui/status-bar/index.d.ts.map +0 -1
  199. package/dist/ui/status-bar/index.js +0 -6
  200. package/dist/ui/status-bar/index.js.map +0 -1
  201. package/dist/ui/status-bar/status-bar-controller.d.ts +0 -37
  202. package/dist/ui/status-bar/status-bar-controller.d.ts.map +0 -1
  203. package/dist/ui/status-bar/status-bar-controller.js +0 -111
  204. package/dist/ui/status-bar/status-bar-controller.js.map +0 -1
  205. package/dist/ui/status-bar/status-bar-modes.d.ts +0 -26
  206. package/dist/ui/status-bar/status-bar-modes.d.ts.map +0 -1
  207. package/dist/ui/status-bar/status-bar-modes.js +0 -97
  208. package/dist/ui/status-bar/status-bar-modes.js.map +0 -1
  209. package/dist/views/base-tree-provider.d.ts +0 -74
  210. package/dist/views/base-tree-provider.d.ts.map +0 -1
  211. package/dist/views/base-tree-provider.js +0 -95
  212. package/dist/views/base-tree-provider.js.map +0 -1
  213. package/dist/views/constants-tree-provider.d.ts +0 -112
  214. package/dist/views/constants-tree-provider.d.ts.map +0 -1
  215. package/dist/views/constants-tree-provider.js +0 -344
  216. package/dist/views/constants-tree-provider.js.map +0 -1
  217. package/dist/views/files-tree-provider.d.ts +0 -37
  218. package/dist/views/files-tree-provider.d.ts.map +0 -1
  219. package/dist/views/files-tree-provider.js +0 -98
  220. package/dist/views/files-tree-provider.js.map +0 -1
  221. package/dist/views/index.d.ts +0 -10
  222. package/dist/views/index.d.ts.map +0 -1
  223. package/dist/views/index.js +0 -10
  224. package/dist/views/index.js.map +0 -1
  225. package/dist/views/patterns-tree-provider.d.ts +0 -39
  226. package/dist/views/patterns-tree-provider.d.ts.map +0 -1
  227. package/dist/views/patterns-tree-provider.js +0 -139
  228. package/dist/views/patterns-tree-provider.js.map +0 -1
  229. package/dist/views/violations-tree-provider.d.ts +0 -46
  230. package/dist/views/violations-tree-provider.d.ts.map +0 -1
  231. package/dist/views/violations-tree-provider.js +0 -158
  232. package/dist/views/violations-tree-provider.js.map +0 -1
  233. package/dist/webview/index.d.ts +0 -7
  234. package/dist/webview/index.d.ts.map +0 -1
  235. package/dist/webview/index.js +0 -7
  236. package/dist/webview/index.js.map +0 -1
  237. package/dist/webview/webview-manager.d.ts +0 -57
  238. package/dist/webview/webview-manager.d.ts.map +0 -1
  239. package/dist/webview/webview-manager.js +0 -167
  240. package/dist/webview/webview-manager.js.map +0 -1
  241. package/tsconfig.tsbuildinfo +0 -1
@@ -1,127 +0,0 @@
1
- /**
2
- * CommandRouter - Centralized command handling with middleware
3
- *
4
- * Single responsibility: Route commands through middleware chain.
5
- */
6
- import * as vscode from 'vscode';
7
- /**
8
- * Command router with middleware support
9
- */
10
- export class CommandRouter {
11
- context;
12
- logger;
13
- handlers = new Map();
14
- middleware = [];
15
- disposables = [];
16
- constructor(context, logger, _stateManager // Available for future use
17
- ) {
18
- this.context = context;
19
- this.logger = logger;
20
- }
21
- /**
22
- * Add middleware to the chain
23
- */
24
- use(middleware) {
25
- this.middleware.push(middleware);
26
- return this;
27
- }
28
- /**
29
- * Register a command handler
30
- */
31
- register(registration) {
32
- this.handlers.set(registration.id, registration);
33
- const disposable = vscode.commands.registerCommand(registration.id, async (...args) => {
34
- await this.execute(registration, args);
35
- });
36
- this.disposables.push(disposable);
37
- this.context.subscriptions.push(disposable);
38
- return disposable;
39
- }
40
- /**
41
- * Register multiple command handlers
42
- */
43
- registerAll(registrations) {
44
- for (const reg of registrations) {
45
- this.register(reg);
46
- }
47
- }
48
- /**
49
- * Execute a command programmatically
50
- */
51
- async executeCommand(command, ...args) {
52
- await vscode.commands.executeCommand(command, ...args);
53
- }
54
- /**
55
- * Dispose all registered commands
56
- */
57
- dispose() {
58
- for (const d of this.disposables) {
59
- d.dispose();
60
- }
61
- this.handlers.clear();
62
- this.middleware.length = 0;
63
- }
64
- async execute(registration, args) {
65
- const ctx = {
66
- command: registration.id,
67
- args,
68
- startTime: performance.now(),
69
- };
70
- try {
71
- if (registration.showProgress) {
72
- await this.executeWithProgress(registration, ctx);
73
- }
74
- else {
75
- await this.executeWithMiddleware(registration.handler, ctx);
76
- }
77
- }
78
- catch (error) {
79
- this.handleError(registration.id, error);
80
- }
81
- }
82
- async executeWithProgress(registration, ctx) {
83
- await vscode.window.withProgress({
84
- location: vscode.ProgressLocation.Notification,
85
- title: registration.progressTitle || `Drift: ${registration.id}`,
86
- cancellable: true,
87
- }, async (progress, token) => {
88
- ctx.progress = progress;
89
- ctx.cancellationToken = token;
90
- await this.executeWithMiddleware(registration.handler, ctx);
91
- });
92
- }
93
- async executeWithMiddleware(handler, ctx) {
94
- let index = 0;
95
- const next = async () => {
96
- if (index < this.middleware.length) {
97
- const mw = this.middleware[index++];
98
- await mw(ctx, next);
99
- }
100
- else {
101
- await handler(ctx);
102
- }
103
- };
104
- await next();
105
- }
106
- handleError(command, error) {
107
- const message = error instanceof Error ? error.message : String(error);
108
- this.logger.error(`Command ${command} failed:`, message);
109
- vscode.window
110
- .showErrorMessage(`Drift: ${message}`, 'Retry', 'Show Logs')
111
- .then((action) => {
112
- if (action === 'Retry') {
113
- vscode.commands.executeCommand(command);
114
- }
115
- else if (action === 'Show Logs') {
116
- vscode.commands.executeCommand('drift.showLogs');
117
- }
118
- });
119
- }
120
- }
121
- /**
122
- * Factory function for creating command router
123
- */
124
- export function createCommandRouter(context, logger, stateManager) {
125
- return new CommandRouter(context, logger, stateManager);
126
- }
127
- //# sourceMappingURL=command-router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-router.js","sourceRoot":"","sources":["../../src/commands/command-router.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Connection command handlers
3
- *
4
- * Single responsibility: Handle connection-related commands.
5
- */
6
- import type { ConnectionManager } from '../../client/index.js';
7
- import type { StateManager } from '../../state/index.js';
8
- import type { NotificationService } from '../../ui/notifications/notification-service.js';
9
- import type { CommandRouter } from '../command-router.js';
10
- /**
11
- * Create connection command handlers
12
- */
13
- export declare function createConnectionHandlers(router: CommandRouter, connectionManager: ConnectionManager, stateManager: StateManager, notifications: NotificationService): void;
14
- //# sourceMappingURL=connection-handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection-handlers.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/connection-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAC;AAG1E;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,mBAAmB,GACjC,IAAI,CAmDN"}
@@ -1,57 +0,0 @@
1
- /**
2
- * Connection command handlers
3
- *
4
- * Single responsibility: Handle connection-related commands.
5
- */
6
- import { DRIFT_COMMANDS } from '../command-definitions.js';
7
- /**
8
- * Create connection command handlers
9
- */
10
- export function createConnectionHandlers(router, connectionManager, stateManager, notifications) {
11
- // Reconnect command
12
- router.register({
13
- id: DRIFT_COMMANDS.reconnect,
14
- handler: async (_ctx) => {
15
- await notifications.withProgress('Reconnecting...', async (progress) => {
16
- progress.report({ message: 'Disconnecting...' });
17
- await connectionManager.disconnect();
18
- progress.report({ message: 'Connecting...' });
19
- await connectionManager.connect();
20
- });
21
- },
22
- });
23
- // Show status command
24
- router.register({
25
- id: DRIFT_COMMANDS.showStatus,
26
- handler: async (_ctx) => {
27
- const state = stateManager.getState();
28
- const { connection, patterns, violations, workspace } = state;
29
- const items = [
30
- `Connection: ${connection.status}`,
31
- `Server Version: ${connection.serverVersion || 'Unknown'}`,
32
- `Patterns: ${patterns.total}`,
33
- `Violations: ${violations.total}`,
34
- `Last Scan: ${workspace.lastScanTime ? new Date(workspace.lastScanTime).toLocaleString() : 'Never'}`,
35
- ];
36
- await notifications.info(items.join('\n'), [], { detail: 'Drift Status' });
37
- },
38
- });
39
- // Show error command
40
- router.register({
41
- id: DRIFT_COMMANDS.showError,
42
- handler: async (_ctx) => {
43
- const state = stateManager.getState();
44
- const error = state.connection.lastError;
45
- if (error) {
46
- await notifications.error(error, [
47
- { title: 'Retry', command: DRIFT_COMMANDS.reconnect },
48
- { title: 'Show Logs', command: 'drift.showLogs' },
49
- ]);
50
- }
51
- else {
52
- await notifications.info('No errors to display.');
53
- }
54
- },
55
- });
56
- }
57
- //# sourceMappingURL=connection-handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection-handlers.js","sourceRoot":"","sources":["../../../src/commands/handlers/connection-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQ3D;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAqB,EACrB,iBAAoC,EACpC,YAA0B,EAC1B,aAAkC;IAElC,oBAAoB;IACpB,MAAM,CAAC,QAAQ,CAAC;QACd,EAAE,EAAE,cAAc,CAAC,SAAS;QAC5B,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YACtC,MAAM,aAAa,CAAC,YAAY,CAAC,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBACjD,MAAM,iBAAiB,CAAC,UAAU,EAAE,CAAC;gBAErC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC9C,MAAM,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,CAAC,QAAQ,CAAC;QACd,EAAE,EAAE,cAAc,CAAC,UAAU;QAC7B,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;YAE9D,MAAM,KAAK,GAAG;gBACZ,eAAe,UAAU,CAAC,MAAM,EAAE;gBAClC,mBAAmB,UAAU,CAAC,aAAa,IAAI,SAAS,EAAE;gBAC1D,aAAa,QAAQ,CAAC,KAAK,EAAE;gBAC7B,eAAe,UAAU,CAAC,KAAK,EAAE;gBACjC,cAAc,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;aACrG,CAAC;YAEF,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;QAC7E,CAAC;KACF,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,CAAC,QAAQ,CAAC;QACd,EAAE,EAAE,cAAc,CAAC,SAAS;QAC5B,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;YAEzC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE;oBAC/B,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,SAAS,EAAE;oBACrD,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE;iBAClD,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Constants command handlers
3
- *
4
- * Handlers for constants-related commands.
5
- */
6
- import type { ConstantsTreeProvider } from '../../views/constants-tree-provider.js';
7
- /**
8
- * Create constants command handlers
9
- */
10
- export declare function createConstantsHandlers(constantsProvider: ConstantsTreeProvider): Record<string, (...args: unknown[]) => Promise<void>>;
11
- //# sourceMappingURL=constants-handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants-handlers.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/constants-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,iBAAiB,EAAE,qBAAqB,GACvC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAmFvD"}
@@ -1,84 +0,0 @@
1
- /**
2
- * Constants command handlers
3
- *
4
- * Handlers for constants-related commands.
5
- */
6
- import * as vscode from 'vscode';
7
- /**
8
- * Create constants command handlers
9
- */
10
- export function createConstantsHandlers(constantsProvider) {
11
- return {
12
- /**
13
- * Show constants view by category
14
- */
15
- 'drift.showConstantsByCategory': async () => {
16
- constantsProvider.setViewMode('category');
17
- await vscode.commands.executeCommand('drift.constantsView.focus');
18
- },
19
- /**
20
- * Show constants view by language
21
- */
22
- 'drift.showConstantsByLanguage': async () => {
23
- constantsProvider.setViewMode('language');
24
- await vscode.commands.executeCommand('drift.constantsView.focus');
25
- },
26
- /**
27
- * Show constant issues
28
- */
29
- 'drift.showConstantIssues': async () => {
30
- constantsProvider.setViewMode('issues');
31
- await vscode.commands.executeCommand('drift.constantsView.focus');
32
- },
33
- /**
34
- * Go to constant definition
35
- */
36
- 'drift.goToConstant': async (file, line) => {
37
- if (typeof file !== 'string' || typeof line !== 'number') {
38
- return;
39
- }
40
- try {
41
- const uri = vscode.Uri.file(file);
42
- const document = await vscode.workspace.openTextDocument(uri);
43
- const editor = await vscode.window.showTextDocument(document);
44
- const position = new vscode.Position(Math.max(0, line - 1), 0);
45
- editor.selection = new vscode.Selection(position, position);
46
- editor.revealRange(new vscode.Range(position, position), vscode.TextEditorRevealType.InCenter);
47
- }
48
- catch (error) {
49
- vscode.window.showErrorMessage(`Failed to open file: ${file}`);
50
- }
51
- },
52
- /**
53
- * Find constant usages
54
- */
55
- 'drift.findConstantUsages': async (constantName) => {
56
- if (typeof constantName !== 'string') {
57
- // If no constant name provided, prompt for one
58
- const input = await vscode.window.showInputBox({
59
- prompt: 'Enter constant name to search for',
60
- placeHolder: 'CONSTANT_NAME',
61
- });
62
- if (!input) {
63
- return;
64
- }
65
- constantName = input;
66
- }
67
- // Use VSCode's built-in search
68
- await vscode.commands.executeCommand('workbench.action.findInFiles', {
69
- query: constantName,
70
- isRegex: false,
71
- isCaseSensitive: true,
72
- matchWholeWord: true,
73
- });
74
- },
75
- /**
76
- * Show constants overview
77
- */
78
- 'drift.showConstants': async () => {
79
- constantsProvider.setViewMode('category');
80
- await vscode.commands.executeCommand('drift.constantsView.focus');
81
- },
82
- };
83
- }
84
- //# sourceMappingURL=constants-handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants-handlers.js","sourceRoot":"","sources":["../../../src/commands/handlers/constants-handlers.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Command handlers module exports
3
- */
4
- export { createConnectionHandlers } from './connection-handlers.js';
5
- export { createScanHandlers } from './scan-handlers.js';
6
- export { createPatternHandlers } from './pattern-handlers.js';
7
- export { createViolationHandlers } from './violation-handlers.js';
8
- export { createUIHandlers } from './ui-handlers.js';
9
- export { createConstantsHandlers } from './constants-handlers.js';
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Command handlers module exports
3
- */
4
- export { createConnectionHandlers } from './connection-handlers.js';
5
- export { createScanHandlers } from './scan-handlers.js';
6
- export { createPatternHandlers } from './pattern-handlers.js';
7
- export { createViolationHandlers } from './violation-handlers.js';
8
- export { createUIHandlers } from './ui-handlers.js';
9
- export { createConstantsHandlers } from './constants-handlers.js';
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Pattern command handlers
3
- *
4
- * Single responsibility: Handle pattern-related commands.
5
- */
6
- import type { ConnectionManager } from '../../client/index.js';
7
- import type { NotificationService } from '../../ui/notifications/notification-service.js';
8
- import type { CommandRouter } from '../command-router.js';
9
- /**
10
- * Create pattern command handlers
11
- */
12
- export declare function createPatternHandlers(router: CommandRouter, connectionManager: ConnectionManager, notifications: NotificationService): void;
13
- //# sourceMappingURL=pattern-handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pattern-handlers.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/pattern-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAC;AAU1E;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,mBAAmB,GACjC,IAAI,CAyIN"}
@@ -1,127 +0,0 @@
1
- /**
2
- * Pattern command handlers
3
- *
4
- * Single responsibility: Handle pattern-related commands.
5
- */
6
- import * as vscode from 'vscode';
7
- import { DRIFT_COMMANDS } from '../command-definitions.js';
8
- /**
9
- * Create pattern command handlers
10
- */
11
- export function createPatternHandlers(router, connectionManager, notifications) {
12
- // Show patterns command
13
- router.register({
14
- id: DRIFT_COMMANDS.showPatterns,
15
- handler: async (_ctx) => {
16
- // Focus the patterns tree view
17
- await vscode.commands.executeCommand('drift.patterns.focus');
18
- },
19
- });
20
- // Approve pattern command
21
- router.register({
22
- id: DRIFT_COMMANDS.approvePattern,
23
- handler: async (ctx) => {
24
- const client = connectionManager.getClient();
25
- if (!client) {
26
- throw new Error('Not connected to server');
27
- }
28
- const patternId = ctx.args[0];
29
- if (!patternId) {
30
- // Show pattern picker
31
- const patterns = await client.sendRequest('drift/patterns/list', { status: 'discovered' });
32
- if (patterns.length === 0) {
33
- await notifications.info('No patterns to approve.');
34
- return;
35
- }
36
- const items = patterns.map((p) => ({
37
- label: p.name,
38
- description: p.id,
39
- id: p.id,
40
- }));
41
- const selected = await notifications.quickPick(items, { title: 'Select Pattern to Approve' });
42
- if (!selected) {
43
- return;
44
- }
45
- await client.sendRequest('drift/patterns/approve', { id: selected.id });
46
- await notifications.info(`Pattern "${selected.label}" approved.`);
47
- }
48
- else {
49
- await client.sendRequest('drift/patterns/approve', { id: patternId });
50
- await notifications.info(`Pattern approved.`);
51
- }
52
- },
53
- });
54
- // Ignore pattern command
55
- router.register({
56
- id: DRIFT_COMMANDS.ignorePattern,
57
- handler: async (ctx) => {
58
- const client = connectionManager.getClient();
59
- if (!client) {
60
- throw new Error('Not connected to server');
61
- }
62
- const patternId = ctx.args[0];
63
- if (!patternId) {
64
- // Show pattern picker
65
- const patterns = await client.sendRequest('drift/patterns/list', { status: 'discovered' });
66
- if (patterns.length === 0) {
67
- await notifications.info('No patterns to ignore.');
68
- return;
69
- }
70
- const items = patterns.map((p) => ({
71
- label: p.name,
72
- description: p.id,
73
- id: p.id,
74
- }));
75
- const selected = await notifications.quickPick(items, { title: 'Select Pattern to Ignore' });
76
- if (!selected) {
77
- return;
78
- }
79
- await client.sendRequest('drift/patterns/ignore', { id: selected.id });
80
- await notifications.info(`Pattern "${selected.label}" ignored.`);
81
- }
82
- else {
83
- await client.sendRequest('drift/patterns/ignore', { id: patternId });
84
- await notifications.info(`Pattern ignored.`);
85
- }
86
- },
87
- });
88
- // Create variant command
89
- router.register({
90
- id: DRIFT_COMMANDS.createVariant,
91
- handler: async (ctx) => {
92
- const client = connectionManager.getClient();
93
- if (!client) {
94
- throw new Error('Not connected to server');
95
- }
96
- const patternId = ctx.args[0];
97
- const violationId = ctx.args[1];
98
- if (!patternId) {
99
- await notifications.warning('No pattern specified for variant creation.');
100
- return;
101
- }
102
- // Get variant name from user
103
- const name = await notifications.inputBox({
104
- title: 'Create Variant',
105
- prompt: 'Enter a name for this variant',
106
- placeHolder: 'e.g., legacy-auth-pattern',
107
- });
108
- if (!name) {
109
- return;
110
- }
111
- // Get variant description
112
- const description = await notifications.inputBox({
113
- title: 'Create Variant',
114
- prompt: 'Enter a description (optional)',
115
- placeHolder: 'e.g., Used in legacy authentication module',
116
- });
117
- await client.sendRequest('drift/patterns/createVariant', {
118
- patternId,
119
- violationId,
120
- name,
121
- description,
122
- });
123
- await notifications.info(`Variant "${name}" created.`);
124
- },
125
- });
126
- }
127
- //# sourceMappingURL=pattern-handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pattern-handlers.js","sourceRoot":"","sources":["../../../src/commands/handlers/pattern-handlers.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Scan command handlers
3
- *
4
- * Single responsibility: Handle scan-related commands.
5
- */
6
- import type { ConnectionManager } from '../../client/index.js';
7
- import type { EventBus } from '../../infrastructure/event-bus.js';
8
- import type { StateManager } from '../../state/index.js';
9
- import type { NotificationService } from '../../ui/notifications/notification-service.js';
10
- import type { CommandRouter } from '../command-router.js';
11
- /**
12
- * Create scan command handlers
13
- */
14
- export declare function createScanHandlers(router: CommandRouter, connectionManager: ConnectionManager, stateManager: StateManager, notifications: NotificationService, eventBus: EventBus): void;
15
- //# sourceMappingURL=scan-handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scan-handlers.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/scan-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAC;AAG1E;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,mBAAmB,EAClC,QAAQ,EAAE,QAAQ,GACjB,IAAI,CAgFN"}
@@ -1,74 +0,0 @@
1
- /**
2
- * Scan command handlers
3
- *
4
- * Single responsibility: Handle scan-related commands.
5
- */
6
- import * as vscode from 'vscode';
7
- import { DRIFT_COMMANDS } from '../command-definitions.js';
8
- /**
9
- * Create scan command handlers
10
- */
11
- export function createScanHandlers(router, connectionManager, stateManager, notifications, eventBus) {
12
- // Rescan workspace command
13
- router.register({
14
- id: DRIFT_COMMANDS.rescan,
15
- showProgress: true,
16
- progressTitle: 'Scanning workspace...',
17
- handler: async (ctx) => {
18
- const client = connectionManager.getClient();
19
- if (!client) {
20
- throw new Error('Not connected to server');
21
- }
22
- // Update state to scanning
23
- stateManager.update(draft => {
24
- draft.workspace.scanning = true;
25
- });
26
- eventBus.emit('scan:started', { files: 0 });
27
- try {
28
- ctx.progress?.report({ message: 'Analyzing patterns...' });
29
- const result = await client.sendRequest('drift/rescan');
30
- // Update state with results
31
- stateManager.update(draft => {
32
- draft.workspace.scanning = false;
33
- draft.workspace.lastScanTime = Date.now();
34
- draft.patterns.total = result.patterns;
35
- draft.violations.total = result.violations;
36
- });
37
- eventBus.emit('scan:completed', {
38
- duration: result.duration,
39
- patterns: result.patterns,
40
- violations: result.violations,
41
- });
42
- await notifications.info(`Scan complete: ${result.patterns} patterns, ${result.violations} violations`);
43
- }
44
- catch (error) {
45
- stateManager.update(draft => {
46
- draft.workspace.scanning = false;
47
- });
48
- throw error;
49
- }
50
- },
51
- });
52
- // Scan current file command
53
- router.register({
54
- id: DRIFT_COMMANDS.scanFile,
55
- handler: async (_ctx) => {
56
- const editor = vscode.window.activeTextEditor;
57
- if (!editor) {
58
- await notifications.warning('No file is currently open.');
59
- return;
60
- }
61
- const client = connectionManager.getClient();
62
- if (!client) {
63
- throw new Error('Not connected to server');
64
- }
65
- const uri = editor.document.uri.toString();
66
- await notifications.withProgress('Scanning file...', async (progress) => {
67
- progress.report({ message: editor.document.fileName });
68
- await client.sendRequest('drift/scanFile', { uri });
69
- await notifications.info('File scan complete.');
70
- });
71
- },
72
- });
73
- }
74
- //# sourceMappingURL=scan-handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scan-handlers.js","sourceRoot":"","sources":["../../../src/commands/handlers/scan-handlers.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * UI command handlers
3
- *
4
- * Single responsibility: Handle UI-related commands.
5
- */
6
- import type { NotificationService } from '../../ui/notifications/notification-service.js';
7
- import type { CommandRouter } from '../command-router.js';
8
- /**
9
- * Create UI command handlers
10
- */
11
- export declare function createUIHandlers(router: CommandRouter, notifications: NotificationService): void;
12
- //# sourceMappingURL=ui-handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui-handlers.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/ui-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAC;AAE1E;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,mBAAmB,GACjC,IAAI,CAoEN"}