import { configureOAuth } from '@atcute/oauth-browser-client'; import { LocalActorResolver, CompositeDidDocumentResolver, PlcDidDocumentResolver, XrpcDidDocumentResolver, CompositeHandleResolver, WellKnownHandleResolver, DohJsonHandleResolver } from '@atcute/identity-resolver'; let configured = false; export function ensureOAuthConfigured() { if (configured) return; configured = true; const didDocumentResolver = new CompositeDidDocumentResolver({ methods: { plc: new PlcDidDocumentResolver(), web: new XrpcDidDocumentResolver({ serviceUrl: 'https://bsky.social' }) } }); const handleResolver = new CompositeHandleResolver({ methods: { http: new WellKnownHandleResolver(), dns: new DohJsonHandleResolver({ dohUrl: 'https://cloudflare-dns.com/dns-query' }) } }); const identityResolver = new LocalActorResolver({ handleResolver, didDocumentResolver }); const isLocalhost = window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1'; const port = window.location.port || '5173'; configureOAuth({ metadata: isLocalhost ? { client_id: `http://localhost?redirect_uri=${encodeURIComponent('http://127.0.0.1/oauth/callback')}&scope=${encodeURIComponent('atproto transition:generic')}`, redirect_uri: `http://127.0.0.1:${port}/oauth/callback` } : { client_id: 'https://stickies.sky.boo/client-metadata.json', redirect_uri: 'https://stickies.sky.boo/oauth/callback' }, identityResolver }); }