fix: comprehensive TypeScript/build fixes and modernization

- Update tsconfig to ES2024 target and bundler moduleResolution
- Add dynamic imports for chart.js and recharts (bundle optimization)
- Consolidate 17 useState into useReducer in sessions page
- Fix 18 .js extension imports across lib files
- Add type declarations for @rapideditor/country-coder
- Fix platform user types (PlatformUserRole enum)
- Fix Calendar component prop types
- Centralize next-auth type augmentation
- Add force-dynamic to all API routes (prevent build-time prerender)
- Fix Prisma JSON null handling with Prisma.DbNull
- Fix various type mismatches (SessionMessage, ImportRecord, etc.)
- Export ButtonProps from button component
- Update next-themes import path
- Replace JSX.Element with React.ReactElement
- Remove obsolete debug scripts and pnpm lockfile
- Downgrade eslint to v8 for next compatibility
This commit is contained in:
2026-01-20 07:28:10 +01:00
parent 8b3846539f
commit 5bfd762e55
161 changed files with 14655 additions and 11682 deletions

View File

@@ -1,10 +1,8 @@
import { ProcessingStage, ProcessingStatus } from "@prisma/client";
import { prisma } from "./prisma.js";
import { Prisma, ProcessingStage, ProcessingStatus } from "@prisma/client";
import { prisma } from "./prisma";
// Type-safe metadata interfaces
interface ProcessingMetadata {
[key: string]: string | number | boolean | null | undefined;
}
type ProcessingMetadata = Prisma.InputJsonObject;
interface WhereClause {
status: ProcessingStatus;
@@ -50,14 +48,14 @@ export async function startStage(
status: ProcessingStatus.IN_PROGRESS,
startedAt: new Date(),
errorMessage: null,
metadata: metadata || null,
metadata: metadata ?? Prisma.DbNull,
},
create: {
sessionId,
stage,
status: ProcessingStatus.IN_PROGRESS,
startedAt: new Date(),
metadata: metadata || null,
metadata: metadata ?? Prisma.DbNull,
},
});
}
@@ -78,7 +76,7 @@ export async function completeStage(
status: ProcessingStatus.COMPLETED,
completedAt: new Date(),
errorMessage: null,
metadata: metadata || null,
metadata: metadata ?? Prisma.DbNull,
},
create: {
sessionId,
@@ -86,7 +84,7 @@ export async function completeStage(
status: ProcessingStatus.COMPLETED,
startedAt: new Date(),
completedAt: new Date(),
metadata: metadata || null,
metadata: metadata ?? Prisma.DbNull,
},
});
}
@@ -109,7 +107,7 @@ export async function failStage(
completedAt: new Date(),
errorMessage,
retryCount: { increment: 1 },
metadata: metadata || null,
metadata: metadata ?? Prisma.DbNull,
},
create: {
sessionId,
@@ -119,7 +117,7 @@ export async function failStage(
completedAt: new Date(),
errorMessage,
retryCount: 1,
metadata: metadata || null,
metadata: metadata ?? Prisma.DbNull,
},
});
}