Edit: /tmp/tsx-0/17887-6391906d4a1f76a5921208112048e81df7dca12b (12464B)
{"code":"__filename=\"/opt/canhelp/node_modules/better-auth/dist/api/routes/callback.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 callback_exports={};__export(callback_exports,{callbackOAuth:()=>callbackOAuth});module.exports=__toCommonJS(callback_exports);var import_helpers=require(\"../../context/helpers.mjs\");var import_cookies=require(\"../../cookies/index.mjs\");var import_state=require(\"../../oauth2/state.mjs\");var import_utils=require(\"../../oauth2/utils.mjs\");var import_link_account=require(\"../../oauth2/link-account.mjs\");var import_hide_metadata=require(\"../../utils/hide-metadata.mjs\");var import_json=require(\"@better-auth/core/utils/json\");var import_api=require(\"@better-auth/core/api\");var z=__toESM(require(\"zod\"));const schema=z.object({code:z.string().optional(),error:z.string().optional(),device_id:z.string().optional(),error_description:z.string().optional(),state:z.string().optional(),user:z.string().optional()});const callbackOAuth=(0,import_api.createAuthEndpoint)(\"/callback/:id\",{method:[\"GET\",\"POST\"],operationId:\"handleOAuthCallback\",body:schema.optional(),query:schema.optional(),metadata:{...import_hide_metadata.HIDE_METADATA,allowedMediaTypes:[\"application/x-www-form-urlencoded\",\"application/json\"]}},async c=>{let queryOrBody;const defaultErrorURL=c.context.options.onAPIError?.errorURL||`${c.context.baseURL}/error`;if(c.method===\"POST\"){const postData=c.body?schema.parse(c.body):{};const queryData=c.query?schema.parse(c.query):{};const mergedData=schema.parse({...postData,...queryData});const params=new URLSearchParams;for(const[key,value]of Object.entries(mergedData))if(value!==void 0&&value!==null)params.set(key,String(value));const redirectURL=`${c.context.baseURL}/callback/${c.params.id}?${params.toString()}`;throw c.redirect(redirectURL)}try{if(c.method===\"GET\")queryOrBody=schema.parse(c.query);else if(c.method===\"POST\")queryOrBody=schema.parse(c.body);else throw new Error(\"Unsupported method\")}catch(e){c.context.logger.error(\"INVALID_CALLBACK_REQUEST\",e);throw c.redirect(`${defaultErrorURL}?error=invalid_callback_request`)}const{code,error,state,error_description,device_id,user:userData}=queryOrBody;if(!state){c.context.logger.error(\"State not found\",error);const url=`${defaultErrorURL}${defaultErrorURL.includes(\"?\")?\"&\":\"?\"}state=state_not_found`;throw c.redirect(url)}const{codeVerifier,callbackURL,link,errorURL,newUserURL,requestSignUp}=await(0,import_state.parseState)(c);function redirectOnError(error2,description){const baseURL=errorURL??defaultErrorURL;const params=new URLSearchParams({error:error2});if(description)params.set(\"error_description\",description);const url=`${baseURL}${baseURL.includes(\"?\")?\"&\":\"?\"}${params.toString()}`;throw c.redirect(url)}__name(redirectOnError,\"redirectOnError\");if(error)redirectOnError(error,error_description);if(!code){c.context.logger.error(\"Code not found\");throw redirectOnError(\"no_code\")}const provider=await(0,import_helpers.getAwaitableValue)(c.context.socialProviders,{value:c.params.id});if(!provider){c.context.logger.error(\"Oauth provider with id\",c.params.id,\"not found\");throw redirectOnError(\"oauth_provider_not_found\")}let tokens;try{tokens=await provider.validateAuthorizationCode({code,codeVerifier,deviceId:device_id,redirectURI:`${c.context.baseURL}/callback/${provider.id}`})}catch(e){c.context.logger.error(\"\",e);throw redirectOnError(\"invalid_code\")}if(!tokens)throw redirectOnError(\"invalid_code\");const parsedUserData=userData?(0,import_json.safeJSONParse)(userData):null;const userInfo=await provider.getUserInfo({...tokens,user:parsedUserData??void 0}).then(res=>res?.user);if(!userInfo){c.context.logger.error(\"Unable to get user info\");return redirectOnError(\"unable_to_get_user_info\")}if(!callbackURL){c.context.logger.error(\"No callback URL found\");throw redirectOnError(\"no_callback_url\")}if(link){if(!c.context.trustedProviders.includes(provider.id)&&!userInfo.emailVerified||c.context.options.account?.accountLinking?.enabled===false){c.context.logger.error(\"Unable to link account - untrusted provider\");return redirectOnError(\"unable_to_link_account\")}if(userInfo.email?.toLowerCase()!==link.email.toLowerCase()&&c.context.options.account?.accountLinking?.allowDifferentEmails!==true)return redirectOnError(\"email_doesn't_match\");const existingAccount=await c.context.internalAdapter.findAccount(String(userInfo.id));if(existingAccount){if(existingAccount.userId.toString()!==link.userId.toString())return redirectOnError(\"account_already_linked_to_different_user\");const updateData=Object.fromEntries(Object.entries({accessToken:await(0,import_utils.setTokenUtil)(tokens.accessToken,c.context),refreshToken:await(0,import_utils.setTokenUtil)(tokens.refreshToken,c.context),idToken:tokens.idToken,accessTokenExpiresAt:tokens.accessTokenExpiresAt,refreshTokenExpiresAt:tokens.refreshTokenExpiresAt,scope:tokens.scopes?.join(\",\")}).filter(([_,value])=>value!==void 0));await c.context.internalAdapter.updateAccount(existingAccount.id,updateData)}else if(!await c.context.internalAdapter.createAccount({userId:link.userId,providerId:provider.id,accountId:String(userInfo.id),...tokens,accessToken:await(0,import_utils.setTokenUtil)(tokens.accessToken,c.context),refreshToken:await(0,import_utils.setTokenUtil)(tokens.refreshToken,c.context),scope:tokens.scopes?.join(\",\")}))return redirectOnError(\"unable_to_link_account\");let toRedirectTo2;try{toRedirectTo2=callbackURL.toString()}catch{toRedirectTo2=callbackURL}throw c.redirect(toRedirectTo2)}if(!userInfo.email){c.context.logger.error(\"Provider did not return email. This could be due to misconfiguration in the provider settings.\");return redirectOnError(\"email_not_found\")}const accountData={providerId:provider.id,accountId:String(userInfo.id),...tokens,scope:tokens.scopes?.join(\",\")};const result=await(0,import_link_account.handleOAuthUserInfo)(c,{userInfo:{...userInfo,id:String(userInfo.id),email:userInfo.email,name:userInfo.name||\"\"},account:accountData,callbackURL,disableSignUp:provider.disableImplicitSignUp&&!requestSignUp||provider.options?.disableSignUp,overrideUserInfo:provider.options?.overrideUserInfoOnSignIn});if(result.error){c.context.logger.error(result.error.split(\" \").join(\"_\"));return redirectOnError(result.error.split(\" \").join(\"_\"))}const{session,user}=result.data;await(0,import_cookies.setSessionCookie)(c,{session,user});let toRedirectTo;try{toRedirectTo=(result.isRegister?newUserURL||callbackURL:callbackURL).toString()}catch{toRedirectTo=result.isRegister?newUserURL||callbackURL:callbackURL}throw c.redirect(toRedirectTo)});0&&(module.exports={callbackOAuth});\n})()\n","warnings":[],"map":{"version":3,"mappings":"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","names":["error","toRedirectTo"],"ignoreList":[],"sources":["/opt/canhelp/node_modules/better-auth/dist/api/routes/callback.mjs"],"sourcesContent":[null]}}