import { randomBytes } from 'node:crypto'; import type { IncomingMessage } from 'node:http'; export const RENDERER_CAPABILITY_HEADER = 'x-niancode-renderer-capability'; let rendererCapability = ''; export function rotateRendererCapability(): void { rendererCapability = randomBytes(32).toString('hex'); } export function getRendererCapability(): string { return rendererCapability; } export function hasRendererCapability(req: IncomingMessage): boolean { const value = req.headers[RENDERER_CAPABILITY_HEADER]; return typeof value === 'string' && rendererCapability.length > 0 && value === rendererCapability; }