11import { createServerClient } from "@supabase/ssr"
2+ import { CREATOR_AI_USER_AGENT , type UserRole } from "@repo/validation"
23import { NextResponse } from "next/server"
34import type { NextRequest } from "next/server"
45
@@ -10,14 +11,19 @@ const BYPASS_PATHS = [
1011 "/api/youtube/callback" ,
1112]
1213
13- async function getUserRole ( supabase : ReturnType < typeof createServerClient > , userId : string ) {
14+ async function getUserRole (
15+ supabase : ReturnType < typeof createServerClient > ,
16+ userId : string ,
17+ ) : Promise < UserRole | undefined > {
1418 try {
15- const { data } = await supabase
19+ const { data, error } = await supabase
1620 . from ( "profiles" )
1721 . select ( "role" )
1822 . eq ( "user_id" , userId )
19- . single ( )
20- return data ?. role as string | undefined
23+ . single < { role : UserRole } > ( )
24+
25+ if ( error || ! data ) return undefined
26+ return data . role
2127 } catch {
2228 return undefined
2329 }
@@ -27,10 +33,13 @@ export async function middleware(request: NextRequest) {
2733 const { pathname } = request . nextUrl
2834
2935 if ( BYPASS_PATHS . includes ( pathname ) ) {
30- return NextResponse . next ( )
36+ const response = NextResponse . next ( )
37+ response . headers . set ( "Server" , CREATOR_AI_USER_AGENT )
38+ return response
3139 }
3240
3341 const response = NextResponse . next ( )
42+ response . headers . set ( "Server" , CREATOR_AI_USER_AGENT )
3443
3544 const supabase = createServerClient (
3645 process . env . NEXT_PUBLIC_SUPABASE_URL ! ,
0 commit comments