@bumail/smtp 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client/index.js
CHANGED
|
@@ -721,6 +721,9 @@ class ClientSocket {
|
|
|
721
721
|
throw this.#hungUp(lost(this.host, what));
|
|
722
722
|
});
|
|
723
723
|
const race = Promise.race([promise, gone]);
|
|
724
|
+
race.catch(() => {
|
|
725
|
+
return;
|
|
726
|
+
});
|
|
724
727
|
return this.#race(race, seconds, what).finally(() => over.abort());
|
|
725
728
|
}
|
|
726
729
|
write(data) {
|
|
@@ -967,5 +970,5 @@ export {
|
|
|
967
970
|
sendMail
|
|
968
971
|
};
|
|
969
972
|
|
|
970
|
-
//# debugId=
|
|
973
|
+
//# debugId=F9FE8E458D7309C564756E2164756E21
|
|
971
974
|
//# sourceMappingURL=index.js.map
|
package/dist/client/index.js.map
CHANGED
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
"import { hostname as machineName } from 'node:os';\nimport { SmtpError } from '../errors';\nimport { isHelloName, parsePath } from '../protocol/path';\nimport { isMailbox } from './address';\nimport type {\n\tMxDestination,\n\tSendMailAuth,\n\tSendMailEnvelope,\n\tSendMailOptions,\n\tSendMailTimeouts,\n\tTlsMode,\n} from './options';\n\n/** The longest delay `setTimeout` takes, in seconds: past 2^31 − 1 ms it fires after 1 ms. */\nexport const MAX_SECONDS = Math.floor(2_147_483_647 / 1000);\n\n/** RFC 5321 §4.5.3.2's timeouts; `connect` is this client's own. */\nconst TIMEOUTS: Required<SendMailTimeouts> = {\n\tconnect: 30,\n\tgreeting: 300,\n\tcommand: 300,\n\tmail: 300,\n\trcpt: 300,\n\tdataStart: 120,\n\tdataBlock: 180,\n\tdataEnd: 600,\n};\n\n/** The options, checked, with their defaults; timeouts in seconds. */\nexport interface ClientSettings {\n\treadonly from: string;\n\treadonly to: readonly string[];\n\treadonly helo: string;\n\treadonly tls: TlsMode;\n\treadonly secure: boolean;\n\treadonly ca?: readonly string[];\n\treadonly auth?: SendMailAuth;\n\treadonly allowPlaintextAuth: boolean;\n\treadonly size?: number;\n\t/** An address is not ASCII, or `smtputf8` asked for it. */\n\treadonly smtputf8: boolean;\n\treadonly normalizeLineEnds: boolean;\n\treadonly timeouts: Required<SendMailTimeouts>;\n\treadonly deadline: number;\n}\n\n/** `INVALID_OPTION`, for an option `sendMail` cannot take. */\nexport const invalid = (message: string) =>\n\tnew SmtpError('INVALID_OPTION', `sendMail(): ${message}`);\n\nfunction seconds(name: string, value: unknown, fallback: number): number {\n\tif (value === undefined) return fallback;\n\tif (\n\t\ttypeof value !== 'number' ||\n\t\t!Number.isFinite(value) ||\n\t\tvalue <= 0 ||\n\t\tvalue > MAX_SECONDS\n\t) {\n\t\tthrow invalid(\n\t\t\t`${name} must be a number of seconds above 0 and at most ${MAX_SECONDS}, not ${String(value)}`,\n\t\t);\n\t}\n\treturn value;\n}\n\nfunction timeoutsOf(given: SendMailTimeouts = {}): Required<SendMailTimeouts> {\n\tconst out: Record<string, number> = {};\n\tfor (const [name, fallback] of Object.entries(TIMEOUTS)) {\n\t\tout[name] = seconds(\n\t\t\t`timeouts.${name}`,\n\t\t\tgiven[name as keyof SendMailTimeouts],\n\t\t\tfallback,\n\t\t);\n\t}\n\treturn out as Required<SendMailTimeouts>;\n}\n\n/**\n * `from` or a recipient, checked as an RFC 5321 path, since it is written\n * into `MAIL FROM:<…>` or `RCPT TO:<…>` as it is. A source route is refused\n * (§4.1.1.3: clients should not send one), with a message of its own when\n * the route is otherwise valid. What it takes, past the null sender, is\n * exactly what `isMailbox` says yes to: the two share one predicate.\n */\nfunction address(value: unknown, allowNull: boolean): string {\n\tif (allowNull && value === '') return '';\n\tif (isMailbox(value)) return value;\n\tconst text = typeof value === 'string' ? value : '';\n\tconst routed = typeof value === 'string' && parsePath(`<${text}>`, false);\n\tif (routed) {\n\t\tthrow invalid(\n\t\t\t`${JSON.stringify(value)} holds a source route (@host:), which RFC 5321 says a client should not send: pass ${JSON.stringify(`${routed.local}@${text.slice(text.lastIndexOf('@') + 1)}`)} alone`,\n\t\t);\n\t}\n\tthrow invalid(\n\t\t`${JSON.stringify(value)} is not an address (local@domain${allowNull ? \", or '' for a bounce\" : ''})`,\n\t);\n}\n\n/**\n * `helo`, checked. By MX it is required: the machine's name (such as\n * `laptop.local`) is rarely a name that resolves back to the sender, which\n * receiving hosts penalise, and it would tell them the machine's name.\n */\nfunction heloOf(value: string | undefined, byMx: boolean): string {\n\tif (value !== undefined) {\n\t\tif (!isHelloName(value))\n\t\t\tthrow invalid(`helo \"${value}\" is not a host name`);\n\t\treturn value;\n\t}\n\tif (byMx)\n\t\tthrow invalid(\n\t\t\t\"helo is required for delivery by MX: pass your server's public name, such as helo: 'mail.example.com'\",\n\t\t);\n\tconst name = machineName();\n\treturn isHelloName(name) ? name : 'localhost';\n}\n\nfunction authOf(auth: SendMailAuth | undefined): SendMailAuth | undefined {\n\tif (auth === undefined) return undefined;\n\tconst { username, password, mechanism } = auth;\n\tif (typeof username !== 'string' || username === '')\n\t\tthrow invalid('auth.username must be a non-empty string');\n\tif (typeof password !== 'string' || password === '')\n\t\tthrow invalid('auth.password must be a non-empty string');\n\tif (mechanism !== undefined && mechanism !== 'PLAIN' && mechanism !== 'LOGIN')\n\t\tthrow invalid(\n\t\t\t`auth.mechanism must be 'PLAIN' or 'LOGIN', not ${mechanism}`,\n\t\t);\n\treturn auth;\n}\n\nfunction tlsOf(options: SendMailOptions, plaintextAuth: boolean): TlsMode {\n\tconst secure = options.secure === true;\n\tconst tls =\n\t\toptions.tls ??\n\t\t(secure || (options.auth && !plaintextAuth) ? 'required' : 'opportunistic');\n\tif (tls !== 'opportunistic' && tls !== 'required' && tls !== 'none')\n\t\tthrow invalid(\n\t\t\t`tls must be 'opportunistic', 'required' or 'none', not ${tls}`,\n\t\t);\n\tif (tls === 'none' && secure)\n\t\tthrow invalid(\n\t\t\t\"secure is TLS from the first byte: it cannot go with tls: 'none'\",\n\t\t);\n\tif (tls === 'none' && options.auth && !plaintextAuth)\n\t\tthrow invalid(\n\t\t\t\"auth with tls: 'none' would send the password in clear; pass allowPlaintextAuth: true for a local test server\",\n\t\t);\n\tif (tls === 'opportunistic' && options.auth && !plaintextAuth)\n\t\tthrow invalid(\n\t\t\t\"auth with tls: 'opportunistic' would send the password to a server whose certificate is not checked; leave tls out to check it, or pass allowPlaintextAuth: true for a local test server\",\n\t\t);\n\treturn tls;\n}\n\n/** Checks every option; throws an `SmtpError` (`INVALID_OPTION`) on the first wrong one. */\nexport function settingsOf(options: SendMailOptions): ClientSettings {\n\tif (typeof options !== 'object' || options === null)\n\t\tthrow invalid('options must be an object');\n\tconst from = address(options.from, true);\n\tconst list = typeof options.to === 'string' ? [options.to] : options.to;\n\tif (!Array.isArray(list) || list.length === 0)\n\t\tthrow invalid('to must name one recipient or more');\n\tconst to = list.map((recipient) => address(recipient, false));\n\tconst allowPlaintextAuth = options.allowPlaintextAuth === true;\n\tconst { size } = options;\n\tif (size !== undefined && (!Number.isSafeInteger(size) || size < 0))\n\t\tthrow invalid(`size must be a number of bytes, not ${size}`);\n\tconst ca = options.ca === undefined ? undefined : [options.ca].flat();\n\tconst auth = authOf(options.auth);\n\treturn {\n\t\tfrom,\n\t\tto,\n\t\thelo: heloOf(options.helo, byMx(options)),\n\t\ttls: tlsOf(options, allowPlaintextAuth),\n\t\tsecure: options.secure === true,\n\t\t...(ca ? { ca } : {}),\n\t\t...(auth ? { auth } : {}),\n\t\tallowPlaintextAuth,\n\t\t...(size === undefined ? {} : { size }),\n\t\tsmtputf8:\n\t\t\toptions.smtputf8 === true ||\n\t\t\t[from, ...to].some((text) => /[^ -~]/.test(text)),\n\t\tnormalizeLineEnds: options.normalizeLineEnds === true,\n\t\ttimeouts: timeoutsOf(options.timeouts),\n\t\tdeadline: seconds('deadline', options.deadline, 1800),\n\t};\n}\n\n/** Whether the options name a domain to deliver to by MX, not a host. */\nexport const byMx = (\n\toptions: SendMailOptions,\n): options is SendMailEnvelope & MxDestination =>\n\t!('host' in options && options.host !== undefined);\n\n/** A port: an integer from 1 to 65535. */\nexport function portOf(port: number | undefined, fallback: number): number {\n\tif (port === undefined) return fallback;\n\tif (!Number.isInteger(port) || port < 1 || port > 65535)\n\t\tthrow invalid(`port must be an integer from 1 to 65535, not ${port}`);\n\treturn port;\n}\n",
|
|
14
14
|
"import { LineSplitter, MAX_LINE } from '../protocol/lines';\nimport type { Reply } from '../protocol/reply';\nimport { ReplyReader } from '../protocol/reply-reader';\n\n/** The most bytes a server may send in one session, every reply together. */\nexport const MAX_REPLY_BYTES = 1024 * 1024;\n\n/**\n * What a server sent, put together into replies, each bounded: `MAX_LINE`\n * a line, `MAX_REPLY_LINES` a reply, `MAX_REPLY_BYTES` in all. One pass\n * over the bytes, whatever the chunks.\n */\nexport class Inbox {\n\treadonly #lines = new LineSplitter();\n\treadonly #reader = new ReplyReader();\n\treadonly #replies: Reply[] = [];\n\t#received = 0;\n\n\t/** Takes the next bytes; says what is wrong with them, if they are not replies. */\n\tpush(chunk: Uint8Array): string | undefined {\n\t\tthis.#received += chunk.length;\n\t\tif (this.#received > MAX_REPLY_BYTES) {\n\t\t\treturn `more than ${MAX_REPLY_BYTES} bytes of replies`;\n\t\t}\n\t\tthis.#lines.push(chunk);\n\t\tfor (let event = this.#lines.next(); event; event = this.#lines.next()) {\n\t\t\tif ('tooLong' in event)\n\t\t\t\treturn `a reply line longer than ${MAX_LINE} bytes`;\n\t\t\tconst result = this.#reader.line(event.line);\n\t\t\tif (result === undefined) continue;\n\t\t\tif ('error' in result) return result.error;\n\t\t\tthis.#replies.push(result);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\t/** The next complete reply. */\n\tshift(): Reply | undefined {\n\t\treturn this.#replies.shift();\n\t}\n\n\t/** Bytes or replies not yet read. */\n\tget holding(): boolean {\n\t\treturn this.#lines.holding || this.#replies.length > 0;\n\t}\n}\n",
|
|
15
15
|
"import type { TLSOptions } from 'bun';\n\n/** Where to connect: `host` names the server in errors, and is what TLS checks. */\nexport interface Endpoint {\n\treadonly host: string;\n\treadonly address: string;\n\treadonly port: number;\n}\n\n/** How to start TLS: check the certificate against `servername`, or not. */\nexport interface TlsTarget {\n\treadonly servername: string;\n\treadonly verify: boolean;\n\treadonly ca?: readonly string[];\n}\n\n/** Bun's TLS options for a target: `rejectUnauthorized` only when checking (RFC 7435 otherwise). */\nexport const tlsOptions = (tls: TlsTarget): TLSOptions => ({\n\tserverName: tls.servername,\n\trejectUnauthorized: tls.verify,\n\t...(tls.ca ? { ca: [...tls.ca] } : {}),\n});\n\n/** Why a connection or a handshake failed, from what Bun gave: its code, else its message. */\nexport const reason = (error: unknown): string =>\n\t(error as { code?: string } | null)?.code ??\n\t(error as Error | null)?.message ??\n\t'the handshake failed';\n\n/** The whole delivery's deadline. */\nexport class Clock {\n\treadonly seconds: number;\n\treadonly #end: number;\n\n\tconstructor(seconds: number) {\n\t\tthis.seconds = seconds;\n\t\tthis.#end = performance.now() + seconds * 1000;\n\t}\n\n\t/**\n\t * `promise`, or what `expire` gives, thrown once `ms` passed or the\n\t * deadline did, whichever comes first; `deadline` says which it was.\n\t */\n\tasync race<T>(\n\t\tpromise: Promise<T>,\n\t\tms: number,\n\t\texpire: (deadline: boolean) => Error,\n\t): Promise<T> {\n\t\tconst left = this.#end - performance.now();\n\t\tconst deadline = left < ms;\n\t\tms = Math.min(ms, left);\n\t\tif (ms <= 0) throw expire(deadline);\n\t\tlet timer: Timer | undefined;\n\t\tconst expired = new Promise<never>((_, reject) => {\n\t\t\ttimer = setTimeout(() => reject(expire(deadline)), ms);\n\t\t});\n\t\ttry {\n\t\t\treturn await Promise.race([promise, expired]);\n\t\t} finally {\n\t\t\tclearTimeout(timer);\n\t\t}\n\t}\n}\n",
|
|
16
|
-
"import type { Socket, SocketHandler } from 'bun';\nimport { SmtpError } from '../errors';\nimport { Outgoing } from '../io/outgoing';\nimport type { Reply } from '../protocol/reply';\nimport { Inbox } from './inbox';\nimport { badReply, lost, refused, timedOut, tlsFailed } from './refusal';\nimport {\n\ttype Clock,\n\ttype Endpoint,\n\treason,\n\ttype TlsTarget,\n\ttlsOptions,\n} from './target';\n\n/**\n * A connection to an SMTP server: replies read as they come into an\n * `Inbox`, which bounds them; every wait bounded by its timeout and the\n * deadline. Whatever the server does ends in a reply or an `SmtpError`,\n * never in an exception of Bun's.\n */\nexport class ClientSocket {\n\treadonly host: string;\n\treadonly #clock: Clock;\n\t#socket: Socket<undefined> | undefined;\n\t#outgoing = new Outgoing(() => 0);\n\t/** Which socket's events count: the TLS one's after STARTTLS. */\n\t#tls = false;\n\treadonly #inbox = new Inbox();\n\t#failure: SmtpError | undefined;\n\t#closed = false;\n\t#wake: (() => void) | undefined;\n\t#handshaking: ((ok: boolean, error: unknown) => void) | undefined;\n\t/** Resolves when the connection is gone. */\n\treadonly #gone = Promise.withResolvers<void>();\n\tsecure = false;\n\t/** The certificate checked out against the host name. */\n\tverified = false;\n\n\tprivate constructor(host: string, clock: Clock) {\n\t\tthis.host = host;\n\t\tthis.#clock = clock;\n\t}\n\n\t/** Connects, with TLS from the first byte when `tls` is given. */\n\tstatic async open(\n\t\tendpoint: Endpoint,\n\t\ttls: TlsTarget | undefined,\n\t\tseconds: number,\n\t\tclock: Clock,\n\t): Promise<ClientSocket> {\n\t\tconst client = new ClientSocket(endpoint.host, clock);\n\t\tclient.#tls = tls !== undefined;\n\t\tconst handshake = tls ? client.#expectHandshake(tls) : undefined;\n\t\thandshake?.catch(() => {});\n\t\tconst { address, port } = endpoint;\n\t\tconst connecting = Bun.connect({\n\t\t\thostname: address,\n\t\t\tport,\n\t\t\t...(tls ? { tls: tlsOptions(tls) } : {}),\n\t\t\tsocket: client.#handlers(tls !== undefined),\n\t\t});\n\t\ttry {\n\t\t\tclient.#use(await client.#race(connecting, seconds, 'the connection'));\n\t\t} catch (error) {\n\t\t\tconnecting.then(\n\t\t\t\t(socket) => socket.terminate(),\n\t\t\t\t() => {},\n\t\t\t);\n\t\t\tif (error instanceof SmtpError) throw error;\n\t\t\tthrow new SmtpError(\n\t\t\t\t'CONNECTION_FAILED',\n\t\t\t\t`Could not connect to ${endpoint.host} (${address}:${port}): ${reason(error)}`,\n\t\t\t);\n\t\t}\n\t\tif (handshake) {\n\t\t\t// A handshake that failed before the connection resolved left it open.\n\t\t\tawait client.#race(handshake, seconds, 'the TLS handshake').catch((e) => {\n\t\t\t\tclient.close(true);\n\t\t\t\tthrow e;\n\t\t\t});\n\t\t}\n\t\treturn client;\n\t}\n\n\t#use(socket: Socket<undefined>): void {\n\t\tthis.#socket = socket;\n\t\tthis.#outgoing = new Outgoing((bytes) => socket.write(bytes));\n\t}\n\n\t/** Bun's events for one socket: only the live one's count, the clear one's or, after STARTTLS, the TLS one's. */\n\t#handlers(tls: boolean): SocketHandler<undefined> {\n\t\tconst live =\n\t\t\t<A extends unknown[]>(run: (...args: A) => void) =>\n\t\t\t(...args: A) => {\n\t\t\t\tif (this.#tls === tls) run(...args);\n\t\t\t};\n\t\treturn {\n\t\t\tdata: live((_, chunk: Uint8Array) => this.#receive(chunk)),\n\t\t\tdrain: live(() => this.#outgoing.drain()),\n\t\t\tclose: live(() => this.#lost()),\n\t\t\terror: live(() => this.#lost()),\n\t\t\thandshake: live((_, ok: boolean, error: Error | null) =>\n\t\t\t\tthis.#handshaking?.(ok, error),\n\t\t\t),\n\t\t};\n\t}\n\n\t#expectHandshake(tls: TlsTarget): Promise<void> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.#handshaking = (ok, error) => {\n\t\t\t\tthis.#handshaking = undefined;\n\t\t\t\tif (this.#closed || (tls.verify && !ok)) {\n\t\t\t\t\tconst why = this.#closed ? 'the connection closed' : reason(error);\n\t\t\t\t\treturn reject(this.#fail(tlsFailed(this.host, why)));\n\t\t\t\t}\n\t\t\t\tthis.secure = true;\n\t\t\t\tthis.verified = ok && error === null;\n\t\t\t\tresolve();\n\t\t\t};\n\t\t});\n\t}\n\n\t#receive(chunk: Uint8Array): void {\n\t\tif (this.#failure || this.#closed) return;\n\t\tconst wrong = this.#inbox.push(chunk);\n\t\tif (wrong) this.#fail(badReply(this.host, wrong));\n\t\telse this.#wakeUp();\n\t}\n\n\t#wakeUp(): void {\n\t\tconst wake = this.#wake;\n\t\tthis.#wake = undefined;\n\t\twake?.();\n\t}\n\n\t#lost(): void {\n\t\tthis.#closed = true;\n\t\tthis.#gone.resolve();\n\t\tthis.#outgoing.clear();\n\t\tthis.#handshaking?.(false, null);\n\t\tthis.#wakeUp();\n\t}\n\n\t/** Records the first failure, hangs up, and returns it to throw. */\n\t#fail(error: SmtpError): SmtpError {\n\t\tthis.#failure ??= error;\n\t\tthis.#socket?.terminate();\n\t\tthis.#lost();\n\t\treturn this.#failure;\n\t}\n\n\t/**\n\t * `promise`, or a `TIMEOUT` once `seconds` passed since `start` (now by\n\t * default), or the deadline did, whichever comes first.\n\t */\n\t#race<T>(\n\t\tpromise: Promise<T>,\n\t\tseconds: number,\n\t\twhat: string,\n\t\tstart = performance.now(),\n\t): Promise<T> {\n\t\tconst ms = start + seconds * 1000 - performance.now();\n\t\tconst { host } = this;\n\t\tconst deadline = this.#clock.seconds;\n\t\treturn this.#clock.race(promise, ms, (passed) =>\n\t\t\tthis.#fail(timedOut(host, what, seconds, passed ? deadline : undefined)),\n\t\t);\n\t}\n\n\t/** The next reply, within `seconds` all told; `what` names it in errors: `the greeting`, `the reply to MAIL FROM`. */\n\tasync reply(what: string, seconds: number): Promise<Reply> {\n\t\tconst start = performance.now();\n\t\tfor (;;) {\n\t\t\tconst next = this.#inbox.shift();\n\t\t\tif (next) return next;\n\t\t\tif (this.#failure) throw this.#failure;\n\t\t\tif (this.#closed) throw this.#fail(lost(this.host, what));\n\t\t\tawait this.#race(\n\t\t\t\tnew Promise<void>((wake) => {\n\t\t\t\t\tthis.#wake = wake;\n\t\t\t\t}),\n\t\t\t\tseconds,\n\t\t\t\twhat,\n\t\t\t\tstart,\n\t\t\t);\n\t\t}\n\t}\n\n\t/** One of the caller's promises — the message stream's next part — bounded as a reply is, and cut short if the connection goes (a hang-up after it settled is none of its business). */\n\twithin<T>(promise: Promise<T>, seconds: number, what: string): Promise<T> {\n\t\tconst over = new AbortController();\n\t\tconst gone = this.#gone.promise.then(() => {\n\t\t\tif (!over.signal.aborted) throw this.#hungUp(lost(this.host, what));\n\t\t});\n\t\tconst race = Promise.race([promise, gone]) as Promise<T>;\n\t\treturn this.#race(race, seconds, what).finally(() => over.abort());\n\t}\n\n\t/** Queues bytes for the server; nothing once the connection failed. Whether it did queue them. */\n\twrite(data: Uint8Array | string): boolean {\n\t\tif (this.#failure || this.#closed) return false;\n\t\tthis.#outgoing.write(\n\t\t\ttypeof data === 'string' ? new TextEncoder().encode(data) : data,\n\t\t);\n\t\treturn true;\n\t}\n\n\t/** Waits until the server took everything written. */\n\tasync drained(seconds: number): Promise<void> {\n\t\tawait this.#race(\n\t\t\tthis.#outgoing.drained(),\n\t\t\tseconds,\n\t\t\t'the server to take the message',\n\t\t);\n\t\tif (this.#failure || this.#closed) throw this.#hungUp(lost(this.host));\n\t}\n\n\t/** Why the connection is gone during DATA: its failure, the refusal a server sent before hanging up, or `lost`. */\n\t#hungUp(otherwise: SmtpError): SmtpError {\n\t\tif (this.#failure) return this.#failure;\n\t\tconst said = this.#inbox.shift();\n\t\treturn this.#fail(\n\t\t\tsaid ? refused(this.host, 'the message', said) : otherwise,\n\t\t);\n\t}\n\n\t/** After the 220 to STARTTLS: TLS on this connection. Anything the server sent past the 220 is an attack. */\n\tasync startTls(tls: TlsTarget, seconds: number): Promise<void> {\n\t\tconst socket = this.#socket;\n\t\tif (this.#inbox.holding || !socket) {\n\t\t\tthrow this.#fail(badReply(this.host, 'more after its 220 to STARTTLS'));\n\t\t}\n\t\tconst handshake = this.#expectHandshake(tls);\n\t\thandshake.catch(() => {});\n\t\tthis.#tls = true;\n\t\tconst [, encrypted] = socket.upgradeTLS<undefined>({\n\t\t\ttls: tlsOptions(tls),\n\t\t\tsocket: this.#handlers(true),\n\t\t});\n\t\tthis.#use(encrypted);\n\t\tawait this.#race(handshake, seconds, 'the TLS handshake');\n\t}\n\n\t/** Hangs up; `now` at once, so a message cut short is not delivered. */\n\tclose(now = false): void {\n\t\tthis.#closed = true;\n\t\tif (now) this.#socket?.terminate();\n\t\telse this.#socket?.end();\n\t}\n}\n",
|
|
16
|
+
"import type { Socket, SocketHandler } from 'bun';\nimport { SmtpError } from '../errors';\nimport { Outgoing } from '../io/outgoing';\nimport type { Reply } from '../protocol/reply';\nimport { Inbox } from './inbox';\nimport { badReply, lost, refused, timedOut, tlsFailed } from './refusal';\nimport {\n\ttype Clock,\n\ttype Endpoint,\n\treason,\n\ttype TlsTarget,\n\ttlsOptions,\n} from './target';\n\n/**\n * A connection to an SMTP server: replies read as they come into an\n * `Inbox`, which bounds them; every wait bounded by its timeout and the\n * deadline. Whatever the server does ends in a reply or an `SmtpError`,\n * never in an exception of Bun's.\n */\nexport class ClientSocket {\n\treadonly host: string;\n\treadonly #clock: Clock;\n\t#socket: Socket<undefined> | undefined;\n\t#outgoing = new Outgoing(() => 0);\n\t/** Which socket's events count: the TLS one's after STARTTLS. */\n\t#tls = false;\n\treadonly #inbox = new Inbox();\n\t#failure: SmtpError | undefined;\n\t#closed = false;\n\t#wake: (() => void) | undefined;\n\t#handshaking: ((ok: boolean, error: unknown) => void) | undefined;\n\t/** Resolves when the connection is gone. */\n\treadonly #gone = Promise.withResolvers<void>();\n\tsecure = false;\n\t/** The certificate checked out against the host name. */\n\tverified = false;\n\n\tprivate constructor(host: string, clock: Clock) {\n\t\tthis.host = host;\n\t\tthis.#clock = clock;\n\t}\n\n\t/** Connects, with TLS from the first byte when `tls` is given. */\n\tstatic async open(\n\t\tendpoint: Endpoint,\n\t\ttls: TlsTarget | undefined,\n\t\tseconds: number,\n\t\tclock: Clock,\n\t): Promise<ClientSocket> {\n\t\tconst client = new ClientSocket(endpoint.host, clock);\n\t\tclient.#tls = tls !== undefined;\n\t\tconst handshake = tls ? client.#expectHandshake(tls) : undefined;\n\t\thandshake?.catch(() => {});\n\t\tconst { address, port } = endpoint;\n\t\tconst connecting = Bun.connect({\n\t\t\thostname: address,\n\t\t\tport,\n\t\t\t...(tls ? { tls: tlsOptions(tls) } : {}),\n\t\t\tsocket: client.#handlers(tls !== undefined),\n\t\t});\n\t\ttry {\n\t\t\tclient.#use(await client.#race(connecting, seconds, 'the connection'));\n\t\t} catch (error) {\n\t\t\tconnecting.then(\n\t\t\t\t(socket) => socket.terminate(),\n\t\t\t\t() => {},\n\t\t\t);\n\t\t\tif (error instanceof SmtpError) throw error;\n\t\t\tthrow new SmtpError(\n\t\t\t\t'CONNECTION_FAILED',\n\t\t\t\t`Could not connect to ${endpoint.host} (${address}:${port}): ${reason(error)}`,\n\t\t\t);\n\t\t}\n\t\tif (handshake) {\n\t\t\t// A handshake that failed before the connection resolved left it open.\n\t\t\tawait client.#race(handshake, seconds, 'the TLS handshake').catch((e) => {\n\t\t\t\tclient.close(true);\n\t\t\t\tthrow e;\n\t\t\t});\n\t\t}\n\t\treturn client;\n\t}\n\n\t#use(socket: Socket<undefined>): void {\n\t\tthis.#socket = socket;\n\t\tthis.#outgoing = new Outgoing((bytes) => socket.write(bytes));\n\t}\n\n\t/** Bun's events for one socket: only the live one's count, the clear one's or, after STARTTLS, the TLS one's. */\n\t#handlers(tls: boolean): SocketHandler<undefined> {\n\t\tconst live =\n\t\t\t<A extends unknown[]>(run: (...args: A) => void) =>\n\t\t\t(...args: A) => {\n\t\t\t\tif (this.#tls === tls) run(...args);\n\t\t\t};\n\t\treturn {\n\t\t\tdata: live((_, chunk: Uint8Array) => this.#receive(chunk)),\n\t\t\tdrain: live(() => this.#outgoing.drain()),\n\t\t\tclose: live(() => this.#lost()),\n\t\t\terror: live(() => this.#lost()),\n\t\t\thandshake: live((_, ok: boolean, error: Error | null) =>\n\t\t\t\tthis.#handshaking?.(ok, error),\n\t\t\t),\n\t\t};\n\t}\n\n\t#expectHandshake(tls: TlsTarget): Promise<void> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.#handshaking = (ok, error) => {\n\t\t\t\tthis.#handshaking = undefined;\n\t\t\t\tif (this.#closed || (tls.verify && !ok)) {\n\t\t\t\t\tconst why = this.#closed ? 'the connection closed' : reason(error);\n\t\t\t\t\treturn reject(this.#fail(tlsFailed(this.host, why)));\n\t\t\t\t}\n\t\t\t\tthis.secure = true;\n\t\t\t\tthis.verified = ok && error === null;\n\t\t\t\tresolve();\n\t\t\t};\n\t\t});\n\t}\n\n\t#receive(chunk: Uint8Array): void {\n\t\tif (this.#failure || this.#closed) return;\n\t\tconst wrong = this.#inbox.push(chunk);\n\t\tif (wrong) this.#fail(badReply(this.host, wrong));\n\t\telse this.#wakeUp();\n\t}\n\n\t#wakeUp(): void {\n\t\tconst wake = this.#wake;\n\t\tthis.#wake = undefined;\n\t\twake?.();\n\t}\n\n\t#lost(): void {\n\t\tthis.#closed = true;\n\t\tthis.#gone.resolve();\n\t\tthis.#outgoing.clear();\n\t\tthis.#handshaking?.(false, null);\n\t\tthis.#wakeUp();\n\t}\n\n\t/** Records the first failure, hangs up, and returns it to throw. */\n\t#fail(error: SmtpError): SmtpError {\n\t\tthis.#failure ??= error;\n\t\tthis.#socket?.terminate();\n\t\tthis.#lost();\n\t\treturn this.#failure;\n\t}\n\n\t/**\n\t * `promise`, or a `TIMEOUT` once `seconds` passed since `start` (now by\n\t * default), or the deadline did, whichever comes first.\n\t */\n\t#race<T>(\n\t\tpromise: Promise<T>,\n\t\tseconds: number,\n\t\twhat: string,\n\t\tstart = performance.now(),\n\t): Promise<T> {\n\t\tconst ms = start + seconds * 1000 - performance.now();\n\t\tconst { host } = this;\n\t\tconst deadline = this.#clock.seconds;\n\t\treturn this.#clock.race(promise, ms, (passed) =>\n\t\t\tthis.#fail(timedOut(host, what, seconds, passed ? deadline : undefined)),\n\t\t);\n\t}\n\n\t/** The next reply, within `seconds` all told; `what` names it in errors: `the greeting`, `the reply to MAIL FROM`. */\n\tasync reply(what: string, seconds: number): Promise<Reply> {\n\t\tconst start = performance.now();\n\t\tfor (;;) {\n\t\t\tconst next = this.#inbox.shift();\n\t\t\tif (next) return next;\n\t\t\tif (this.#failure) throw this.#failure;\n\t\t\tif (this.#closed) throw this.#fail(lost(this.host, what));\n\t\t\tawait this.#race(\n\t\t\t\tnew Promise<void>((wake) => {\n\t\t\t\t\tthis.#wake = wake;\n\t\t\t\t}),\n\t\t\t\tseconds,\n\t\t\t\twhat,\n\t\t\t\tstart,\n\t\t\t);\n\t\t}\n\t}\n\n\t/** One of the caller's promises — the message stream's next part — bounded as a reply is, and cut short if the connection goes (a hang-up after it settled is none of its business). */\n\twithin<T>(promise: Promise<T>, seconds: number, what: string): Promise<T> {\n\t\tconst over = new AbortController();\n\t\tconst gone = this.#gone.promise.then(() => {\n\t\t\tif (!over.signal.aborted) throw this.#hungUp(lost(this.host, what));\n\t\t});\n\t\tconst race = Promise.race([promise, gone]) as Promise<T>;\n\t\t// Once the deadline passed, the clock throws before it listens to `race`, and its expiry hangs up (`#fail`), which rejects `gone` and so `race` unheard.\n\t\trace.catch(() => undefined);\n\t\treturn this.#race(race, seconds, what).finally(() => over.abort());\n\t}\n\n\t/** Queues bytes for the server; nothing once the connection failed. Whether it did queue them. */\n\twrite(data: Uint8Array | string): boolean {\n\t\tif (this.#failure || this.#closed) return false;\n\t\tthis.#outgoing.write(\n\t\t\ttypeof data === 'string' ? new TextEncoder().encode(data) : data,\n\t\t);\n\t\treturn true;\n\t}\n\n\t/** Waits until the server took everything written. */\n\tasync drained(seconds: number): Promise<void> {\n\t\tawait this.#race(\n\t\t\tthis.#outgoing.drained(),\n\t\t\tseconds,\n\t\t\t'the server to take the message',\n\t\t);\n\t\tif (this.#failure || this.#closed) throw this.#hungUp(lost(this.host));\n\t}\n\n\t/** Why the connection is gone during DATA: its failure, the refusal a server sent before hanging up, or `lost`. */\n\t#hungUp(otherwise: SmtpError): SmtpError {\n\t\tif (this.#failure) return this.#failure;\n\t\tconst said = this.#inbox.shift();\n\t\treturn this.#fail(\n\t\t\tsaid ? refused(this.host, 'the message', said) : otherwise,\n\t\t);\n\t}\n\n\t/** After the 220 to STARTTLS: TLS on this connection. Anything the server sent past the 220 is an attack. */\n\tasync startTls(tls: TlsTarget, seconds: number): Promise<void> {\n\t\tconst socket = this.#socket;\n\t\tif (this.#inbox.holding || !socket) {\n\t\t\tthrow this.#fail(badReply(this.host, 'more after its 220 to STARTTLS'));\n\t\t}\n\t\tconst handshake = this.#expectHandshake(tls);\n\t\thandshake.catch(() => {});\n\t\tthis.#tls = true;\n\t\tconst [, encrypted] = socket.upgradeTLS<undefined>({\n\t\t\ttls: tlsOptions(tls),\n\t\t\tsocket: this.#handlers(true),\n\t\t});\n\t\tthis.#use(encrypted);\n\t\tawait this.#race(handshake, seconds, 'the TLS handshake');\n\t}\n\n\t/** Hangs up; `now` at once, so a message cut short is not delivered. */\n\tclose(now = false): void {\n\t\tthis.#closed = true;\n\t\tif (now) this.#socket?.terminate();\n\t\telse this.#socket?.end();\n\t}\n}\n",
|
|
17
17
|
"import { type RecipientReply, SmtpError } from '../errors';\nimport { DataWriter } from '../protocol/data-writer';\nimport type { Reply } from '../protocol/reply';\nimport { bareLineBreak, type Content } from './content';\nimport { afterDot, refused, shown } from './refusal';\nimport type { Ready } from './session';\nimport type { ClientSettings } from './settings';\nimport type { ClientSocket } from './socket';\n\n/** What the server said to the envelope and the message. */\nexport interface Delivered {\n\treadonly accepted: readonly RecipientReply[];\n\treadonly rejected: readonly RecipientReply[];\n\treadonly reply: Reply;\n}\n\nconst missing = (host: string, extension: string, why: string) =>\n\tnew SmtpError(\n\t\t'EXTENSION_MISSING',\n\t\t`${host} does not offer ${extension}, which ${why}`,\n\t);\n\n/** MAIL FROM's parameters: SIZE (RFC 1870), BODY (RFC 6152), SMTPUTF8 (RFC 6531). */\nfunction mailParameters(\n\thost: string,\n\tsettings: ClientSettings,\n\tcontent: Content,\n\textensions: ReadonlyMap<string, string>,\n): string {\n\tlet parameters = '';\n\tconst size = extensions.get('SIZE');\n\tif (size !== undefined && content.size !== undefined) {\n\t\tconst max = Number(size);\n\t\tif (Number.isSafeInteger(max) && max > 0 && content.size > max) {\n\t\t\tthrow new SmtpError(\n\t\t\t\t'MESSAGE_TOO_BIG',\n\t\t\t\t`The message (${content.size} bytes) is larger than the ${max} bytes ${host} takes (SIZE)`,\n\t\t\t\t{ temporary: false },\n\t\t\t);\n\t\t}\n\t\tparameters += ` SIZE=${content.size}`;\n\t}\n\tif (extensions.has('8BITMIME')) parameters += ' BODY=8BITMIME';\n\telse if (content.eightBit) {\n\t\tthrow missing(host, '8BITMIME', 'the message needs: it has 8-bit bytes');\n\t}\n\tif (settings.smtputf8) {\n\t\tif (!extensions.has('SMTPUTF8')) {\n\t\t\tthrow missing(\n\t\t\t\thost,\n\t\t\t\t'SMTPUTF8',\n\t\t\t\t'an address that is not ASCII needs (or smtputf8 asked for)',\n\t\t\t);\n\t\t}\n\t\tparameters += ' SMTPUTF8';\n\t}\n\treturn parameters;\n}\n\n/** MAIL FROM and every RCPT TO: in one write with PIPELINING (RFC 2920), else one by one. */\nasync function envelope(\n\tsocket: ClientSocket,\n\tsettings: ClientSettings,\n\tcontent: Content,\n\tready: Ready,\n): Promise<{ accepted: RecipientReply[]; rejected: RecipientReply[] }> {\n\tconst { host } = socket;\n\tconst { timeouts } = settings;\n\tconst mail = `MAIL FROM:<${settings.from}>${mailParameters(host, settings, content, ready.extensions)}\\r\\n`;\n\tconst rcpts = settings.to.map((to) => `RCPT TO:<${to}>\\r\\n`);\n\tconst pipelining = ready.extensions.has('PIPELINING');\n\tsocket.write(pipelining ? mail + rcpts.join('') : mail);\n\tconst from = await socket.reply('the reply to MAIL FROM', timeouts.mail);\n\tif (from.code !== 250) throw refused(host, 'the sender', from);\n\tconst accepted: RecipientReply[] = [];\n\tconst rejected: RecipientReply[] = [];\n\tfor (const [i, recipient] of settings.to.entries()) {\n\t\tif (!pipelining) socket.write(rcpts[i] as string);\n\t\tconst reply = await socket.reply('the reply to RCPT TO', timeouts.rcpt);\n\t\tconst into = reply.code === 250 || reply.code === 251 ? accepted : rejected;\n\t\tinto.push({ recipient, reply });\n\t}\n\tif (accepted.length === 0) {\n\t\tconst first = rejected[0] as RecipientReply;\n\t\tthrow new SmtpError(\n\t\t\t'RECIPIENTS_REFUSED',\n\t\t\t`${host} refused every recipient, ${first.recipient} with ${shown(first.reply)}`,\n\t\t\t{\n\t\t\t\treply: first.reply,\n\t\t\t\trejected,\n\t\t\t\ttemporary: rejected.some(({ reply }) => reply.code < 500),\n\t\t\t},\n\t\t);\n\t}\n\treturn { accepted, rejected };\n}\n\n/** The message, stuffed, block by block as the server takes it; a bad stream hangs up before the dot. */\nasync function data(\n\tsocket: ClientSocket,\n\tsettings: ClientSettings,\n\tcontent: Content,\n\tready: Ready,\n): Promise<Reply> {\n\tconst { host } = socket;\n\tconst { timeouts } = settings;\n\tsocket.write('DATA\\r\\n');\n\tconst start = await socket.reply('the reply to DATA', timeouts.dataStart);\n\tif (start.code !== 354) throw refused(host, 'DATA', start);\n\tconst writer = new DataWriter(settings.normalizeLineEnds);\n\tconst eightBitOk = ready.extensions.has('8BITMIME');\n\tconst chunks = content.chunks();\n\tlet tail: Uint8Array;\n\ttry {\n\t\tfor (;;) {\n\t\t\t// The caller's stream is bounded as the server is: a stalled one times out.\n\t\t\tconst chunk = await socket.within(\n\t\t\t\tchunks.next(),\n\t\t\t\ttimeouts.dataBlock,\n\t\t\t\t'the next part of the message',\n\t\t\t);\n\t\t\tif (!chunk) break;\n\t\t\tconst bytes = writer.write(chunk);\n\t\t\tif (writer.bareLineBreaks > 0) throw bareLineBreak();\n\t\t\tif (writer.eightBit && !eightBitOk) {\n\t\t\t\tthrow missing(\n\t\t\t\t\thost,\n\t\t\t\t\t'8BITMIME',\n\t\t\t\t\t'the message needs: it has 8-bit bytes',\n\t\t\t\t);\n\t\t\t}\n\t\t\tsocket.write(bytes);\n\t\t\tawait socket.drained(timeouts.dataBlock);\n\t\t}\n\t\t// A CR held at the very end is bare only now: still no dot for it.\n\t\ttail = writer.end();\n\t\tif (writer.bareLineBreaks > 0) throw bareLineBreak();\n\t} catch (error) {\n\t\t// No final dot: the server drops what it has of the message.\n\t\tchunks.cancel();\n\t\tsocket.close(true);\n\t\tthrow error;\n\t}\n\t// A connection that failed already took no dot: its error is not afterData.\n\tconst dotSent = socket.write(tail);\n\tconst end = await socket\n\t\t.reply('the reply to the final dot', timeouts.dataEnd)\n\t\t.catch((error: unknown) => {\n\t\t\t// No reply to the dot: the server may have taken the message.\n\t\t\tthrow dotSent ? afterDot(error) : error;\n\t\t});\n\tif (end.code !== 250) throw refused(host, 'the message', end);\n\treturn end;\n}\n\n/** One message: the envelope, then the content. */\nexport async function transact(\n\tsocket: ClientSocket,\n\tsettings: ClientSettings,\n\tcontent: Content,\n\tready: Ready,\n): Promise<Delivered> {\n\tconst { accepted, rejected } = await envelope(\n\t\tsocket,\n\t\tsettings,\n\t\tcontent,\n\t\tready,\n\t);\n\tconst reply = await data(socket, settings, content, ready);\n\treturn { accepted, rejected, reply };\n}\n",
|
|
18
18
|
"import { SmtpError } from '../errors';\nimport { type Content, contentOf } from './content';\nimport { addressesOf, noAddress, resolveMx } from './mx';\nimport type {\n\tMessageSource,\n\tMxDestination,\n\tSendMailOptions,\n\tSendMailResult,\n} from './options';\nimport { timedOut } from './refusal';\nimport { open } from './session';\nimport {\n\tbyMx,\n\ttype ClientSettings,\n\tinvalid,\n\tportOf,\n\tsettingsOf,\n} from './settings';\nimport { ClientSocket } from './socket';\nimport { Clock, type Endpoint, type TlsTarget } from './target';\nimport { transact } from './transaction';\n\n/** The most addresses one delivery tries, every MX host together; and the most MX hosts it looks up. */\nexport const MAX_ADDRESSES = 10;\n\n/** Seconds to wait for the 221 to QUIT once the message was taken. */\nconst QUIT_WAIT = 5;\n\n/** Errors from before MAIL FROM: another MX host may do better. */\nconst early = new WeakSet<object>();\n\n/** One session with one server, from the connection to QUIT. */\nasync function attempt(\n\tendpoint: Endpoint,\n\tsettings: ClientSettings,\n\tcontent: Content,\n\tclock: Clock,\n): Promise<SendMailResult> {\n\tconst tls: TlsTarget = {\n\t\tservername: endpoint.host,\n\t\tverify: settings.tls === 'required',\n\t\t...(settings.ca ? { ca: settings.ca } : {}),\n\t};\n\tlet socket: ClientSocket;\n\ttry {\n\t\tsocket = await ClientSocket.open(\n\t\t\tendpoint,\n\t\t\tsettings.secure ? tls : undefined,\n\t\t\tsettings.timeouts.connect,\n\t\t\tclock,\n\t\t);\n\t} catch (error) {\n\t\tearly.add(error as object);\n\t\tthrow error;\n\t}\n\tlet quit = false;\n\ttry {\n\t\tconst ready = await open(socket, settings, tls).catch((error) => {\n\t\t\tearly.add(error as object);\n\t\t\tthrow error;\n\t\t});\n\t\tconst delivered = await transact(socket, settings, content, ready);\n\t\tsocket.write('QUIT\\r\\n');\n\t\tquit = true;\n\t\tawait socket\n\t\t\t.reply(\n\t\t\t\t'the reply to QUIT',\n\t\t\t\tMath.min(QUIT_WAIT, settings.timeouts.command),\n\t\t\t)\n\t\t\t.catch(() => {});\n\t\treturn {\n\t\t\t...delivered,\n\t\t\thost: endpoint.host,\n\t\t\tport: endpoint.port,\n\t\t\ttls: socket.secure ? { verified: socket.verified } : false,\n\t\t\tauthenticated: ready.authenticated,\n\t\t};\n\t} finally {\n\t\t// After a refusal the session is still in step: say goodbye.\n\t\tif (!quit) socket.write('QUIT\\r\\n');\n\t\tsocket.close();\n\t}\n}\n\n/** A DNS lookup, bounded by the delivery's deadline (the resolver has its own timeout too). */\nconst withinDeadline = <T>(\n\tlookup: Promise<T>,\n\tclock: Clock,\n\tname: string,\n\twhat: string,\n): Promise<T> =>\n\tclock.race(lookup, Number.POSITIVE_INFINITY, () =>\n\t\ttimedOut(name, what, clock.seconds, clock.seconds),\n\t);\n\n/** Direct delivery: each MX host's addresses in turn, while the failures are temporary and before MAIL FROM. */\nasync function viaMx(\n\toptions: MxDestination,\n\tsettings: ClientSettings,\n\tcontent: Content,\n\tclock: Clock,\n): Promise<SendMailResult> {\n\tconst { domain, resolver } = options;\n\tif (typeof domain !== 'string' || domain === '')\n\t\tthrow invalid('domain must be a domain name');\n\tif (typeof resolver?.mx !== 'function')\n\t\tthrow invalid('resolver must be a Resolver, such as @bumail/dns gives');\n\tconst port = portOf(options.port, 25);\n\tlet last: unknown;\n\tlet dnsError: unknown;\n\tlet tried = 0;\n\tlet looked = 0;\n\tconst mailHosts = await withinDeadline(\n\t\tresolveMx(domain, resolver),\n\t\tclock,\n\t\tdomain,\n\t\t'the MX lookup',\n\t);\n\thosts: for (const mx of mailHosts) {\n\t\t// A host looked up counts, with an address or not: no endless lookups.\n\t\tif (tried >= MAX_ADDRESSES || looked++ >= MAX_ADDRESSES) break;\n\t\tconst addresses = await withinDeadline(\n\t\t\taddressesOf(mx.host, resolver),\n\t\t\tclock,\n\t\t\tmx.host,\n\t\t\t'the address lookup',\n\t\t);\n\t\tif (!Array.isArray(addresses)) {\n\t\t\tdnsError = addresses.error;\n\t\t\tcontinue;\n\t\t}\n\t\tfor (const address of addresses) {\n\t\t\tif (tried++ >= MAX_ADDRESSES) break hosts;\n\t\t\ttry {\n\t\t\t\treturn await attempt(\n\t\t\t\t\t{ host: mx.host, address, port },\n\t\t\t\t\tsettings,\n\t\t\t\t\tcontent,\n\t\t\t\t\tclock,\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tconst next =\n\t\t\t\t\terror instanceof SmtpError && error.temporary && early.has(error);\n\t\t\t\tif (!next) throw error;\n\t\t\t\tlast = error;\n\t\t\t}\n\t\t}\n\t}\n\tthrow last ?? noAddress(domain, dnsError);\n}\n\n/**\n * Delivers one message to one destination: a host (`{ host, port }`, a\n * smarthost or a submission server) or a domain's mail hosts (`{ domain,\n * resolver }`, by MX). Resolves once the server took the message for one\n * recipient at least; rejects with an `SmtpError` otherwise, `temporary`\n * telling whether to try again later. It is not a queue: retries are the\n * caller's.\n */\nexport async function sendMail(\n\tmessage: MessageSource,\n\toptions: SendMailOptions,\n): Promise<SendMailResult> {\n\tconst settings = settingsOf(options);\n\tconst content = contentOf(message, settings.normalizeLineEnds, settings.size);\n\tconst clock = new Clock(settings.deadline);\n\tif (!byMx(options)) {\n\t\tconst { host } = options;\n\t\tif (typeof host !== 'string' || !/^[^\\s/]+$/.test(host))\n\t\t\tthrow invalid(`host must be a host name or an address, not ${host}`);\n\t\tconst port = portOf(options.port, settings.secure ? 465 : 25);\n\t\treturn attempt({ host, address: host, port }, settings, content, clock);\n\t}\n\treturn viaMx(options, settings, content, clock);\n}\n"
|
|
19
19
|
],
|
|
20
|
-
"mappings": "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",
|
|
21
|
-
"debugId": "
|
|
20
|
+
"mappings": "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",
|
|
21
|
+
"debugId": "F9FE8E458D7309C564756E2164756E21",
|
|
22
22
|
"names": []
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/client/socket.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EACN,KAAK,KAAK,EACV,KAAK,QAAQ,EAEb,KAAK,SAAS,EAEd,MAAM,UAAU,CAAC;AAElB;;;;;GAKG;AACH,qBAAa,YAAY;;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAatB,MAAM,UAAS;IACf,yDAAyD;IACzD,QAAQ,UAAS;IAEjB,OAAO;IAKP,kEAAkE;WACrD,IAAI,CAChB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,SAAS,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,GACV,OAAO,CAAC,YAAY,CAAC;IAwHxB,sHAAsH;IAChH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAkB1D,wLAAwL;IACxL,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/client/socket.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EACN,KAAK,KAAK,EACV,KAAK,QAAQ,EAEb,KAAK,SAAS,EAEd,MAAM,UAAU,CAAC;AAElB;;;;;GAKG;AACH,qBAAa,YAAY;;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAatB,MAAM,UAAS;IACf,yDAAyD;IACzD,QAAQ,UAAS;IAEjB,OAAO;IAKP,kEAAkE;WACrD,IAAI,CAChB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,SAAS,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,GACV,OAAO,CAAC,YAAY,CAAC;IAwHxB,sHAAsH;IAChH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAkB1D,wLAAwL;IACxL,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAWzE,kGAAkG;IAClG,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO;IAQzC,sDAAsD;IAChD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7C,6GAA6G;IACvG,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9D,wEAAwE;IACxE,KAAK,CAAC,GAAG,UAAQ,GAAG,IAAI;CAKxB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bumail/smtp",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "An SMTP server on Bun.listen — RFC 5321 with PIPELINING, SIZE, 8BITMIME, SMTPUTF8, STARTTLS and AUTH after TLS, policy hooks, and no open relay — and a client that delivers a message to a smarthost or by MX",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|