driftdetect-vscode 0.9.0 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +21 -46
- package/.turbo/turbo-build.log +0 -4
- package/.turbo/turbo-test.log +0 -138
- package/LICENSE +0 -121
- package/dist/activation/activation-controller.d.ts +0 -61
- package/dist/activation/activation-controller.d.ts.map +0 -1
- package/dist/activation/activation-controller.js +0 -235
- package/dist/activation/activation-controller.js.map +0 -1
- package/dist/activation/activation-phases.d.ts +0 -28
- package/dist/activation/activation-phases.d.ts.map +0 -1
- package/dist/activation/activation-phases.js +0 -80
- package/dist/activation/activation-phases.js.map +0 -1
- package/dist/activation/index.d.ts +0 -6
- package/dist/activation/index.d.ts.map +0 -1
- package/dist/activation/index.js +0 -6
- package/dist/activation/index.js.map +0 -1
- package/dist/client/connection-config.d.ts +0 -50
- package/dist/client/connection-config.d.ts.map +0 -1
- package/dist/client/connection-config.js +0 -56
- package/dist/client/connection-config.js.map +0 -1
- package/dist/client/connection-manager.d.ts +0 -70
- package/dist/client/connection-manager.d.ts.map +0 -1
- package/dist/client/connection-manager.js +0 -214
- package/dist/client/connection-manager.js.map +0 -1
- package/dist/client/index.d.ts +0 -8
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js +0 -8
- package/dist/client/index.js.map +0 -1
- package/dist/client/language-client-factory.d.ts +0 -29
- package/dist/client/language-client-factory.d.ts.map +0 -1
- package/dist/client/language-client-factory.js +0 -76
- package/dist/client/language-client-factory.js.map +0 -1
- package/dist/client/request-middleware.d.ts +0 -38
- package/dist/client/request-middleware.d.ts.map +0 -1
- package/dist/client/request-middleware.js +0 -85
- package/dist/client/request-middleware.js.map +0 -1
- package/dist/commands/command-definitions.d.ts +0 -53
- package/dist/commands/command-definitions.d.ts.map +0 -1
- package/dist/commands/command-definitions.js +0 -212
- package/dist/commands/command-definitions.js.map +0 -1
- package/dist/commands/command-router.d.ts +0 -80
- package/dist/commands/command-router.d.ts.map +0 -1
- package/dist/commands/command-router.js +0 -127
- package/dist/commands/command-router.js.map +0 -1
- package/dist/commands/handlers/connection-handlers.d.ts +0 -14
- package/dist/commands/handlers/connection-handlers.d.ts.map +0 -1
- package/dist/commands/handlers/connection-handlers.js +0 -57
- package/dist/commands/handlers/connection-handlers.js.map +0 -1
- package/dist/commands/handlers/constants-handlers.d.ts +0 -11
- package/dist/commands/handlers/constants-handlers.d.ts.map +0 -1
- package/dist/commands/handlers/constants-handlers.js +0 -84
- package/dist/commands/handlers/constants-handlers.js.map +0 -1
- package/dist/commands/handlers/index.d.ts +0 -10
- package/dist/commands/handlers/index.d.ts.map +0 -1
- package/dist/commands/handlers/index.js +0 -10
- package/dist/commands/handlers/index.js.map +0 -1
- package/dist/commands/handlers/pattern-handlers.d.ts +0 -13
- package/dist/commands/handlers/pattern-handlers.d.ts.map +0 -1
- package/dist/commands/handlers/pattern-handlers.js +0 -127
- package/dist/commands/handlers/pattern-handlers.js.map +0 -1
- package/dist/commands/handlers/scan-handlers.d.ts +0 -15
- package/dist/commands/handlers/scan-handlers.d.ts.map +0 -1
- package/dist/commands/handlers/scan-handlers.js +0 -74
- package/dist/commands/handlers/scan-handlers.js.map +0 -1
- package/dist/commands/handlers/ui-handlers.d.ts +0 -12
- package/dist/commands/handlers/ui-handlers.d.ts.map +0 -1
- package/dist/commands/handlers/ui-handlers.js +0 -74
- package/dist/commands/handlers/ui-handlers.js.map +0 -1
- package/dist/commands/handlers/violation-handlers.d.ts +0 -13
- package/dist/commands/handlers/violation-handlers.d.ts.map +0 -1
- package/dist/commands/handlers/violation-handlers.js +0 -76
- package/dist/commands/handlers/violation-handlers.js.map +0 -1
- package/dist/commands/index.d.ts +0 -7
- package/dist/commands/index.d.ts.map +0 -1
- package/dist/commands/index.js +0 -7
- package/dist/commands/index.js.map +0 -1
- package/dist/commands/middleware/connection-check-middleware.d.ts +0 -12
- package/dist/commands/middleware/connection-check-middleware.d.ts.map +0 -1
- package/dist/commands/middleware/connection-check-middleware.js +0 -34
- package/dist/commands/middleware/connection-check-middleware.js.map +0 -1
- package/dist/commands/middleware/index.d.ts +0 -7
- package/dist/commands/middleware/index.d.ts.map +0 -1
- package/dist/commands/middleware/index.js +0 -7
- package/dist/commands/middleware/index.js.map +0 -1
- package/dist/commands/middleware/logging-middleware.d.ts +0 -12
- package/dist/commands/middleware/logging-middleware.d.ts.map +0 -1
- package/dist/commands/middleware/logging-middleware.js +0 -24
- package/dist/commands/middleware/logging-middleware.js.map +0 -1
- package/dist/commands/middleware/telemetry-middleware.d.ts +0 -22
- package/dist/commands/middleware/telemetry-middleware.d.ts.map +0 -1
- package/dist/commands/middleware/telemetry-middleware.js +0 -30
- package/dist/commands/middleware/telemetry-middleware.js.map +0 -1
- package/dist/config/config-manager.d.ts +0 -53
- package/dist/config/config-manager.d.ts.map +0 -1
- package/dist/config/config-manager.js +0 -178
- package/dist/config/config-manager.js.map +0 -1
- package/dist/config/defaults.d.ts +0 -11
- package/dist/config/defaults.d.ts.map +0 -1
- package/dist/config/defaults.js +0 -43
- package/dist/config/defaults.js.map +0 -1
- package/dist/config/index.d.ts +0 -7
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -7
- package/dist/config/index.js.map +0 -1
- package/dist/config/validator.d.ts +0 -22
- package/dist/config/validator.d.ts.map +0 -1
- package/dist/config/validator.js +0 -93
- package/dist/config/validator.js.map +0 -1
- package/dist/extension.d.ts +0 -32
- package/dist/extension.d.ts.map +0 -1
- package/dist/extension.js +0 -50
- package/dist/extension.js.map +0 -1
- package/dist/infrastructure/disposable-manager.d.ts +0 -43
- package/dist/infrastructure/disposable-manager.d.ts.map +0 -1
- package/dist/infrastructure/disposable-manager.js +0 -75
- package/dist/infrastructure/disposable-manager.js.map +0 -1
- package/dist/infrastructure/event-bus.d.ts +0 -85
- package/dist/infrastructure/event-bus.d.ts.map +0 -1
- package/dist/infrastructure/event-bus.js +0 -74
- package/dist/infrastructure/event-bus.js.map +0 -1
- package/dist/infrastructure/index.d.ts +0 -10
- package/dist/infrastructure/index.d.ts.map +0 -1
- package/dist/infrastructure/index.js +0 -10
- package/dist/infrastructure/index.js.map +0 -1
- package/dist/infrastructure/logger.d.ts +0 -37
- package/dist/infrastructure/logger.d.ts.map +0 -1
- package/dist/infrastructure/logger.js +0 -86
- package/dist/infrastructure/logger.js.map +0 -1
- package/dist/infrastructure/service-container.d.ts +0 -68
- package/dist/infrastructure/service-container.d.ts.map +0 -1
- package/dist/infrastructure/service-container.js +0 -94
- package/dist/infrastructure/service-container.js.map +0 -1
- package/dist/state/index.d.ts +0 -7
- package/dist/state/index.d.ts.map +0 -1
- package/dist/state/index.js +0 -7
- package/dist/state/index.js.map +0 -1
- package/dist/state/initial-state.d.ts +0 -11
- package/dist/state/initial-state.d.ts.map +0 -1
- package/dist/state/initial-state.js +0 -58
- package/dist/state/initial-state.js.map +0 -1
- package/dist/state/selectors.d.ts +0 -41
- package/dist/state/selectors.d.ts.map +0 -1
- package/dist/state/selectors.js +0 -61
- package/dist/state/selectors.js.map +0 -1
- package/dist/state/state-manager.d.ts +0 -54
- package/dist/state/state-manager.d.ts.map +0 -1
- package/dist/state/state-manager.js +0 -166
- package/dist/state/state-manager.js.map +0 -1
- package/dist/types/config-types.d.ts +0 -69
- package/dist/types/config-types.d.ts.map +0 -1
- package/dist/types/config-types.js +0 -5
- package/dist/types/config-types.js.map +0 -1
- package/dist/types/extension-types.d.ts +0 -45
- package/dist/types/extension-types.d.ts.map +0 -1
- package/dist/types/extension-types.js +0 -5
- package/dist/types/extension-types.js.map +0 -1
- package/dist/types/index.d.ts +0 -12
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -12
- package/dist/types/index.js.map +0 -1
- package/dist/types/lsp-types.d.ts +0 -70
- package/dist/types/lsp-types.d.ts.map +0 -1
- package/dist/types/lsp-types.js +0 -5
- package/dist/types/lsp-types.js.map +0 -1
- package/dist/types/state-types.d.ts +0 -82
- package/dist/types/state-types.d.ts.map +0 -1
- package/dist/types/state-types.js +0 -5
- package/dist/types/state-types.js.map +0 -1
- package/dist/types/vscode-types.d.ts +0 -36
- package/dist/types/vscode-types.d.ts.map +0 -1
- package/dist/types/vscode-types.js +0 -7
- package/dist/types/vscode-types.js.map +0 -1
- package/dist/ui/decorations/decoration-controller.d.ts +0 -45
- package/dist/ui/decorations/decoration-controller.d.ts.map +0 -1
- package/dist/ui/decorations/decoration-controller.js +0 -198
- package/dist/ui/decorations/decoration-controller.js.map +0 -1
- package/dist/ui/decorations/decoration-types.d.ts +0 -28
- package/dist/ui/decorations/decoration-types.d.ts.map +0 -1
- package/dist/ui/decorations/decoration-types.js +0 -98
- package/dist/ui/decorations/decoration-types.js.map +0 -1
- package/dist/ui/decorations/index.d.ts +0 -7
- package/dist/ui/decorations/index.d.ts.map +0 -1
- package/dist/ui/decorations/index.js +0 -6
- package/dist/ui/decorations/index.js.map +0 -1
- package/dist/ui/index.d.ts +0 -7
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/index.js +0 -7
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/notifications/index.d.ts +0 -5
- package/dist/ui/notifications/index.d.ts.map +0 -1
- package/dist/ui/notifications/index.js +0 -5
- package/dist/ui/notifications/index.js.map +0 -1
- package/dist/ui/notifications/notification-service.d.ts +0 -66
- package/dist/ui/notifications/notification-service.d.ts.map +0 -1
- package/dist/ui/notifications/notification-service.js +0 -103
- package/dist/ui/notifications/notification-service.js.map +0 -1
- package/dist/ui/status-bar/index.d.ts +0 -6
- package/dist/ui/status-bar/index.d.ts.map +0 -1
- package/dist/ui/status-bar/index.js +0 -6
- package/dist/ui/status-bar/index.js.map +0 -1
- package/dist/ui/status-bar/status-bar-controller.d.ts +0 -37
- package/dist/ui/status-bar/status-bar-controller.d.ts.map +0 -1
- package/dist/ui/status-bar/status-bar-controller.js +0 -111
- package/dist/ui/status-bar/status-bar-controller.js.map +0 -1
- package/dist/ui/status-bar/status-bar-modes.d.ts +0 -26
- package/dist/ui/status-bar/status-bar-modes.d.ts.map +0 -1
- package/dist/ui/status-bar/status-bar-modes.js +0 -97
- package/dist/ui/status-bar/status-bar-modes.js.map +0 -1
- package/dist/views/base-tree-provider.d.ts +0 -74
- package/dist/views/base-tree-provider.d.ts.map +0 -1
- package/dist/views/base-tree-provider.js +0 -95
- package/dist/views/base-tree-provider.js.map +0 -1
- package/dist/views/constants-tree-provider.d.ts +0 -112
- package/dist/views/constants-tree-provider.d.ts.map +0 -1
- package/dist/views/constants-tree-provider.js +0 -344
- package/dist/views/constants-tree-provider.js.map +0 -1
- package/dist/views/files-tree-provider.d.ts +0 -37
- package/dist/views/files-tree-provider.d.ts.map +0 -1
- package/dist/views/files-tree-provider.js +0 -98
- package/dist/views/files-tree-provider.js.map +0 -1
- package/dist/views/index.d.ts +0 -10
- package/dist/views/index.d.ts.map +0 -1
- package/dist/views/index.js +0 -10
- package/dist/views/index.js.map +0 -1
- package/dist/views/patterns-tree-provider.d.ts +0 -39
- package/dist/views/patterns-tree-provider.d.ts.map +0 -1
- package/dist/views/patterns-tree-provider.js +0 -139
- package/dist/views/patterns-tree-provider.js.map +0 -1
- package/dist/views/violations-tree-provider.d.ts +0 -46
- package/dist/views/violations-tree-provider.d.ts.map +0 -1
- package/dist/views/violations-tree-provider.js +0 -158
- package/dist/views/violations-tree-provider.js.map +0 -1
- package/dist/webview/index.d.ts +0 -7
- package/dist/webview/index.d.ts.map +0 -1
- package/dist/webview/index.js +0 -7
- package/dist/webview/index.js.map +0 -1
- package/dist/webview/webview-manager.d.ts +0 -57
- package/dist/webview/webview-manager.d.ts.map +0 -1
- package/dist/webview/webview-manager.js +0 -167
- package/dist/webview/webview-manager.js.map +0 -1
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* UI command handlers
|
|
3
|
-
*
|
|
4
|
-
* Single responsibility: Handle UI-related commands.
|
|
5
|
-
*/
|
|
6
|
-
import * as vscode from 'vscode';
|
|
7
|
-
import { DRIFT_COMMANDS } from '../command-definitions.js';
|
|
8
|
-
/**
|
|
9
|
-
* Create UI command handlers
|
|
10
|
-
*/
|
|
11
|
-
export function createUIHandlers(router, notifications) {
|
|
12
|
-
// Open dashboard command
|
|
13
|
-
router.register({
|
|
14
|
-
id: DRIFT_COMMANDS.openDashboard,
|
|
15
|
-
handler: async (_ctx) => {
|
|
16
|
-
// Open the dashboard webview
|
|
17
|
-
await vscode.commands.executeCommand('drift.dashboard.focus');
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
// Open settings command
|
|
21
|
-
router.register({
|
|
22
|
-
id: DRIFT_COMMANDS.openSettings,
|
|
23
|
-
handler: async (_ctx) => {
|
|
24
|
-
// Open VS Code settings filtered to Drift
|
|
25
|
-
await vscode.commands.executeCommand('workbench.action.openSettings', '@ext:drift.drift');
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
// Export patterns command
|
|
29
|
-
router.register({
|
|
30
|
-
id: DRIFT_COMMANDS.exportPatterns,
|
|
31
|
-
showProgress: true,
|
|
32
|
-
progressTitle: 'Exporting patterns...',
|
|
33
|
-
handler: async (_ctx) => {
|
|
34
|
-
// Show save dialog
|
|
35
|
-
const uri = await vscode.window.showSaveDialog({
|
|
36
|
-
defaultUri: vscode.Uri.file('drift-patterns.json'),
|
|
37
|
-
filters: {
|
|
38
|
-
'JSON': ['json'],
|
|
39
|
-
'All Files': ['*'],
|
|
40
|
-
},
|
|
41
|
-
title: 'Export Patterns',
|
|
42
|
-
});
|
|
43
|
-
if (!uri) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
// TODO: Implement actual export via LSP
|
|
47
|
-
await notifications.info(`Patterns exported to ${uri.fsPath}`);
|
|
48
|
-
},
|
|
49
|
-
});
|
|
50
|
-
// Generate report command
|
|
51
|
-
router.register({
|
|
52
|
-
id: DRIFT_COMMANDS.generateReport,
|
|
53
|
-
showProgress: true,
|
|
54
|
-
progressTitle: 'Generating report...',
|
|
55
|
-
handler: async (_ctx) => {
|
|
56
|
-
// Show save dialog
|
|
57
|
-
const uri = await vscode.window.showSaveDialog({
|
|
58
|
-
defaultUri: vscode.Uri.file('drift-report.html'),
|
|
59
|
-
filters: {
|
|
60
|
-
'HTML': ['html'],
|
|
61
|
-
'Markdown': ['md'],
|
|
62
|
-
'JSON': ['json'],
|
|
63
|
-
},
|
|
64
|
-
title: 'Generate Report',
|
|
65
|
-
});
|
|
66
|
-
if (!uri) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
// TODO: Implement actual report generation via LSP
|
|
70
|
-
await notifications.info(`Report generated at ${uri.fsPath}`);
|
|
71
|
-
},
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=ui-handlers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui-handlers.js","sourceRoot":"","sources":["../../../src/commands/handlers/ui-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAK3D;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,aAAkC;IAElC,yBAAyB;IACzB,MAAM,CAAC,QAAQ,CAAC;QACd,EAAE,EAAE,cAAc,CAAC,aAAa;QAChC,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YACtC,6BAA6B;YAC7B,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;QAChE,CAAC;KACF,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,CAAC,QAAQ,CAAC;QACd,EAAE,EAAE,cAAc,CAAC,YAAY;QAC/B,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YACtC,0CAA0C;YAC1C,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAClC,+BAA+B,EAC/B,kBAAkB,CACnB,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,0BAA0B;IAC1B,MAAM,CAAC,QAAQ,CAAC;QACd,EAAE,EAAE,cAAc,CAAC,cAAc;QACjC,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,uBAAuB;QACtC,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YACtC,mBAAmB;YACnB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;gBAC7C,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC;gBAClD,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC,MAAM,CAAC;oBAChB,WAAW,EAAE,CAAC,GAAG,CAAC;iBACnB;gBACD,KAAK,EAAE,iBAAiB;aACzB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,EAAE,CAAC;gBAAA,OAAO;YAAA,CAAC;YAEnB,wCAAwC;YACxC,MAAM,aAAa,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;KACF,CAAC,CAAC;IAEH,0BAA0B;IAC1B,MAAM,CAAC,QAAQ,CAAC;QACd,EAAE,EAAE,cAAc,CAAC,cAAc;QACjC,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,sBAAsB;QACrC,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YACtC,mBAAmB;YACnB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;gBAC7C,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC;gBAChD,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC,MAAM,CAAC;oBAChB,UAAU,EAAE,CAAC,IAAI,CAAC;oBAClB,MAAM,EAAE,CAAC,MAAM,CAAC;iBACjB;gBACD,KAAK,EAAE,iBAAiB;aACzB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,EAAE,CAAC;gBAAA,OAAO;YAAA,CAAC;YAEnB,mDAAmD;YACnD,MAAM,aAAa,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Violation command handlers
|
|
3
|
-
*
|
|
4
|
-
* Single responsibility: Handle violation-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 violation command handlers
|
|
11
|
-
*/
|
|
12
|
-
export declare function createViolationHandlers(router: CommandRouter, connectionManager: ConnectionManager, notifications: NotificationService): void;
|
|
13
|
-
//# sourceMappingURL=violation-handlers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"violation-handlers.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/violation-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;AAG1E;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,mBAAmB,GACjC,IAAI,CA0EN"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Violation command handlers
|
|
3
|
-
*
|
|
4
|
-
* Single responsibility: Handle violation-related commands.
|
|
5
|
-
*/
|
|
6
|
-
import * as vscode from 'vscode';
|
|
7
|
-
import { DRIFT_COMMANDS } from '../command-definitions.js';
|
|
8
|
-
/**
|
|
9
|
-
* Create violation command handlers
|
|
10
|
-
*/
|
|
11
|
-
export function createViolationHandlers(router, connectionManager, notifications) {
|
|
12
|
-
// Show violations command
|
|
13
|
-
router.register({
|
|
14
|
-
id: DRIFT_COMMANDS.showViolations,
|
|
15
|
-
handler: async (_ctx) => {
|
|
16
|
-
// Focus the violations tree view
|
|
17
|
-
await vscode.commands.executeCommand('drift.violations.focus');
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
// Ignore once command
|
|
21
|
-
router.register({
|
|
22
|
-
id: DRIFT_COMMANDS.ignoreOnce,
|
|
23
|
-
handler: async (ctx) => {
|
|
24
|
-
const client = connectionManager.getClient();
|
|
25
|
-
if (!client) {
|
|
26
|
-
throw new Error('Not connected to server');
|
|
27
|
-
}
|
|
28
|
-
const violationId = ctx.args[0];
|
|
29
|
-
const uri = ctx.args[1];
|
|
30
|
-
const line = ctx.args[2];
|
|
31
|
-
if (!violationId || !uri || line === undefined) {
|
|
32
|
-
// Try to get from current editor position
|
|
33
|
-
const editor = vscode.window.activeTextEditor;
|
|
34
|
-
if (!editor) {
|
|
35
|
-
await notifications.warning('No violation selected.');
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
const position = editor.selection.active;
|
|
39
|
-
const diagnostics = vscode.languages.getDiagnostics(editor.document.uri);
|
|
40
|
-
const driftDiagnostic = diagnostics.find(d => d.source === 'drift' && d.range.contains(position));
|
|
41
|
-
if (!driftDiagnostic) {
|
|
42
|
-
await notifications.warning('No Drift violation at cursor position.');
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
// Extract violation ID from diagnostic data
|
|
46
|
-
const data = driftDiagnostic.data;
|
|
47
|
-
if (!data?.violationId) {
|
|
48
|
-
await notifications.warning('Cannot identify violation.');
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
await client.sendRequest('drift/violations/ignoreOnce', {
|
|
52
|
-
violationId: data.violationId,
|
|
53
|
-
uri: editor.document.uri.toString(),
|
|
54
|
-
line: driftDiagnostic.range.start.line,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
await client.sendRequest('drift/violations/ignoreOnce', {
|
|
59
|
-
violationId,
|
|
60
|
-
uri,
|
|
61
|
-
line,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
await notifications.info('Violation ignored for this occurrence.');
|
|
65
|
-
},
|
|
66
|
-
});
|
|
67
|
-
// Quick fix command
|
|
68
|
-
router.register({
|
|
69
|
-
id: DRIFT_COMMANDS.quickFix,
|
|
70
|
-
handler: async (_ctx) => {
|
|
71
|
-
// Trigger VS Code's built-in quick fix
|
|
72
|
-
await vscode.commands.executeCommand('editor.action.quickFix');
|
|
73
|
-
},
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=violation-handlers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"violation-handlers.js","sourceRoot":"","sources":["../../../src/commands/handlers/violation-handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Commands module exports
|
|
3
|
-
*/
|
|
4
|
-
export { CommandRouter, createCommandRouter } from './command-router.js';
|
|
5
|
-
export { CommandDefinitions, DRIFT_COMMANDS } from './command-definitions.js';
|
|
6
|
-
export * from './handlers/index.js';
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC9E,cAAc,qBAAqB,CAAC"}
|
package/dist/commands/index.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Commands module exports
|
|
3
|
-
*/
|
|
4
|
-
export { CommandRouter, createCommandRouter } from './command-router.js';
|
|
5
|
-
export { CommandDefinitions, DRIFT_COMMANDS } from './command-definitions.js';
|
|
6
|
-
export * from './handlers/index.js';
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC9E,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Connection check middleware
|
|
3
|
-
*
|
|
4
|
-
* Single responsibility: Verify connection before command execution.
|
|
5
|
-
*/
|
|
6
|
-
import type { StateManager } from '../../state/index.js';
|
|
7
|
-
import type { CommandMiddleware } from '../command-router.js';
|
|
8
|
-
/**
|
|
9
|
-
* Create connection check middleware
|
|
10
|
-
*/
|
|
11
|
-
export declare function createConnectionCheckMiddleware(stateManager: StateManager): CommandMiddleware;
|
|
12
|
-
//# sourceMappingURL=connection-check-middleware.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection-check-middleware.d.ts","sourceRoot":"","sources":["../../../src/commands/middleware/connection-check-middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,sBAAsB,CAAC;AAa9E;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,YAAY,GACzB,iBAAiB,CAkBnB"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Connection check middleware
|
|
3
|
-
*
|
|
4
|
-
* Single responsibility: Verify connection before command execution.
|
|
5
|
-
*/
|
|
6
|
-
import { DRIFT_COMMANDS } from '../command-definitions.js';
|
|
7
|
-
/**
|
|
8
|
-
* Commands that don't require connection
|
|
9
|
-
*/
|
|
10
|
-
const CONNECTION_EXEMPT_COMMANDS = new Set([
|
|
11
|
-
DRIFT_COMMANDS.reconnect,
|
|
12
|
-
DRIFT_COMMANDS.showStatus,
|
|
13
|
-
DRIFT_COMMANDS.showError,
|
|
14
|
-
DRIFT_COMMANDS.openSettings,
|
|
15
|
-
DRIFT_COMMANDS.openDashboard,
|
|
16
|
-
]);
|
|
17
|
-
/**
|
|
18
|
-
* Create connection check middleware
|
|
19
|
-
*/
|
|
20
|
-
export function createConnectionCheckMiddleware(stateManager) {
|
|
21
|
-
return async (ctx, next) => {
|
|
22
|
-
// Skip check for exempt commands
|
|
23
|
-
if (CONNECTION_EXEMPT_COMMANDS.has(ctx.command)) {
|
|
24
|
-
await next();
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
const state = stateManager.getState();
|
|
28
|
-
if (state.connection.status !== 'connected') {
|
|
29
|
-
throw new Error('Drift server is not connected. Please wait for initialization or run "Drift: Reconnect".');
|
|
30
|
-
}
|
|
31
|
-
await next();
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=connection-check-middleware.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection-check-middleware.js","sourceRoot":"","sources":["../../../src/commands/middleware/connection-check-middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAqB,MAAM,2BAA2B,CAAC;AAK9E;;GAEG;AACH,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAe;IACvD,cAAc,CAAC,SAAS;IACxB,cAAc,CAAC,UAAU;IACzB,cAAc,CAAC,SAAS;IACxB,cAAc,CAAC,YAAY;IAC3B,cAAc,CAAC,aAAa;CAC7B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAC7C,YAA0B;IAE1B,OAAO,KAAK,EAAE,GAAmB,EAAE,IAAyB,EAAiB,EAAE;QAC7E,iCAAiC;QACjC,IAAI,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QAEtC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Command middleware module exports
|
|
3
|
-
*/
|
|
4
|
-
export { createLoggingMiddleware } from './logging-middleware.js';
|
|
5
|
-
export { createConnectionCheckMiddleware } from './connection-check-middleware.js';
|
|
6
|
-
export { createTelemetryMiddleware } from './telemetry-middleware.js';
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/middleware/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Command middleware module exports
|
|
3
|
-
*/
|
|
4
|
-
export { createLoggingMiddleware } from './logging-middleware.js';
|
|
5
|
-
export { createConnectionCheckMiddleware } from './connection-check-middleware.js';
|
|
6
|
-
export { createTelemetryMiddleware } from './telemetry-middleware.js';
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/middleware/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Logging middleware
|
|
3
|
-
*
|
|
4
|
-
* Single responsibility: Log command execution.
|
|
5
|
-
*/
|
|
6
|
-
import type { Logger } from '../../infrastructure/index.js';
|
|
7
|
-
import type { CommandMiddleware } from '../command-router.js';
|
|
8
|
-
/**
|
|
9
|
-
* Create logging middleware
|
|
10
|
-
*/
|
|
11
|
-
export declare function createLoggingMiddleware(logger: Logger): CommandMiddleware;
|
|
12
|
-
//# sourceMappingURL=logging-middleware.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logging-middleware.d.ts","sourceRoot":"","sources":["../../../src/commands/middleware/logging-middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,sBAAsB,CAAC;AAE9E;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAezE"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Logging middleware
|
|
3
|
-
*
|
|
4
|
-
* Single responsibility: Log command execution.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Create logging middleware
|
|
8
|
-
*/
|
|
9
|
-
export function createLoggingMiddleware(logger) {
|
|
10
|
-
return async (ctx, next) => {
|
|
11
|
-
logger.debug(`Executing command: ${ctx.command}`, { args: ctx.args });
|
|
12
|
-
try {
|
|
13
|
-
await next();
|
|
14
|
-
const duration = performance.now() - ctx.startTime;
|
|
15
|
-
logger.debug(`Command completed: ${ctx.command} (${duration.toFixed(2)}ms)`);
|
|
16
|
-
}
|
|
17
|
-
catch (error) {
|
|
18
|
-
const duration = performance.now() - ctx.startTime;
|
|
19
|
-
logger.error(`Command failed: ${ctx.command} (${duration.toFixed(2)}ms)`, error);
|
|
20
|
-
throw error;
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=logging-middleware.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logging-middleware.js","sourceRoot":"","sources":["../../../src/commands/middleware/logging-middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,OAAO,KAAK,EAAE,GAAmB,EAAE,IAAyB,EAAiB,EAAE;QAC7E,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC;YACH,MAAM,IAAI,EAAE,CAAC;YAEb,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACjF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Telemetry middleware
|
|
3
|
-
*
|
|
4
|
-
* Single responsibility: Track command usage for analytics.
|
|
5
|
-
*/
|
|
6
|
-
import type { CommandMiddleware } from '../command-router.js';
|
|
7
|
-
/**
|
|
8
|
-
* Telemetry tracker interface
|
|
9
|
-
*/
|
|
10
|
-
export interface TelemetryTracker {
|
|
11
|
-
trackCommand(data: {
|
|
12
|
-
command: string;
|
|
13
|
-
duration: number;
|
|
14
|
-
success: boolean;
|
|
15
|
-
error?: string;
|
|
16
|
-
}): void;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Create telemetry middleware
|
|
20
|
-
*/
|
|
21
|
-
export declare function createTelemetryMiddleware(tracker: TelemetryTracker): CommandMiddleware;
|
|
22
|
-
//# sourceMappingURL=telemetry-middleware.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-middleware.d.ts","sourceRoot":"","sources":["../../../src/commands/middleware/telemetry-middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,sBAAsB,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,IAAI,EAAE;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI,CAAC;CACV;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gBAAgB,GACxB,iBAAiB,CAoBnB"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Telemetry middleware
|
|
3
|
-
*
|
|
4
|
-
* Single responsibility: Track command usage for analytics.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Create telemetry middleware
|
|
8
|
-
*/
|
|
9
|
-
export function createTelemetryMiddleware(tracker) {
|
|
10
|
-
return async (ctx, next) => {
|
|
11
|
-
try {
|
|
12
|
-
await next();
|
|
13
|
-
tracker.trackCommand({
|
|
14
|
-
command: ctx.command,
|
|
15
|
-
duration: performance.now() - ctx.startTime,
|
|
16
|
-
success: true,
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
catch (error) {
|
|
20
|
-
tracker.trackCommand({
|
|
21
|
-
command: ctx.command,
|
|
22
|
-
duration: performance.now() - ctx.startTime,
|
|
23
|
-
success: false,
|
|
24
|
-
error: error instanceof Error ? error.name : 'UnknownError',
|
|
25
|
-
});
|
|
26
|
-
throw error;
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=telemetry-middleware.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-middleware.js","sourceRoot":"","sources":["../../../src/commands/middleware/telemetry-middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAyB;IAEzB,OAAO,KAAK,EAAE,GAAmB,EAAE,IAAyB,EAAiB,EAAE;QAC7E,IAAI,CAAC;YACH,MAAM,IAAI,EAAE,CAAC;YAEb,OAAO,CAAC,YAAY,CAAC;gBACnB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS;gBAC3C,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,YAAY,CAAC;gBACnB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS;gBAC3C,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc;aAC5D,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ConfigManager - Configuration management with change detection
|
|
3
|
-
*
|
|
4
|
-
* Single responsibility: Load, validate, and watch configuration.
|
|
5
|
-
*/
|
|
6
|
-
import * as vscode from 'vscode';
|
|
7
|
-
import type { Logger } from '../infrastructure/index.js';
|
|
8
|
-
import type { DriftConfig, ConfigChangeEvent } from '../types/index.js';
|
|
9
|
-
/**
|
|
10
|
-
* Configuration manager with reactive updates
|
|
11
|
-
*/
|
|
12
|
-
export declare class ConfigManager implements vscode.Disposable {
|
|
13
|
-
private readonly logger;
|
|
14
|
-
private config;
|
|
15
|
-
private readonly disposables;
|
|
16
|
-
private readonly changeEmitter;
|
|
17
|
-
readonly onConfigChange: vscode.Event<ConfigChangeEvent>;
|
|
18
|
-
constructor(logger: Logger);
|
|
19
|
-
/**
|
|
20
|
-
* Get a configuration section
|
|
21
|
-
*/
|
|
22
|
-
get<K extends keyof DriftConfig>(section: K): DriftConfig[K];
|
|
23
|
-
/**
|
|
24
|
-
* Get the full configuration
|
|
25
|
-
*/
|
|
26
|
-
getAll(): Readonly<DriftConfig>;
|
|
27
|
-
/**
|
|
28
|
-
* Update a configuration section
|
|
29
|
-
*/
|
|
30
|
-
update<K extends keyof DriftConfig>(section: K, value: Partial<DriftConfig[K]>, target?: vscode.ConfigurationTarget): Promise<void>;
|
|
31
|
-
/**
|
|
32
|
-
* Reset configuration to defaults
|
|
33
|
-
*/
|
|
34
|
-
reset(target?: vscode.ConfigurationTarget): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Reload configuration from VS Code settings
|
|
37
|
-
*/
|
|
38
|
-
reload(): void;
|
|
39
|
-
/**
|
|
40
|
-
* Dispose resources
|
|
41
|
-
*/
|
|
42
|
-
dispose(): void;
|
|
43
|
-
private loadConfig;
|
|
44
|
-
private loadTeamConfig;
|
|
45
|
-
private watchConfig;
|
|
46
|
-
private reloadTeamConfig;
|
|
47
|
-
private emitChanges;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Factory function for creating config manager
|
|
51
|
-
*/
|
|
52
|
-
export declare function createConfigManager(logger: Logger): ConfigManager;
|
|
53
|
-
//# sourceMappingURL=config-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../src/config/config-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAKjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAc,MAAM,mBAAmB,CAAC;AAEpF;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM,CAAC,UAAU;IAOzC,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgD;IAE9E,QAAQ,CAAC,cAAc,kCAA4B;gBAEtB,MAAM,EAAE,MAAM;IAK3C;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,WAAW,EAAE,OAAO,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAI5D;;OAEG;IACH,MAAM,IAAI,QAAQ,CAAC,WAAW,CAAC;IAI/B;;OAEG;IACG,MAAM,CAAC,CAAC,SAAS,MAAM,WAAW,EACtC,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAC9B,MAAM,GAAE,MAAM,CAAC,mBAA0D,GACxE,OAAO,CAAC,IAAI,CAAC;IAehB;;OAEG;IACG,KAAK,CAAC,MAAM,GAAE,MAAM,CAAC,mBAA0D,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrG;;OAEG;IACH,MAAM,IAAI,IAAI;IAMd;;OAEG;IACH,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,WAAW;CAapB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAEjE"}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ConfigManager - Configuration management with change detection
|
|
3
|
-
*
|
|
4
|
-
* Single responsibility: Load, validate, and watch configuration.
|
|
5
|
-
*/
|
|
6
|
-
import * as fs from 'node:fs';
|
|
7
|
-
import * as path from 'node:path';
|
|
8
|
-
import * as vscode from 'vscode';
|
|
9
|
-
import { DEFAULT_CONFIG } from './defaults.js';
|
|
10
|
-
import { validateConfig } from './validator.js';
|
|
11
|
-
/**
|
|
12
|
-
* Configuration manager with reactive updates
|
|
13
|
-
*/
|
|
14
|
-
export class ConfigManager {
|
|
15
|
-
logger;
|
|
16
|
-
config;
|
|
17
|
-
disposables = [];
|
|
18
|
-
changeEmitter = new vscode.EventEmitter();
|
|
19
|
-
onConfigChange = this.changeEmitter.event;
|
|
20
|
-
constructor(logger) {
|
|
21
|
-
this.logger = logger;
|
|
22
|
-
this.config = this.loadConfig();
|
|
23
|
-
this.watchConfig();
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Get a configuration section
|
|
27
|
-
*/
|
|
28
|
-
get(section) {
|
|
29
|
-
return this.config[section];
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Get the full configuration
|
|
33
|
-
*/
|
|
34
|
-
getAll() {
|
|
35
|
-
return this.config;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Update a configuration section
|
|
39
|
-
*/
|
|
40
|
-
async update(section, value, target = vscode.ConfigurationTarget.Workspace) {
|
|
41
|
-
const vsConfig = vscode.workspace.getConfiguration('drift');
|
|
42
|
-
const current = vsConfig.get(section);
|
|
43
|
-
const merged = { ...current, ...value };
|
|
44
|
-
// Validate before updating
|
|
45
|
-
const validation = validateConfig({ [section]: merged });
|
|
46
|
-
if (!validation.valid) {
|
|
47
|
-
this.logger.error('Invalid configuration:', validation.errors);
|
|
48
|
-
throw new Error(`Invalid configuration: ${validation.errors.join(', ')}`);
|
|
49
|
-
}
|
|
50
|
-
await vsConfig.update(section, merged, target);
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Reset configuration to defaults
|
|
54
|
-
*/
|
|
55
|
-
async reset(target = vscode.ConfigurationTarget.Workspace) {
|
|
56
|
-
const vsConfig = vscode.workspace.getConfiguration('drift');
|
|
57
|
-
for (const [section, value] of Object.entries(DEFAULT_CONFIG)) {
|
|
58
|
-
if (section !== 'team') {
|
|
59
|
-
await vsConfig.update(section, value, target);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Reload configuration from VS Code settings
|
|
65
|
-
*/
|
|
66
|
-
reload() {
|
|
67
|
-
const oldConfig = this.config;
|
|
68
|
-
this.config = this.loadConfig();
|
|
69
|
-
this.emitChanges(oldConfig, this.config);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Dispose resources
|
|
73
|
-
*/
|
|
74
|
-
dispose() {
|
|
75
|
-
this.changeEmitter.dispose();
|
|
76
|
-
for (const d of this.disposables) {
|
|
77
|
-
d.dispose();
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
loadConfig() {
|
|
81
|
-
const vsConfig = vscode.workspace.getConfiguration('drift');
|
|
82
|
-
return {
|
|
83
|
-
server: {
|
|
84
|
-
path: vsConfig.get('server.path', DEFAULT_CONFIG.server.path),
|
|
85
|
-
args: vsConfig.get('server.args', DEFAULT_CONFIG.server.args),
|
|
86
|
-
trace: vsConfig.get('server.trace', DEFAULT_CONFIG.server.trace),
|
|
87
|
-
},
|
|
88
|
-
scan: {
|
|
89
|
-
onSave: vsConfig.get('scan.onSave', DEFAULT_CONFIG.scan.onSave),
|
|
90
|
-
onOpen: vsConfig.get('scan.onOpen', DEFAULT_CONFIG.scan.onOpen),
|
|
91
|
-
debounceMs: vsConfig.get('scan.debounceMs', DEFAULT_CONFIG.scan.debounceMs),
|
|
92
|
-
excludePatterns: vsConfig.get('scan.excludePatterns', DEFAULT_CONFIG.scan.excludePatterns),
|
|
93
|
-
},
|
|
94
|
-
display: {
|
|
95
|
-
showStatusBar: vsConfig.get('display.showStatusBar', DEFAULT_CONFIG.display.showStatusBar),
|
|
96
|
-
showInlineHints: vsConfig.get('display.showInlineHints', DEFAULT_CONFIG.display.showInlineHints),
|
|
97
|
-
showGutterIcons: vsConfig.get('display.showGutterIcons', DEFAULT_CONFIG.display.showGutterIcons),
|
|
98
|
-
severityFilter: vsConfig.get('display.severityFilter', DEFAULT_CONFIG.display.severityFilter),
|
|
99
|
-
},
|
|
100
|
-
ai: {
|
|
101
|
-
enabled: vsConfig.get('ai.enabled', DEFAULT_CONFIG.ai.enabled),
|
|
102
|
-
provider: vsConfig.get('ai.provider', DEFAULT_CONFIG.ai.provider),
|
|
103
|
-
model: vsConfig.get('ai.model', DEFAULT_CONFIG.ai.model),
|
|
104
|
-
},
|
|
105
|
-
team: this.loadTeamConfig(),
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
loadTeamConfig() {
|
|
109
|
-
const workspaceFolder = vscode.workspace.workspaceFolders?.[0];
|
|
110
|
-
if (!workspaceFolder) {
|
|
111
|
-
return DEFAULT_CONFIG.team;
|
|
112
|
-
}
|
|
113
|
-
const configPath = path.join(workspaceFolder.uri.fsPath, '.drift', 'config.json');
|
|
114
|
-
try {
|
|
115
|
-
if (fs.existsSync(configPath)) {
|
|
116
|
-
const content = fs.readFileSync(configPath, 'utf-8');
|
|
117
|
-
const parsed = JSON.parse(content);
|
|
118
|
-
return {
|
|
119
|
-
enforceApproved: parsed.enforceApproved ?? DEFAULT_CONFIG.team.enforceApproved,
|
|
120
|
-
requiredCategories: parsed.requiredCategories ?? DEFAULT_CONFIG.team.requiredCategories,
|
|
121
|
-
customRules: parsed.customRules ?? DEFAULT_CONFIG.team.customRules,
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
this.logger.warn('Failed to load team config:', error);
|
|
127
|
-
}
|
|
128
|
-
return DEFAULT_CONFIG.team;
|
|
129
|
-
}
|
|
130
|
-
watchConfig() {
|
|
131
|
-
// Watch VS Code settings
|
|
132
|
-
this.disposables.push(vscode.workspace.onDidChangeConfiguration((event) => {
|
|
133
|
-
if (event.affectsConfiguration('drift')) {
|
|
134
|
-
this.reload();
|
|
135
|
-
}
|
|
136
|
-
}));
|
|
137
|
-
// Watch .drift/config.json
|
|
138
|
-
const workspaceFolder = vscode.workspace.workspaceFolders?.[0];
|
|
139
|
-
if (workspaceFolder) {
|
|
140
|
-
const pattern = new vscode.RelativePattern(workspaceFolder, '.drift/config.json');
|
|
141
|
-
const watcher = vscode.workspace.createFileSystemWatcher(pattern);
|
|
142
|
-
watcher.onDidChange(() => { this.reloadTeamConfig(); });
|
|
143
|
-
watcher.onDidCreate(() => { this.reloadTeamConfig(); });
|
|
144
|
-
watcher.onDidDelete(() => { this.reloadTeamConfig(); });
|
|
145
|
-
this.disposables.push(watcher);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
reloadTeamConfig() {
|
|
149
|
-
const oldTeam = this.config.team;
|
|
150
|
-
this.config = { ...this.config, team: this.loadTeamConfig() };
|
|
151
|
-
if (JSON.stringify(oldTeam) !== JSON.stringify(this.config.team)) {
|
|
152
|
-
this.changeEmitter.fire({
|
|
153
|
-
section: 'team',
|
|
154
|
-
oldValue: oldTeam,
|
|
155
|
-
newValue: this.config.team,
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
emitChanges(oldConfig, newConfig) {
|
|
160
|
-
const sections = ['server', 'scan', 'display', 'ai', 'team'];
|
|
161
|
-
for (const section of sections) {
|
|
162
|
-
if (JSON.stringify(oldConfig[section]) !== JSON.stringify(newConfig[section])) {
|
|
163
|
-
this.changeEmitter.fire({
|
|
164
|
-
section,
|
|
165
|
-
oldValue: oldConfig[section],
|
|
166
|
-
newValue: newConfig[section],
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Factory function for creating config manager
|
|
174
|
-
*/
|
|
175
|
-
export function createConfigManager(logger) {
|
|
176
|
-
return new ConfigManager(logger);
|
|
177
|
-
}
|
|
178
|
-
//# sourceMappingURL=config-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../src/config/config-manager.ts"],"names":[],"mappings":"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"}
|