@jonathan0823/pi-sonarqube 0.1.4 → 0.3.1

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/README.md CHANGED
@@ -4,7 +4,7 @@ A Pi extension to run local SonarQube analysis and browse the resulting issues
4
4
 
5
5
  ## Requirements
6
6
 
7
- - [Pi](https://github.com/earendil-works/pi-coding-agent) installed
7
+ - [Pi](https://github.com/earendil-works/pi) installed
8
8
  - A running SonarQube server (e.g. `http://localhost:9000`)
9
9
  - `sonar-scanner` available in `$PATH`
10
10
 
@@ -62,7 +62,7 @@ Pi will:
62
62
  1. Run `sonar-scanner` against your server
63
63
  2. Wait for the analysis to complete
64
64
  3. Fetch the latest issues
65
- 4. Return a concise summary
65
+ 4. Return a concise summary with issues and duplication metrics
66
66
 
67
67
  ### 3. Browse issues
68
68
 
@@ -75,7 +75,25 @@ Use **Up/Down** to move, **Enter** to preview the affected source code, and **Es
75
75
 
76
76
  Tip: Tab-complete `/sonarqube` subcommands and filters in the editor.
77
77
 
78
- ### 4. Open a specific issue
78
+ ### 4. View project metrics
79
+
80
+ ```
81
+ /sonarqube metrics
82
+ /sonarqube metrics apps/web
83
+ ```
84
+
85
+ Shows duplication percentage, block/line/file counts, and issue severity breakdown — no scanner needed.
86
+
87
+ ### 5. Browse duplicated files
88
+
89
+ ```
90
+ /sonarqube duplications
91
+ /sonarqube duplications apps/web
92
+ ```
93
+
94
+ Use **Up/Down** to move, **Enter** for block locations and line ranges. Pass a file number directly to skip the browser: `/sonarqube duplications 1`.
95
+
96
+ ### 6. Open a specific issue
79
97
 
80
98
  ```
81
99
  /sonarqube open 3
@@ -87,8 +105,10 @@ Tip: Tab-complete `/sonarqube` subcommands and filters in the editor.
87
105
  | Command | Description |
88
106
  | -------------------------------- | ----------------------------------------------- |
89
107
  | `/sonarqube init [path]` | Set up project config for a path |
90
- | `/sonarqube analyze [target]` | Run analysis for a target or path |
108
+ | `/sonarqube analyze [target]` | Run analysis and show issues + duplication metrics |
91
109
  | `/sonarqube issues [target]` | Browse the latest analysis results for a target |
110
+ | `/sonarqube metrics [target]` | Show project metrics (duplication %, issue counts, no scanner) |
111
+ | `/sonarqube duplications [target]` | Browse duplicated files and blocks with drill-down |
92
112
  | `/sonarqube open [target] <n>` | Preview source at issue #n |
93
113
 
94
114
  ## Tool (for the LLM)
@@ -97,9 +117,31 @@ The extension also registers a `sonarqube` tool that the LLM can call with actio
97
117
 
98
118
  - `analyze` — run analysis
99
119
  - `issues` — list issues
120
+ - `metrics` — show project-level duplication & issue counts
121
+ - `duplications` — list duplicated files and block details
100
122
  - `open` — open an issue with its index
101
123
 
102
- The tool accepts optional issue filters (`severities`, `statuses`, `types`, `rules`) so the agent can fetch just blocker/critical context.
124
+ The tool accepts optional issue filters (`severities`, `statuses`, `types`, `rules`, `softwareQualities`, `impactSeverities`) so the agent can fetch just the most relevant issues.
125
+
126
+ ### Filter families
127
+
128
+ SonarQube supports two filter families depending on the server mode:
129
+
130
+ - **Standard Experience** (legacy): `type` (BUG, VULNERABILITY, CODE_SMELL) and `severity` (BLOCKER, CRITICAL, MAJOR, MINOR, INFO)
131
+ - **MQR mode**: `quality` (MAINTAINABILITY, RELIABILITY, SECURITY) and `impactSeverity` (BLOCKER, HIGH, MEDIUM, LOW, INFO)
132
+
133
+ Both families can be used from the `/sonarqube issues` command:
134
+
135
+ ```
136
+ /sonarqube issues type:BUG
137
+ /sonarqube issues severity:CRITICAL status:OPEN
138
+ /sonarqube issues quality:RELIABILITY
139
+ /sonarqube issues quality:SECURITY impactSeverity:HIGH
140
+ ```
141
+
142
+ **Important:** Legacy filters and MQR filters cannot be combined in the same query. If you mix them (e.g., `type:BUG quality:SECURITY`), you'll see an error telling you to pick one family.
143
+
144
+ The server mode is auto-detected via the `api/v2/clean-code-policy/mode` endpoint and cached per session.
103
145
 
104
146
  Use paths directly.
105
147
 
package/dist/api.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
- import type { SonarIssue, SonarAnalysisState, SonarProjectConfig, SonarIssueFetchOptions } from "./types.js";
2
+ import type { SonarIssue, SonarAnalysisState, SonarProjectConfig, SonarIssueFetchOptions, SonarDuplicationMeasures, IssueSeverityCounts, IssueQualityCounts, FileDuplication, DuplicationBlockGroup } from "./types.js";
3
+ export declare function fetchCleanCodeMode(serverUrl: string, token?: string, signal?: AbortSignal): Promise<"STANDARD" | "MQR" | undefined>;
3
4
  export declare function authHeader(token?: string): string | undefined;
4
5
  export declare function fetchJson<T>(url: string, token?: string, signal?: AbortSignal): Promise<T>;
5
- export declare function toIssuePath(component: string, projectKey: string): string;
6
+ export declare function toIssuePath(component: string | undefined | null, projectKey: string): string;
6
7
  export declare function normalizeIssueList(values?: string[], uppercase?: boolean): string[] | undefined;
7
8
  export declare function normalizeIssueFilters(filters?: SonarIssueFetchOptions): SonarIssueFetchOptions | undefined;
8
- export declare function mergeIssueFilters(...filters: Array<Partial<SonarIssueFetchOptions> | undefined>): SonarIssueFetchOptions | undefined;
9
- export declare function splitFilterValues(value: string): string[];
9
+ export declare function assertFiltersNotAmbiguous(filters?: SonarIssueFetchOptions): void;
10
10
  export declare function parseIssueFilterToken(token: string): Partial<SonarIssueFetchOptions> | undefined;
11
11
  export declare function parseSonarIssueArgs(tokens: string[], allowIssueIndex?: boolean): {
12
12
  targetInput?: string;
@@ -33,6 +33,10 @@ export declare function fetchIssuePage(serverUrl: string, token: string | undefi
33
33
  }>;
34
34
  export declare function fetchIssues(serverUrl: string, token: string | undefined, projectKey: string, signal?: AbortSignal, filters?: SonarIssueFetchOptions): Promise<SonarIssue[]>;
35
35
  export declare function fetchRuleName(serverUrl: string, token: string | undefined, ruleKey: string, signal?: AbortSignal): Promise<string | undefined>;
36
- export declare function createAnalysisState(config: Pick<SonarProjectConfig, "baseDir" | "serverUrl" | "projectKey">, issues: SonarIssue[], extras?: Partial<Pick<SonarAnalysisState, "dashboardUrl" | "ceTaskUrl" | "analysisId" | "filters">>): SonarAnalysisState;
37
- export declare function hasProjectAnalyses(serverUrl: string, token: string | undefined, projectKey: string, signal?: AbortSignal): Promise<boolean>;
36
+ export declare function createAnalysisState(config: Pick<SonarProjectConfig, "baseDir" | "serverUrl" | "projectKey">, issues: SonarIssue[], extras?: Partial<Pick<SonarAnalysisState, "dashboardUrl" | "ceTaskUrl" | "analysisId" | "filters" | "measures" | "cleanCodeMode">>): SonarAnalysisState;
37
+ export declare function fetchDuplicationMeasures(serverUrl: string, token: string | undefined, projectKey: string, signal?: AbortSignal): Promise<SonarDuplicationMeasures | undefined>;
38
+ export declare function fetchIssueSeverityCounts(serverUrl: string, token: string | undefined, projectKey: string, signal?: AbortSignal): Promise<IssueSeverityCounts | undefined>;
39
+ export declare function fetchIssueQualityCounts(serverUrl: string, token: string | undefined, projectKey: string, signal?: AbortSignal): Promise<IssueQualityCounts | undefined>;
40
+ export declare function fetchFileDuplications(serverUrl: string, token: string | undefined, projectKey: string, signal?: AbortSignal): Promise<FileDuplication[]>;
41
+ export declare function fetchFileDuplicationBlocks(serverUrl: string, token: string | undefined, fileKey: string, projectKey: string, signal?: AbortSignal): Promise<DuplicationBlockGroup[]>;
38
42
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js CHANGED
@@ -1,7 +1,26 @@
1
1
  import { readFile } from "node:fs/promises";
2
2
  import { resolve } from "node:path";
3
- import { SONAR_SEVERITIES, SONAR_STATUSES, SONAR_TYPES } from "./types.js";
3
+ import { SONAR_SEVERITIES, SONAR_STATUSES, SONAR_TYPES, SONAR_SOFTWARE_QUALITIES, SONAR_IMPACT_SEVERITIES } from "./types.js";
4
4
  import { parseProperties } from "./config.js";
5
+ // ── Clean code mode detection ────────────────────────────────────────────────
6
+ const cleanCodeModeCache = new Map();
7
+ export async function fetchCleanCodeMode(serverUrl, token, signal) {
8
+ const cached = cleanCodeModeCache.get(serverUrl);
9
+ if (cached)
10
+ return cached;
11
+ try {
12
+ const result = await fetchJson(`${serverUrl}/api/v2/clean-code-policy/mode`, token, signal);
13
+ const mode = result.mode?.toUpperCase();
14
+ if (mode === "MQR" || mode === "STANDARD") {
15
+ cleanCodeModeCache.set(serverUrl, mode);
16
+ return mode;
17
+ }
18
+ }
19
+ catch {
20
+ // ponytail: fall through to legacy behavior when mode lookup is unavailable.
21
+ }
22
+ return undefined;
23
+ }
5
24
  // ── Auth / HTTP helpers ─────────────────────────────────────────────────────
6
25
  export function authHeader(token) {
7
26
  if (!token)
@@ -23,6 +42,8 @@ export async function fetchJson(url, token, signal) {
23
42
  return (await response.json());
24
43
  }
25
44
  export function toIssuePath(component, projectKey) {
45
+ if (typeof component !== "string" || component.length === 0)
46
+ return projectKey;
26
47
  const prefix = `${projectKey}:`;
27
48
  if (component.startsWith(prefix))
28
49
  return component.slice(prefix.length);
@@ -45,27 +66,21 @@ export function normalizeIssueFilters(filters) {
45
66
  statuses: normalizeIssueList(filters?.statuses, true),
46
67
  types: normalizeIssueList(filters?.types, true),
47
68
  rules: normalizeIssueList(filters?.rules),
69
+ softwareQualities: normalizeIssueList(filters?.softwareQualities, true),
70
+ impactSeverities: normalizeIssueList(filters?.impactSeverities, true),
48
71
  };
49
- return normalized.severities || normalized.statuses || normalized.types || normalized.rules ? normalized : undefined;
72
+ return normalized.severities || normalized.statuses || normalized.types || normalized.rules || normalized.softwareQualities || normalized.impactSeverities
73
+ ? normalized
74
+ : undefined;
50
75
  }
51
- export function mergeIssueFilters(...filters) {
52
- const merged = {};
53
- for (const filter of filters) {
54
- if (!filter)
55
- continue;
56
- if (filter.severities?.length)
57
- merged.severities = [...(merged.severities ?? []), ...filter.severities];
58
- if (filter.statuses?.length)
59
- merged.statuses = [...(merged.statuses ?? []), ...filter.statuses];
60
- if (filter.types?.length)
61
- merged.types = [...(merged.types ?? []), ...filter.types];
62
- if (filter.rules?.length)
63
- merged.rules = [...(merged.rules ?? []), ...filter.rules];
76
+ export function assertFiltersNotAmbiguous(filters) {
77
+ if (!filters)
78
+ return;
79
+ if ((filters.severities?.length || filters.types?.length) &&
80
+ (filters.softwareQualities?.length || filters.impactSeverities?.length)) {
81
+ throw new Error("Ambiguous filter combination: mixing legacy filters (severity/type) with MQR filters (quality/impactSeverity) is not allowed. " +
82
+ "Use one filter family per command.");
64
83
  }
65
- return normalizeIssueFilters(merged);
66
- }
67
- export function splitFilterValues(value) {
68
- return value.split(",").map((p) => p.trim()).filter(Boolean);
69
84
  }
70
85
  const EXPLICIT_FILTER_RE = /^([^:=]+)[:=](.+)$/;
71
86
  export function parseIssueFilterToken(token) {
@@ -75,18 +90,33 @@ export function parseIssueFilterToken(token) {
75
90
  const explicit = EXPLICIT_FILTER_RE.exec(trimmed);
76
91
  if (explicit) {
77
92
  const key = explicit[1].trim().toLowerCase();
78
- const values = splitFilterValues(explicit[2]);
93
+ const values = explicit[2].split(",").map((p) => p.trim()).filter(Boolean);
79
94
  if (values.length === 0)
80
95
  return undefined;
81
- if (key === "severity" || key === "severities")
82
- return { severities: values.map((v) => v.toUpperCase()) };
83
- if (key === "status" || key === "statuses")
84
- return { statuses: values.map((v) => v.toUpperCase()) };
85
- if (key === "type" || key === "types")
86
- return { types: values.map((v) => v.toUpperCase()) };
87
- if (key === "rule" || key === "rules")
88
- return { rules: values };
89
- return undefined;
96
+ switch (key) {
97
+ case "severity":
98
+ case "severities":
99
+ return { severities: values.map((v) => v.toUpperCase()) };
100
+ case "status":
101
+ case "statuses":
102
+ return { statuses: values.map((v) => v.toUpperCase()) };
103
+ case "type":
104
+ case "types":
105
+ return { types: values.map((v) => v.toUpperCase()) };
106
+ case "rule":
107
+ case "rules":
108
+ return { rules: values };
109
+ case "quality":
110
+ case "qualities":
111
+ case "softwarequality":
112
+ case "softwarequalities":
113
+ return { softwareQualities: values.map((v) => v.toUpperCase()) };
114
+ case "impactseverity":
115
+ case "impactseverities":
116
+ return { impactSeverities: values.map((v) => v.toUpperCase()) };
117
+ default:
118
+ return undefined;
119
+ }
90
120
  }
91
121
  const upper = trimmed.toUpperCase();
92
122
  if (SONAR_SEVERITIES.includes(upper))
@@ -95,6 +125,10 @@ export function parseIssueFilterToken(token) {
95
125
  return { statuses: [upper] };
96
126
  if (SONAR_TYPES.includes(upper))
97
127
  return { types: [upper] };
128
+ if (SONAR_SOFTWARE_QUALITIES.includes(upper))
129
+ return { softwareQualities: [upper] };
130
+ if (SONAR_IMPACT_SEVERITIES.includes(upper))
131
+ return { impactSeverities: [upper] };
98
132
  return undefined;
99
133
  }
100
134
  export function parseSonarIssueArgs(tokens, allowIssueIndex = false) {
@@ -117,17 +151,44 @@ export function parseSonarIssueArgs(tokens, allowIssueIndex = false) {
117
151
  targetInput = token;
118
152
  }
119
153
  }
120
- return { targetInput, issueIndex, filters: mergeIssueFilters(...filters) };
154
+ return { targetInput, issueIndex, filters: mergeFilters(...filters) };
155
+ }
156
+ function mergeFilters(...filters) {
157
+ const merged = {};
158
+ for (const filter of filters) {
159
+ if (!filter)
160
+ continue;
161
+ if (filter.severities?.length)
162
+ merged.severities = [...(merged.severities ?? []), ...filter.severities];
163
+ if (filter.statuses?.length)
164
+ merged.statuses = [...(merged.statuses ?? []), ...filter.statuses];
165
+ if (filter.types?.length)
166
+ merged.types = [...(merged.types ?? []), ...filter.types];
167
+ if (filter.rules?.length)
168
+ merged.rules = [...(merged.rules ?? []), ...filter.rules];
169
+ if (filter.softwareQualities?.length)
170
+ merged.softwareQualities = [...(merged.softwareQualities ?? []), ...filter.softwareQualities];
171
+ if (filter.impactSeverities?.length)
172
+ merged.impactSeverities = [...(merged.impactSeverities ?? []), ...filter.impactSeverities];
173
+ }
174
+ return normalizeIssueFilters(merged);
121
175
  }
122
176
  export function issueFilterLabel(filters) {
123
177
  if (!filters)
124
178
  return "";
125
- const parts = [
126
- filters.severities?.length ? `severities=${filters.severities.join(",")}` : "",
127
- filters.statuses?.length ? `statuses=${filters.statuses.join(",")}` : "",
128
- filters.types?.length ? `types=${filters.types.join(",")}` : "",
129
- filters.rules?.length ? `rules=${filters.rules.join(",")}` : "",
130
- ].filter(Boolean);
179
+ const parts = [];
180
+ if (filters.severities?.length)
181
+ parts.push(`severities=${filters.severities.join(",")}`);
182
+ if (filters.statuses?.length)
183
+ parts.push(`statuses=${filters.statuses.join(",")}`);
184
+ if (filters.types?.length)
185
+ parts.push(`types=${filters.types.join(",")}`);
186
+ if (filters.rules?.length)
187
+ parts.push(`rules=${filters.rules.join(",")}`);
188
+ if (filters.softwareQualities?.length)
189
+ parts.push(`qualities=${filters.softwareQualities.join(",")}`);
190
+ if (filters.impactSeverities?.length)
191
+ parts.push(`impactSeverities=${filters.impactSeverities.join(",")}`);
131
192
  return parts.join(" • ");
132
193
  }
133
194
  function severitySortRank(severity) {
@@ -287,6 +348,10 @@ function buildIssueSearchUrl(serverUrl, projectKey, page, filters) {
287
348
  url.searchParams.set("types", filters.types.join(","));
288
349
  if (filters?.rules?.length)
289
350
  url.searchParams.set("rules", filters.rules.join(","));
351
+ if (filters?.softwareQualities?.length)
352
+ url.searchParams.set("impactSoftwareQualities", filters.softwareQualities.join(","));
353
+ if (filters?.impactSeverities?.length)
354
+ url.searchParams.set("impactSeverities", filters.impactSeverities.join(","));
290
355
  return url.toString();
291
356
  }
292
357
  function mapRawIssue(raw, projectKey, ruleNames) {
@@ -307,6 +372,7 @@ export async function fetchIssuePage(serverUrl, token, projectKey, page, signal,
307
372
  return { total: result.total, issueRows: result.issues };
308
373
  }
309
374
  export async function fetchIssues(serverUrl, token, projectKey, signal, filters) {
375
+ assertFiltersNotAmbiguous(filters);
310
376
  const normalizedFilters = normalizeIssueFilters(filters);
311
377
  const issues = [];
312
378
  const ruleNames = new Map();
@@ -352,16 +418,109 @@ export function createAnalysisState(config, issues, extras = {}) {
352
418
  analysisId: extras.analysisId,
353
419
  filters: extras.filters,
354
420
  totalIssues: issues.length,
421
+ measures: extras.measures,
422
+ cleanCodeMode: extras.cleanCodeMode,
355
423
  issues,
356
424
  };
357
425
  }
358
- export async function hasProjectAnalyses(serverUrl, token, projectKey, signal) {
426
+ // ── Measures ──────────────────────────────────────────────────────────────────
427
+ export async function fetchDuplicationMeasures(serverUrl, token, projectKey, signal) {
428
+ try {
429
+ const url = `${serverUrl}/api/measures/component?component=${encodeURIComponent(projectKey)}&metricKeys=duplicated_lines_density,duplicated_lines,duplicated_blocks,duplicated_files`;
430
+ const result = await fetchJson(url, token, signal);
431
+ const measures = result.component.measures;
432
+ const getValue = (key) => {
433
+ const m = measures.find((m) => m.metric === key);
434
+ return m ? Number.parseFloat(m.value) : 0;
435
+ };
436
+ return {
437
+ duplicatedLinesDensity: getValue("duplicated_lines_density"),
438
+ duplicatedLines: getValue("duplicated_lines"),
439
+ duplicatedBlocks: getValue("duplicated_blocks"),
440
+ duplicatedFiles: getValue("duplicated_files"),
441
+ };
442
+ }
443
+ catch {
444
+ return undefined;
445
+ }
446
+ }
447
+ export async function fetchIssueSeverityCounts(serverUrl, token, projectKey, signal) {
448
+ try {
449
+ const url = `${serverUrl}/api/issues/search?projects=${encodeURIComponent(projectKey)}&resolved=false&ps=1&facets=severities`;
450
+ const result = await fetchJson(url, token, signal);
451
+ const facet = result.facets?.find((f) => f.property === "severities");
452
+ if (!facet)
453
+ return undefined;
454
+ const getCount = (severity) => {
455
+ const entry = facet.values.find((v) => v.val === severity);
456
+ return entry?.count ?? 0;
457
+ };
458
+ return {
459
+ blocker: getCount("BLOCKER"),
460
+ critical: getCount("CRITICAL"),
461
+ major: getCount("MAJOR"),
462
+ minor: getCount("MINOR"),
463
+ info: getCount("INFO"),
464
+ };
465
+ }
466
+ catch {
467
+ return undefined;
468
+ }
469
+ }
470
+ export async function fetchIssueQualityCounts(serverUrl, token, projectKey, signal) {
359
471
  try {
360
- const result = await fetchJson(`${serverUrl}/api/project_analyses/search?project=${encodeURIComponent(projectKey)}&ps=1`, token, signal);
361
- return (result.analyses?.length ?? 0) > 0;
472
+ const url = `${serverUrl}/api/issues/search?projects=${encodeURIComponent(projectKey)}&resolved=false&ps=1&facets=impactSoftwareQualities`;
473
+ const result = await fetchJson(url, token, signal);
474
+ const facet = result.facets?.find((f) => f.property === "impactSoftwareQualities");
475
+ if (!facet)
476
+ return undefined;
477
+ const getCount = (q) => {
478
+ const entry = facet.values.find((v) => v.val === q);
479
+ return entry?.count ?? 0;
480
+ };
481
+ return {
482
+ maintainability: getCount("MAINTAINABILITY"),
483
+ reliability: getCount("RELIABILITY"),
484
+ security: getCount("SECURITY"),
485
+ };
362
486
  }
363
487
  catch {
364
- return false;
488
+ return undefined;
365
489
  }
366
490
  }
491
+ // ── File duplications ─────────────────────────────────────────────────────────
492
+ export async function fetchFileDuplications(serverUrl, token, projectKey, signal) {
493
+ const treeUrl = `${serverUrl}/api/measures/component_tree?component=${encodeURIComponent(projectKey)}&qualifiers=FIL&metricKeys=duplicated_lines,duplicated_blocks&ps=500`;
494
+ const treeResult = await fetchJson(treeUrl, token, signal);
495
+ const results = (treeResult.components ?? [])
496
+ .map((component) => {
497
+ const measures = component.measures ?? [];
498
+ const getValue = (metric) => {
499
+ const m = measures.find((item) => item.metric === metric);
500
+ return m ? Number.parseInt(m.value, 10) : 0;
501
+ };
502
+ const duplicatedBlocks = getValue("duplicated_blocks");
503
+ if (duplicatedBlocks <= 0)
504
+ return null;
505
+ return {
506
+ filePath: component.path ?? toIssuePath(component.key, projectKey) ?? component.name ?? component.key,
507
+ fileKey: component.key,
508
+ duplicatedLines: getValue("duplicated_lines"),
509
+ duplicatedBlocks,
510
+ };
511
+ })
512
+ .filter((f) => f !== null);
513
+ return results;
514
+ }
515
+ export async function fetchFileDuplicationBlocks(serverUrl, token, fileKey, projectKey, signal) {
516
+ const url = `${serverUrl}/api/duplications/show?key=${encodeURIComponent(fileKey)}`;
517
+ const result = await fetchJson(url, token, signal);
518
+ return result.duplications.map((d) => ({
519
+ blocks: d.blocks.map((b) => ({
520
+ from: b.from,
521
+ size: b.size,
522
+ filePath: toIssuePath(b.component, projectKey),
523
+ })),
524
+ }));
525
+ }
367
526
  //# sourceMappingURL=api.js.map
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { AutocompleteItem, AutocompleteSuggestions } from "@earendil-works/pi-tui";
2
- import type { SonarIssue, SonarIssueFetchOptions } from "./types.js";
2
+ import type { SonarIssue, SonarIssueFetchOptions, SonarDuplicationMeasures, IssueSeverityCounts, IssueQualityCounts, FileDuplication, DuplicationBlockGroup } from "./types.js";
3
3
  export declare const STATE_TYPE = "sonarqube-analysis-state";
4
4
  export declare function filterAutocompleteItems(items: readonly {
5
5
  value: string;
@@ -12,7 +12,7 @@ export declare function splitSonarArgumentContext(argumentText: string): {
12
12
  current: string;
13
13
  tokens: string[];
14
14
  };
15
- export declare function sonarArgumentCompletions(argumentText: string, issues?: SonarIssue[]): AutocompleteItem[] | null;
15
+ export declare function sonarArgumentCompletions(argumentText: string, issues?: SonarIssue[], mode?: "STANDARD" | "MQR"): AutocompleteItem[] | null;
16
16
  export type ParsedSonarCommand = {
17
17
  action: "help";
18
18
  } | {
@@ -32,12 +32,27 @@ export type ParsedSonarCommand = {
32
32
  targetInput?: string;
33
33
  issueIndex?: number;
34
34
  filters?: SonarIssueFetchOptions;
35
+ } | {
36
+ action: "metrics";
37
+ targetInput?: string;
38
+ } | {
39
+ action: "duplications";
40
+ targetInput?: string;
41
+ issueIndex?: number;
35
42
  };
36
43
  export declare function parseCommandArgs(args: string): ParsedSonarCommand;
37
44
  export declare function helpText(): string;
38
45
  export declare function targetLabel(targetInput?: string): string;
39
46
  export declare function sonarErrorMessage(error: unknown): string;
40
47
  export declare function formatIssue(issue: SonarIssue, index?: number): string;
48
+ export declare function formatMetricsOutput(metrics: {
49
+ projectKey: string;
50
+ measures?: SonarDuplicationMeasures;
51
+ issueCounts?: IssueSeverityCounts;
52
+ issueQualityCounts?: IssueQualityCounts;
53
+ }): string;
54
+ export declare function formatDuplicationsList(files: FileDuplication[]): string;
55
+ export declare function formatDuplicationBlockDetail(filePath: string, groups: DuplicationBlockGroup[]): string;
41
56
  export declare function formatSummary(state: {
42
57
  totalIssues: number;
43
58
  projectKey: string;
@@ -49,6 +64,7 @@ export declare function formatReport(state: {
49
64
  baseDir: string;
50
65
  totalIssues: number;
51
66
  filters?: SonarIssueFetchOptions;
67
+ measures?: SonarDuplicationMeasures;
52
68
  issues: SonarIssue[];
53
69
  }): string;
54
70
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAOrE,eAAO,MAAM,UAAU,6BAA6B,CAAC;AAerD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EACxE,MAAM,EAAE,MAAM,GACb,gBAAgB,EAAE,CASpB;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,uBAAuB,GAAG,IAAI,EACvC,UAAU,EAAE,gBAAgB,EAAE,GAC7B,uBAAuB,GAAG,IAAI,CAMhC;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,GACnB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAoBxD;AAgBD,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,UAAU,EAAE,GACpB,gBAAgB,EAAE,GAAG,IAAI,CAmC3B;AAID,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,sBAAsB,CAAA;CAAE,GAC7E;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,sBAAsB,CAAA;CAAE,GAC5E;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAEpG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAyBjE;AAID,wBAAgB,QAAQ,IAAI,MAAM,CAqBjC;AAED,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAExD;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAKrE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,sBAAsB,CAAA;CAAE,GAAG,MAAM,CAQ1H;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB,GAAG,MAAM,CAyBT"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}