fix(admin): resolve all 266 TypeScript errors, enable strict build
Eliminate the pre-existing TS errors that were masked by next.config.js `typescript.ignoreBuildErrors: true`, then turn the flag OFF so the compiler is a real safety net for future changes. `next build` and `tsc --noEmit` now pass with 0 errors. The errors were not cosmetic — several exposed real latent bugs hidden by the flag, e.g. the drafting-engine ConstraintEnforcer read non-existent fields (`t.rule.dsfaRequired`, `d.required`, `r.title`), so its DSFA hard gate and risk-flag checks were silently no-ops; scopeDefaults read snake_case CompanyProfile fields that never matched the camelCase type (generator defaults never populated). Both fixed by aligning code to the current types. Highlights: - Vitest globals: add vitest-globals.d.ts (config already had globals:true) so the test files type-check; exclude Playwright specs from vitest. - Add a minimal ambient `pg` module declaration (no @types/pg installed). - Fix Next 15 route handlers to await Promise params. - Reconcile drifted types across loeschfristen, compliance-scope, document- generator, drafting-engine, vendor-compliance, agent and more. Pre-existing (NOT caused here, proven by stashing the diff): 3 vitest logic tests still fail — getNextStep (2) and buildDocumentScope priority (1). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -78,7 +78,7 @@ export default function RichTextToolbar({
|
||||
<div className="flex items-center gap-1">
|
||||
<input
|
||||
type="file"
|
||||
ref={fileInputRef}
|
||||
ref={fileInputRef as RefObject<HTMLInputElement>}
|
||||
onChange={onWordUpload}
|
||||
accept=".docx,.doc"
|
||||
className="hidden"
|
||||
|
||||
@@ -55,7 +55,7 @@ export default function SplitViewEditor({
|
||||
className="w-full px-3 py-2 mb-4 bg-slate-50 border border-slate-200 rounded-lg text-slate-700"
|
||||
/>
|
||||
<div
|
||||
ref={leftPanelRef}
|
||||
ref={leftPanelRef as RefObject<HTMLDivElement>}
|
||||
className="prose prose-sm max-w-none p-4 bg-slate-50 border border-slate-200 rounded-lg min-h-[500px] max-h-[500px] overflow-y-auto"
|
||||
dangerouslySetInnerHTML={{ __html: currentVersion.content }}
|
||||
/>
|
||||
@@ -114,11 +114,11 @@ export default function SplitViewEditor({
|
||||
|
||||
{isEditable ? (
|
||||
<div
|
||||
ref={rightPanelRef}
|
||||
ref={rightPanelRef as RefObject<HTMLDivElement>}
|
||||
className="min-h-[500px] max-h-[500px] overflow-y-auto"
|
||||
>
|
||||
<div
|
||||
ref={editorRef}
|
||||
ref={editorRef as RefObject<HTMLDivElement>}
|
||||
contentEditable
|
||||
onInput={onUpdateEditorContent}
|
||||
onPaste={onPaste}
|
||||
@@ -129,7 +129,7 @@ export default function SplitViewEditor({
|
||||
</div>
|
||||
) : (
|
||||
<div
|
||||
ref={rightPanelRef}
|
||||
ref={rightPanelRef as RefObject<HTMLDivElement>}
|
||||
className="prose prose-sm max-w-none p-4 bg-slate-50 border border-slate-200 rounded-lg min-h-[500px] max-h-[500px] overflow-y-auto"
|
||||
dangerouslySetInnerHTML={{ __html: editedContent || draftVersion?.content || '' }}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user