driftdetect-vscode 0.9.31 → 0.9.33

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 (132) hide show
  1. package/.turbo/turbo-build.log +4 -4
  2. package/.turbo/turbo-lint.log +44 -1
  3. package/.turbo/turbo-test.log +0 -34
  4. package/dist/activation/activation-controller.d.ts.map +1 -0
  5. package/dist/activation/activation-controller.js +235 -0
  6. package/dist/activation/activation-controller.js.map +1 -0
  7. package/dist/activation/activation-phases.d.ts.map +1 -0
  8. package/dist/activation/index.d.ts.map +1 -0
  9. package/dist/client/connection-manager.d.ts.map +1 -0
  10. package/dist/client/connection-manager.js +216 -0
  11. package/dist/client/connection-manager.js.map +1 -0
  12. package/dist/client/index.d.ts.map +1 -0
  13. package/dist/client/language-client-factory.d.ts.map +1 -0
  14. package/dist/client/request-middleware.d.ts.map +1 -0
  15. package/dist/client/request-middleware.js +85 -0
  16. package/dist/client/request-middleware.js.map +1 -0
  17. package/dist/commands/command-router.d.ts.map +1 -0
  18. package/dist/commands/command-router.js +129 -0
  19. package/dist/commands/command-router.js.map +1 -0
  20. package/dist/commands/handlers/connection-handlers.d.ts.map +1 -0
  21. package/dist/commands/handlers/connection-handlers.js +57 -0
  22. package/dist/commands/handlers/connection-handlers.js.map +1 -0
  23. package/dist/commands/handlers/constants-handlers.d.ts.map +1 -0
  24. package/dist/commands/handlers/constants-handlers.js +85 -0
  25. package/dist/commands/handlers/constants-handlers.js.map +1 -0
  26. package/dist/commands/handlers/index.d.ts.map +1 -0
  27. package/dist/commands/handlers/pattern-handlers.d.ts.map +1 -0
  28. package/dist/commands/handlers/pattern-handlers.js +127 -0
  29. package/dist/commands/handlers/pattern-handlers.js.map +1 -0
  30. package/dist/commands/handlers/scan-handlers.d.ts.map +1 -0
  31. package/dist/commands/handlers/scan-handlers.js +74 -0
  32. package/dist/commands/handlers/scan-handlers.js.map +1 -0
  33. package/dist/commands/handlers/ui-handlers.d.ts.map +1 -0
  34. package/dist/commands/handlers/violation-handlers.d.ts.map +1 -0
  35. package/dist/commands/handlers/violation-handlers.js +75 -0
  36. package/dist/commands/handlers/violation-handlers.js.map +1 -0
  37. package/dist/commands/index.d.ts.map +1 -0
  38. package/dist/commands/middleware/connection-check-middleware.d.ts.map +1 -0
  39. package/dist/commands/middleware/index.d.ts.map +1 -0
  40. package/dist/commands/middleware/logging-middleware.d.ts.map +1 -0
  41. package/dist/commands/middleware/telemetry-middleware.d.ts.map +1 -0
  42. package/dist/config/config-manager.d.ts.map +1 -0
  43. package/dist/config/config-manager.js +182 -0
  44. package/dist/config/config-manager.js.map +1 -0
  45. package/dist/config/defaults.d.ts.map +1 -0
  46. package/dist/config/index.d.ts.map +1 -0
  47. package/dist/config/validator.d.ts.map +1 -0
  48. package/dist/config/validator.js +89 -0
  49. package/dist/config/validator.js.map +1 -0
  50. package/dist/extension.d.ts.map +1 -0
  51. package/dist/extension.js +51 -0
  52. package/dist/extension.js.map +1 -0
  53. package/dist/infrastructure/disposable-manager.d.ts.map +1 -0
  54. package/dist/infrastructure/disposable-manager.js +76 -0
  55. package/dist/infrastructure/disposable-manager.js.map +1 -0
  56. package/dist/infrastructure/index.d.ts.map +1 -0
  57. package/dist/infrastructure/logger.d.ts.map +1 -0
  58. package/dist/infrastructure/logger.js +82 -0
  59. package/dist/infrastructure/logger.js.map +1 -0
  60. package/dist/infrastructure/service-container.d.ts +68 -0
  61. package/dist/infrastructure/service-container.d.ts.map +1 -0
  62. package/dist/infrastructure/service-container.js +92 -0
  63. package/dist/infrastructure/service-container.js.map +1 -0
  64. package/dist/state/index.d.ts.map +1 -0
  65. package/dist/state/initial-state.d.ts.map +1 -0
  66. package/dist/state/selectors.d.ts.map +1 -0
  67. package/dist/state/state-manager.d.ts.map +1 -0
  68. package/dist/state/state-manager.js +166 -0
  69. package/dist/state/state-manager.js.map +1 -0
  70. package/dist/types/config-types.d.ts.map +1 -0
  71. package/dist/types/extension-types.d.ts +45 -0
  72. package/dist/types/extension-types.d.ts.map +1 -0
  73. package/dist/types/extension-types.js +5 -0
  74. package/dist/types/extension-types.js.map +1 -0
  75. package/dist/types/index.d.ts.map +1 -0
  76. package/dist/types/lsp-types.d.ts.map +1 -0
  77. package/dist/types/state-types.d.ts.map +1 -0
  78. package/dist/ui/decorations/decoration-controller.d.ts.map +1 -0
  79. package/dist/ui/decorations/decoration-controller.js +196 -0
  80. package/dist/ui/decorations/decoration-controller.js.map +1 -0
  81. package/dist/ui/decorations/decoration-types.d.ts.map +1 -0
  82. package/dist/ui/decorations/index.d.ts.map +1 -0
  83. package/dist/ui/index.d.ts.map +1 -0
  84. package/dist/ui/notifications/index.d.ts.map +1 -0
  85. package/dist/ui/notifications/notification-service.d.ts.map +1 -0
  86. package/dist/ui/notifications/notification-service.js +103 -0
  87. package/dist/ui/notifications/notification-service.js.map +1 -0
  88. package/dist/ui/status-bar/index.d.ts.map +1 -0
  89. package/dist/ui/status-bar/status-bar-controller.d.ts.map +1 -0
  90. package/dist/ui/status-bar/status-bar-controller.js +111 -0
  91. package/dist/ui/status-bar/status-bar-controller.js.map +1 -0
  92. package/dist/ui/status-bar/status-bar-modes.d.ts.map +1 -0
  93. package/dist/ui/status-bar/status-bar-modes.js +112 -0
  94. package/dist/ui/status-bar/status-bar-modes.js.map +1 -0
  95. package/dist/views/constants-tree-provider.d.ts +111 -0
  96. package/dist/views/constants-tree-provider.d.ts.map +1 -0
  97. package/dist/views/constants-tree-provider.js +343 -0
  98. package/dist/views/constants-tree-provider.js.map +1 -0
  99. package/dist/views/files-tree-provider.d.ts +36 -0
  100. package/dist/views/files-tree-provider.d.ts.map +1 -0
  101. package/dist/views/files-tree-provider.js +95 -0
  102. package/dist/views/files-tree-provider.js.map +1 -0
  103. package/dist/views/index.d.ts.map +1 -0
  104. package/dist/views/patterns-tree-provider.d.ts.map +1 -0
  105. package/dist/views/violations-tree-provider.d.ts.map +1 -0
  106. package/dist/webview/index.d.ts.map +1 -0
  107. package/dist/webview/webview-manager.d.ts.map +1 -0
  108. package/package.json +1 -1
  109. package/src/activation/activation-controller.ts +13 -13
  110. package/src/client/connection-manager.ts +11 -9
  111. package/src/client/request-middleware.ts +6 -6
  112. package/src/commands/command-router.ts +7 -5
  113. package/src/commands/handlers/connection-handlers.ts +5 -5
  114. package/src/commands/handlers/constants-handlers.ts +13 -12
  115. package/src/commands/handlers/pattern-handlers.ts +3 -3
  116. package/src/commands/handlers/scan-handlers.ts +1 -1
  117. package/src/commands/handlers/violation-handlers.ts +6 -3
  118. package/src/config/config-manager.ts +11 -2
  119. package/src/config/validator.ts +13 -17
  120. package/src/extension.ts +2 -1
  121. package/src/infrastructure/disposable-manager.ts +2 -1
  122. package/src/infrastructure/logger.ts +3 -8
  123. package/src/infrastructure/service-container.ts +6 -7
  124. package/src/state/state-manager.ts +8 -11
  125. package/src/types/extension-types.ts +1 -1
  126. package/src/ui/decorations/decoration-controller.ts +4 -5
  127. package/src/ui/notifications/notification-service.ts +5 -5
  128. package/src/ui/status-bar/status-bar-controller.ts +3 -3
  129. package/src/ui/status-bar/status-bar-modes.ts +24 -9
  130. package/src/views/constants-tree-provider.ts +17 -19
  131. package/src/views/files-tree-provider.ts +0 -4
  132. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/decorations/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAC9F,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAC1G,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/notifications/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-service.d.ts","sourceRoot":"","sources":["../../../src/ui/notifications/notification-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAkB,EAAO,EAClC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI9B;;OAEG;IACG,OAAO,CACX,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAkB,EAAO,EAClC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI9B;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAkB,EAAO,EAClC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAK9B;;OAEG;IACG,YAAY,CAAC,CAAC,EAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CACJ,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EACnE,KAAK,EAAE,MAAM,CAAC,iBAAiB,KAC5B,OAAO,CAAC,CAAC,CAAC,EACf,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAA;KAAO,GAC1E,OAAO,CAAC,CAAC,CAAC;IAWb;;OAEG;IACG,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,aAAa,EAC5C,KAAK,EAAE,CAAC,EAAE,EACV,OAAO,GAAE,MAAM,CAAC,gBAAqB,GACpC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAUzB;;OAEG;IACG,QAAQ,CAAC,OAAO,GAAE,MAAM,CAAC,eAAoB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAUnE,IAAI;CAyCnB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAE7E"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * NotificationService - User notification management
