Vibgrate 
 CODE GRAPH
Ask Areas Hubs Impact Path Show Tree
Ask the code map questions in plain English — where requests enter, how a feature is wired, what owns a concern.
how does an invoice get emailed?
Semantic search · 4 results · 96 ms · local
InvoiceMailer.send()method
src/services/invoiceMailer.ts:42
async send(invoice: Invoice): Promise<void> {
Renders the PDF, then hands the message to the SMTP transport. Called from the route below and the nightly digest job.
POST /invoices/:id/sendroute
src/routes/invoices.ts:87
router.post('/:id/send', requireAuth, async (req…
The only HTTP entry point — validates ownership, then calls InvoiceMailer.send().
renderInvoicePdf()function
src/pdf/render.ts:19
export function renderInvoicePdf(invoice: Invoice…
Builds the attachment. Depended on by the mailer only.
digestJobjob
src/jobs/digest.ts:11
export const digestJob = cron('0 7 * * *', async…
Batch path — sends overdue-invoice reminders through the same mailer.
 DRIFTSCORE
 DEPENDENCIES 38
 VULNERABILITIES 2
 ARCHITECTURE