eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.19 kB
JavaScript
import{createHmac}from"node:crypto";import{TwilioApiError,resolveTwilioCredential}from"#compiled/@chat-adapter/twilio/api.js";import{TwilioWebhookVerificationError,twilioSignatureBase,verifyTwilioRequest as verifyTwilioRequest$1}from"#compiled/@chat-adapter/twilio/webhook.js";async function resolveTwilioAuthToken(e){try{return await resolveTwilioCredential(e,`TWILIO_AUTH_TOKEN`)}catch(e){throw e instanceof TwilioApiError&&e.status===0?Error(`TWILIO_AUTH_TOKEN is required.`):e}}async function verifyTwilioRequest(e,t){if(!e.headers.get(`x-twilio-signature`))throw Error(`twilioChannel: inbound request missing X-Twilio-Signature.`);let n=await resolveTwilioAuthToken(t.authToken);try{return await verifyTwilioRequest$1(e,{authToken:n,webhookUrl:t.webhookUrl})}catch(e){throw e instanceof TwilioWebhookVerificationError?Error(`twilioChannel: inbound request signature mismatch.`):e}}function signTwilioRequest(t){let n=buildTwilioSignatureBase(t.url,t.params);return createHmac(`sha1`,t.authToken).update(n).digest(`base64`)}function buildTwilioSignatureBase(e,t){return twilioSignatureBase(e,t)}export{buildTwilioSignatureBase,resolveTwilioAuthToken,signTwilioRequest,verifyTwilioRequest};