@nielspeter/sonarlint-mcp-server 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/errors.js +3 -3
- package/dist/index.js +67 -49
- package/dist/index.js.map +1 -1
- package/dist/resources/session.d.ts +1 -1
- package/dist/resources/session.d.ts.map +1 -1
- package/dist/resources/session.js +22 -18
- package/dist/resources/session.js.map +1 -1
- package/dist/sloop-bridge.d.ts +9 -0
- package/dist/sloop-bridge.d.ts.map +1 -1
- package/dist/sloop-bridge.js +38 -36
- package/dist/sloop-bridge.js.map +1 -1
- package/dist/state.d.ts +2 -2
- package/dist/tools/analyze-content.d.ts.map +1 -1
- package/dist/tools/analyze-content.js +17 -17
- package/dist/tools/analyze-content.js.map +1 -1
- package/dist/tools/analyze-file.js +14 -14
- package/dist/tools/analyze-file.js.map +1 -1
- package/dist/tools/analyze-files.d.ts.map +1 -1
- package/dist/tools/analyze-files.js +22 -22
- package/dist/tools/analyze-files.js.map +1 -1
- package/dist/tools/apply-all-quick-fixes.d.ts.map +1 -1
- package/dist/tools/apply-all-quick-fixes.js +23 -19
- package/dist/tools/apply-all-quick-fixes.js.map +1 -1
- package/dist/tools/apply-quick-fix.js +10 -10
- package/dist/tools/apply-quick-fix.js.map +1 -1
- package/dist/tools/health-check.js +26 -26
- package/dist/tools/health-check.js.map +1 -1
- package/dist/tools/list-active-rules.d.ts.map +1 -1
- package/dist/tools/list-active-rules.js +22 -13
- package/dist/tools/list-active-rules.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils/config.d.ts +32 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +54 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/file-registration.d.ts.map +1 -1
- package/dist/utils/file-registration.js +1 -1
- package/dist/utils/file-registration.js.map +1 -1
- package/dist/utils/filesystem.js +8 -8
- package/dist/utils/filesystem.js.map +1 -1
- package/dist/utils/formatting.d.ts +1 -1
- package/dist/utils/formatting.d.ts.map +1 -1
- package/dist/utils/formatting.js +2 -4
- package/dist/utils/formatting.js.map +1 -1
- package/dist/utils/language.js +11 -11
- package/dist/utils/language.js.map +1 -1
- package/dist/utils/quick-fix.d.ts.map +1 -1
- package/dist/utils/quick-fix.js +6 -2
- package/dist/utils/quick-fix.js.map +1 -1
- package/dist/utils/scope.d.ts +4 -0
- package/dist/utils/scope.d.ts.map +1 -1
- package/dist/utils/scope.js +8 -7
- package/dist/utils/scope.js.map +1 -1
- package/dist/utils/sloop.d.ts +4 -3
- package/dist/utils/sloop.d.ts.map +1 -1
- package/dist/utils/sloop.js +22 -13
- package/dist/utils/sloop.js.map +1 -1
- package/dist/utils/transforms.d.ts +1 -1
- package/dist/utils/transforms.d.ts.map +1 -1
- package/dist/utils/transforms.js.map +1 -1
- package/package.json +12 -2
- package/scripts/generate-rules-doc.mjs +86 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [0.5.0](https://github.com/nielspeter/sonarlint-mcp-server/compare/v0.4.1...v0.5.0) (2026-04-02)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add sonarlint.json config file support and ESLint/Prettier setup ([140a885](https://github.com/nielspeter/sonarlint-mcp-server/commit/140a8857e8305c880b82a07f35b93fbd90d46f97))
|
|
11
|
+
|
|
5
12
|
### [0.4.1](https://github.com/nielspeter/sonarlint-mcp-server/compare/v0.4.0...v0.4.1) (2026-03-30)
|
|
6
13
|
|
|
7
14
|
|
package/dist/errors.js
CHANGED
|
@@ -18,12 +18,12 @@ export class SloopError extends Error {
|
|
|
18
18
|
* Handle tool errors and format them for MCP responses
|
|
19
19
|
*/
|
|
20
20
|
export function handleToolError(error) {
|
|
21
|
-
console.error(
|
|
21
|
+
console.error('[MCP] Error handling tool call:', error);
|
|
22
22
|
if (error instanceof SloopError) {
|
|
23
23
|
return {
|
|
24
24
|
content: [
|
|
25
25
|
{
|
|
26
|
-
type:
|
|
26
|
+
type: 'text',
|
|
27
27
|
text: `❌ **Error**: ${error.userMessage}`,
|
|
28
28
|
},
|
|
29
29
|
],
|
|
@@ -40,7 +40,7 @@ export function handleToolError(error) {
|
|
|
40
40
|
return {
|
|
41
41
|
content: [
|
|
42
42
|
{
|
|
43
|
-
type:
|
|
43
|
+
type: 'text',
|
|
44
44
|
text: `❌ **Error**: ${errorMessage}`,
|
|
45
45
|
},
|
|
46
46
|
],
|
package/dist/index.js
CHANGED
|
@@ -1,37 +1,42 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { McpServer } from
|
|
3
|
-
import { StdioServerTransport } from
|
|
4
|
-
import { z } from
|
|
5
|
-
import { handleToolError } from
|
|
2
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { handleToolError } from './errors.js';
|
|
6
6
|
// LLMs sometimes pass arrays as JSON strings — coerce transparently
|
|
7
|
-
const stringArray = z.preprocess((val) => typeof val === 'string' ? JSON.parse(val) : val, z.array(z.string()));
|
|
8
|
-
import { registerResources } from
|
|
9
|
-
import { handleAnalyzeFile } from
|
|
10
|
-
import { handleAnalyzeFiles } from
|
|
11
|
-
import { handleAnalyzeContent } from
|
|
12
|
-
import { handleListActiveRules } from
|
|
13
|
-
import { handleHealthCheck } from
|
|
14
|
-
import { handleApplyQuickFix } from
|
|
15
|
-
import { handleApplyAllQuickFixes } from
|
|
16
|
-
import { getSloopBridge } from
|
|
17
|
-
import { readFileSync } from
|
|
18
|
-
import { fileURLToPath } from
|
|
19
|
-
import { dirname, join } from
|
|
7
|
+
const stringArray = z.preprocess((val) => (typeof val === 'string' ? JSON.parse(val) : val), z.array(z.string()));
|
|
8
|
+
import { registerResources } from './resources/session.js';
|
|
9
|
+
import { handleAnalyzeFile } from './tools/analyze-file.js';
|
|
10
|
+
import { handleAnalyzeFiles } from './tools/analyze-files.js';
|
|
11
|
+
import { handleAnalyzeContent } from './tools/analyze-content.js';
|
|
12
|
+
import { handleListActiveRules } from './tools/list-active-rules.js';
|
|
13
|
+
import { handleHealthCheck } from './tools/health-check.js';
|
|
14
|
+
import { handleApplyQuickFix } from './tools/apply-quick-fix.js';
|
|
15
|
+
import { handleApplyAllQuickFixes } from './tools/apply-all-quick-fixes.js';
|
|
16
|
+
import { getSloopBridge } from './state.js';
|
|
17
|
+
import { readFileSync } from 'fs';
|
|
18
|
+
import { fileURLToPath } from 'url';
|
|
19
|
+
import { dirname, join } from 'path';
|
|
20
20
|
const __filename = fileURLToPath(import.meta.url);
|
|
21
21
|
const __dirname = dirname(__filename);
|
|
22
22
|
const packageJson = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
|
|
23
23
|
// Initialize the MCP server
|
|
24
24
|
const server = new McpServer({
|
|
25
|
-
name:
|
|
25
|
+
name: 'sonarlint-mcp-server',
|
|
26
26
|
version: packageJson.version,
|
|
27
27
|
});
|
|
28
28
|
// Register tool: check_quality
|
|
29
29
|
server.registerTool('check_quality', {
|
|
30
|
-
description:
|
|
30
|
+
description: 'Check a file for code quality issues — bugs, code smells, security vulnerabilities, and complexity problems. Like having SonarLint in your IDE. Use after writing or modifying code to catch issues early. Returns issues with exact line numbers, severity, and available quick fixes. For multiple files use check_files.',
|
|
31
31
|
inputSchema: {
|
|
32
|
-
filePath: z.string().describe(
|
|
33
|
-
minSeverity: z
|
|
34
|
-
|
|
32
|
+
filePath: z.string().describe('Absolute path to the file to analyze (e.g., /path/to/file.js)'),
|
|
33
|
+
minSeverity: z
|
|
34
|
+
.enum(['INFO', 'MINOR', 'MAJOR', 'CRITICAL', 'BLOCKER'])
|
|
35
|
+
.optional()
|
|
36
|
+
.describe('Minimum severity level to include. Filters out issues below this level. Default: INFO (show all)'),
|
|
37
|
+
excludeRules: stringArray
|
|
38
|
+
.optional()
|
|
39
|
+
.describe("List of rule IDs to exclude (e.g., ['typescript:S1135', 'javascript:S125'])"),
|
|
35
40
|
},
|
|
36
41
|
}, async (args) => {
|
|
37
42
|
try {
|
|
@@ -46,10 +51,18 @@ server.registerTool('check_files', {
|
|
|
46
51
|
description: "Check multiple files for code quality issues in one call — bugs, code smells, security vulnerabilities. Use when reviewing or modifying several files. Supports glob patterns (e.g. 'src/**/*.ts'). When using relative paths or globs, provide basePath so they resolve correctly. Output is compact: only files with issues are shown, clean files get a summary count. For a single file use check_quality.",
|
|
47
52
|
inputSchema: {
|
|
48
53
|
filePaths: stringArray.describe("Array of file paths or glob patterns to analyze (e.g., ['/path/to/file.ts', 'src/**/*.js'])"),
|
|
49
|
-
basePath: z
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
54
|
+
basePath: z
|
|
55
|
+
.string()
|
|
56
|
+
.optional()
|
|
57
|
+
.describe("Project root directory for resolving relative paths and globs (e.g., '/Users/me/project'). Required when filePaths contains relative paths."),
|
|
58
|
+
groupByFile: z.boolean().optional().default(true).describe('Group issues by file in output (default: true)'),
|
|
59
|
+
minSeverity: z
|
|
60
|
+
.enum(['INFO', 'MINOR', 'MAJOR', 'CRITICAL', 'BLOCKER'])
|
|
61
|
+
.optional()
|
|
62
|
+
.describe('Minimum severity level to include. Filters out issues below this level. Default: INFO (show all)'),
|
|
63
|
+
excludeRules: stringArray
|
|
64
|
+
.optional()
|
|
65
|
+
.describe("List of rule IDs to exclude (e.g., ['typescript:S1135', 'javascript:S125'])"),
|
|
53
66
|
},
|
|
54
67
|
}, async (args) => {
|
|
55
68
|
try {
|
|
@@ -63,8 +76,10 @@ server.registerTool('check_files', {
|
|
|
63
76
|
server.registerTool('check_code', {
|
|
64
77
|
description: "Check code quality of a code snippet or content you have in hand — catches bugs, code smells, security issues, and complexity problems. Use to validate code before writing it to disk, review generated code, or check code you've read into context. No file on disk needed.",
|
|
65
78
|
inputSchema: {
|
|
66
|
-
content: z.string().describe(
|
|
67
|
-
language: z
|
|
79
|
+
content: z.string().describe('The code content to analyze'),
|
|
80
|
+
language: z
|
|
81
|
+
.enum(['javascript', 'typescript', 'python', 'java', 'go', 'php', 'ruby'])
|
|
82
|
+
.describe('Programming language of the content'),
|
|
68
83
|
fileName: z.string().optional().describe("Optional filename for context (e.g., 'MyComponent.tsx')"),
|
|
69
84
|
},
|
|
70
85
|
}, async (args) => {
|
|
@@ -77,9 +92,12 @@ server.registerTool('check_code', {
|
|
|
77
92
|
});
|
|
78
93
|
// Register tool: list_rules
|
|
79
94
|
server.registerTool('list_rules', {
|
|
80
|
-
description:
|
|
95
|
+
description: 'List all active code quality rules with ID, name, and severity. Use to look up what a rule means (e.g., S3776 = Cognitive Complexity), discover what issues can be detected, or see which rules apply to a language. Covers bugs, code smells, security vulnerabilities, and security hotspots.',
|
|
81
96
|
inputSchema: {
|
|
82
|
-
language: z
|
|
97
|
+
language: z
|
|
98
|
+
.enum(['javascript', 'typescript', 'python', 'java', 'go', 'php', 'ruby'])
|
|
99
|
+
.optional()
|
|
100
|
+
.describe('Filter rules by language (optional)'),
|
|
83
101
|
},
|
|
84
102
|
}, async (args) => {
|
|
85
103
|
try {
|
|
@@ -103,10 +121,10 @@ server.registerTool('health_check', {
|
|
|
103
121
|
});
|
|
104
122
|
// Register tool: fix_issue
|
|
105
123
|
server.registerTool('fix_issue', {
|
|
106
|
-
description:
|
|
124
|
+
description: 'Automatically fix one specific code quality issue. Applies the SonarLint-suggested fix for the issue at the given file, line, and rule. The file is modified directly. To fix all issues in a file at once, use fix_all_issues instead.',
|
|
107
125
|
inputSchema: {
|
|
108
|
-
filePath: z.string().describe(
|
|
109
|
-
line: z.number().describe(
|
|
126
|
+
filePath: z.string().describe('Absolute path to the file to fix'),
|
|
127
|
+
line: z.number().describe('Line number of the issue'),
|
|
110
128
|
rule: z.string().describe("Rule ID (e.g., 'javascript:S3504')"),
|
|
111
129
|
},
|
|
112
130
|
}, async (args) => {
|
|
@@ -119,9 +137,9 @@ server.registerTool('fix_issue', {
|
|
|
119
137
|
});
|
|
120
138
|
// Register tool: fix_all_issues
|
|
121
139
|
server.registerTool('fix_all_issues', {
|
|
122
|
-
description:
|
|
140
|
+
description: 'Automatically fix all code quality issues in a file that have available quick fixes. Applies all SonarLint-suggested fixes in one operation. Returns what was fixed and what remains (some issues require manual fixes like reducing complexity).',
|
|
123
141
|
inputSchema: {
|
|
124
|
-
filePath: z.string().describe(
|
|
142
|
+
filePath: z.string().describe('Absolute path to the file to fix'),
|
|
125
143
|
},
|
|
126
144
|
}, async (args) => {
|
|
127
145
|
try {
|
|
@@ -135,15 +153,15 @@ server.registerTool('fix_all_issues', {
|
|
|
135
153
|
registerResources(server);
|
|
136
154
|
// Graceful shutdown
|
|
137
155
|
async function shutdown() {
|
|
138
|
-
console.error(
|
|
156
|
+
console.error('[MCP] Shutting down...');
|
|
139
157
|
const sloopBridge = getSloopBridge();
|
|
140
158
|
if (sloopBridge) {
|
|
141
159
|
try {
|
|
142
160
|
await sloopBridge.disconnect();
|
|
143
|
-
console.error(
|
|
161
|
+
console.error('[MCP] SLOOP bridge disconnected');
|
|
144
162
|
}
|
|
145
163
|
catch (error) {
|
|
146
|
-
console.error(
|
|
164
|
+
console.error('[MCP] Error disconnecting SLOOP:', error);
|
|
147
165
|
}
|
|
148
166
|
}
|
|
149
167
|
process.exit(0);
|
|
@@ -152,22 +170,22 @@ process.on('SIGINT', shutdown);
|
|
|
152
170
|
process.on('SIGTERM', shutdown);
|
|
153
171
|
// Start the server
|
|
154
172
|
async function main() {
|
|
155
|
-
console.error(
|
|
173
|
+
console.error('[MCP] Starting SonarLint MCP Server...');
|
|
156
174
|
console.error(`[MCP] Version: ${packageJson.version}`);
|
|
157
|
-
console.error(
|
|
158
|
-
console.error(
|
|
159
|
-
console.error(
|
|
160
|
-
console.error(
|
|
161
|
-
console.error(
|
|
162
|
-
console.error(
|
|
163
|
-
console.error(
|
|
164
|
-
console.error(
|
|
175
|
+
console.error('[MCP] Mode: Standalone (no IDE required)');
|
|
176
|
+
console.error('[MCP] Tools: check_quality, check_files, check_code, list_rules, fix_issue, fix_all_issues, health_check');
|
|
177
|
+
console.error('[MCP] Features:');
|
|
178
|
+
console.error('[MCP] - Session storage for multi-turn conversations');
|
|
179
|
+
console.error('[MCP] - Batch analysis for multiple files');
|
|
180
|
+
console.error('[MCP] - Content analysis (unsaved files)');
|
|
181
|
+
console.error('[MCP] - MCP resources for persistent results');
|
|
182
|
+
console.error('[MCP] - Quick fixes support');
|
|
165
183
|
const transport = new StdioServerTransport();
|
|
166
184
|
await server.connect(transport);
|
|
167
|
-
console.error(
|
|
185
|
+
console.error('[MCP] Server ready! Waiting for tool calls...');
|
|
168
186
|
}
|
|
169
187
|
main().catch((error) => {
|
|
170
|
-
console.error(
|
|
188
|
+
console.error('[MCP] Fatal error:', error);
|
|
171
189
|
process.exit(1);
|
|
172
190
|
});
|
|
173
191
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,oEAAoE;AACpE,MAAM,WAAW,GAAG,CAAC,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP resource registration for session and batch analysis results
|
|
3
3
|
*/
|
|
4
|
-
import { McpServer } from
|
|
4
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
5
|
/**
|
|
6
6
|
* Get all session resources (both session and batch analysis results)
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/resources/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAKtF;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBjH;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/resources/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAKtF;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBjH;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiEzD"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP resource registration for session and batch analysis results
|
|
3
3
|
*/
|
|
4
|
-
import { ResourceTemplate } from
|
|
5
|
-
import { basename } from
|
|
6
|
-
import { createHash } from
|
|
7
|
-
import { sessionResults, batchResults } from
|
|
4
|
+
import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import { basename } from 'path';
|
|
6
|
+
import { createHash } from 'crypto';
|
|
7
|
+
import { sessionResults, batchResults } from '../state.js';
|
|
8
8
|
/**
|
|
9
9
|
* Get all session resources (both session and batch analysis results)
|
|
10
10
|
*/
|
|
@@ -16,7 +16,7 @@ export function getSessionResources() {
|
|
|
16
16
|
uri: `sonarlint://session/${resourceId}`,
|
|
17
17
|
name: `Analysis: ${basename(filePath)}`,
|
|
18
18
|
description: `${result.summary.total} issues found`,
|
|
19
|
-
mimeType:
|
|
19
|
+
mimeType: 'application/json',
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
for (const [batchId, result] of batchResults) {
|
|
@@ -24,7 +24,7 @@ export function getSessionResources() {
|
|
|
24
24
|
uri: `sonarlint://batch/${batchId}`,
|
|
25
25
|
name: `Batch Analysis: ${result.summary.totalFiles} files`,
|
|
26
26
|
description: `${result.summary.totalIssues} total issues`,
|
|
27
|
-
mimeType:
|
|
27
|
+
mimeType: 'application/json',
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
return resources;
|
|
@@ -36,23 +36,25 @@ export function registerResources(server) {
|
|
|
36
36
|
// Register a dynamic resource template for session results
|
|
37
37
|
server.registerResource('session-analysis', new ResourceTemplate('sonarlint://session/{resourceId}', {
|
|
38
38
|
list: () => ({
|
|
39
|
-
resources: getSessionResources().filter(r => r.uri.startsWith('sonarlint://session/'))
|
|
40
|
-
})
|
|
39
|
+
resources: getSessionResources().filter((r) => r.uri.startsWith('sonarlint://session/')),
|
|
40
|
+
}),
|
|
41
41
|
}), {
|
|
42
42
|
title: 'SonarLint Session Analysis',
|
|
43
43
|
description: 'Analysis results from the current session',
|
|
44
|
-
mimeType: 'application/json'
|
|
44
|
+
mimeType: 'application/json',
|
|
45
45
|
}, async (uri, { resourceId }) => {
|
|
46
46
|
// Find matching result
|
|
47
47
|
for (const [filePath, result] of sessionResults) {
|
|
48
48
|
const fileResourceId = createHash('md5').update(filePath).digest('hex').substring(0, 8);
|
|
49
49
|
if (fileResourceId === String(resourceId)) {
|
|
50
50
|
return {
|
|
51
|
-
contents: [
|
|
51
|
+
contents: [
|
|
52
|
+
{
|
|
52
53
|
uri: uri.href,
|
|
53
|
-
mimeType:
|
|
54
|
+
mimeType: 'application/json',
|
|
54
55
|
text: JSON.stringify(result, null, 2),
|
|
55
|
-
}
|
|
56
|
+
},
|
|
57
|
+
],
|
|
56
58
|
};
|
|
57
59
|
}
|
|
58
60
|
}
|
|
@@ -61,21 +63,23 @@ export function registerResources(server) {
|
|
|
61
63
|
// Register a dynamic resource template for batch results
|
|
62
64
|
server.registerResource('batch-analysis', new ResourceTemplate('sonarlint://batch/{batchId}', {
|
|
63
65
|
list: () => ({
|
|
64
|
-
resources: getSessionResources().filter(r => r.uri.startsWith('sonarlint://batch/'))
|
|
65
|
-
})
|
|
66
|
+
resources: getSessionResources().filter((r) => r.uri.startsWith('sonarlint://batch/')),
|
|
67
|
+
}),
|
|
66
68
|
}), {
|
|
67
69
|
title: 'SonarLint Batch Analysis',
|
|
68
70
|
description: 'Batch analysis results',
|
|
69
|
-
mimeType: 'application/json'
|
|
71
|
+
mimeType: 'application/json',
|
|
70
72
|
}, async (uri, { batchId }) => {
|
|
71
73
|
const result = batchResults.get(String(batchId));
|
|
72
74
|
if (result) {
|
|
73
75
|
return {
|
|
74
|
-
contents: [
|
|
76
|
+
contents: [
|
|
77
|
+
{
|
|
75
78
|
uri: uri.href,
|
|
76
|
-
mimeType:
|
|
79
|
+
mimeType: 'application/json',
|
|
77
80
|
text: JSON.stringify(result, null, 2),
|
|
78
|
-
}
|
|
81
|
+
},
|
|
82
|
+
],
|
|
79
83
|
};
|
|
80
84
|
}
|
|
81
85
|
throw new Error(`Batch resource not found: ${batchId}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/resources/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAa,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3D;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,SAAS,GAAG,EAAE,CAAC;IAErB,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,YAAY,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAClG,SAAS,CAAC,IAAI,CAAC;YACb,GAAG,EAAE,uBAAuB,UAAU,EAAE;YACxC,IAAI,EAAE,aAAa,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACvC,WAAW,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,eAAe;YACnD,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7C,SAAS,CAAC,IAAI,CAAC;YACb,GAAG,EAAE,qBAAqB,OAAO,EAAE;YACnC,IAAI,EAAE,mBAAmB,MAAM,CAAC,OAAO,CAAC,UAAU,QAAQ;YAC1D,WAAW,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,eAAe;YACzD,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,2DAA2D;IAC3D,MAAM,CAAC,gBAAgB,CACrB,kBAAkB,EAClB,IAAI,gBAAgB,CAAC,kCAAkC,EAAE;QACvD,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YACX,SAAS,EAAE,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/resources/session.ts"],"names":[],"mappings":"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"}
|
package/dist/sloop-bridge.d.ts
CHANGED
|
@@ -5,6 +5,10 @@ interface SloopConfig {
|
|
|
5
5
|
storageRoot?: string;
|
|
6
6
|
workDir?: string;
|
|
7
7
|
autoInitialize?: boolean;
|
|
8
|
+
standaloneRuleConfig?: Record<string, {
|
|
9
|
+
isActive: boolean;
|
|
10
|
+
paramValueByKey: Record<string, string>;
|
|
11
|
+
}>;
|
|
8
12
|
}
|
|
9
13
|
export declare class SloopBridge extends EventEmitter {
|
|
10
14
|
private process;
|
|
@@ -41,6 +45,11 @@ export declare class SloopBridge extends EventEmitter {
|
|
|
41
45
|
* Returns a map of rule key -> rule definition.
|
|
42
46
|
*/
|
|
43
47
|
listAllStandaloneRulesDefinitions(): Promise<any>;
|
|
48
|
+
getStandaloneRuleDetails(ruleKey: string): Promise<any>;
|
|
49
|
+
updateStandaloneRulesConfiguration(ruleConfigByKey: Record<string, {
|
|
50
|
+
isActive: boolean;
|
|
51
|
+
paramValueByKey: Record<string, string>;
|
|
52
|
+
}>): Promise<void>;
|
|
44
53
|
/**
|
|
45
54
|
* Wait for a scope to become ready for analysis.
|
|
46
55
|
* SLOOP emits didChangeAnalysisReadiness after processing addConfigurationScope.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sloop-bridge.d.ts","sourceRoot":"","sources":["../src/sloop-bridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAQtC,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sloop-bridge.d.ts","sourceRoot":"","sources":["../src/sloop-bridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAQtC,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;CACvG;AAED,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAO5B;IACJ,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CACwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;gBAE3C,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,WAAgB;IAyB1D,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,gBAAgB;IAUlB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA2E9B,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,mBAAmB;IA+C3B,OAAO,CAAC,YAAY;IAgBd,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAyC7D,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI;IAuBpD,OAAO,CAAC,cAAc;YAaR,UAAU;IAoFxB,OAAO,CAAC,gBAAgB;IAQxB,WAAW,IAAI,OAAO;IAIhB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC;;;OAGG;IACG,iCAAiC,IAAI,OAAO,CAAC,GAAG,CAAC;IAIjD,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,kCAAkC,CACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,GAC9F,OAAO,CAAC,IAAI,CAAC;IAIhB;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBpE,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAczF,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CA2DrF"}
|