@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.
Files changed (63) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/errors.js +3 -3
  3. package/dist/index.js +67 -49
  4. package/dist/index.js.map +1 -1
  5. package/dist/resources/session.d.ts +1 -1
  6. package/dist/resources/session.d.ts.map +1 -1
  7. package/dist/resources/session.js +22 -18
  8. package/dist/resources/session.js.map +1 -1
  9. package/dist/sloop-bridge.d.ts +9 -0
  10. package/dist/sloop-bridge.d.ts.map +1 -1
  11. package/dist/sloop-bridge.js +38 -36
  12. package/dist/sloop-bridge.js.map +1 -1
  13. package/dist/state.d.ts +2 -2
  14. package/dist/tools/analyze-content.d.ts.map +1 -1
  15. package/dist/tools/analyze-content.js +17 -17
  16. package/dist/tools/analyze-content.js.map +1 -1
  17. package/dist/tools/analyze-file.js +14 -14
  18. package/dist/tools/analyze-file.js.map +1 -1
  19. package/dist/tools/analyze-files.d.ts.map +1 -1
  20. package/dist/tools/analyze-files.js +22 -22
  21. package/dist/tools/analyze-files.js.map +1 -1
  22. package/dist/tools/apply-all-quick-fixes.d.ts.map +1 -1
  23. package/dist/tools/apply-all-quick-fixes.js +23 -19
  24. package/dist/tools/apply-all-quick-fixes.js.map +1 -1
  25. package/dist/tools/apply-quick-fix.js +10 -10
  26. package/dist/tools/apply-quick-fix.js.map +1 -1
  27. package/dist/tools/health-check.js +26 -26
  28. package/dist/tools/health-check.js.map +1 -1
  29. package/dist/tools/list-active-rules.d.ts.map +1 -1
  30. package/dist/tools/list-active-rules.js +22 -13
  31. package/dist/tools/list-active-rules.js.map +1 -1
  32. package/dist/types.d.ts +1 -1
  33. package/dist/utils/config.d.ts +32 -0
  34. package/dist/utils/config.d.ts.map +1 -0
  35. package/dist/utils/config.js +54 -0
  36. package/dist/utils/config.js.map +1 -0
  37. package/dist/utils/file-registration.d.ts.map +1 -1
  38. package/dist/utils/file-registration.js +1 -1
  39. package/dist/utils/file-registration.js.map +1 -1
  40. package/dist/utils/filesystem.js +8 -8
  41. package/dist/utils/filesystem.js.map +1 -1
  42. package/dist/utils/formatting.d.ts +1 -1
  43. package/dist/utils/formatting.d.ts.map +1 -1
  44. package/dist/utils/formatting.js +2 -4
  45. package/dist/utils/formatting.js.map +1 -1
  46. package/dist/utils/language.js +11 -11
  47. package/dist/utils/language.js.map +1 -1
  48. package/dist/utils/quick-fix.d.ts.map +1 -1
  49. package/dist/utils/quick-fix.js +6 -2
  50. package/dist/utils/quick-fix.js.map +1 -1
  51. package/dist/utils/scope.d.ts +4 -0
  52. package/dist/utils/scope.d.ts.map +1 -1
  53. package/dist/utils/scope.js +8 -7
  54. package/dist/utils/scope.js.map +1 -1
  55. package/dist/utils/sloop.d.ts +4 -3
  56. package/dist/utils/sloop.d.ts.map +1 -1
  57. package/dist/utils/sloop.js +22 -13
  58. package/dist/utils/sloop.js.map +1 -1
  59. package/dist/utils/transforms.d.ts +1 -1
  60. package/dist/utils/transforms.d.ts.map +1 -1
  61. package/dist/utils/transforms.js.map +1 -1
  62. package/package.json +12 -2
  63. 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("[MCP] Error handling tool call:", 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: "text",
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: "text",
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 "@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";
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 "./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";
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: "sonarlint-mcp-server",
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: "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.",
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("Absolute path to the file to analyze (e.g., /path/to/file.js)"),
33
- minSeverity: z.enum(["INFO", "MINOR", "MAJOR", "CRITICAL", "BLOCKER"]).optional().describe("Minimum severity level to include. Filters out issues below this level. Default: INFO (show all)"),
34
- excludeRules: stringArray.optional().describe("List of rule IDs to exclude (e.g., ['typescript:S1135', 'javascript:S125'])"),
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.string().optional().describe("Project root directory for resolving relative paths and globs (e.g., '/Users/me/project'). Required when filePaths contains relative paths."),
50
- groupByFile: z.boolean().optional().default(true).describe("Group issues by file in output (default: true)"),
51
- minSeverity: z.enum(["INFO", "MINOR", "MAJOR", "CRITICAL", "BLOCKER"]).optional().describe("Minimum severity level to include. Filters out issues below this level. Default: INFO (show all)"),
52
- excludeRules: stringArray.optional().describe("List of rule IDs to exclude (e.g., ['typescript:S1135', 'javascript:S125'])"),
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("The code content to analyze"),
67
- language: z.enum(["javascript", "typescript", "python", "java", "go", "php", "ruby"]).describe("Programming language of the content"),
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: "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.",
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.enum(["javascript", "typescript", "python", "java", "go", "php", "ruby"]).optional().describe("Filter rules by language (optional)"),
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: "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.",
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("Absolute path to the file to fix"),
109
- line: z.number().describe("Line number of the issue"),
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: "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).",
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("Absolute path to the file to fix"),
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("[MCP] Shutting down...");
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("[MCP] SLOOP bridge disconnected");
161
+ console.error('[MCP] SLOOP bridge disconnected');
144
162
  }
145
163
  catch (error) {
146
- console.error("[MCP] Error disconnecting SLOOP:", 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("[MCP] Starting SonarLint MCP Server...");
173
+ console.error('[MCP] Starting SonarLint MCP Server...');
156
174
  console.error(`[MCP] Version: ${packageJson.version}`);
157
- console.error("[MCP] Mode: Standalone (no IDE required)");
158
- console.error("[MCP] Tools: check_quality, check_files, check_code, list_rules, fix_issue, fix_all_issues, health_check");
159
- console.error("[MCP] Features:");
160
- console.error("[MCP] - Session storage for multi-turn conversations");
161
- console.error("[MCP] - Batch analysis for multiple files");
162
- console.error("[MCP] - Content analysis (unsaved files)");
163
- console.error("[MCP] - MCP resources for persistent results");
164
- console.error("[MCP] - Quick fixes support");
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("[MCP] Server ready! Waiting for tool calls...");
185
+ console.error('[MCP] Server ready! Waiting for tool calls...');
168
186
  }
169
187
  main().catch((error) => {
170
- console.error("[MCP] Fatal error:", 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":"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"}
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 "@modelcontextprotocol/sdk/server/mcp.js";
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,CA6DzD"}
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 "@modelcontextprotocol/sdk/server/mcp.js";
5
- import { basename } from "path";
6
- import { createHash } from "crypto";
7
- import { sessionResults, batchResults } from "../state.js";
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: "application/json",
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: "application/json",
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: "application/json",
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: "application/json",
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":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/resources/session.ts"],"names":[],"mappings":"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"}
@@ -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;CAC1B;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,CAI3B;IACL,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsF;IAC7G,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;gBAE3C,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,WAAgB;IAwB1D,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,gBAAgB;IAUlB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwE9B,OAAO,CAAC,oBAAoB;IAgB5B,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;IAqD3B,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;YAeR,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;IAIvD;;;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;IAYzF,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CA4DrF"}
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"}