Edit: /tmp/tsx-0/17887-bc629097627b446ab6d62a1d3477cffe6be60ec4 (19018B)
{"code":"__filename=\"/opt/canhelp/apps/api/src/auth.ts\";(()=>{\n\"use strict\";var __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 auth_exports={};__export(auth_exports,{auth:()=>auth});module.exports=__toCommonJS(auth_exports);var import_better_auth=require(\"better-auth\");var import_drizzle=require(\"better-auth/adapters/drizzle\");var import_plugins=require(\"better-auth/plugins\");var import_drizzle_orm=require(\"drizzle-orm\");var import_node_crypto=require(\"node:crypto\");var import_node_util=require(\"node:util\");var import_db=require(\"./db.js\");var schema=__toESM(require(\"@canhelp/db\"));var import_db2=require(\"@canhelp/db\");var import_email=require(\"./lib/email.js\");var import_activity=require(\"./lib/activity.js\");var import_referral=require(\"./lib/referral.js\");var import_plan_history=require(\"./lib/plan-history.js\");var import_telegram=require(\"./lib/telegram.js\");var import_helper_capability=require(\"./lib/helper-capability.js\");var import_apple_client_secret=require(\"./lib/apple-client-secret.js\");const frontendBaseUrl=(process.env.WEB_URL||\"http://localhost:3000\").replace(/\\/$/,\"\");function normalizeVerificationCallback(rawCallback){if(rawCallback){try{const parsed=new URL(rawCallback);if(parsed.protocol===\"http:\"||parsed.protocol===\"https:\"){return parsed.toString()}}catch{}}return`${frontendBaseUrl}/dashboard`}__name(normalizeVerificationCallback,\"normalizeVerificationCallback\");function normalizeVerificationUrl(rawUrl){try{const parsed=new URL(rawUrl);const callback=parsed.searchParams.get(\"callbackURL\");parsed.searchParams.set(\"callbackURL\",normalizeVerificationCallback(callback));return parsed.toString()}catch{return rawUrl}}__name(normalizeVerificationUrl,\"normalizeVerificationUrl\");const scryptAsync=(0,import_node_util.promisify)(import_node_crypto.scrypt);const SCRYPT_N=16384;const SCRYPT_R=16;const SCRYPT_P=1;const SCRYPT_KEY_LEN=64;const SCRYPT_MAXMEM=128*SCRYPT_N*SCRYPT_R*2;async function hashPasswordNative(password){const salt=(0,import_node_crypto.randomBytes)(16).toString(\"hex\");const key=await scryptAsync(password.normalize(\"NFKC\"),salt,SCRYPT_KEY_LEN,{N:SCRYPT_N,r:SCRYPT_R,p:SCRYPT_P,maxmem:SCRYPT_MAXMEM});return`${salt}:${key.toString(\"hex\")}`}__name(hashPasswordNative,\"hashPasswordNative\");async function verifyPasswordNative(data){const[salt,hexKey]=data.hash.split(\":\");if(!salt||!hexKey)return false;const stored=Buffer.from(hexKey,\"hex\");const derived=await scryptAsync(data.password.normalize(\"NFKC\"),salt,stored.length,{N:SCRYPT_N,r:SCRYPT_R,p:SCRYPT_P,maxmem:SCRYPT_MAXMEM});if(stored.length!==derived.length)return false;return(0,import_node_crypto.timingSafeEqual)(stored,derived)}__name(verifyPasswordNative,\"verifyPasswordNative\");const appleClientSecret=(0,import_apple_client_secret.getAppleClientSecret)();const auth=(0,import_better_auth.betterAuth)({baseURL:process.env.BETTER_AUTH_URL||\"http://localhost:4000\",basePath:\"/api/auth\",secret:process.env.BETTER_AUTH_SECRET||\"dev-secret-change-in-production\",session:{expiresIn:60*60*24*30,updateAge:60*60*24},...process.env.GOOGLE_CLIENT_ID&&process.env.GOOGLE_CLIENT_SECRET||process.env.APPLE_CLIENT_ID&&appleClientSecret?{socialProviders:{...process.env.GOOGLE_CLIENT_ID&&process.env.GOOGLE_CLIENT_SECRET?{google:{clientId:process.env.GOOGLE_CLIENT_ID,clientSecret:process.env.GOOGLE_CLIENT_SECRET}}:{},...process.env.APPLE_CLIENT_ID&&appleClientSecret?{apple:{clientId:process.env.APPLE_CLIENT_ID,clientSecret:appleClientSecret}}:{}}}:{},database:(0,import_drizzle.drizzleAdapter)(import_db.db,{provider:\"pg\",schema:{user:schema.users,session:schema.sessions,account:schema.accounts,verification:schema.verifications}}),emailVerification:{sendOnSignUp:true,sendVerificationEmail:__name(async({user,url})=>{const verificationUrl=normalizeVerificationUrl(url);console.log(\"[Auth] sendVerificationEmail \\u2192\",user.email,verificationUrl);const userName=user.firstName||user.name||user.email;(0,import_email.emailVerification)({to:user.email,name:userName,link:verificationUrl,locale:user.locale||\"el\"}).then(()=>console.log(\"[Auth] sendVerificationEmail \\u2713 sent to\",user.email)).catch(err=>console.error(\"[Auth] sendVerificationEmail ERROR:\",err));(0,import_telegram.notifyAdmin)(`\\u{1F4E9}
\\u0417\\u0430\\u043F\\u0440\\u043E\\u0441 \\u043F\\u043E\\u0434\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0435\\u043D\\u0438\\u044F email\n\\u{1F464} ${userName}\n\\u{1F4E7} ${user.email}\n\\u{1F517} ${verificationUrl}`).catch(err=>{console.error(\"[Auth] sendVerificationEmail telegram notify ERROR:\",err)})},\"sendVerificationEmail\"),autoSignInAfterVerification:true,afterEmailVerification:__name(async user=>{await(0,import_referral.applyPendingReferral)(user.id).catch(()=>{});(0,import_email.emailWelcome)({to:user.email,name:user.firstName||user.name||\"\\u03A7\\u03C1\\u03AE\\u03C3\\u03C4\\u03B7\",role:(0,import_helper_capability.toLegacyMarketRoleFromInput)(user.role||\"user\"),locale:user.locale||\"el\"}).catch(()=>{})},\"afterEmailVerification\")},emailAndPassword:{enabled:true,minPasswordLength:8,requireEmailVerification:true,password:{hash:hashPasswordNative,verify:verifyPasswordNative},sendResetPassword:__name(async({user,url})=>{try{const token=url.split(\"/reset-password/\")[1]?.split(\"?\")[0];const frontendUrl=token?`${frontendBaseUrl}/reset-password?token=${token}`:url;await(0,import_email.emailPasswordReset)({to:user.email,name:user.firstName||user.name||user.email,link:frontendUrl,locale:user.locale||\"el\"});console.log(\"[Auth] sendResetPassword \\u2713 sent to\",user.email)}catch(err){console.error(\"[Auth] sendResetPassword ERROR:\",err);throw new Error(\"SEND_FAILED\")}},\"sendResetPassword\")},plugins:[(0,import_plugins.bearer)(),(0,import_plugins.customSession)(async({user,session})=>{let isHelperReady=false;try{isHelperReady=await(0,import_helper_capability.getHelperCapability)(user.id)}catch(err){console.error(\"[Auth] customSession getHelperCapability ERROR:\",err)}return{session,user:{...user,isHelperReady,legacyMarketRole:isHelperReady?\"specialist\":\"customer\",role:(0,import_helper_capability.toClientRole)(user.role,isHelperReady)}}})],user:{additionalFields:{firstName:{type:\"string\",required:true,defaultValue:\"\",input:true},lastName:{type:\"string\",required:true,defaultValue:\"\",input:true},role:{type:\"string\",required:false,defaultValue:\"user\",input:true},phone:{type:\"string\",required:false,input:true},bio:{type:\"string\",required:false,input:true},skills:{type:\"string[]\",required:false,input:true},locale:{type:\"string\",required:false,defaultValue:\"el\",input:true},isActive:{type:\"boolean\",required:false,defaultValue:true},lastSeenAt:{type:\"date\",required:false},planId:{type:\"string\",required:false},refCode:{type:\"string\",required:false,input:true,fieldName:\"referredBy\"}}},trustedOrigins:[process.env.WEB_URL||\"http://localhost:3000\",\"canhelp://\"],databaseHooks:{user:{create:{after:__name(async user=>{let code=(0,import_referral.generateReferralCode)();let attempts=0;while(attempts<5){try{await import_db.db.update(schema.users).set({referralCode:code,updatedAt:new Date}).where((0,import_drizzle_orm.eq)(schema.users.id,user.id));break}catch{code=(0,import_referral.generateReferralCode)();attempts++}}const roleInput=user.role||\"user\";const normalizedRole=(0,import_helper_capability.toNormalizedRole)(roleInput);const legacyRole=(0,import_helper_capability.toLegacyMarketRoleFromInput)(roleInput);await import_db.db.update(schema.users).set({role:normalizedRole,updatedAt:new Date}).where((0,import_drizzle_orm.eq)(schema.users.id,user.id)).catch(err=>console.error(\"[auth] role normalization failed:\",err));const now=new Date;const yearEnd=new Date(now.getFullYear(),11,31,23,59,59);const promoActive=now
[]);let freePlan=defaultPlan;if(!freePlan){const[freeTierPlan]=await import_db.db.select().from(import_db2.plans).where((0,import_drizzle_orm.and)((0,import_drizzle_orm.eq)(import_db2.plans.isActive,true),(0,import_drizzle_orm.eq)(import_db2.plans.tier,\"free\"))).orderBy((0,import_drizzle_orm.asc)(import_db2.plans.order)).limit(1).catch(()=>[]);freePlan=freeTierPlan}let assignedPlanId=freePlan?.id??null;let assignedPlanExpiresAt=null;if(promoActive){const[proPlan]=await import_db.db.select().from(import_db2.plans).where((0,import_drizzle_orm.and)((0,import_drizzle_orm.eq)(import_db2.plans.isActive,true),(0,import_drizzle_orm.eq)(import_db2.plans.tier,\"pro\"))).orderBy((0,import_drizzle_orm.asc)(import_db2.plans.order)).limit(1).catch(()=>[]);if(proPlan){assignedPlanId=proPlan.id;assignedPlanExpiresAt=yearEnd}}await import_db.db.update(schema.users).set({planId:assignedPlanId,planExpiresAt:assignedPlanExpiresAt,updatedAt:new Date}).where((0,import_drizzle_orm.eq)(schema.users.id,user.id)).catch(()=>{});(0,import_plan_history.logPlanHistory)({userId:user.id,event:\"activated\",planId:assignedPlanId,planName:assignedPlanId,expiresAt:assignedPlanExpiresAt,note:promoActive&&assignedPlanId!==freePlan?.id?\"end-of-year promo\":null}).catch(()=>{});const refCode=user.refCode??user.referredBy;if(refCode){await import_db.db.update(schema.users).set({referredBy:refCode,updatedAt:new Date}).where((0,import_drizzle_orm.eq)(schema.users.id,user.id)).catch(()=>{})}if(user.emailVerified===true&&refCode){(0,import_referral.applyPendingReferral)(user.id).catch(()=>{})}if(user.emailVerified===true){(0,import_email.emailWelcome)({to:user.email,name:user.firstName||user.name||\"\\u03A7\\u03C1\\u03AE\\u03C3\\u03C4\\u03B7\",role:legacyRole,locale:user.locale||\"el\"}).catch(()=>{})}(0,import_telegram.isRegistrationNotifyEnabled)().then(enabled=>{if(!enabled)return;const name=user.firstName?`${user.firstName} ${user.lastName??\"\"}`.trim():user.name;const role=legacyRole;const method=user.emailVerified===true?\"Google OAuth\":\"email\";(0,import_telegram.notifyAdmin)(`\\u{1F195} \\u041D\\u043E\\u0432\\u0430\\u044F \\u0440\\u0435\\u0433\\u0438\\u0441\\u0442\\u0440\\u0430\\u0446\\u0438\\u044F\n\\u{1F464} ${name}\n\\u{1F4E7} ${user.email}\n\\u{1F3AD} ${role}\n\\u{1F511} ${method}`).catch(()=>{})}).catch(()=>{});(0,import_activity.logActivity)({userId:user.id,userEmail:user.email,userName:user.firstName?`${user.firstName} ${user.lastName??\"\"}`.trim():user.name,event:\"user.register\",details:{role:legacyRole,pendingRef:refCode??null}})},\"after\")}},session:{create:{after:__name(async session=>{(0,import_activity.logActivity)({userId:session.userId,event:\"user.login\",ipAddress:session.ipAddress??null,userAgent:session.userAgent??null})},\"after\")}}}});0&&(module.exports={auth});\n})()\n","warnings":[],"map":{"version":3,"mappings":"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","names":["import_db","nodeScrypt"],"ignoreList":[],"sources":["/opt/canhelp/apps/api/src/auth.ts"],"sourcesContent":[null]}}