Upgrade packages: React 19, Next.js 16, Prisma 7, Express 5
- Frontend: React 18→19, Next.js 15→16, major package updates - Backend: Prisma 5→7 with adapter pattern, Express 4→5 - Added Prisma 7 config (prisma.config.ts) and PostgreSQL adapter - Updated Next.js config for Turbopack compatibility - All builds passing successfully
This commit is contained in:
parent
1d37b1fdae
commit
6c9faf7df0
8 changed files with 5046 additions and 3658 deletions
|
|
@ -17,40 +17,42 @@
|
|||
"lint:fix": "eslint src --ext .ts --fix"
|
||||
},
|
||||
"dependencies": {
|
||||
"@prisma/client": "^5.0.0",
|
||||
"prisma": "^5.0.0",
|
||||
"express": "^4.21.2",
|
||||
"@prisma/adapter-pg": "^7.1.0",
|
||||
"@prisma/client": "^7.1.0",
|
||||
"bcryptjs": "^3.0.3",
|
||||
"compression": "^1.8.1",
|
||||
"cors": "^2.8.5",
|
||||
"helmet": "^7.0.0",
|
||||
"express-rate-limit": "^7.0.0",
|
||||
"jsonwebtoken": "^9.0.0",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
"joi": "^17.9.0",
|
||||
"nodemailer": "^6.9.0",
|
||||
"redis": "^4.6.0",
|
||||
"winston": "^3.10.0",
|
||||
"uuid": "^9.0.0",
|
||||
"dotenv": "^16.3.0",
|
||||
"compression": "^1.7.4"
|
||||
"dotenv": "^17.2.3",
|
||||
"express": "^5.2.1",
|
||||
"express-rate-limit": "^8.2.1",
|
||||
"helmet": "^8.1.0",
|
||||
"joi": "^18.0.2",
|
||||
"jsonwebtoken": "^9.0.3",
|
||||
"multer": "^2.0.2",
|
||||
"nodemailer": "^7.0.11",
|
||||
"pg": "^8.16.3",
|
||||
"prisma": "^7.1.0",
|
||||
"redis": "^5.10.0",
|
||||
"uuid": "^13.0.0",
|
||||
"winston": "^3.19.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.0.0",
|
||||
"@types/express": "^4.17.17",
|
||||
"@types/cors": "^2.8.13",
|
||||
"@types/jsonwebtoken": "^9.0.2",
|
||||
"@types/bcryptjs": "^2.4.2",
|
||||
"@types/multer": "^1.4.7",
|
||||
"@types/nodemailer": "^6.4.8",
|
||||
"@types/uuid": "^9.0.2",
|
||||
"@types/compression": "^1.7.2",
|
||||
"@types/jest": "^29.5.3",
|
||||
"@typescript-eslint/eslint-plugin": "^6.2.0",
|
||||
"@typescript-eslint/parser": "^6.2.0",
|
||||
"eslint": "^8.45.0",
|
||||
"jest": "^29.6.1",
|
||||
"tsx": "^4.0.0",
|
||||
"typescript": "^5.8.3"
|
||||
"@types/bcryptjs": "^3.0.0",
|
||||
"@types/compression": "^1.8.1",
|
||||
"@types/cors": "^2.8.19",
|
||||
"@types/express": "^5.0.6",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/jsonwebtoken": "^9.0.10",
|
||||
"@types/multer": "^2.0.0",
|
||||
"@types/node": "^25.0.2",
|
||||
"@types/nodemailer": "^7.0.4",
|
||||
"@types/uuid": "^11.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "^8.49.0",
|
||||
"@typescript-eslint/parser": "^8.49.0",
|
||||
"eslint": "^9.39.2",
|
||||
"jest": "^30.2.0",
|
||||
"tsx": "^4.21.0",
|
||||
"typescript": "^5.9.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22.0.0"
|
||||
|
|
|
|||
5401
backend/pnpm-lock.yaml
generated
5401
backend/pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
12
backend/prisma.config.ts
Normal file
12
backend/prisma.config.ts
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
import "dotenv/config";
|
||||
import { defineConfig, env } from "prisma/config";
|
||||
|
||||
export default defineConfig({
|
||||
schema: "prisma/schema.prisma",
|
||||
migrations: {
|
||||
path: "prisma/migrations",
|
||||
},
|
||||
datasource: {
|
||||
url: env("DATABASE_URL"),
|
||||
},
|
||||
});
|
||||
|
|
@ -7,7 +7,6 @@ generator client {
|
|||
|
||||
datasource db {
|
||||
provider = "postgresql"
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
model DocketEntry {
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ import compression from 'compression';
|
|||
import rateLimit from 'express-rate-limit';
|
||||
import dotenv from 'dotenv';
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
import { PrismaPg } from '@prisma/adapter-pg';
|
||||
import pg from 'pg';
|
||||
import { createClient } from 'redis';
|
||||
import { logger } from './utils/logger';
|
||||
import { errorHandler } from './middleware/errorHandler';
|
||||
|
|
@ -27,8 +29,13 @@ const PORT = process.env.PORT || 3001;
|
|||
// Trust proxy when behind reverse proxy (Caddy)
|
||||
app.set('trust proxy', true);
|
||||
|
||||
// Initialize Prisma client
|
||||
// Initialize Prisma client with PostgreSQL adapter
|
||||
const connectionString = process.env.DATABASE_URL;
|
||||
const pool = new pg.Pool({ connectionString });
|
||||
const adapter = new PrismaPg(pool);
|
||||
|
||||
export const prisma = new PrismaClient({
|
||||
adapter,
|
||||
log: ['query', 'info', 'warn', 'error'],
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
/** @type {import('next').NextConfig} */
|
||||
const nextConfig = {
|
||||
reactStrictMode: true,
|
||||
// Empty turbopack config to silence Next.js 16 warning
|
||||
turbopack: {},
|
||||
// Keep webpack config for backward compatibility
|
||||
webpack: (config) => {
|
||||
// Handle PDF.js worker
|
||||
config.resolve.alias.canvas = false;
|
||||
|
|
|
|||
|
|
@ -12,33 +12,33 @@
|
|||
"type-check": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@hookform/resolvers": "^3.1.0",
|
||||
"axios": "^1.4.0",
|
||||
"clsx": "^2.0.0",
|
||||
"joi": "^17.9.0",
|
||||
"lucide-react": "^0.263.0",
|
||||
"next": "^15.3.4",
|
||||
"react": "^18.3.0",
|
||||
"react-dom": "^18.3.0",
|
||||
"react-hook-form": "^7.45.0",
|
||||
"react-pdf": "^7.3.0",
|
||||
"tailwind-merge": "^1.14.0",
|
||||
"zustand": "^4.4.0"
|
||||
"@hookform/resolvers": "^5.2.2",
|
||||
"axios": "^1.13.2",
|
||||
"clsx": "^2.1.1",
|
||||
"joi": "^18.0.2",
|
||||
"lucide-react": "^0.561.0",
|
||||
"next": "^16.0.10",
|
||||
"react": "^19.2.3",
|
||||
"react-dom": "^19.2.3",
|
||||
"react-hook-form": "^7.68.0",
|
||||
"react-pdf": "^10.2.0",
|
||||
"tailwind-merge": "^3.4.0",
|
||||
"zustand": "^5.0.9"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/forms": "^0.5.10",
|
||||
"@tailwindcss/typography": "^0.5.16",
|
||||
"@types/node": "^22.0.0",
|
||||
"@types/react": "^18.3.0",
|
||||
"@types/react-dom": "^18.3.0",
|
||||
"@typescript-eslint/eslint-plugin": "^6.2.0",
|
||||
"@typescript-eslint/parser": "^6.2.0",
|
||||
"autoprefixer": "^10.4.0",
|
||||
"eslint": "^8.45.0",
|
||||
"eslint-config-next": "^15.3.4",
|
||||
"postcss": "^8.4.0",
|
||||
"tailwindcss": "^3.3.0",
|
||||
"typescript": "^5.8.3"
|
||||
"@tailwindcss/typography": "^0.5.19",
|
||||
"@types/node": "^25.0.2",
|
||||
"@types/react": "^19.2.7",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"@typescript-eslint/eslint-plugin": "^8.49.0",
|
||||
"@typescript-eslint/parser": "^8.49.0",
|
||||
"autoprefixer": "^10.4.23",
|
||||
"eslint": "^9.39.2",
|
||||
"eslint-config-next": "^16.0.10",
|
||||
"postcss": "^8.5.6",
|
||||
"tailwindcss": "^4.1.18",
|
||||
"typescript": "^5.9.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22.0.0"
|
||||
|
|
|
|||
3166
frontend/pnpm-lock.yaml
generated
3166
frontend/pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue