UNPKG

alepha

Version:

Easy-to-use modern TypeScript framework for building many kind of applications.

101 lines 3.61 kB
import { Static } from "alepha"; import { EmailProvider, EmailSendOptions } from "alepha/email"; import { Transporter } from "nodemailer"; //#region ../../src/email/smtp/providers/NodemailerEmailProvider.d.ts /** * Nodemailer connection pooling and rate limiting options */ declare const nodemailerEmailOptions: import("alepha").Atom<import("zod").ZodObject<{ pool: import("zod").ZodOptional<import("zod").ZodBoolean>; maxConnections: import("zod").ZodOptional<import("zod").ZodNumber>; maxMessages: import("zod").ZodOptional<import("zod").ZodNumber>; rateDelta: import("zod").ZodOptional<import("zod").ZodNumber>; rateLimit: import("zod").ZodOptional<import("zod").ZodNumber>; }, import("zod/v4/core").$strip>, "alepha.email.nodemailer.options">; type NodemailerEmailProviderOptions = Static<typeof nodemailerEmailOptions.schema>; declare module "alepha" { interface State { [nodemailerEmailOptions.key]: NodemailerEmailProviderOptions; } } /** * Email provider using Nodemailer for SMTP transport. * * Configuration is provided via environment variables: * - EMAIL_HOST: SMTP server host * - EMAIL_PORT: SMTP server port (default: 587) * - EMAIL_USER: SMTP authentication username * - EMAIL_PASS: SMTP authentication password * - EMAIL_FROM: Default from email address * - EMAIL_SECURE: Use secure connection (default: false) * * Advanced pooling/rate limiting options can be configured via atom: * @see {@link nodemailerEmailOptions} * * @example * ```typescript * // Configure via environment variables * // EMAIL_HOST=smtp.example.com * // EMAIL_PORT=587 * // EMAIL_USER=user@example.com * // EMAIL_PASS=secret * // EMAIL_FROM=noreply@example.com * * // Optionally configure pooling via atom * alepha.state.set(nodemailerEmailOptions.key, { * pool: true, * maxConnections: 5, * rateLimit: 10, * }); * ``` */ declare class NodemailerEmailProvider implements EmailProvider { protected readonly env: { EMAIL_HOST?: string | undefined; EMAIL_PORT: number; EMAIL_USER?: string | undefined; EMAIL_PASS?: string | undefined; EMAIL_FROM?: string | undefined; EMAIL_SECURE: boolean; }; protected readonly log: import("alepha/logger").Logger; protected readonly options: Readonly<{ pool?: boolean | undefined; maxConnections?: number | undefined; maxMessages?: number | undefined; rateDelta?: number | undefined; rateLimit?: number | undefined; }>; protected transporter: Transporter | null; protected get host(): string; protected get port(): number; protected get secure(): boolean; protected get user(): string | undefined; protected get pass(): string | undefined; protected get fromAddress(): string; protected getTransporter(): Transporter; send(options: EmailSendOptions): Promise<void>; protected createTransporter(): Transporter; /** * Verify the connection to the email server. */ verify(): Promise<boolean>; /** * Close the transporter connection. */ close(): void; protected readonly onStart: import("alepha").HookPrimitive<"start">; protected readonly onStop: import("alepha").HookPrimitive<"stop">; } //#endregion //#region ../../src/email/smtp/index.d.ts /** * Plugin for Alepha Email that provides SMTP capabilities via Nodemailer. * * @see {@link NodemailerEmailProvider} * @module alepha.email.smtp */ declare const AlephaEmailSmtp: import("alepha").Service<import("alepha").Module>; //#endregion export { AlephaEmailSmtp, NodemailerEmailProvider, NodemailerEmailProviderOptions, nodemailerEmailOptions }; //# sourceMappingURL=index.d.ts.map