import type { AfterResponseMiddleware, BeforeRequestMiddleware, HttpResponse, ZObject, } from 'zapier-platform-core'; const includeBearer: BeforeRequestMiddleware = (request, _z, bundle) => { const url = request.url || ''; if (url.includes('/auth/login') || url.includes('/zapier/v1/signup')) { return request; } if (bundle.authData.sessionKey) { request.headers = request.headers || {}; request.headers.Authorization = `Bearer ${bundle.authData.sessionKey}`; } return request; }; const handleAuthErrors: AfterResponseMiddleware = (response: HttpResponse, z: ZObject) => { if (response.status === 401) { throw new z.errors.RefreshAuthError('Verae Time token expired or invalid'); } return response; }; export const befores = [includeBearer]; export const afters = [handleAuthErrors];