The presets return the bundled module's oauth.Config, and the logins its oauth.Token; use them with oauth.deviceStart, oauth.refresh, oauth.isExpired, oauth.save and the rest. Errors about the deck's own input are kind "oauthext"; a refusal from the token endpoint stays kind "oauth".
oauthext.google(clientId as string, clientSecret as string, scope as string)
oauth.Config
Google's token, device and authorization endpoints
oauthext.microsoft(tenant as string, clientId as string, clientSecret as string, scope as string)
oauth.Config
a Microsoft Entra ID tenant's v2.0 token, device and authorization endpoints; the tenant is common, organizations, consumers, a GUID or a domain, anything else is an error