Edit: /tmp/tsx-0/17887-7bf517b5520ff176f4cfcb7290346ddf3b2d458b (4748B)
{"code":"__filename=\"/opt/canhelp/apps/api/src/lib/messaging-rules.ts\";(()=>{\n\"use strict\";var __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 messaging_rules_exports={};__export(messaging_rules_exports,{canSendMessage:()=>canSendMessage});module.exports=__toCommonJS(messaging_rules_exports);var import_drizzle_orm=require(\"drizzle-orm\");var import_db=require(\"../db.js\");var import_db2=require(\"@canhelp/db\");async function canSendMessage(senderId,recipientId){const[[sender],[recipient]]=await Promise.all([import_db.db.select({id:import_db2.users.id,planId:import_db2.users.planId,role:import_db2.users.role}).from(import_db2.users).where((0,import_drizzle_orm.eq)(import_db2.users.id,senderId)),import_db.db.select({id:import_db2.users.id,planId:import_db2.users.planId,role:import_db2.users.role}).from(import_db2.users).where((0,import_drizzle_orm.eq)(import_db2.users.id,recipientId))]);if(!sender||!recipient){return{allowed:false,reason:\"User not found\",code:\"USER_NOT_FOUND\"}}if(sender.role===\"admin\"){return{allowed:true}}const[senderPlan,recipientPlan]=await Promise.all([sender.planId?import_db.db.select().from(import_db2.plans).where((0,import_drizzle_orm.eq)(import_db2.plans.id,sender.planId)).then(r=>r[0]??null):Promise.resolve(null),recipient.planId?import_db.db.select().from(import_db2.plans).where((0,import_drizzle_orm.eq)(import_db2.plans.id,recipient.planId)).then(r=>r[0]??null):Promise.resolve(null)]);const senderTier=senderPlan?.tier??\"free\";const recipientTier=recipientPlan?.tier??\"free\";if(senderPlan?.canContactAll){return{allowed:true,senderTier,recipientTier}}if(recipientTier===\"free\"){if(senderPlan?.canContactFreePlan){return{allowed:true,senderTier,recipientTier}}return{allowed:false,reason:\"Your plan does not allow messaging users on the Free plan\",code:\"PLAN_CONTACT_RESTRICTED\",senderTier,recipientTier}}if(recipientTier===\"pro\"){if(senderPlan?.canContactProPlan){return{allowed:true,senderTier,recipientTier}}return{allowed:false,reason:\"Your plan does not allow messaging users on the Pro plan\",code:\"PLAN_CONTACT_RESTRICTED\",senderTier,recipientTier}}if(senderPlan?.canContactProPlan){return{allowed:true,senderTier,recipientTier}}return{allowed:false,reason:\"Your plan does not allow messaging this user\",code:\"PLAN_CONTACT_RESTRICTED\",senderTier,recipientTier}}__name(canSendMessage,\"canSendMessage\");0&&(module.exports={canSendMessage});\n})()\n","warnings":[],"map":{"version":3,"mappings":";mvBAAA,iLAAmB,uBACnB,cAAmB,oBACnB,IAAAA,WAA6B,uBAsB7B,eAAsB,eACpB,SACA,YAC+B,CAE/B,KAAM,CAAC,CAAC,MAAM,EAAG,CAAC,SAAS,CAAC,EAAI,MAAM,QAAQ,IAAI,CAChD,aACG,OAAO,CAAE,GAAI,iBAAM,GAAI,OAAQ,iBAAM,OAAQ,KAAM,iBAAM,IAAK,CAAC,EAC/D,KAAK,gBAAK,EACV,SAAM,uBAAG,iBAAM,GAAI,QAAQ,CAAC,EAC/B,aACG,OAAO,CAAE,GAAI,iBAAM,GAAI,OAAQ,iBAAM,OAAQ,KAAM,iBAAM,IAAK,CAAC,EAC/D,KAAK,gBAAK,EACV,SAAM,uBAAG,iBAAM,GAAI,WAAW,CAAC,CACpC,CAAC,EAED,GAAI,CAAC,QAAU,CAAC,UAAW,CACzB,MAAO,CAAE,QAAS,MAAO,OAAQ,iBAAkB,KAAM,gBAAiB,CAC5E,CAGA,GAAI,OAAO,OAAS,QAAS,CAC3B,MAAO,CAAE,QAAS,IAAK,CACzB,CAGA,KAAM,CAAC,WAAY,aAAa,EAAI,MAAM,QAAQ,IAAI,CACpD,OAAO,OACH,aAAG,OAAO,EAAE,KAAK,gBAAK,EAAE,SAAM,uBAAG,iBAAM,GAAI,OAAO,MAAM,CAAC,EAAE,KAAM,GAAM,EAAE,CAAC,GAAK,IAAI,EACnF,QAAQ,QAAQ,IAAI,EACxB,UAAU,OACN,aAAG,OAAO,EAAE,KAAK,gBAAK,EAAE,SAAM,uBAAG,iBAAM,GAAI,UAAU,MAAM,CAAC,EAAE,KAAM,GAAM,EAAE,CAAC,GAAK,IAAI,EACtF,QAAQ,QAAQ,IAAI,CAC1B,CAAC,EAED,MAAM,WAAa,YAAY,MAAQ,OACvC,MAAM,cAAgB,eAAe,MAAQ,OAG7C,GAAI,YAAY,cAAe,CAC7B,MAAO,CAAE,QAAS,KAAM,WAAY,aAAc,CACpD,CAGA,GAAI,gBAAkB,OAAQ,CAC5B,GAAI,YAAY,mBAAoB,CAClC,MAAO,CAAE,QAAS,KAAM,WAAY,aAAc,CACpD,CACA,MAAO,CACL,QAAS,MACT,OAAQ,4DACR,KAAM,0BACN,WACA,aACF,CACF,CAEA,GAAI,gBAAkB,MAAO,CAC3B,GAAI,YAAY,kBAAmB,CACjC,MAAO,CAAE,QAAS,KAAM,WAAY,aAAc,CACpD,CACA,MAAO,CACL,QAAS,MACT,OAAQ,2DACR,KAAM,0BACN,WACA,aACF,CACF,CAIA,GAAI,YAAY,kBAAmB,CACjC,MAAO,CAAE,QAAS,KAAM,WAAY,aAAc,CACpD,CAEA,MAAO,CACL,QAAS,MACT,OAAQ,+CACR,KAAM,0BACN,WACA,aACF,CACF,CAnFsB","names":["import_db"],"ignoreList":[],"sources":["/opt/canhelp/apps/api/src/lib/messaging-rules.ts"],"sourcesContent":[null]}}