import type { Handle, HandleServerError } from '@sveltejs/kit'; import { validateSession, setSessionCookie, deleteSessionCookie } from '$lib/server/auth/index.js'; export const handleError: HandleServerError = async ({ error }) => { const message = error instanceof Error ? error.message : 'Unknown error'; // Body size limit exceeded if (message.includes('exceeds limit')) { return { message: 'File too large. Maximum upload size is 50MB.' }; } console.error('Unhandled error:', error); return { message: 'An unexpected error occurred.' }; }; export const handle: Handle = async ({ event, resolve }) => { const token = event.cookies.get('session'); if (token) { const { session, user } = await validateSession(token); if (session && user) { event.locals.user = user; event.locals.session = session; // Refresh cookie if session was extended if (session.fresh) { setSessionCookie(event, token, session.expiresAt); } } else { event.locals.user = null; event.locals.session = null; deleteSessionCookie(event); } } else { event.locals.user = null; event.locals.session = null; } return resolve(event); };