import { config } from '../config' function originFromUrl(rawUrl: string): string | undefined { try { return new URL(rawUrl).origin } catch { return undefined } } export function getAllowedWebCorsOrigins(): string[] { const origins = new Set(config.webCorsOrigins) const baseOrigin = config.baseUrl ? originFromUrl(config.baseUrl) : undefined if (baseOrigin) { origins.add(baseOrigin) } origins.add(`http://localhost:${config.port}`) origins.add(`http://127.0.0.1:${config.port}`) return [...origins] } export function resolveWebCorsOrigin(origin: string): string | undefined { return getAllowedWebCorsOrigins().includes(origin) ? origin : undefined } export const webCorsOptions = { origin: resolveWebCorsOrigin, allowHeaders: ['Authorization', 'Content-Type', 'X-UUID'], allowMethods: ['GET', 'POST', 'OPTIONS'], credentials: false, }