From 85d72e4cfbbf5e7be5a652d12e50209df2640b08 Mon Sep 17 00:00:00 2001 From: Haewon Kam Date: Mon, 31 Aug 2026 16:17:12 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20npm=20run=20lint(tsc=20--noEmit)=20?= =?UTF-8?q?=EC=8B=A4=EC=A0=9C=200=20=EC=97=90=EB=9F=AC=20=EB=8B=AC?= =?UTF-8?q?=EC=84=B1=20=E2=80=94=20=EA=B8=B0=EC=A1=B4=2093=EA=B1=B4=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - tsconfig에 supabase 제외 (Deno 런타임 코드를 프론트 tsc+DOM lib로 검사하던 오류 79건) - src/vite-env.d.ts 추가 (import.meta.env 타입 6건) - @types/react 부재 환경의 JSX key 시임 4건 (ColorSwatchCard·WorkflowCard·EnvKeyRow·ApiCard) - transformPlan latestPosts 타입 캐스트, transformReport unknown 경유 캐스트, MultiChannelInput trim 가드 - Office 임시 잠금 파일(~$*.pptx) 삭제 반영 Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01WgWoJZAvvzMxTpWeenZSia --- .../~$Taeha_AI_Answer_Readiness_Report.pptx | Bin 165 -> 0 bytes src/components/MultiChannelInput.tsx | 2 +- src/components/plan/BrandingGuide.tsx | 2 +- src/components/plan/WorkflowTracker.tsx | 1 + src/lib/transformPlan.ts | 6 ++++-- src/lib/transformReport.ts | 2 +- src/pages/ApiDashboardPage.tsx | 4 ++-- src/vite-env.d.ts | 1 + tsconfig.json | 3 ++- 9 files changed, 13 insertions(+), 8 deletions(-) delete mode 100644 docs/reports/~$Taeha_AI_Answer_Readiness_Report.pptx create mode 100644 src/vite-env.d.ts diff --git a/docs/reports/~$Taeha_AI_Answer_Readiness_Report.pptx b/docs/reports/~$Taeha_AI_Answer_Readiness_Report.pptx deleted file mode 100644 index f490df271e8987ffed1161e4897bbe31af9b7862..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 scmd<`NK7ry&r|SD%w v.trim()) + .filter(([, v]) => typeof v === 'string' && v.trim() !== '') .map(([k, v]) => `${k}: ${v}`) .join('\n'), }; diff --git a/src/components/plan/BrandingGuide.tsx b/src/components/plan/BrandingGuide.tsx index 406aad3..085e880 100644 --- a/src/components/plan/BrandingGuide.tsx +++ b/src/components/plan/BrandingGuide.tsx @@ -55,7 +55,7 @@ const statusLabel: Record = { }; /* ─── Color Swatch Editor Popover ─── */ -function ColorSwatchCard({ swatch, onUpdate }: { swatch: ColorSwatch; onUpdate: (newHex: string) => void }) { +function ColorSwatchCard({ swatch, onUpdate }: { key?: string; swatch: ColorSwatch; onUpdate: (newHex: string) => void }) { const [open, setOpen] = useState(false); const [hexInput, setHexInput] = useState(swatch.hex); const popoverRef = useRef(null); diff --git a/src/components/plan/WorkflowTracker.tsx b/src/components/plan/WorkflowTracker.tsx index f589028..1a39191 100644 --- a/src/components/plan/WorkflowTracker.tsx +++ b/src/components/plan/WorkflowTracker.tsx @@ -79,6 +79,7 @@ function StageBar({ currentStage }: { currentStage: WorkflowStage }) { } function WorkflowCard({ item, onStageChange, onNotesChange }: { + key?: string; item: WorkflowItem; onStageChange: (id: string, stage: WorkflowStage) => void; onNotesChange: (id: string, notes: string) => void; diff --git a/src/lib/transformPlan.ts b/src/lib/transformPlan.ts index af7ceec..56609e2 100644 --- a/src/lib/transformPlan.ts +++ b/src/lib/transformPlan.ts @@ -194,8 +194,10 @@ function buildAssets(enrichment: EnrichmentData | undefined): { assets: AssetCar // Instagram posts → photo assets const igAccounts = enrichment.instagramAccounts || (enrichment.instagram ? [enrichment.instagram] : []); for (const ig of igAccounts) { - if (ig.latestPosts) { - for (const p of (ig.latestPosts as { type?: string; likes?: number; caption?: string }[]).slice(0, 3)) { + const igPosts = (ig as { latestPosts?: { type?: string; likes?: number; caption?: string }[] }) + .latestPosts; + if (igPosts) { + for (const p of igPosts.slice(0, 3)) { assets.push({ id: `ig-${assetIdx++}`, source: 'social', diff --git a/src/lib/transformReport.ts b/src/lib/transformReport.ts index 2664445..12584aa 100644 --- a/src/lib/transformReport.ts +++ b/src/lib/transformReport.ts @@ -159,7 +159,7 @@ function buildDiagnosis(report: ApiReport): DiagnosisItem[] { } if (ch.issues) { for (const issue of ch.issues) { - const issueObj = issue as Record; + const issueObj = issue as unknown as Record; const detail = typeof issue === 'string' ? issue : typeof issueObj.issue === 'string' diff --git a/src/pages/ApiDashboardPage.tsx b/src/pages/ApiDashboardPage.tsx index 379affa..5921a5e 100644 --- a/src/pages/ApiDashboardPage.tsx +++ b/src/pages/ApiDashboardPage.tsx @@ -262,7 +262,7 @@ function CategoryBadge({ category }: { category: ApiConfig['category'] }) { ); } -function EnvKeyRow({ envKey, present, isServerSide }: { envKey: string; present: boolean; isServerSide: boolean }) { +function EnvKeyRow({ envKey, present, isServerSide }: { key?: string; envKey: string; present: boolean; isServerSide: boolean }) { const [showKey, setShowKey] = useState(false); const [copied, setCopied] = useState(false); @@ -303,7 +303,7 @@ function EnvKeyRow({ envKey, present, isServerSide }: { envKey: string; present: ); } -function ApiCard({ api, index }: { api: ApiStatusInfo; index: number }) { +function ApiCard({ api, index }: { key?: string; api: ApiStatusInfo; index: number }) { const [expanded, setExpanded] = useState(false); return ( diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tsconfig.json b/tsconfig.json index d88f175..8f348a1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -22,5 +22,6 @@ }, "allowImportingTsExtensions": true, "noEmit": true - } + }, + "exclude": ["node_modules", "dist", "supabase"] }