index.js 1.1 KB
/**
 * `@drama/email` 公共面 —— 唯一对外导出口(§3 契约)。
 *
 * 设计纪律:包内不读 `process.env`、不在模块顶层建任何投递连接
 * (transport / SES client 只在 provider 工厂内、由注入凭据构造)。
 * 本包只负责「渲染并投递单封事务性邮件」,不持有验证码的生成/校验/频控逻辑。
 *
 * @typedef {Object} SendMessage
 * @property {string|string[]} to
 * @property {string} subject
 * @property {string} [html]
 * @property {string} [text]
 * @property {string} [from]      缺省取 credentials.defaultFrom
 * @property {string} [reply_to]
 * @property {string[]} [cc]
 * @property {string[]} [bcc]
 *
 * @typedef {Object} SendResult
 * @property {string} message_id
 * @property {string} provider
 * @property {string|string[]} to
 *
 * @typedef {Object} Provider
 * @property {(msg: SendMessage) => Promise<SendResult>} send
 */

export { createEmail } from './email.js'
export { EmailError } from './map-error.js'
export { createFakeProvider } from './providers/fake.js'
export { default as emailDbSchema } from './db/tables/index.cjs'