import jwt from 'jsonwebtoken'; import type { JWTPayload } from '@horux/shared'; import { env } from '../config/env.js'; export function generateAccessToken(payload: Omit): string { return jwt.sign(payload, env.JWT_SECRET, { expiresIn: env.JWT_EXPIRES_IN, }); } export function generateRefreshToken(payload: Omit): string { return jwt.sign(payload, env.JWT_SECRET, { expiresIn: env.JWT_REFRESH_EXPIRES_IN, }); } export function verifyToken(token: string): JWTPayload { return jwt.verify(token, env.JWT_SECRET) as JWTPayload; } export function decodeToken(token: string): JWTPayload | null { try { return jwt.decode(token) as JWTPayload; } catch { return null; } }