eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 916 B
JavaScript
import{createLogger}from"#internal/logging.js";import{verifyTwilioRequest}from"#public/channels/twilio/verify.js";const log=createLogger(`twilio.channel`);function buildTwilioRoutes(e){let t=e.endsWith(`/`)?e.slice(0,-1):e;return{messages:`${t}/messages`,transcription:`${t}/voice/transcription`,voice:`${t}/voice`}}async function verifyTwilioInbound(e,r){try{return await verifyTwilioRequest(e,{authToken:r.credentials?.authToken,webhookUrl:r.webhookUrl})}catch(e){return log.warn(`twilio inbound verification failed`,{error:e}),null}}async function buildTwilioActionUrl(e,t,n){let r=typeof t.publicBaseUrl==`function`?await t.publicBaseUrl(e):t.publicBaseUrl;if(r)return new URL(n,ensureTrailingSlash(r)).toString();let i=new URL(e.url);return i.pathname=n,i.search=``,i.toString()}function ensureTrailingSlash(e){return e.endsWith(`/`)?e:`${e}/`}export{buildTwilioActionUrl,buildTwilioRoutes,verifyTwilioInbound};