3
+ *
4
+ * Single responsibility: Display notifications to users.
5
+ */
6
+ import * as vscode from 'vscode';
7
+ /**
8
+ * Notification service for user messages
9
+ */
10
+ export class NotificationService {
11
+ logger;
12
+ constructor(logger) {
13
+ this.logger = logger;
14
+ }
15
+ /**
16
+ * Show an information message
17
+ */
18
+ async info(message, actions = [], options = {}) {
19
+ return this.show('info', message, actions, options);
20
+ }
21
+ /**
22
+ * Show a warning message
23
+ */
24
+ async warning(message, actions = [], options = {}) {
25
+ return this.show('warning', message, actions, options);
26
+ }
27
+ /**
28
+ * Show an error message
29
+ */
30
+ async error(message, actions = [], options = {}) {
31
+ this.logger.error(message);
32
+ return this.show('error', message, actions, options);
33
+ }
34
+ /**
35
+ * Show a progress notification
36
+ */
37
+ async withProgress(title, task, options = {}) {
38
+ return vscode.window.withProgress({
39
+ location: options.location ?? vscode.ProgressLocation.Notification,
40
+ title: `Drift: ${title}`,
41
+ cancellable: options.cancellable ?? false,
42
+ }, task);
43
+ }
44
+ /**
45
+ * Show a quick pick
46
+ */
47
+ async quickPick(items, options = {}) {
48
+ const pickOptions = {
49
+ ...options,
50
+ };
51
+ if (options.title !== null && options.title !== '') {
52
+ pickOptions.title = `Drift: ${options.title}`;
53
+ }
54
+ return vscode.window.showQuickPick(items, pickOptions);
55
+ }
56
+ /**
57
+ * Show an input box
58
+ */
59
+ async inputBox(options = {}) {
60
+ const inputOptions = {
61
+ ...options,
62
+ };
63
+ if (options.title !== null && options.title !== '') {
64
+ inputOptions.title = `Drift: ${options.title}`;
65
+ }
66
+ return vscode.window.showInputBox(inputOptions);
67
+ }
68
+ async show(type, message, actions, options) {
69
+ const actionTitles = actions.map(a => a.title);
70
+ const showFn = {
71
+ info: vscode.window.showInformationMessage,
72
+ warning: vscode.window.showWarningMessage,
73
+ error: vscode.window.showErrorMessage,
74
+ }[type];
75
+ const messageOptions = {};
76
+ if (options.modal !== undefined) {
77
+ messageOptions.modal = options.modal;
78
+ }
79
+ if (options.detail !== null && options.detail !== '' && options.detail !== undefined) {
80
+ messageOptions.detail = options.detail;
81
+ }
82
+ const selected = await showFn(`Drift: ${message}`, messageOptions, ...actionTitles);
83
+ if (selected !== null && selected !== '') {
84
+ const action = actions.find(a => a.title === selected);
85
+ if (action) {
86
+ if (action.callback) {
87
+ await action.callback();
88
+ }
89
+ else if (action.command) {
90
+ await vscode.commands.executeCommand(action.command, ...(action.args ?? []));
91
+ }
92
+ }
93
+ }
94
+ return selected;
95
+ }
96
+ }
97
+ /**
98
+ * Factory function for creating notification service
99
+ */
100
+ export function createNotificationService(logger) {
101
+ return new NotificationService(logger);
102
+ }
103
+ //# sourceMappingURL=notification-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-service.js","sourceRoot":"","sources":["../../../src/ui/notifications/notification-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/status-bar/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-bar-controller.d.ts","sourceRoot":"","sources":["../../../src/ui/status-bar/status-bar-controller.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAKjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;GAEG;AACH,qBAAa,mBAAoB,YAAW,MAAM,CAAC,UAAU;IAI/C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAHzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;gBAE1B,YAAY,EAAE,YAAY;IAWvD;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,eAAe;CAcxB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,mBAAmB,CAE/E"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * StatusBarController - Status bar management
3
+ *
4
+ * Single responsibility: Display extension status in VS Code status bar.
5
+ */
6
+ import * as vscode from 'vscode';
7
+ import { getStatusBarMode } from './status-bar-modes.js';
8
+ import { selectStatusBarData } from '../../state/selectors.js';
9
+ /**
10
+ * Status bar controller
11
+ */
12
+ export class StatusBarController {
13
+ stateManager;
14
+ item;
15
+ disposables = [];
16
+ constructor(stateManager) {
17
+ this.stateManager = stateManager;
18
+ this.item = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 100);
19
+ this.setupSubscriptions();
20
+ this.updateDisplay();
21
+ this.item.show();
22
+ }
23
+ /**
24
+ * Show the status bar item
25
+ */
26
+ show() {
27
+ this.item.show();
28
+ }
29
+ /**
30
+ * Hide the status bar item
31
+ */
32
+ hide() {
33
+ this.item.hide();
34
+ }
35
+ /**
36
+ * Dispose resources
37
+ */
38
+ dispose() {
39
+ this.item.dispose();
40
+ for (const d of this.disposables) {
41
+ d.dispose();
42
+ }
43
+ }
44
+ setupSubscriptions() {
45
+ // Subscribe to relevant state changes
46
+ this.disposables.push(this.stateManager.subscribe(selectStatusBarData, () => {
47
+ this.updateDisplay();
48
+ }));
49
+ }
50
+ updateDisplay() {
51
+ const state = this.stateManager.getState();
52
+ const { status, violations, scanning } = {
53
+ status: state.connection.status,
54
+ violations: state.violations.total,
55
+ scanning: state.workspace.scanning,
56
+ };
57
+ const mode = getStatusBarMode(status, violations, scanning);
58
+ this.item.text = `${mode.icon} ${mode.text}`;
59
+ this.item.tooltip = this.buildTooltip(mode.tooltip, state);
60
+ this.item.backgroundColor = mode.backgroundColor;
61
+ this.item.command = mode.command;
62
+ }
63
+ buildTooltip(baseTooltip, state) {
64
+ const md = new vscode.MarkdownString();
65
+ md.isTrusted = true;
66
+ md.supportThemeIcons = true;
67
+ md.appendMarkdown(`### $(drift-logo) Drift\n\n`);
68
+ md.appendMarkdown(`${baseTooltip}\n\n`);
69
+ // Add stats if connected
70
+ if (state.connection.status === 'connected') {
71
+ md.appendMarkdown(`---\n\n`);
72
+ md.appendMarkdown(`**Patterns:** ${String(state.patterns.total)}\n\n`);
73
+ md.appendMarkdown(`**Violations:** ${String(state.violations.total)}\n\n`);
74
+ if (state.violations.total > 0) {
75
+ md.appendMarkdown(`\n`);
76
+ for (const [severity, count] of Object.entries(state.violations.bySeverity)) {
77
+ if (count > 0) {
78
+ const icon = this.getSeverityIcon(severity);
79
+ md.appendMarkdown(`- ${icon} ${severity}: ${String(count)}\n`);
80
+ }
81
+ }
82
+ }
83
+ md.appendMarkdown(`\n---\n\n`);
84
+ md.appendMarkdown(`[View Violations](command:drift.showViolations) | `);
85
+ md.appendMarkdown(`[View Patterns](command:drift.showPatterns) | `);
86
+ md.appendMarkdown(`[Rescan](command:drift.rescan)\n`);
87
+ }
88
+ return md;
89
+ }
90
+ getSeverityIcon(severity) {
91
+ switch (severity) {
92
+ case 'error':
93
+ return '$(error)';
94
+ case 'warning':
95
+ return '$(warning)';
96
+ case 'info':
97
+ return '$(info)';
98
+ case 'hint':
99
+ return '$(lightbulb)';
100
+ default:
101
+ return '$(circle)';
102
+ }
103
+ }
104
+ }
105
+ /**
106
+ * Factory function for creating status bar controller
107
+ */
108
+ export function createStatusBar(stateManager) {
109
+ return new StatusBarController(stateManager);
110
+ }
111
+ //# sourceMappingURL=status-bar-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-bar-controller.js","sourceRoot":"","sources":["../../../src/ui/status-bar/status-bar-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-bar-modes.d.ts","sourceRoot":"","sources":["../../../src/ui/status-bar/status-bar-modes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAwDxD,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,GAChB,aAAa,CA4Cf"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Status bar display modes
3
+ *
4
+ * Single responsibility: Define status bar visual states.
5
+ */
6
+ import * as vscode from 'vscode';
7
+ /**
8
+ * Status bar modes for different states
9
+ */
10
+ export const StatusBarModes = {
11
+ disconnected: {
12
+ icon: '$(circle-slash)',
13
+ text: 'Drift: Disconnected',
14
+ tooltip: 'Drift is not connected. Click to reconnect.',
15
+ backgroundColor: new vscode.ThemeColor('statusBarItem.errorBackground'),
16
+ command: 'drift.reconnect',
17
+ },
18
+ connecting: {
19
+ icon: '$(sync~spin)',
20
+ text: 'Drift: Connecting...',
21
+ tooltip: 'Connecting to Drift server...',
22
+ },
23
+ connected: {
24
+ icon: '$(check)',
25
+ text: 'Drift: Ready',
26
+ tooltip: 'Drift is connected and ready.',
27
+ command: 'drift.showStatus',
28
+ },
29
+ reconnecting: {
30
+ icon: '$(sync~spin)',
31
+ text: 'Drift: Reconnecting...',
32
+ tooltip: 'Reconnecting to Drift server...',
33
+ },
34
+ error: {
35
+ icon: '$(error)',
36
+ text: 'Drift: Error',
37
+ tooltip: 'Drift encountered an error. Click for details.',
38
+ backgroundColor: new vscode.ThemeColor('statusBarItem.errorBackground'),
39
+ command: 'drift.showError',
40
+ },
41
+ failed: {
42
+ icon: '$(error)',
43
+ text: 'Drift: Failed',
44
+ tooltip: 'Drift failed to connect. Click to retry.',
45
+ backgroundColor: new vscode.ThemeColor('statusBarItem.errorBackground'),
46
+ command: 'drift.reconnect',
47
+ },
48
+ scanning: {
49
+ icon: '$(sync~spin)',
50
+ text: 'Drift: Scanning...',
51
+ tooltip: 'Scanning workspace for patterns...',
52
+ },
53
+ healthy: {
54
+ icon: '$(pass)',
55
+ text: 'Drift',
56
+ tooltip: 'No violations found.',
57
+ command: 'drift.showStatus',
58
+ },
59
+ warning: {
60
+ icon: '$(warning)',
61
+ text: 'Drift',
62
+ tooltip: 'Violations found. Click to view.',
63
+ backgroundColor: new vscode.ThemeColor('statusBarItem.warningBackground'),
64
+ command: 'drift.showViolations',
65
+ },
66
+ };
67
+ /**
68
+ * Get status bar mode based on state
69
+ */
70
+ export function getStatusBarMode(connectionState, violations, scanning) {
71
+ // Connection states take priority
72
+ if (connectionState !== 'connected') {
73
+ const mode = StatusBarModes[connectionState];
74
+ return mode ?? StatusBarModes['disconnected'] ?? {
75
+ icon: '$(circle-slash)',
76
+ text: 'Drift: Disconnected',
77
+ tooltip: 'Drift is not connected.',
78
+ };
79
+ }
80
+ // Scanning state
81
+ if (scanning) {
82
+ const scanningMode = StatusBarModes['scanning'];
83
+ return scanningMode ?? {
84
+ icon: '$(sync~spin)',
85
+ text: 'Drift: Scanning...',
86
+ tooltip: 'Scanning workspace for patterns...',
87
+ };
88
+ }
89
+ // Violation-based states
90
+ if (violations > 0) {
91
+ const warningMode = StatusBarModes['warning'];
92
+ const result = {
93
+ icon: warningMode?.icon ?? '$(warning)',
94
+ text: `Drift: ${String(violations)}`,
95
+ tooltip: `${String(violations)} violation${violations === 1 ? '' : 's'} found. Click to view.`,
96
+ };
97
+ if (warningMode?.backgroundColor) {
98
+ result.backgroundColor = warningMode.backgroundColor;
99
+ }
100
+ if (warningMode?.command) {
101
+ result.command = warningMode.command;
102
+ }
103
+ return result;
104
+ }
105
+ const healthyMode = StatusBarModes['healthy'];
106
+ return healthyMode ?? {
107
+ icon: '$(pass)',
108
+ text: 'Drift',
109
+ tooltip: 'No violations found.',
110
+ };
111
+ }
112
+ //# sourceMappingURL=status-bar-modes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-bar-modes.js","sourceRoot":"","sources":["../../../src/ui/status-bar/status-bar-modes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * ConstantsTreeProvider - Constants and Enums tree view
3
+ *
4
+ * Single responsibility: Display constants, enums, and related issues in a tree view.
5
+ */
6
+ import { BaseTreeProvider, type BaseTreeItem } from './base-tree-provider.js';
7
+ import type { LanguageClient } from 'vscode-languageclient/node';
8
+ /**
9
+ * Tree item types
10
+ */
11
+ type ConstantTreeItemType = 'category' | 'language' | 'constant' | 'enum' | 'issue-group' | 'secret' | 'inconsistent' | 'dead';
12
+ /**
13
+ * Constant data from server
14
+ */
15
+ export interface ConstantData {
16
+ id: string;
17
+ name: string;
18
+ qualifiedName: string;
19
+ file: string;
20
+ line: number;
21
+ language: string;
22
+ kind: string;
23
+ category: string;
24
+ value?: string | number | boolean | null;
25
+ isExported: boolean;
26
+ }
27
+ /**
28
+ * Enum data from server
29
+ */
30
+ export interface EnumData {
31
+ id: string;
32
+ name: string;
33
+ file: string;
34
+ line: number;
35
+ memberCount: number;
36
+ language: string;
37
+ }
38
+ /**
39
+ * Category summary
40
+ */
41
+ export interface CategorySummary {
42
+ name: string;
43
+ count: number;
44
+ }
45
+ /**
46
+ * Language summary
47
+ */
48
+ export interface LanguageSummary {
49
+ name: string;
50
+ count: number;
51
+ }
52
+ /**
53
+ * Secret issue
54
+ */
55
+ export interface SecretIssue {
56
+ name: string;
57
+ file: string;
58
+ line: number;
59
+ severity: string;
60
+ secretType: string;
61
+ }
62
+ /**
63
+ * Inconsistent constant issue
64
+ */
65
+ export interface InconsistentIssue {
66
+ name: string;
67
+ instanceCount: number;
68
+ }
69
+ /**
70
+ * Constants tree item
71
+ */
72
+ export interface ConstantTreeItem extends BaseTreeItem {
73
+ type: ConstantTreeItemType;
74
+ data?: ConstantData | EnumData | CategorySummary | LanguageSummary | SecretIssue | InconsistentIssue;
75
+ category?: string;
76
+ language?: string;
77
+ }
78
+ /**
79
+ * Constants tree provider
80
+ */
81
+ export declare class ConstantsTreeProvider extends BaseTreeProvider<ConstantTreeItem> {
82
+ private viewMode;
83
+ /**
84
+ * Set the view mode
85
+ */
86
+ setViewMode(mode: 'category' | 'language' | 'issues'): void;
87
+ getChildren(element?: ConstantTreeItem): Promise<ConstantTreeItem[]>;
88
+ private getCategories;
89
+ private getLanguages;
90
+ private getIssueGroups;
91
+ private getConstantsByCategory;
92
+ private getConstantsByLanguage;
93
+ private getIssuesByType;
94
+ private createCategoryItem;
95
+ private createLanguageItem;
96
+ private createIssueGroupItem;
97
+ private createConstantItem;
98
+ private createEnumItem;
99
+ private createSecretItem;
100
+ private createInconsistentItem;
101
+ private createDeadItem;
102
+ private getCategoryIcon;
103
+ private getLanguageIcon;
104
+ private createConstantTooltip;
105
+ }
106
+ /**
107
+ * Factory function for creating constants tree provider
108
+ */
109
+ export declare function createConstantsTreeProvider(client: LanguageClient | null): ConstantsTreeProvider;
110
+ export {};
111
+ //# sourceMappingURL=constants-tree-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants-tree-provider.d.ts","sourceRoot":"","sources":["../../src/views/constants-tree-provider.ts"],"names":[],"mappings":"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"}