Files
snowspeeder 59645e59b5 Add green-bean inventory and cupping features
Ports inventory management and SCA-style cupping scoring from
hope_roaster: lot tracking with audit-logged consumption, cupping
sessions with server-authoritative scoring and a live radar chart,
and links from the planner (draw-from-lot, open-cupping-session).

Also fixes the Blend/Single-origin toggle layout, replaces tooltips
with an in-context "why" teaching layer, and stages the planner UI
into pre-roast vs. post-roast phases.
2026-07-30 14:47:15 -04:00

10 lines
475 B
JavaScript

/** Sends transactional email via SMTP when configured; the caller decides what to do when this
* returns false (e.g. log the link so an admin can hand it to the user manually). */
export async function sendMail({ smtpUrl, from, to, subject, text }) {
if (!smtpUrl) return false;
const { default: nodemailer } = await import("nodemailer");
const transporter = nodemailer.createTransport(smtpUrl);
await transporter.sendMail({ from, to, subject, text });
return true;
}