95 lines
13 KiB
TypeScript
95 lines
13 KiB
TypeScript
|
|
import { c as _c } from "react/compiler-runtime";
|
||
|
|
import { relative } from 'path';
|
||
|
|
import React from 'react';
|
||
|
|
import { Box, Text } from '../ink.js';
|
||
|
|
import { DiagnosticTrackingService } from '../services/diagnosticTracking.js';
|
||
|
|
import type { Attachment } from '../utils/attachments.js';
|
||
|
|
import { getCwd } from '../utils/cwd.js';
|
||
|
|
import { CtrlOToExpand } from './CtrlOToExpand.js';
|
||
|
|
import { MessageResponse } from './MessageResponse.js';
|
||
|
|
type DiagnosticsAttachment = Extract<Attachment, {
|
||
|
|
type: 'diagnostics';
|
||
|
|
}>;
|
||
|
|
type DiagnosticsDisplayProps = {
|
||
|
|
attachment: DiagnosticsAttachment;
|
||
|
|
verbose: boolean;
|
||
|
|
};
|
||
|
|
export function DiagnosticsDisplay(t0) {
|
||
|
|
const $ = _c(14);
|
||
|
|
const {
|
||
|
|
attachment,
|
||
|
|
verbose
|
||
|
|
} = t0;
|
||
|
|
if (attachment.files.length === 0) {
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
let t1;
|
||
|
|
if ($[0] !== attachment.files) {
|
||
|
|
t1 = attachment.files.reduce(_temp, 0);
|
||
|
|
$[0] = attachment.files;
|
||
|
|
$[1] = t1;
|
||
|
|
} else {
|
||
|
|
t1 = $[1];
|
||
|
|
}
|
||
|
|
const totalIssues = t1;
|
||
|
|
const fileCount = attachment.files.length;
|
||
|
|
if (verbose) {
|
||
|
|
let t2;
|
||
|
|
if ($[2] !== attachment.files) {
|
||
|
|
t2 = attachment.files.map(_temp3);
|
||
|
|
$[2] = attachment.files;
|
||
|
|
$[3] = t2;
|
||
|
|
} else {
|
||
|
|
t2 = $[3];
|
||
|
|
}
|
||
|
|
let t3;
|
||
|
|
if ($[4] !== t2) {
|
||
|
|
t3 = <Box flexDirection="column">{t2}</Box>;
|
||
|
|
$[4] = t2;
|
||
|
|
$[5] = t3;
|
||
|
|
} else {
|
||
|
|
t3 = $[5];
|
||
|
|
}
|
||
|
|
return t3;
|
||
|
|
} else {
|
||
|
|
let t2;
|
||
|
|
if ($[6] !== totalIssues) {
|
||
|
|
t2 = <Text bold={true}>{totalIssues}</Text>;
|
||
|
|
$[6] = totalIssues;
|
||
|
|
$[7] = t2;
|
||
|
|
} else {
|
||
|
|
t2 = $[7];
|
||
|
|
}
|
||
|
|
const t3 = totalIssues === 1 ? "issue" : "issues";
|
||
|
|
const t4 = fileCount === 1 ? "file" : "files";
|
||
|
|
let t5;
|
||
|
|
if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
|
||
|
|
t5 = <CtrlOToExpand />;
|
||
|
|
$[8] = t5;
|
||
|
|
} else {
|
||
|
|
t5 = $[8];
|
||
|
|
}
|
||
|
|
let t6;
|
||
|
|
if ($[9] !== fileCount || $[10] !== t2 || $[11] !== t3 || $[12] !== t4) {
|
||
|
|
t6 = <MessageResponse><Text dimColor={true} wrap="wrap">Found {t2} new diagnostic{" "}{t3} in {fileCount}{" "}{t4} {t5}</Text></MessageResponse>;
|
||
|
|
$[9] = fileCount;
|
||
|
|
$[10] = t2;
|
||
|
|
$[11] = t3;
|
||
|
|
$[12] = t4;
|
||
|
|
$[13] = t6;
|
||
|
|
} else {
|
||
|
|
t6 = $[13];
|
||
|
|
}
|
||
|
|
return t6;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function _temp3(file_0, fileIndex) {
|
||
|
|
return <React.Fragment key={fileIndex}><MessageResponse><Text dimColor={true} wrap="wrap"><Text bold={true}>{relative(getCwd(), file_0.uri.replace("file://", "").replace("_claude_fs_right:", ""))}</Text>{" "}<Text dimColor={true}>{file_0.uri.startsWith("file://") ? "(file://)" : file_0.uri.startsWith("_claude_fs_right:") ? "(claude_fs_right)" : `(${file_0.uri.split(":")[0]})`}</Text>:</Text></MessageResponse>{file_0.diagnostics.map(_temp2)}</React.Fragment>;
|
||
|
|
}
|
||
|
|
function _temp2(diagnostic, diagIndex) {
|
||
|
|
return <MessageResponse key={diagIndex}><Text dimColor={true} wrap="wrap">{" "}{DiagnosticTrackingService.getSeveritySymbol(diagnostic.severity)}{" [Line "}{diagnostic.range.start.line + 1}:{diagnostic.range.start.character + 1}{"] "}{diagnostic.message}{diagnostic.code ? ` [${diagnostic.code}]` : ""}{diagnostic.source ? ` (${diagnostic.source})` : ""}</Text></MessageResponse>;
|
||
|
|
}
|
||
|
|
function _temp(sum, file) {
|
||
|
|
return sum + file.diagnostics.length;
|
||
|
|
}
|
||
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZWxhdGl2ZSIsIlJlYWN0IiwiQm94IiwiVGV4dCIsIkRpYWdub3N0aWNUcmFja2luZ1NlcnZpY2UiLCJBdHRhY2htZW50IiwiZ2V0Q3dkIiwiQ3RybE9Ub0V4cGFuZCIsIk1lc3NhZ2VSZXNwb25zZSIsIkRpYWdub3N0aWNzQXR0YWNobWVudCIsIkV4dHJhY3QiLCJ0eXBlIiwiRGlhZ25vc3RpY3NEaXNwbGF5UHJvcHMiLCJhdHRhY2htZW50IiwidmVyYm9zZSIsIkRpYWdub3N0aWNzRGlzcGxheSIsInQwIiwiJCIsIl9jIiwiZmlsZXMiLCJsZW5ndGgiLCJ0MSIsInJlZHVjZSIsIl90ZW1wIiwidG90YWxJc3N1ZXMiLCJmaWxlQ291bnQiLCJ0MiIsIm1hcCIsIl90ZW1wMyIsInQzIiwidDQiLCJ0NSIsIlN5bWJvbCIsImZvciIsInQ2IiwiZmlsZV8wIiwiZmlsZUluZGV4IiwiZmlsZSIsInVyaSIsInJlcGxhY2UiLCJzdGFydHNXaXRoIiwic3BsaXQiLCJkaWFnbm9zdGljcyIsIl90ZW1wMiIsImRpYWdub3N0aWMiLCJkaWFnSW5kZXgiLCJnZXRTZXZlcml0eVN5bWJvbCIsInNldmVyaXR5IiwicmFuZ2UiLCJzdGFydCIsImxpbmUiLCJjaGFyYWN0ZXIiLCJtZXNzYWdlIiwiY29kZSIsInNvdXJjZSIsInN1bSJdLCJzb3VyY2VzIjpbIkRpYWdub3N0aWNzRGlzcGxheS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVsYXRpdmUgfSBmcm9tICdwYXRoJ1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQm94LCBUZXh0IH0gZnJvbSAnLi4vaW5rLmpzJ1xuaW1wb3J0IHsgRGlhZ25vc3RpY1RyYWNraW5nU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RpYWdub3N0aWNUcmFja2luZy5qcydcbmltcG9ydCB0eXBlIHsgQXR0YWNobWVudCB9IGZyb20gJy4uL3V0aWxzL2F0dGFjaG1lbnRzLmpzJ1xuaW1wb3J0IHsgZ2V0Q3dkIH0gZnJvbSAnLi4vdXRpbHMvY3dkLmpzJ1xuaW1wb3J0IHsgQ3RybE9Ub0V4cGFuZCB9IGZyb20gJy4vQ3RybE9Ub0V4cGFuZC5qcydcbmltcG9ydCB7IE1lc3NhZ2VSZXNwb25zZSB9IGZyb20gJy4vTWVzc2FnZVJlc3BvbnNlLmpzJ1xuXG50eXBlIERpYWdub3N0aWNzQXR0YWNobWVudCA9IEV4dHJhY3Q8QXR0YWNobWVudCwgeyB0eXBlOiAnZGlhZ25vc3RpY3MnIH0+XG5cbnR5cGUgRGlhZ25vc3RpY3NEaXNwbGF5UHJvcHMgPSB7XG4gIGF0dGFjaG1lbnQ6IERpYWdub3N0aWNzQXR0YWNobWVudFxuICB2ZXJib3NlOiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEaWFnbm9zdGljc0Rpc3BsYXkoe1xuICBhdHRhY2htZW50LFxuICB2ZXJib3NlLFxufTogRGlhZ25vc3RpY3NEaXNwbGF5UHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAvLyBPbmx5IHNob3cgaWYgdGhlcmUgYXJlIGRpYWdub3N0aWNzIHRvIHJlcG9ydFxuICBpZiAoYXR0YWNobWVudC5maWxlcy5sZW5ndGggPT09IDApIHJldHVybiBudWxsXG5cbiAgLy8gQ291bnQgdG90YWwgaXNzdWVzXG4gIGNvbnN0IHRvdGFsSXNzdWVzID0gYXR0YWNobWVudC5maWxlcy5yZWR1Y2UoXG4gICAgKHN1bSwgZmlsZSkgPT4gc3VtICsgZmlsZS5kaWFnbm9zdGljcy5sZW5ndGgsXG4gICAgMCxcbiAgKVxuXG4gIGNvbnN0IGZpbGVDb3VudCA9IGF0dGFjaG1lbnQuZmlsZXMubGVuZ3RoXG5cbiAgaWYgKHZlcmJvc2UpIHtcbiAgICAvLyBTaG93IGFsbCBkaWFnbm9zdGljcyBpbiB2ZXJib3NlIG1vZGUgKGN0cmwrbylcbiAgICByZXR1cm4gKFxuICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCI+XG4gICAgICAgIHthdHRhY2htZW50LmZpbGVzLm1hcCgoZmlsZSwgZmlsZUluZGV4KSA9PiAoXG4gICAgICAgICAgPFJlYWN0LkZyYWdtZW50IGtleT17ZmlsZUluZGV4fT5cbiAgICAgICAgICAgIDxNZXNzYWdlUmVzcG9uc2U+XG4gICAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yIHdyYXA9XCJ3cmFwXCI+XG4gICAgICAgICAgICAgICAgPFRleHQgYm9sZD5cbiAgICAgICAgICAgICAgICAgIHtyZWxhdGl2ZShcbiAgICAgICAgICAgICAgICAgICAgZ2V0Q3dkKCksXG4gICAgICAgICAgICAgICAgICAgIGZpbGUudXJpXG4gICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJ2ZpbGU6Ly8nLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgnX2NsYXVkZV9mc19yaWdodDonLCAnJyksXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvVGV4dD57JyAnfVxuICAgICAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPlxuICAgICAgICAgICAgICAgICAge2ZpbGUudXJpLnN0YXJ0c1dpdGgoJ2ZpbGU6Ly8nKVxuICAgICAgICAgICAgICAgICAgICA/ICcoZmlsZTovLyknXG4gICAgICAgICAgICAgICAgICAgIDogZmlsZS51cmkuc3RhcnRzV2l0aCgnX2NsYXVkZV9mc19yaWdodDonKVxuICAgICAgICAgICAgICAgICAgICAgID8gJyhjbGF1ZGVfZnNfcmlnaHQpJ1xuICAgICAgICAgICAgICAgICAgICAgIDogYCgke2ZpbGUudXJpLnNwbGl0KCc6JylbMF19KWB9XG4gICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgPC9NZXNzYWdlUmVzcG9uc2U+XG4gICAgICAgICAgICB7ZmlsZS5kaWFnbm9zdGljcy5tYXAoKGRpYWdub3N0aWMsIGRpYWdJbmRleCkgPT4gKFxuICAgICAgICAgICAgICA8TWVzc2FnZVJlc3BvbnNlIGtleT17ZGlhZ0luZGV4fT5cbiAgICAgICAgICAgICAgICA8VGV4dCBkaW1Db2xvciB3cmFwPVwid3JhcFwiPlxuICAgICAgICAgICAgICAgICAgeycgICd9XG4gICAgICAgICAgICAgICAgICB7RGlhZ25vc3RpY1RyYWNraW5nU2VydmljZS5nZXRTZXZlcml0eVN5bWJvbChcbiAgICAgICAgICAgICAgICAgICAgZGlhZ25vc3RpYy5zZXZlcml0eSxcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICB7JyBbTGluZSAnfVxuICAgICAgICAgICAgICAgICAge2RpYWdub3N0aWMucmFuZ2Uuc3RhcnQubGluZSArIDF9OlxuICAgICAgICAgICAgICAgICAge2RpYWdub3N0aWMucmFuZ2Uuc3RhcnQuY2hhcmFjdGV
|