Edit: /tmp/tsx-0/17887-3c56b3354b264f6766f9183625cbdc580125927d (26012B)
{"code":"__filename=\"/opt/canhelp/node_modules/better-auth/dist/plugins/generic-oauth/routes.mjs\";(()=>{\nvar __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var routes_exports={};__export(routes_exports,{getUserInfo:()=>getUserInfo,oAuth2Callback:()=>oAuth2Callback,oAuth2LinkAccount:()=>oAuth2LinkAccount,signInWithOAuth2:()=>signInWithOAuth2});module.exports=__toCommonJS(routes_exports);var import_cookies=require(\"../../cookies/index.mjs\");var import_state=require(\"../../oauth2/state.mjs\");var import_utils=require(\"../../oauth2/utils.mjs\");var import_session=require(\"../../api/routes/session.mjs\");var import_link_account=require(\"../../oauth2/link-account.mjs\");var import_hide_metadata=require(\"../../utils/hide-metadata.mjs\");var import_utils2=require(\"../../utils/index.mjs\");var import_api=require(\"../../api/index.mjs\");var import_error_codes=require(\"./error-codes.mjs\");var import_error=require(\"@better-auth/core/error\");var import_oauth2=require(\"@better-auth/core/oauth2\");var import_api2=require(\"@better-auth/core/api\");var z=__toESM(require(\"zod\"));var import_jose=require(\"jose\");var import_fetch=require(\"@better-fetch/fetch\");const signInWithOAuth2BodySchema=z.object({providerId:z.string().meta({description:\"The provider ID for the OAuth provider\"}),callbackURL:z.string().meta({description:\"The URL to redirect to after sign in\"}).optional(),errorCallbackURL:z.string().meta({description:\"The URL to redirect to if an error occurs\"}).optional(),newUserCallbackURL:z.string().meta({description:'The URL to redirect to after login if the user is new. Eg: \"/welcome\"'}).optional(),disableRedirect:z.boolean().meta({description:\"Disable redirect\"}).optional(),scopes:z.array(z.string()).meta({description:\"Scopes to be passed to the provider authorization request.\"}).optional(),requestSignUp:z.boolean().meta({description:\"Explicitly request sign-up. Useful when disableImplicitSignUp is true for this provider. Eg: false\"}).optional(),additionalData:z.record(z.string(),z.any()).optional()});const signInWithOAuth2=__name(options=>(0,import_api2.createAuthEndpoint)(\"/sign-in/oauth2\",{method:\"POST\",body:signInWithOAuth2BodySchema,metadata:{openapi:{description:\"Sign in with OAuth2\",responses:{200:{description:\"Sign in with OAuth2\",content:{\"application/json\":{schema:{type:\"object\",properties:{url:{type:\"string\"},redirect:{type:\"boolean\"}}}}}}}}}},async ctx=>{const{providerId}=ctx.body;const config=options.config.find(c=>c.providerId===providerId);if(!config)throw import_api.APIError.fromStatus(\"BAD_REQUEST\",{message:`${import_error_codes.GENERIC_OAUTH_ERROR_CODES.PROVIDER_CONFIG_NOT_FOUND} ${providerId}`});const{discoveryUrl,authorizationUrl,tokenUrl,clientId,clientSecret,scopes,redirectURI,responseType,pkce,prompt,accessType,authorizationUrlParams,responseMode}=config;let finalAuthUrl=authorizationUrl;let finalTokenUrl=tokenUrl;if(discoveryUrl){const discovery=await(0,import_fetch.betterFetch)(discoveryUrl,{method:\"GET\",headers:config.discoveryHeaders,onError(context){ctx.context.logger.error(context.error.message,context.error,{discoveryUrl})}});if(discovery.data){finalAuthUrl=discovery.data.authorization_endpoint;finalTokenUrl=discovery.data.token_endpoint}}if(!finalAuthUrl||!finalTokenUrl)throw import_api.APIError.from(\"BAD_REQUEST\",import_error_codes.GENERIC_OAUTH_ERROR_CODES.INVALID_OAUTH_CONFIGURATION);if(authorizationUrlParams){const withAdditionalParams=new URL(finalAuthUrl);for(const[paramName,paramValue]of Object.entries(authorizationUrlParams))withAdditionalParams.searchParams.set(paramName,paramValue);finalAuthUrl=withAdditionalParams.toString()}const additionalParams=typeof authorizationUrlParams===\"function\"?authorizationUrlParams(ctx):authorizationUrlParams;const{state,codeVerifier}=await(0,import_state.generateState)(ctx,void 0,ctx.body.additionalData);const authUrl=await(0,import_oauth2.createAuthorizationURL)({id:providerId,options:{clientId,clientSecret,redirectURI},authorizationEndpoint:finalAuthUrl,state,codeVerifier:pkce?codeVerifier:void 0,scopes:ctx.body.scopes?[...ctx.body.scopes,...scopes||[]]:scopes||[],redirectURI:`${ctx.context.baseURL}/oauth2/callback/${providerId}`,prompt,accessType,responseType,responseMode,additionalParams});return ctx.json({url:authUrl.toString(),redirect:!ctx.body.disableRedirect})}),\"signInWithOAuth2\");const OAuth2CallbackQuerySchema=z.object({code:z.string().meta({description:\"The OAuth2 code\"}).optional(),error:z.string().meta({description:\"The error message, if any\"}).optional(),error_description:z.string().meta({description:\"The error description, if any\"}).optional(),state:z.string().meta({description:\"The state parameter from the OAuth2 request\"}).optional(),iss:z.string().meta({description:\"The issuer identifier\"}).optional()});const oAuth2Callback=__name(options=>(0,import_api2.createAuthEndpoint)(\"/oauth2/callback/:providerId\",{method:\"GET\",query:OAuth2CallbackQuerySchema,metadata:{...import_hide_metadata.HIDE_METADATA,allowedMediaTypes:[\"application/x-www-form-urlencoded\",\"application/json\"],openapi:{description:\"OAuth2 callback\",responses:{200:{description:\"OAuth2 callback\",content:{\"application/json\":{schema:{type:\"object\",properties:{url:{type:\"string\"}}}}}}}}}},async ctx=>{const defaultErrorURL=ctx.context.options.onAPIError?.errorURL||`${ctx.context.baseURL}/error`;if(ctx.query.error||!ctx.query.code)throw ctx.redirect(`${defaultErrorURL}?error=${ctx.query.error||\"oAuth_code_missing\"}&error_description=${ctx.query.error_description}`);const providerId=ctx.params?.providerId;if(!providerId)throw import_api.APIError.from(\"BAD_REQUEST\",import_error_codes.GENERIC_OAUTH_ERROR_CODES.PROVIDER_ID_REQUIRED);const providerConfig=options.config.find(p=>p.providerId===providerId);if(!providerConfig)throw import_api.APIError.fromStatus(\"BAD_REQUEST\",{message:`${import_error_codes.GENERIC_OAUTH_ERROR_CODES.PROVIDER_CONFIG_NOT_FOUND} ${providerId}`});let tokens=void 0;const{callbackURL,codeVerifier,errorURL,requestSignUp,newUserURL,link}=await(0,import_state.parseState)(ctx);const code=ctx.query.code;function redirectOnError(error){const defaultErrorURL2=ctx.context.options.onAPIError?.errorURL||`${ctx.context.baseURL}/error`;let url=errorURL||defaultErrorURL2;if(url.includes(\"?\"))url=`${url}&error=${error}`;else url=`${url}?error=${error}`;throw ctx.redirect(url)}__name(redirectOnError,\"redirectOnError\");let finalTokenUrl=providerConfig.tokenUrl;let finalUserInfoUrl=providerConfig.userInfoUrl;let expectedIssuer=providerConfig.issuer;if(providerConfig.discoveryUrl){const discovery=await(0,import_fetch.betterFetch)(providerConfig.discoveryUrl,{method:\"GET\",headers:providerConfig.discoveryHeaders});if(discovery.data){finalTokenUrl=discovery.data.token_endpoint;finalUserInfoUrl=discovery.data.userinfo_endpoint;if(!expectedIssuer&&discovery.data.issuer)expectedIssuer=discovery.data.issuer}}if(expectedIssuer){if(ctx.query.iss){if(ctx.query.iss!==expectedIssuer){ctx.context.logger.error(\"OAuth issuer mismatch\",{expected:expectedIssuer,received:ctx.query.iss});return redirectOnError(\"issuer_mismatch\")}}else if(providerConfig.requireIssuerValidation){ctx.context.logger.error(\"OAuth issuer parameter missing\",{expected:expectedIssuer});return redirectOnError(\"issuer_missing\")}}try{if(providerConfig.getToken)tokens=await providerConfig.getToken({code,redirectURI:`${ctx.context.baseURL}/oauth2/callback/${providerConfig.providerId}`,codeVerifier:providerConfig.pkce?codeVerifier:void 0});else{if(!finalTokenUrl)throw import_api.APIError.from(\"BAD_REQUEST\",import_error_codes.GENERIC_OAUTH_ERROR_CODES.INVALID_OAUTH_CONFIG);const additionalParams=typeof providerConfig.tokenUrlParams===\"function\"?providerConfig.tokenUrlParams(ctx):providerConfig.tokenUrlParams;tokens=await(0,import_oauth2.validateAuthorizationCode)({headers:providerConfig.authorizationHeaders,code,codeVerifier:providerConfig.pkce?codeVerifier:void 0,redirectURI:`${ctx.context.baseURL}/oauth2/callback/${providerConfig.providerId}`,options:{clientId:providerConfig.clientId,clientSecret:providerConfig.clientSecret,redirectURI:providerConfig.redirectURI},tokenEndpoint:finalTokenUrl,authentication:providerConfig.authentication,additionalParams})}}catch(e){ctx.context.logger.error(e&&typeof e===\"object\"&&\"name\"in e?e.name:\"\",e);throw redirectOnError(\"oauth_code_verification_failed\")}if(!tokens)throw import_api.APIError.from(\"BAD_REQUEST\",import_error_codes.GENERIC_OAUTH_ERROR_CODES.INVALID_OAUTH_CONFIG);const userInfo=await __name((async function handleUserInfo(){const userInfo2=providerConfig.getUserInfo?await providerConfig.getUserInfo(tokens):await getUserInfo(tokens,finalUserInfoUrl);if(!userInfo2)throw redirectOnError(\"user_info_is_missing\");const mapUser=providerConfig.mapProfileToUser?await providerConfig.mapProfileToUser(userInfo2):userInfo2;const email=mapUser.email?mapUser.email.toLowerCase():userInfo2.email?.toLowerCase();if(!email){ctx.context.logger.error(\"Unable to get user info\",userInfo2);throw redirectOnError(\"email_is_missing\")}const id=mapUser.id?String(mapUser.id):String(userInfo2.id);const name=mapUser.name?mapUser.name:userInfo2.name;if(!name){ctx.context.logger.error(\"Unable to get user info\",userInfo2);throw redirectOnError(\"name_is_missing\")}return{...userInfo2,...mapUser,email,id,name}}),\"handleUserInfo\")();if(link){if(ctx.context.options.account?.accountLinking?.allowDifferentEmails!==true&&link.email.toLowerCase()!==userInfo.email.toLowerCase())return redirectOnError(\"email_doesn't_match\");const existingAccount=await ctx.context.internalAdapter.findAccountByProviderId(String(userInfo.id),providerConfig.providerId);if(existingAccount){if(existingAccount.userId!==link.userId)return redirectOnError(\"account_already_linked_to_different_user\");const updateData=Object.fromEntries(Object.entries({accessToken:await(0,import_utils.setTokenUtil)(tokens.accessToken,ctx.context),idToken:tokens.idToken,refreshToken:await(0,import_utils.setTokenUtil)(tokens.refreshToken,ctx.context),accessTokenExpiresAt:tokens.accessTokenExpiresAt,refreshTokenExpiresAt:tokens.refreshTokenExpiresAt,scope:tokens.scopes?.join(\",\")}).filter(([_,value])=>value!==void 0));await ctx.context.internalAdapter.updateAccount(existingAccount.id,updateData)}else if(!await ctx.context.internalAdapter.createAccount({userId:link.userId,providerId:providerConfig.providerId,accountId:userInfo.id,accessToken:await(0,import_utils.setTokenUtil)(tokens.accessToken,ctx.context),accessTokenExpiresAt:tokens.accessTokenExpiresAt,refreshTokenExpiresAt:tokens.refreshTokenExpiresAt,scope:tokens.scopes?.join(\",\"),refreshToken:await(0,import_utils.setTokenUtil)(tokens.refreshToken,ctx.context),idToken:tokens.idToken}))return redirectOnError(\"unable_to_link_account\");let toRedirectTo2;try{toRedirectTo2=callbackURL.toString()}catch{toRedirectTo2=callbackURL}throw ctx.redirect(toRedirectTo2)}const result=await(0,import_link_account.handleOAuthUserInfo)(ctx,{userInfo,account:{providerId:providerConfig.providerId,accountId:userInfo.id,...tokens,scope:tokens.scopes?.join(\",\")},callbackURL,disableSignUp:providerConfig.disableImplicitSignUp&&!requestSignUp||providerConfig.disableSignUp,overrideUserInfo:providerConfig.overrideUserInfo});if(result.error)return redirectOnError(result.error.split(\" \").join(\"_\"));const{session,user}=result.data;await(0,import_cookies.setSessionCookie)(ctx,{session,user});let toRedirectTo;try{toRedirectTo=(result.isRegister?newUserURL||callbackURL:callbackURL).toString()}catch{toRedirectTo=result.isRegister?newUserURL||callbackURL:callbackURL}throw ctx.redirect(toRedirectTo)}),\"oAuth2Callback\");const OAuth2LinkAccountBodySchema=z.object({providerId:z.string(),callbackURL:z.string(),scopes:z.array(z.string()).meta({description:\"Additional scopes to request when linking the account\"}).optional(),errorCallbackURL:z.string().meta({description:\"The URL to redirect to if there is an error during the link process\"}).optional()});const oAuth2LinkAccount=__name(options=>(0,import_api2.createAuthEndpoint)(\"/oauth2/link\",{method:\"POST\",body:OAuth2LinkAccountBodySchema,use:[import_session.sessionMiddleware],metadata:{openapi:{description:\"Link an OAuth2 account to the current user session\",responses:{\"200\":{description:\"Authorization URL generated successfully for linking an OAuth2 account\",content:{\"application/json\":{schema:{type:\"object\",properties:{url:{type:\"string\",format:\"uri\",description:\"The authorization URL to redirect the user to for linking the OAuth2 account\"},redirect:{type:\"boolean\",description:\"Indicates that the client should redirect to the provided URL\",enum:[true]}},required:[\"url\",\"redirect\"]}}}}}}}},async c=>{const session=c.context.session;if(!session)throw import_api.APIError.from(\"UNAUTHORIZED\",import_error_codes.GENERIC_OAUTH_ERROR_CODES.SESSION_REQUIRED);const provider=options.config.find(p=>p.providerId===c.body.providerId);if(!provider)throw import_api.APIError.from(\"NOT_FOUND\",import_error.BASE_ERROR_CODES.PROVIDER_NOT_FOUND);const{providerId,clientId,clientSecret,redirectURI,authorizationUrl,discoveryUrl,pkce,scopes,prompt,accessType,authorizationUrlParams}=provider;let finalAuthUrl=authorizationUrl;if(!finalAuthUrl){if(!discoveryUrl)throw import_api.APIError.from(\"BAD_REQUEST\",import_error_codes.GENERIC_OAUTH_ERROR_CODES.INVALID_OAUTH_CONFIGURATION);const discovery=await(0,import_fetch.betterFetch)(discoveryUrl,{method:\"GET\",headers:provider.discoveryHeaders,onError(context){c.context.logger.error(context.error.message,context.error,{discoveryUrl})}});if(discovery.data)finalAuthUrl=discovery.data.authorization_endpoint}if(!finalAuthUrl)throw import_api.APIError.from(\"BAD_REQUEST\",import_error_codes.GENERIC_OAUTH_ERROR_CODES.INVALID_OAUTH_CONFIGURATION);const state=await(0,import_state.generateState)(c,{userId:session.user.id,email:session.user.email},void 0);const additionalParams=typeof authorizationUrlParams===\"function\"?authorizationUrlParams(c):authorizationUrlParams;const url=await(0,import_oauth2.createAuthorizationURL)({id:providerId,options:{clientId,clientSecret,redirectURI:redirectURI||`${c.context.baseURL}/oauth2/callback/${providerId}`},authorizationEndpoint:finalAuthUrl,state:state.state,codeVerifier:pkce?state.codeVerifier:void 0,scopes:c.body.scopes||scopes||[],redirectURI:redirectURI||`${c.context.baseURL}/oauth2/callback/${providerId}`,prompt,accessType,additionalParams});return c.json({url:url.toString(),redirect:true})}),\"oAuth2LinkAccount\");async function getUserInfo(tokens,finalUserInfoUrl){if(tokens.idToken){const decoded=(0,import_jose.decodeJwt)(tokens.idToken);if(decoded){if(decoded.sub&&decoded.email)return{id:decoded.sub,emailVerified:decoded.email_verified,image:decoded.picture,...decoded}}}if(!finalUserInfoUrl)return null;const userInfo=await(0,import_fetch.betterFetch)(finalUserInfoUrl,{method:\"GET\",headers:{Authorization:`Bearer ${tokens.accessToken}`}});return{id:userInfo.data?.sub??\"\",emailVerified:userInfo.data?.email_verified??false,email:userInfo.data?.email,image:userInfo.data?.picture,name:userInfo.data?.name,...userInfo.data}}__name(getUserInfo,\"getUserInfo\");0&&(module.exports={getUserInfo,oAuth2Callback,oAuth2LinkAccount,signInWithOAuth2});\n})()\n","warnings":[],"map":{"version":3,"mappings":"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","names":["import_utils","import_api","APIError$1","defaultErrorURL","userInfo","toRedirectTo"],"ignoreList":[],"sources":["/opt/canhelp/node_modules/better-auth/dist/plugins/generic-oauth/routes.mjs"],"sourcesContent":[null]}}