import { errorResponse } from "@/lib/security/http"; import { limitRequest, trustedClientAddress } from "@/lib/security/rate-limit"; import { connection } from "next/server"; import { normalizeDeploymentId } from "@/lib/deployment/version"; import { createEventStream, eventStreamHeaders } from "@/lib/events/sse"; export async function GET(request: Request) { await connection(); try { await limitRequest("stream-open", trustedClientAddress(request.headers), 60); const deploymentId = normalizeDeploymentId(process.env.NEXT_DEPLOYMENT_ID) ?? "development"; const channel = createEventStream({ signal: request.signal }); channel.sendNamed("deployment", deploymentId); return new Response(channel.stream, { headers: eventStreamHeaders(), }); } catch (cause) { return errorResponse(cause); } }