@jonathan0823/pi-sonarqube 0.6.0 → 0.7.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/dist/types.d.ts CHANGED
@@ -58,7 +58,7 @@ export interface SonarAnalysisState {
58
58
  measures?: SonarDuplicationMeasures;
59
59
  totalIssues: number;
60
60
  issues: SonarIssue[];
61
- cleanCodeMode?: "STANDARD" | "MQR";
61
+ cleanCodeMode?: CleanCodeMode;
62
62
  }
63
63
  export interface SonarProjectConfig {
64
64
  baseDir: string;
@@ -82,6 +82,7 @@ export interface SonarInitConfig {
82
82
  projectKey: string;
83
83
  token?: string;
84
84
  }
85
+ export type CleanCodeMode = "STANDARD" | "MQR";
85
86
  export interface SonarWorkspaceRegistry {
86
87
  version: 1;
87
88
  workspaces: Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,iFAAiF;AA0HjF,+EAA+E;AAE/E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,SAAS;IACT,UAAU;IACV,OAAO;IACP,OAAO;IACP,MAAM;CACE,CAAC;AACX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM;IACN,WAAW;IACX,UAAU;IACV,UAAU;IACV,QAAQ;CACA,CAAC;AACX,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,YAAY,CAAU,CAAC;AAC3E,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,iBAAiB;IACjB,aAAa;IACb,UAAU;CACF,CAAC;AACX,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS;IACT,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;CACE,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,iFAAiF;AA4HjF,+EAA+E;AAE/E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,SAAS;IACT,UAAU;IACV,OAAO;IACP,OAAO;IACP,MAAM;CACE,CAAC;AACX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM;IACN,WAAW;IACX,UAAU;IACV,UAAU;IACV,QAAQ;CACA,CAAC;AACX,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,YAAY,CAAU,CAAC;AAC3E,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,iBAAiB;IACjB,aAAa;IACb,UAAU;CACF,CAAC;AACX,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS;IACT,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;CACE,CAAC"}
package/dist/ui.d.ts CHANGED
@@ -43,6 +43,19 @@ export declare class DuplicationBrowser extends SearchableListBrowser<FileDuplic
43
43
  constructor(files: FileDuplication[], theme: Theme, done: (result: number | null) => void, scopeLabel?: string);
44
44
  }
45
45
  export declare function showDuplicationBrowser(ctx: ExtensionCommandContext, files: FileDuplication[], scopeLabel?: string): Promise<number | null>;
46
+ export declare class WorkspaceBrowser extends SearchableListBrowser<{
47
+ alias: string;
48
+ path: string;
49
+ }> {
50
+ constructor(workspaces: {
51
+ alias: string;
52
+ path: string;
53
+ }[], theme: Theme, done: (result: number | null) => void);
54
+ }
55
+ export declare function showWorkspaceBrowser(ctx: ExtensionContext, workspaces: {
56
+ alias: string;
57
+ path: string;
58
+ }[]): Promise<string | null>;
46
59
  export declare function showIssueBrowser(ctx: ExtensionCommandContext, state: SonarAnalysisState): Promise<number | null>;
47
60
  export declare function openIssuePreview(ctx: ExtensionCommandContext, state: SonarAnalysisState, issue: SonarIssue): Promise<void>;
48
61
  export declare function loadProjectIssuesFromApi(ctx: {
package/dist/ui.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAYpB,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,UAAU,EACjB,MAAM,SAAI,GACT,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,qBAAqB,EAAE,GAC9B,OAAO,CAAC,MAAM,CAAC,CA8CjB;AAkBD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,IAAI,IAAI,CAAC;CACd;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,MAAM,GACjB,gBAAgB,CAmClB;AAwBD,UAAU,uBAAuB,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CACR,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,KAClB,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAChC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,MAAM,CAAC;CACrE;AAED,cAAM,qBAAqB,CAAC,CAAC,CAAE,YAAW,SAAS;IAQ/C,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVzB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;gBAGxB,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,EACrC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAKrD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAGzB;IAED,UAAU,IAAI,IAAI;IAIlB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IA4B/B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAuB/B,OAAO,CAAC,UAAU;CAWnB;AAED,qBAAa,YAAa,SAAQ,qBAAqB,CAAC,UAAU,CAAC;gBAE/D,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI;CA6CxC;AAgGD,qBAAa,kBAAmB,SAAQ,qBAAqB,CAAC,eAAe,CAAC;gBAE1E,KAAK,EAAE,eAAe,EAAE,EACxB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,EACrC,UAAU,CAAC,EAAE,MAAM;CA4BtB;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,uBAAuB,EAC5B,KAAK,EAAE,eAAe,EAAE,EACxB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxB;AAID,qBAAa,gBAAiB,SAAQ,qBAAqB,CAAC;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;gBAEE,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,EAC7C,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI;CAmBxC;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAC5C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOxB;AAID,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,uBAAuB,EAC5B,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxB;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,uBAAuB,EAC5B,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC,CAQf;AAID,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAC1C,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAoB7B;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAC1C,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAChD,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CASzC"}
package/dist/ui.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Input, Key, matchesKey, truncateToWidth } from "@earendil-works/pi-tui";
1
+ import { Input, Key, matchesKey, truncateToWidth, } from "@earendil-works/pi-tui";
2
2
  import { readFile } from "node:fs/promises";
3
3
  import { resolve } from "node:path";
4
4
  import { issueFilterLabel, fetchIssues, createAnalysisState, normalizeIssueFilters, fetchCleanCodeMode, } from "./api.js";
@@ -110,11 +110,7 @@ export function startAnalysisUi(ctx, projectKey) {
110
110
  }
111
111
  // ── Searchable browser helpers ─────────────────────────────────────────────
112
112
  function normalizeSearchQuery(query) {
113
- return query
114
- .trim()
115
- .toLowerCase()
116
- .split(/\s+/)
117
- .filter(Boolean);
113
+ return query.trim().toLowerCase().split(/\s+/).filter(Boolean);
118
114
  }
119
115
  function matchesSearchQuery(haystack, query) {
120
116
  const tokens = normalizeSearchQuery(query);
@@ -205,7 +201,9 @@ class SearchableListBrowser {
205
201
  }
206
202
  export class IssueBrowser extends SearchableListBrowser {
207
203
  constructor(state, theme, done) {
208
- const filterSuffix = state.filters ? ` • ${issueFilterLabel(state.filters)}` : "";
204
+ const filterSuffix = state.filters
205
+ ? ` • ${issueFilterLabel(state.filters)}`
206
+ : "";
209
207
  super(state.issues, theme, done, {
210
208
  title: "SonarQube Issues",
211
209
  subtitle: (_query, totalCount, filteredCount) => `${state.projectKey} • ${totalCount} issue(s) • ${filteredCount} match(es)${filterSuffix}`,
@@ -225,7 +223,9 @@ export class IssueBrowser extends SearchableListBrowser {
225
223
  const marker = isSelected
226
224
  ? theme.fg("accent", ">")
227
225
  : theme.fg("dim", " ");
228
- const location = issue.line ? `${issue.filePath}:${issue.line}` : issue.filePath;
226
+ const location = issue.line
227
+ ? `${issue.filePath}:${issue.line}`
228
+ : issue.filePath;
229
229
  const rule = issue.ruleName
230
230
  ? `${issue.rule} (${issue.ruleName})`
231
231
  : issue.rule;
@@ -321,6 +321,34 @@ export async function showDuplicationBrowser(ctx, files, scopeLabel) {
321
321
  return null;
322
322
  return await ctx.ui.custom((_tui, theme, _kb, done) => new DuplicationBrowser(files, theme, done, scopeLabel));
323
323
  }
324
+ // ── Workspace selector browser ────────────────────────────────────────────
325
+ export class WorkspaceBrowser extends SearchableListBrowser {
326
+ constructor(workspaces, theme, done) {
327
+ super(workspaces, theme, done, {
328
+ title: "SonarQube Workspaces",
329
+ subtitle: (_query, totalCount, filteredCount) => `${totalCount} workspace(s) • ${filteredCount} match(es)`,
330
+ searchHint: "Search workspaces by alias or path",
331
+ emptyMessage: "No matching workspaces found.",
332
+ footer: "Up/Down to move, Enter to select, Esc to cancel",
333
+ pageSize: 15,
334
+ searchText: (ws) => `${ws.alias} ${ws.path}`,
335
+ renderItem: (ws, index, isSelected) => {
336
+ const marker = isSelected
337
+ ? theme.fg("accent", ">")
338
+ : theme.fg("dim", " ");
339
+ return `${marker} ${String(index + 1).padStart(2, " ")}. ${theme.fg("accent", ws.alias.padEnd(20))} ${theme.fg("dim", ws.path)}`;
340
+ },
341
+ });
342
+ }
343
+ }
344
+ export async function showWorkspaceBrowser(ctx, workspaces) {
345
+ if (ctx.mode !== "tui" || workspaces.length === 0)
346
+ return null;
347
+ const choice = await ctx.ui.custom((_tui, theme, _kb, done) => new WorkspaceBrowser(workspaces, theme, done));
348
+ if (choice == null)
349
+ return null;
350
+ return workspaces[choice].alias;
351
+ }
324
352
  // ── Issue browser / preview helpers (used by index.ts) ──────────────────────
325
353
  export async function showIssueBrowser(ctx, state) {
326
354
  if (ctx.mode !== "tui")
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,eAAe,EAAkB,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE3D,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAe,EACf,KAAiB,EACjB,MAAM,GAAG,CAAC;IAEV,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAEjC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAe,EACf,QAAgB,EAChB,MAA+B;IAE/B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,SAAS,GAAG,KAAK,EAAE,YAAoB,EAAqB,EAAE;QAClE,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACrD,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAClB,KAAe,EACf,IAAY,EACZ,IAAY,EACF,EAAE;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QACjC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAa,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;IAC3D,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBACxC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC1D,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9D,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,QAAQ,CAAC,IAAI,CACX,KAAK,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,EAClE,qCAAqC,CACtC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,+EAA+E;AAE/E,MAAM,gBAAgB,GAAG;IACvB,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;CACK,CAAC;AACX,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAOjD,MAAM,UAAU,eAAe,CAC7B,GAAqB,EACrB,UAAkB;IAElB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,GAAG,aAAa,CAAC;IAC1B,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC3C,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE;YACpC,GAAG,KAAK,cAAc,UAAU,EAAE;YAClC,KAAK;SACN,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,aAAa,UAAU,KAAK,CAAC,CAAC;IACvD,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC;QACzB,MAAM,EAAE,gBAAuC;QAC/C,UAAU,EAAE,EAAE;KACf,CAAC,CAAC;IACH,MAAM,EAAE,CAAC;IAET,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,UAAU,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;QACxD,MAAM,EAAE,CAAC;IACX,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,QAAQ,CAAC,SAAiB;YACxB,KAAK,GAAG,SAAS,CAAC;YAClB,MAAM,EAAE,CAAC;QACX,CAAC;QACD,IAAI;YACF,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;YACjD,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC;YAC3B,GAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC;QAC/B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAE9E,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,KAAK;SACT,IAAI,EAAE;SACN,WAAW,EAAE;SACb,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,KAAa;IACzD,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAmB,EACnB,KAAa,EACb,UAA+B;IAE/B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC;AAaD,MAAM,qBAAqB;IAQN;IACA;IACA;IACA;IAVX,QAAQ,GAAG,CAAC,CAAC;IACb,KAAK,GAAG,EAAE,CAAC;IACX,aAAa,CAAM;IACnB,QAAQ,GAAG,KAAK,CAAC;IACR,WAAW,GAAG,IAAI,KAAK,EAAE,CAAC;IAE3C,YACmB,KAAmB,EACnB,KAAY,EACZ,IAAqC,EACrC,MAAkC;QAHlC,UAAK,GAAL,KAAK,CAAc;QACnB,UAAK,GAAL,KAAK,CAAO;QACZ,SAAI,GAAJ,IAAI,CAAiC;QACrC,WAAM,GAAN,MAAM,CAA4B;QAEnD,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,KAAc;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CACtB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,EAC1C,IAAI,CAAC,QAAQ,GAAG,CAAC,CAClB,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CACnC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,aAAa,CAAC,MAAM,CAC1B,CAAC;QACF,OAAO;YACL,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;YACpE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;YACjC,EAAE;YACF,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE;gBACtC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBACxB,QAAQ;gBACR,KAAK,EAAE,IAAI,CAAC,aAAa;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBACtC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;gBAC1B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;aACnC,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,UAAU;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC9C,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK;YAAE,OAAO;QACrC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,iBAAiB,CACpC,IAAI,CAAC,KAAK,EACV,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,UAAU,CACvB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACpB,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,qBAAiC;IACjE,YACE,KAAyB,EACzB,KAAY,EACZ,IAAqC;QAErC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;YAC/B,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,CAC9C,GAAG,KAAK,CAAC,UAAU,MAAM,UAAU,eAAe,aAAa,aAAa,YAAY,EAAE;YAC5F,UAAU,EAAE,2DAA2D;YACvE,YAAY,EAAE,2BAA2B;YACzC,MAAM,EAAE,iDAAiD;YACzD,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CACpB;gBACE,KAAK,CAAC,QAAQ;gBACd,KAAK,CAAC,IAAI;gBACV,KAAK,CAAC,QAAQ,IAAI,EAAE;gBACpB,KAAK,CAAC,QAAQ;gBACd,KAAK,CAAC,MAAM,IAAI,EAAE;gBAClB,KAAK,CAAC,OAAO;aACd,CAAC,IAAI,CAAC,GAAG,CAAC;YACb,UAAU,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE;gBAC5C,MAAM,MAAM,GAAG,UAAU;oBACvB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC;oBACzB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACjF,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ;oBACzB,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,GAAG;oBACrC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACf,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtD,OAAO;oBACL,MAAM;oBACN,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;oBACvC,GAAG;oBACH,QAAQ;oBACR,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;oBAC5B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;oBACvB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;iBACvC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAED,+EAA+E;AAE/E,SAAS,aAAa,CAAC,KAAY,EAAE,QAAgB;IACnD,QAAQ,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/B,KAAK,SAAS,CAAC;QACf,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrC,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACvC,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtC;YACE,OAAO,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAgB,EAChB,KAAa,EACb,QAAgB;IAEhB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;IAC9C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACxB,CAAC;AAaD,SAAS,iBAAiB,CACxB,KAAY,EACZ,KAAa,EACb,MAAkC;IAElC,MAAM,KAAK,GAAa;QACtB,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;QAC3E,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;QACxD,EAAE;KACH,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,gBAAgB,CACrC,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,KAAK,CAAC,MAAM,EACnB,QAAQ,CACT,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CACR,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,EAChE,EAAE,EACF,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CACR,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,aAAa,CAAC,EAAE,KAAK,CAAC,CACnE,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;QAC7B,KAAK,CAAC,IAAI,CACR,eAAe,CACb,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,EACzD,KAAK,CACN,CACF,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CACR,eAAe,CACb,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,aAAa,CAAC,EAC9D,KAAK,CACN,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,OAAO,kBAAmB,SAAQ,qBAAsC;IAC5E,YACE,KAAwB,EACxB,KAAY,EACZ,IAAqC,EACrC,UAAmB;QAEnB,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;YACxB,KAAK,EAAE,wBAAwB;YAC/B,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,CAC9C,GAAG,UAAU,+BAA+B,WAAW,MAAM,aAAa,YAAY;YACxF,UAAU,EAAE,wEAAwE;YACpF,YAAY,EAAE,qCAAqC;YACnD,MAAM,EAAE,kDAAkD;YAC1D,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CACnB;gBACE,IAAI,CAAC,QAAQ;gBACb,QAAQ,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAChD,UAAU,IAAI,CAAC,gBAAgB,EAAE;gBACjC,SAAS,IAAI,CAAC,eAAe,EAAE;aAChC,CAAC,IAAI,CAAC,GAAG,CAAC;YACb,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;gBACtC,MAAM,MAAM,GAAG,UAAU;oBACvB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC;oBACzB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACzB,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,gBAAgB,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;gBAChI,OAAO,GAAG,MAAM,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YAC7H,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAA4B,EAC5B,KAAwB,EACxB,UAAmB;IAEnB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CACxB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CACzB,IAAI,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CACzD,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAA4B,EAC5B,KAAyB;IAEzB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CACxB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CACjE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAA4B,EAC5B,KAAyB,EACzB,KAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC9E,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACvB,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IACD,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,KAAK,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,GAA0C,EAC1C,SAAkB,EAClB,OAAgC;IAEhC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,UAAU,EACjB,GAAG,CAAC,MAAM,EACV,iBAAiB,EACjB,MAAM,CAAC,OAAO,CACf,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAC5C,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAK,EACZ,GAAG,CAAC,MAAM,CACX,CAAC;IACF,OAAO,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE;QACzC,OAAO,EAAE,iBAAiB;QAC1B,aAAa;KACd,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAA0C,EAC1C,eAAgD,EAChD,WAAoB,EACpB,OAAgC;IAEhC,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,OAAO,MAAM,wBAAwB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jonathan0823/pi-sonarqube",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "SonarQube extension for Pi — run local analysis and browse issues.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/api.ts CHANGED
@@ -18,18 +18,19 @@ import {
18
18
  SONAR_TYPES,
19
19
  SONAR_SOFTWARE_QUALITIES,
20
20
  SONAR_IMPACT_SEVERITIES,
21
+ CleanCodeMode,
21
22
  } from "./types.js";
22
23
  import { parseProperties } from "./config.js";
23
24
 
24
25
  // ── Clean code mode detection ────────────────────────────────────────────────
25
26
 
26
- const cleanCodeModeCache = new Map<string, "STANDARD" | "MQR">();
27
+ const cleanCodeModeCache = new Map<string, CleanCodeMode>();
27
28
 
28
29
  export async function fetchCleanCodeMode(
29
30
  serverUrl: string,
30
31
  token?: string,
31
32
  signal?: AbortSignal,
32
- ): Promise<"STANDARD" | "MQR" | undefined> {
33
+ ): Promise<CleanCodeMode | undefined> {
33
34
  const cached = cleanCodeModeCache.get(serverUrl);
34
35
  if (cached) return cached;
35
36
  try {
@@ -262,8 +263,14 @@ function mergeFilters(
262
263
  merged.statuses = mergeFilterField(merged.statuses, filter.statuses);
263
264
  merged.types = mergeFilterField(merged.types, filter.types);
264
265
  merged.rules = mergeFilterField(merged.rules, filter.rules);
265
- merged.softwareQualities = mergeFilterField(merged.softwareQualities, filter.softwareQualities);
266
- merged.impactSeverities = mergeFilterField(merged.impactSeverities, filter.impactSeverities);
266
+ merged.softwareQualities = mergeFilterField(
267
+ merged.softwareQualities,
268
+ filter.softwareQualities,
269
+ );
270
+ merged.impactSeverities = mergeFilterField(
271
+ merged.impactSeverities,
272
+ filter.impactSeverities,
273
+ );
267
274
  if (filter.pathScope) merged.pathScope = filter.pathScope;
268
275
  }
269
276
  return normalizeIssueFilters(merged);
@@ -523,10 +530,7 @@ function buildIssueSearchUrl(
523
530
  filters.impactSeverities.join(","),
524
531
  );
525
532
  if (filters?.componentKeys?.length)
526
- url.searchParams.set(
527
- "componentKeys",
528
- filters.componentKeys.join(","),
529
- );
533
+ url.searchParams.set("componentKeys", filters.componentKeys.join(","));
530
534
  return url.toString();
531
535
  }
532
536
 
@@ -653,19 +657,19 @@ export async function fetchProjectProfiles(
653
657
  token: string | undefined,
654
658
  projectKey: string,
655
659
  signal?: AbortSignal,
656
- ): Promise<Array<{key: string; language: string; name: string}>> {
660
+ ): Promise<Array<{ key: string; language: string; name: string }>> {
657
661
  try {
658
662
  const result = await fetchJson<{
659
- profiles: Array<{key?: string; language?: string; name?: string}>;
663
+ profiles: Array<{ key?: string; language?: string; name?: string }>;
660
664
  }>(
661
665
  `${serverUrl}/api/qualityprofiles/search?project=${encodeURIComponent(projectKey)}`,
662
666
  token,
663
667
  signal,
664
668
  );
665
- return (result.profiles ?? []).map(p => ({
666
- key: p.key ?? '',
667
- language: p.language ?? '',
668
- name: p.name ?? '',
669
+ return (result.profiles ?? []).map((p) => ({
670
+ key: p.key ?? "",
671
+ language: p.language ?? "",
672
+ name: p.name ?? "",
669
673
  }));
670
674
  } catch {
671
675
  return [];
@@ -678,7 +682,7 @@ export async function fetchRuleSearch(
678
682
  query: string,
679
683
  languages?: string[],
680
684
  signal?: AbortSignal,
681
- ): Promise<Array<{key: string; name?: string}>> {
685
+ ): Promise<Array<{ key: string; name?: string }>> {
682
686
  try {
683
687
  const params = new URLSearchParams();
684
688
  if (query) params.set("q", query);
@@ -687,14 +691,10 @@ export async function fetchRuleSearch(
687
691
  if (languages?.length) params.set("languages", languages.join(","));
688
692
 
689
693
  const result = await fetchJson<{
690
- rules: Array<{key?: string; name?: string}>;
691
- }>(
692
- `${serverUrl}/api/rules/search?${params.toString()}`,
693
- token,
694
- signal,
695
- );
696
- return (result.rules ?? []).map(r => ({
697
- key: r.key ?? '',
694
+ rules: Array<{ key?: string; name?: string }>;
695
+ }>(`${serverUrl}/api/rules/search?${params.toString()}`, token, signal);
696
+ return (result.rules ?? []).map((r) => ({
697
+ key: r.key ?? "",
698
698
  name: r.name,
699
699
  }));
700
700
  } catch {
@@ -797,7 +797,7 @@ export async function fetchIssueSeverityCounts(
797
797
  token: string | undefined,
798
798
  projectKey: string,
799
799
  signal?: AbortSignal,
800
- mode?: "STANDARD" | "MQR",
800
+ mode?: CleanCodeMode,
801
801
  ): Promise<IssueSeverityCounts | undefined> {
802
802
  try {
803
803
  const facetKey = mode === "MQR" ? "impactSeverities" : "severities";
package/src/commands.ts CHANGED
@@ -17,11 +17,16 @@ import {
17
17
  SONAR_TYPES,
18
18
  SONAR_SOFTWARE_QUALITIES,
19
19
  SONAR_IMPACT_SEVERITIES,
20
+ CleanCodeMode,
20
21
  } from "./types.js";
21
22
  import { execFileSync } from "node:child_process";
22
23
  import { readdirSync } from "node:fs";
23
24
  import { basename, dirname, relative, resolve } from "node:path";
24
- import { looksLikePath } from "./config.js";
25
+ import {
26
+ looksLikePath,
27
+ loadWorkspaceRegistry,
28
+ knownTargets,
29
+ } from "./config.js";
25
30
  import {
26
31
  parseSonarIssueArgs,
27
32
  issueFilterLabel,
@@ -118,9 +123,7 @@ export function splitSonarArgumentContext(argumentText: string): {
118
123
  };
119
124
  }
120
125
 
121
- function createFilterCompletionList(
122
- mode?: "STANDARD" | "MQR",
123
- ): AutocompleteItem[] {
126
+ function createFilterCompletionList(mode?: CleanCodeMode): AutocompleteItem[] {
124
127
  const buildItems = (
125
128
  groups: ReadonlyArray<
126
129
  readonly [string, readonly string[], string, boolean]
@@ -370,7 +373,7 @@ function getInPathCompletions(
370
373
 
371
374
  function getOpenCompletions(
372
375
  issues: SonarIssue[] | undefined,
373
- mode: "STANDARD" | "MQR" | undefined,
376
+ mode: CleanCodeMode | undefined,
374
377
  current: string,
375
378
  ): AutocompleteItem[] | null {
376
379
  const issueItems = (issues ?? []).slice(0, 10).map((issue, index) => {
@@ -388,7 +391,7 @@ function getOpenCompletions(
388
391
 
389
392
  async function getFilterCompletions(
390
393
  current: string,
391
- mode: "STANDARD" | "MQR" | undefined,
394
+ mode: CleanCodeMode | undefined,
392
395
  cwd: string | undefined,
393
396
  serverUrl: string | undefined,
394
397
  token: string | undefined,
@@ -422,10 +425,51 @@ async function getFilterCompletions(
422
425
  return filtered.length > 0 ? filtered : null;
423
426
  }
424
427
 
428
+ async function getAnalyzeCompletions(
429
+ current: string,
430
+ mode: CleanCodeMode | undefined,
431
+ cwd: string | undefined,
432
+ serverUrl: string | undefined,
433
+ token: string | undefined,
434
+ projectKey: string | undefined,
435
+ ): Promise<AutocompleteItem[] | null> {
436
+ const [filterItems, aliasItems] = await Promise.all([
437
+ getFilterCompletions(current, mode, cwd, serverUrl, token, projectKey),
438
+ cwd ? getWorkspaceAliases(cwd, current) : Promise.resolve(null),
439
+ ]);
440
+ if (!filterItems && !aliasItems) return null;
441
+ const combined: AutocompleteItem[] = [
442
+ ...(aliasItems ?? []),
443
+ ...(filterItems ?? []),
444
+ ];
445
+ return combined.length > 0 ? combined : null;
446
+ }
447
+
448
+ async function getWorkspaceAliases(
449
+ cwd: string,
450
+ current: string,
451
+ ): Promise<AutocompleteItem[] | null> {
452
+ try {
453
+ const { registry } = await loadWorkspaceRegistry(cwd);
454
+ const aliases = knownTargets(registry);
455
+ if (aliases.length === 0) return null;
456
+ return filterAutocompleteItems(
457
+ aliases.map((alias) => ({
458
+ value: alias,
459
+ label: alias,
460
+ description: registry.workspaces[alias],
461
+ })),
462
+ current,
463
+ );
464
+ } catch {
465
+ return null;
466
+ }
467
+ }
468
+
425
469
  export async function sonarArgumentCompletions(
426
470
  argumentText: string,
427
471
  issues?: SonarIssue[],
428
- mode?: "STANDARD" | "MQR",
472
+ mode?: CleanCodeMode,
429
473
  cwd?: string,
430
474
  serverUrl?: string,
431
475
  token?: string,
@@ -453,7 +497,18 @@ export async function sonarArgumentCompletions(
453
497
  return getOpenCompletions(issues, mode, current);
454
498
  }
455
499
 
456
- if (lowerCommand === "analyze" || lowerCommand === "issues") {
500
+ if (lowerCommand === "analyze") {
501
+ return getAnalyzeCompletions(
502
+ current,
503
+ mode,
504
+ cwd,
505
+ serverUrl,
506
+ token,
507
+ projectKey,
508
+ );
509
+ }
510
+
511
+ if (lowerCommand === "issues") {
457
512
  return getFilterCompletions(
458
513
  current,
459
514
  mode,
@@ -600,7 +655,7 @@ export function formatMetricsOutput(metrics: {
600
655
  measures?: SonarDuplicationMeasures;
601
656
  issueCounts?: IssueSeverityCounts;
602
657
  issueQualityCounts?: IssueQualityCounts;
603
- cleanCodeMode?: "STANDARD" | "MQR";
658
+ cleanCodeMode?: CleanCodeMode;
604
659
  }): string {
605
660
  const lines: string[] = [`Metrics for ${metrics.projectKey}`];
606
661
 
package/src/index.ts CHANGED
@@ -29,6 +29,7 @@ import {
29
29
  ensureDefaultSonarProjectProperties,
30
30
  saveWorkspaceRegistry,
31
31
  resolveConfig,
32
+ loadWorkspaceRegistry,
32
33
  } from "./config.js";
33
34
  import {
34
35
  runScanner,
@@ -70,6 +71,7 @@ import {
70
71
  openIssuePreview,
71
72
  resolveTargetState,
72
73
  showDuplicationBrowser,
74
+ showWorkspaceBrowser,
73
75
  } from "./ui.js";
74
76
 
75
77
  const SonarToolParams = Type.Object({
@@ -156,7 +158,11 @@ async function analyzeProject(
156
158
  filters?: SonarIssueFetchOptions,
157
159
  ): Promise<SonarAnalysisState> {
158
160
  const config = await resolveConfig(ctx, inputPath);
159
- _cachedConfig = { serverUrl: config.serverUrl, projectKey: config.projectKey, token: config.token };
161
+ _cachedConfig = {
162
+ serverUrl: config.serverUrl,
163
+ projectKey: config.projectKey,
164
+ token: config.token,
165
+ };
160
166
  const baseDirStat = await stat(config.baseDir).catch(() => undefined);
161
167
  if (!baseDirStat?.isDirectory()) {
162
168
  throw new Error(`Project directory not found: ${config.baseDir}`);
@@ -394,13 +400,18 @@ function renderIssueListResult(
394
400
  // ── Extension entrypoint ────────────────────────────────────────────────────
395
401
 
396
402
  // ponytail: lazy config cache so rule autocomplete can fetch from the server
397
- let _cachedConfig: { serverUrl: string; projectKey: string; token?: string } | undefined;
403
+ let _cachedConfig:
404
+ { serverUrl: string; projectKey: string; token?: string } | undefined;
398
405
 
399
406
  async function cachedServerConfig(cwd: string): Promise<typeof _cachedConfig> {
400
407
  if (!_cachedConfig) {
401
408
  try {
402
409
  const cfg = await resolveConfig({ cwd });
403
- _cachedConfig = { serverUrl: cfg.serverUrl, projectKey: cfg.projectKey, token: cfg.token };
410
+ _cachedConfig = {
411
+ serverUrl: cfg.serverUrl,
412
+ projectKey: cfg.projectKey,
413
+ token: cfg.token,
414
+ };
404
415
  } catch {
405
416
  // fall through
406
417
  }
@@ -719,6 +730,11 @@ async function commandAnalyze(
719
730
  filters: SonarIssueFetchOptions | undefined,
720
731
  rememberState: (s: SonarAnalysisState) => void,
721
732
  ): Promise<void> {
733
+ if (!targetInput) {
734
+ const pickResult = await pickWorkspace(ctx);
735
+ if (pickResult === null) return; // user cancelled
736
+ targetInput = pickResult;
737
+ }
722
738
  const state = await analyzeProject(pi, ctx, targetInput, filters);
723
739
  rememberState(state);
724
740
  if (ctx.hasUI) {
@@ -730,6 +746,20 @@ async function commandAnalyze(
730
746
  }
731
747
  }
732
748
 
749
+ async function pickWorkspace(
750
+ ctx: ExtensionContext,
751
+ ): Promise<string | undefined | null> {
752
+ const { registry } = await loadWorkspaceRegistry(ctx.cwd);
753
+ const entries = Object.entries(registry.workspaces);
754
+ if (entries.length === 0) return undefined; // no registry → use cwd
755
+ if (entries.length === 1) return entries[0][0]; // single → use it directly
756
+ if (ctx.mode !== "tui") return undefined; // headless → use cwd
757
+ return await showWorkspaceBrowser(
758
+ ctx,
759
+ entries.map(([alias, path]) => ({ alias, path })),
760
+ );
761
+ }
762
+
733
763
  async function loadMetricsData(
734
764
  config: SonarProjectConfig,
735
765
  signal?: AbortSignal,
package/src/types.ts CHANGED
@@ -68,7 +68,7 @@ export interface SonarAnalysisState {
68
68
  measures?: SonarDuplicationMeasures;
69
69
  totalIssues: number;
70
70
  issues: SonarIssue[];
71
- cleanCodeMode?: "STANDARD" | "MQR";
71
+ cleanCodeMode?: CleanCodeMode;
72
72
  }
73
73
 
74
74
  export interface SonarProjectConfig {
@@ -98,6 +98,8 @@ export interface SonarInitConfig {
98
98
 
99
99
  // ── Internal types shared by adapter and extension ──────────────────────────
100
100
 
101
+ export type CleanCodeMode = "STANDARD" | "MQR";
102
+
101
103
  export interface SonarWorkspaceRegistry {
102
104
  version: 1;
103
105
  workspaces: Record<string, string>;