import type { AstroCookies } from 'astro' import { atprotoLoopbackClientMetadata, NodeOAuthClient, } from "@atproto/oauth-client-node"; import { env } from "./env"; import { CookieSessionStore, CookieStateStore } from "./storage"; export function createOAuthClient(cookies: AstroCookies) { const clientMetadata = atprotoLoopbackClientMetadata( `http://localhost?${new URLSearchParams([ ["redirect_uri", `http://127.0.0.1:${env.PORT}/api/oauth/callback`], ["scope", `atproto transition:generic`], ])}`, ); return new NodeOAuthClient({ clientMetadata, stateStore: new CookieStateStore(cookies), sessionStore: new CookieSessionStore(cookies), }); }