Edit: /tmp/tsx-0/17887-32c211abac7cf3fbd7ebc83646761dec72b141f8 (10073B)
{"code":"__filename=\"/opt/canhelp/node_modules/better-auth/dist/oauth2/link-account.mjs\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;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 __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var link_account_exports={};__export(link_account_exports,{handleOAuthUserInfo:()=>handleOAuthUserInfo});module.exports=__toCommonJS(link_account_exports);var import_is_api_error=require(\"../utils/is-api-error.mjs\");var import_session_store=require(\"../cookies/session-store.mjs\");var import_utils=require(\"./utils.mjs\");var import_email_verification=require(\"../api/routes/email-verification.mjs\");var import_api=require(\"../api/index.mjs\");var import_env=require(\"@better-auth/core/env\");async function handleOAuthUserInfo(c,opts){const{userInfo,account,callbackURL,disableSignUp,overrideUserInfo}=opts;const dbUser=await c.context.internalAdapter.findOAuthUser(userInfo.email.toLowerCase(),account.accountId,account.providerId).catch(e=>{import_env.logger.error(\"Better auth was unable to query your database.\\nError: \",e);const errorURL=c.context.options.onAPIError?.errorURL||`${c.context.baseURL}/error`;throw c.redirect(`${errorURL}?error=internal_server_error`)});let user=dbUser?.user;const isRegister=!user;if(dbUser){const linkedAccount=dbUser.linkedAccount??dbUser.accounts.find(acc=>acc.providerId===account.providerId&&acc.accountId===account.accountId);if(!linkedAccount){const accountLinking=c.context.options.account?.accountLinking;if(!(opts.isTrustedProvider||c.context.trustedProviders.includes(account.providerId))&&!userInfo.emailVerified||accountLinking?.enabled===false||accountLinking?.disableImplicitLinking===true){if((0,import_env.isDevelopment)())import_env.logger.warn(`User already exist but account isn't linked to ${account.providerId}. To read more about how account linking works in Better Auth see https://www.better-auth.com/docs/concepts/users-accounts#account-linking.`);return{error:\"account not linked\",data:null}}try{await c.context.internalAdapter.linkAccount({providerId:account.providerId,accountId:userInfo.id.toString(),userId:dbUser.user.id,accessToken:await(0,import_utils.setTokenUtil)(account.accessToken,c.context),refreshToken:await(0,import_utils.setTokenUtil)(account.refreshToken,c.context),idToken:account.idToken,accessTokenExpiresAt:account.accessTokenExpiresAt,refreshTokenExpiresAt:account.refreshTokenExpiresAt,scope:account.scope})}catch(e){import_env.logger.error(\"Unable to link account\",e);return{error:\"unable to link account\",data:null}}if(userInfo.emailVerified&&!dbUser.user.emailVerified&&userInfo.email.toLowerCase()===dbUser.user.email)await c.context.internalAdapter.updateUser(dbUser.user.id,{emailVerified:true})}else{const freshTokens=c.context.options.account?.updateAccountOnSignIn!==false?Object.fromEntries(Object.entries({idToken:account.idToken,accessToken:await(0,import_utils.setTokenUtil)(account.accessToken,c.context),refreshToken:await(0,import_utils.setTokenUtil)(account.refreshToken,c.context),accessTokenExpiresAt:account.accessTokenExpiresAt,refreshTokenExpiresAt:account.refreshTokenExpiresAt,scope:account.scope}).filter(([_,value])=>value!==void 0)):{};if(c.context.options.account?.storeAccountCookie)await(0,import_session_store.setAccountCookie)(c,{...linkedAccount,...freshTokens});if(Object.keys(freshTokens).length>0)await c.context.internalAdapter.updateAccount(linkedAccount.id,freshTokens);if(userInfo.emailVerified&&!dbUser.user.emailVerified&&userInfo.email.toLowerCase()===dbUser.user.email)await c.context.internalAdapter.updateUser(dbUser.user.id,{emailVerified:true})}if(overrideUserInfo){const{id:_,...restUserInfo}=userInfo;user=await c.context.internalAdapter.updateUser(dbUser.user.id,{...restUserInfo,email:userInfo.email.toLowerCase(),emailVerified:userInfo.email.toLowerCase()===dbUser.user.email?dbUser.user.emailVerified||userInfo.emailVerified:userInfo.emailVerified})}}else{if(disableSignUp)return{error:\"signup disabled\",data:null,isRegister:false};try{const{id:_,...restUserInfo}=userInfo;const accountData={accessToken:await(0,import_utils.setTokenUtil)(account.accessToken,c.context),refreshToken:await(0,import_utils.setTokenUtil)(account.refreshToken,c.context),idToken:account.idToken,accessTokenExpiresAt:account.accessTokenExpiresAt,refreshTokenExpiresAt:account.refreshTokenExpiresAt,scope:account.scope,providerId:account.providerId,accountId:userInfo.id.toString()};const{user:createdUser,account:createdAccount}=await c.context.internalAdapter.createOAuthUser({...restUserInfo,email:userInfo.email.toLowerCase()},accountData);user=createdUser;if(c.context.options.account?.storeAccountCookie)await(0,import_session_store.setAccountCookie)(c,createdAccount);if(!userInfo.emailVerified&&user&&c.context.options.emailVerification?.sendOnSignUp&&c.context.options.emailVerification?.sendVerificationEmail){const token=await(0,import_email_verification.createEmailVerificationToken)(c.context.secret,user.email,void 0,c.context.options.emailVerification?.expiresIn);const url=`${c.context.baseURL}/verify-email?token=${token}&callbackURL=${callbackURL}`;await c.context.runInBackgroundOrAwait(c.context.options.emailVerification.sendVerificationEmail({user,url,token},c.request))}}catch(e){import_env.logger.error(e);if((0,import_is_api_error.isAPIError)(e))return{error:e.message,data:null,isRegister:false};return{error:\"unable to create user\",data:null,isRegister:false}}}if(!user)return{error:\"unable to create user\",data:null,isRegister:false};const session=await c.context.internalAdapter.createSession(user.id);if(!session)return{error:\"unable to create session\",data:null,isRegister:false};return{data:{session,user},error:null,isRegister}}__name(handleOAuthUserInfo,\"handleOAuthUserInfo\");0&&(module.exports={handleOAuthUserInfo});\n})()\n","warnings":[],"map":{"version":3,"mappings":"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","names":[],"ignoreList":[],"sources":["/opt/canhelp/node_modules/better-auth/dist/oauth2/link-account.mjs"],"sourcesContent":[null]}}