@jonathan0823/pi-sonarqube 0.4.0 → 0.6.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.js CHANGED
@@ -1,8 +1,30 @@
1
1
  // ── Public types ──────────────────────────────────────────────────────────────
2
2
  // ── Constants shared by adapter and extension ───────────────────────────────
3
- export const SONAR_SEVERITIES = ["BLOCKER", "CRITICAL", "MAJOR", "MINOR", "INFO"];
4
- export const SONAR_STATUSES = ["OPEN", "CONFIRMED", "REOPENED", "RESOLVED", "CLOSED"];
3
+ export const SONAR_SEVERITIES = [
4
+ "BLOCKER",
5
+ "CRITICAL",
6
+ "MAJOR",
7
+ "MINOR",
8
+ "INFO",
9
+ ];
10
+ export const SONAR_STATUSES = [
11
+ "OPEN",
12
+ "CONFIRMED",
13
+ "REOPENED",
14
+ "RESOLVED",
15
+ "CLOSED",
16
+ ];
5
17
  export const SONAR_TYPES = ["BUG", "VULNERABILITY", "CODE_SMELL"];
6
- export const SONAR_SOFTWARE_QUALITIES = ["MAINTAINABILITY", "RELIABILITY", "SECURITY"];
7
- export const SONAR_IMPACT_SEVERITIES = ["BLOCKER", "HIGH", "MEDIUM", "LOW", "INFO"];
18
+ export const SONAR_SOFTWARE_QUALITIES = [
19
+ "MAINTAINABILITY",
20
+ "RELIABILITY",
21
+ "SECURITY",
22
+ ];
23
+ export const SONAR_IMPACT_SEVERITIES = [
24
+ "BLOCKER",
25
+ "HIGH",
26
+ "MEDIUM",
27
+ "LOW",
28
+ "INFO",
29
+ ];
8
30
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAuHjF,+EAA+E;AAE/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAC3F,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC;AAC/F,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,YAAY,CAAU,CAAC;AAC3E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,iBAAiB,EAAE,aAAa,EAAE,UAAU,CAAU,CAAC;AAChG,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC"}
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"}
package/dist/ui.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { Theme, ExtensionContext, ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
2
+ import { type Focusable } from "@earendil-works/pi-tui";
2
3
  import type { SonarIssue, SonarAnalysisState, SonarIssueFetchOptions, FileDuplication, DuplicationBlockGroup } from "./types.js";
3
4
  export declare function buildIssuePreview(baseDir: string, issue: SonarIssue, radius?: number): Promise<string>;
4
5
  export declare function buildDuplicationPreview(baseDir: string, filePath: string, groups: DuplicationBlockGroup[]): Promise<string>;
@@ -7,27 +8,41 @@ export interface AnalysisUiHandle {
7
8
  stop(): void;
8
9
  }
9
10
  export declare function startAnalysisUi(ctx: ExtensionContext, projectKey: string): AnalysisUiHandle;
10
- export declare class IssueBrowser {
11
- private readonly state;
12
- private readonly theme;
13
- private readonly done;
14
- private selected;
15
- constructor(state: SonarAnalysisState, theme: Theme, done: (result: number | null) => void);
16
- invalidate(): void;
17
- handleInput(data: string): void;
18
- render(width: number): string[];
11
+ interface SearchableBrowserConfig<T> {
12
+ title: string;
13
+ subtitle: (query: string, totalCount: number, filteredCount: number) => string;
14
+ searchHint: string;
15
+ emptyMessage: string;
16
+ footer: string;
17
+ pageSize: number;
18
+ searchText: (item: T) => string;
19
+ renderItem: (item: T, index: number, isSelected: boolean) => string;
19
20
  }
20
- export declare class DuplicationBrowser {
21
- private readonly files;
21
+ declare class SearchableListBrowser<T> implements Focusable {
22
+ private readonly items;
22
23
  private readonly theme;
23
24
  private readonly done;
25
+ private readonly config;
24
26
  private selected;
25
- constructor(files: FileDuplication[], theme: Theme, done: (result: number | null) => void);
27
+ private query;
28
+ private filteredItems;
29
+ private _focused;
30
+ private readonly searchInput;
31
+ constructor(items: readonly T[], theme: Theme, done: (result: number | null) => void, config: SearchableBrowserConfig<T>);
32
+ get focused(): boolean;
33
+ set focused(value: boolean);
26
34
  invalidate(): void;
27
35
  handleInput(data: string): void;
28
36
  render(width: number): string[];
37
+ private syncFilter;
38
+ }
39
+ export declare class IssueBrowser extends SearchableListBrowser<SonarIssue> {
40
+ constructor(state: SonarAnalysisState, theme: Theme, done: (result: number | null) => void);
41
+ }
42
+ export declare class DuplicationBrowser extends SearchableListBrowser<FileDuplication> {
43
+ constructor(files: FileDuplication[], theme: Theme, done: (result: number | null) => void, scopeLabel?: string);
29
44
  }
30
- export declare function showDuplicationBrowser(ctx: ExtensionCommandContext, files: FileDuplication[]): Promise<number | null>;
45
+ export declare function showDuplicationBrowser(ctx: ExtensionCommandContext, files: FileDuplication[], scopeLabel?: string): Promise<number | null>;
31
46
  export declare function showIssueBrowser(ctx: ExtensionCommandContext, state: SonarAnalysisState): Promise<number | null>;
32
47
  export declare function openIssuePreview(ctx: ExtensionCommandContext, state: SonarAnalysisState, issue: SonarIssue): Promise<void>;
33
48
  export declare function loadProjectIssuesFromApi(ctx: {
@@ -38,4 +53,5 @@ export declare function resolveTargetState(ctx: {
38
53
  signal?: AbortSignal;
39
54
  cwd: string;
40
55
  }, statesByBaseDir: Map<string, SonarAnalysisState>, targetInput?: string, filters?: SonarIssueFetchOptions): Promise<SonarAnalysisState | undefined>;
56
+ export {};
41
57
  //# sourceMappingURL=ui.d.ts.map
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":"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"}
package/dist/ui.js CHANGED
@@ -1,7 +1,7 @@
1
- import { 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
- import { issueFilterLabel, fetchIssues, createAnalysisState, normalizeIssueFilters, fetchCleanCodeMode } from "./api.js";
4
+ import { issueFilterLabel, fetchIssues, createAnalysisState, normalizeIssueFilters, fetchCleanCodeMode, } from "./api.js";
5
5
  import { resolveConfig, resolveTarget } from "./config.js";
6
6
  // ── Issue preview ───────────────────────────────────────────────────────────
7
7
  export async function buildIssuePreview(baseDir, issue, radius = 3) {
@@ -62,17 +62,34 @@ export async function buildDuplicationPreview(baseDir, filePath, groups) {
62
62
  return rendered.join("\n");
63
63
  }
64
64
  // ── Analysis UI ─────────────────────────────────────────────────────────────
65
- const ANALYSIS_SPINNER = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
65
+ const ANALYSIS_SPINNER = [
66
+ "⠋",
67
+ "⠙",
68
+ "⠹",
69
+ "⠸",
70
+ "⠼",
71
+ "⠴",
72
+ "⠦",
73
+ "⠧",
74
+ "⠇",
75
+ "⠏",
76
+ ];
66
77
  const ANALYSIS_WIDGET_KEY = "sonarqube-analysis";
67
78
  export function startAnalysisUi(ctx, projectKey) {
68
79
  let frameIndex = 0;
69
80
  let phase = "Starting...";
70
81
  const render = () => {
71
82
  const frame = ANALYSIS_SPINNER[frameIndex];
72
- ctx.ui.setWidget(ANALYSIS_WIDGET_KEY, [`${frame} SonarQube ${projectKey}`, phase]);
83
+ ctx.ui.setWidget(ANALYSIS_WIDGET_KEY, [
84
+ `${frame} SonarQube ${projectKey}`,
85
+ phase,
86
+ ]);
73
87
  };
74
88
  ctx.ui.setWorkingMessage(`Analyzing ${projectKey}...`);
75
- ctx.ui.setWorkingIndicator({ frames: ANALYSIS_SPINNER, intervalMs: 80 });
89
+ ctx.ui.setWorkingIndicator({
90
+ frames: ANALYSIS_SPINNER,
91
+ intervalMs: 80,
92
+ });
76
93
  render();
77
94
  const timer = setInterval(() => {
78
95
  frameIndex = (frameIndex + 1) % ANALYSIS_SPINNER.length;
@@ -91,44 +108,136 @@ export function startAnalysisUi(ctx, projectKey) {
91
108
  },
92
109
  };
93
110
  }
94
- // ── Issue Browser UI component ──────────────────────────────────────────────
95
- export class IssueBrowser {
96
- state;
111
+ // ── Searchable browser helpers ─────────────────────────────────────────────
112
+ function normalizeSearchQuery(query) {
113
+ return query
114
+ .trim()
115
+ .toLowerCase()
116
+ .split(/\s+/)
117
+ .filter(Boolean);
118
+ }
119
+ function matchesSearchQuery(haystack, query) {
120
+ const tokens = normalizeSearchQuery(query);
121
+ if (tokens.length === 0)
122
+ return true;
123
+ const text = haystack.toLowerCase();
124
+ return tokens.every((token) => text.includes(token));
125
+ }
126
+ function filterSearchItems(items, query, searchText) {
127
+ if (!query.trim())
128
+ return [...items];
129
+ return items.filter((item) => matchesSearchQuery(searchText(item), query));
130
+ }
131
+ class SearchableListBrowser {
132
+ items;
97
133
  theme;
98
134
  done;
135
+ config;
99
136
  selected = 0;
100
- constructor(state, theme, done) {
101
- this.state = state;
137
+ query = "";
138
+ filteredItems;
139
+ _focused = false;
140
+ searchInput = new Input();
141
+ constructor(items, theme, done, config) {
142
+ this.items = items;
102
143
  this.theme = theme;
103
144
  this.done = done;
145
+ this.config = config;
146
+ this.filteredItems = [...items];
147
+ }
148
+ get focused() {
149
+ return this._focused;
150
+ }
151
+ set focused(value) {
152
+ this._focused = value;
153
+ this.searchInput.focused = value;
154
+ }
155
+ invalidate() {
156
+ this.searchInput.invalidate();
104
157
  }
105
- invalidate() { } // NOSONAR - required by TUI interface
106
158
  handleInput(data) {
107
- this.selected = handleListBrowserInput(data, this.selected, this.state.issues.length, this.done);
159
+ if (matchesKey(data, Key.escape) || matchesKey(data, "ctrl+c")) {
160
+ this.done(null);
161
+ return;
162
+ }
163
+ if (matchesKey(data, Key.up)) {
164
+ this.selected = Math.max(0, this.selected - 1);
165
+ return;
166
+ }
167
+ if (matchesKey(data, Key.down)) {
168
+ this.selected = Math.min(Math.max(0, this.filteredItems.length - 1), this.selected + 1);
169
+ return;
170
+ }
171
+ if (matchesKey(data, Key.enter)) {
172
+ if (this.filteredItems.length > 0)
173
+ this.done(this.selected);
174
+ return;
175
+ }
176
+ this.searchInput.handleInput(data);
177
+ this.syncFilter();
108
178
  }
109
179
  render(width) {
110
- const filterSuffix = this.state.filters ? ` • ${issueFilterLabel(this.state.filters)}` : "";
111
- return renderListBrowser(this.theme, width, {
180
+ const subtitle = this.config.subtitle(this.query, this.items.length, this.filteredItems.length);
181
+ return [
182
+ truncateToWidth(this.theme.fg("dim", this.config.searchHint), width),
183
+ ...this.searchInput.render(width),
184
+ "",
185
+ ...renderListBrowser(this.theme, width, {
186
+ title: this.config.title,
187
+ subtitle,
188
+ items: this.filteredItems,
189
+ selected: this.selected,
190
+ pageSize: this.config.pageSize,
191
+ emptyMessage: this.config.emptyMessage,
192
+ footer: this.config.footer,
193
+ renderItem: this.config.renderItem,
194
+ }),
195
+ ];
196
+ }
197
+ syncFilter() {
198
+ const nextQuery = this.searchInput.getValue();
199
+ if (nextQuery === this.query)
200
+ return;
201
+ this.query = nextQuery;
202
+ this.filteredItems = filterSearchItems(this.items, nextQuery, this.config.searchText);
203
+ this.selected = 0;
204
+ }
205
+ }
206
+ export class IssueBrowser extends SearchableListBrowser {
207
+ constructor(state, theme, done) {
208
+ const filterSuffix = state.filters ? ` • ${issueFilterLabel(state.filters)}` : "";
209
+ super(state.issues, theme, done, {
112
210
  title: "SonarQube Issues",
113
- subtitle: `${this.state.projectKey} • ${this.state.totalIssues} issue(s)${filterSuffix}`,
114
- items: this.state.issues,
115
- selected: this.selected,
116
- pageSize: 20,
117
- emptyMessage: "No open issues found.",
211
+ subtitle: (_query, totalCount, filteredCount) => `${state.projectKey} • ${totalCount} issue(s) • ${filteredCount} match(es)${filterSuffix}`,
212
+ searchHint: "Search issues by file, rule, severity, status, or message",
213
+ emptyMessage: "No matching issues found.",
118
214
  footer: "Up/Down to move, Enter to preview, Esc to close",
215
+ pageSize: 20,
216
+ searchText: (issue) => [
217
+ issue.filePath,
218
+ issue.rule,
219
+ issue.ruleName ?? "",
220
+ issue.severity,
221
+ issue.status ?? "",
222
+ issue.message,
223
+ ].join(" "),
119
224
  renderItem: (issue, issueIndex, isSelected) => {
120
- const marker = isSelected ? this.theme.fg("accent", ">") : this.theme.fg("dim", " ");
225
+ const marker = isSelected
226
+ ? theme.fg("accent", ">")
227
+ : theme.fg("dim", " ");
121
228
  const location = issue.line ? `${issue.filePath}:${issue.line}` : issue.filePath;
122
- const rule = issue.ruleName ? `${issue.rule} (${issue.ruleName})` : issue.rule;
123
- const severity = severityColor(this.theme, issue.severity);
229
+ const rule = issue.ruleName
230
+ ? `${issue.rule} (${issue.ruleName})`
231
+ : issue.rule;
232
+ const severity = severityColor(theme, issue.severity);
124
233
  return [
125
234
  marker,
126
235
  String(issueIndex + 1).padStart(2, " "),
127
236
  ".",
128
237
  severity,
129
- this.theme.fg("accent", location),
130
- this.theme.fg("muted", rule),
131
- this.theme.fg("text", `— ${issue.message}`),
238
+ theme.fg("accent", location),
239
+ theme.fg("muted", rule),
240
+ theme.fg("text", `— ${issue.message}`),
132
241
  ].join(" ");
133
242
  },
134
243
  });
@@ -148,22 +257,6 @@ function severityColor(theme, severity) {
148
257
  return theme.fg("muted", severity);
149
258
  }
150
259
  }
151
- function handleListBrowserInput(data, selected, count, done) {
152
- if (matchesKey(data, Key.escape) || matchesKey(data, "ctrl+c")) {
153
- done(null);
154
- return selected;
155
- }
156
- if (matchesKey(data, Key.up)) {
157
- return Math.max(0, selected - 1);
158
- }
159
- if (matchesKey(data, Key.down)) {
160
- return Math.min(Math.max(0, count - 1), selected + 1);
161
- }
162
- if (matchesKey(data, Key.enter)) {
163
- done(selected);
164
- }
165
- return selected;
166
- }
167
260
  function getBrowserWindow(selected, total, pageSize) {
168
261
  const halfWindow = Math.floor(pageSize / 2);
169
262
  const maxStart = Math.max(0, total - pageSize);
@@ -197,42 +290,36 @@ function renderListBrowser(theme, width, config) {
197
290
  lines.push("", truncateToWidth(theme.fg("dim", config.footer), width));
198
291
  return lines;
199
292
  }
200
- // ── Duplication browser (used by index.ts) ─────────────────────────────────
201
- export class DuplicationBrowser {
202
- files;
203
- theme;
204
- done;
205
- selected = 0;
206
- constructor(files, theme, done) {
207
- this.files = files;
208
- this.theme = theme;
209
- this.done = done;
210
- }
211
- invalidate() { } // NOSONAR - required by TUI interface
212
- handleInput(data) {
213
- this.selected = handleListBrowserInput(data, this.selected, this.files.length, this.done);
214
- }
215
- render(width) {
216
- return renderListBrowser(this.theme, width, {
293
+ export class DuplicationBrowser extends SearchableListBrowser {
294
+ constructor(files, theme, done, scopeLabel) {
295
+ const scopeSuffix = scopeLabel ? ` • ${scopeLabel}` : "";
296
+ super(files, theme, done, {
217
297
  title: "SonarQube Duplications",
218
- subtitle: `${this.files.length} file(s) with duplicate code`,
219
- items: this.files,
220
- selected: this.selected,
221
- pageSize: 15,
222
- emptyMessage: "No duplicate code found.",
298
+ subtitle: (_query, totalCount, filteredCount) => `${totalCount} file(s) with duplicate code${scopeSuffix} • ${filteredCount} match(es)`,
299
+ searchHint: "Search duplications by file path, duplicated lines, blocks, or density",
300
+ emptyMessage: "No matching duplicated files found.",
223
301
  footer: "Up/Down to move, Enter for details, Esc to close",
302
+ pageSize: 15,
303
+ searchText: (file) => [
304
+ file.filePath,
305
+ `dup%=${file.duplicatedLinesDensity.toFixed(1)}`,
306
+ `blocks=${file.duplicatedBlocks}`,
307
+ `lines=${file.duplicatedLines}`,
308
+ ].join(" "),
224
309
  renderItem: (file, index, isSelected) => {
225
- const marker = isSelected ? this.theme.fg("accent", ">") : this.theme.fg("dim", " ");
226
- const detail = `blocks=${file.duplicatedBlocks} lines=${file.duplicatedLines}`;
227
- return `${marker} ${String(index + 1).padStart(2, " ")}. ${this.theme.fg("accent", file.filePath)} ${this.theme.fg("dim", detail)}`;
310
+ const marker = isSelected
311
+ ? theme.fg("accent", ">")
312
+ : theme.fg("dim", " ");
313
+ const detail = `dup%=${file.duplicatedLinesDensity.toFixed(1)} blocks=${file.duplicatedBlocks} lines=${file.duplicatedLines}`;
314
+ return `${marker} ${String(index + 1).padStart(2, " ")}. ${theme.fg("accent", file.filePath)} ${theme.fg("dim", detail)}`;
228
315
  },
229
316
  });
230
317
  }
231
318
  }
232
- export async function showDuplicationBrowser(ctx, files) {
319
+ export async function showDuplicationBrowser(ctx, files, scopeLabel) {
233
320
  if (ctx.mode !== "tui" || files.length === 0)
234
321
  return null;
235
- return await ctx.ui.custom((_tui, theme, _kb, done) => new DuplicationBrowser(files, theme, done));
322
+ return await ctx.ui.custom((_tui, theme, _kb, done) => new DuplicationBrowser(files, theme, done, scopeLabel));
236
323
  }
237
324
  // ── Issue browser / preview helpers (used by index.ts) ──────────────────────
238
325
  export async function showIssueBrowser(ctx, state) {
@@ -255,9 +342,12 @@ export async function openIssuePreview(ctx, state, issue) {
255
342
  export async function loadProjectIssuesFromApi(ctx, inputPath, filters) {
256
343
  const config = await resolveConfig(ctx, inputPath);
257
344
  const normalizedFilters = normalizeIssueFilters(filters);
258
- const issues = await fetchIssues(config.serverUrl, config.token, config.projectKey, ctx.signal, normalizedFilters);
345
+ const issues = await fetchIssues(config.serverUrl, config.token, config.projectKey, ctx.signal, normalizedFilters, config.baseDir);
259
346
  const cleanCodeMode = await fetchCleanCodeMode(config.serverUrl, config.token, ctx.signal);
260
- return createAnalysisState(config, issues, { filters: normalizedFilters, cleanCodeMode });
347
+ return createAnalysisState(config, issues, {
348
+ filters: normalizedFilters,
349
+ cleanCodeMode,
350
+ });
261
351
  }
262
352
  export async function resolveTargetState(ctx, statesByBaseDir, targetInput, filters) {
263
353
  const resolvedTarget = await resolveTarget(ctx, targetInput);
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jonathan0823/pi-sonarqube",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "SonarQube extension for Pi — run local analysis and browse issues.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",