@upyo/mailgun 0.1.0-dev.13 → 0.1.0-dev.9

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/README.md CHANGED
@@ -3,17 +3,9 @@
3
3
  @upyo/mailgun
4
4
  =============
5
5
 
6
- [![JSR][JSR badge]][JSR]
7
- [![npm][npm badge]][npm]
6
+ [Mailgun] transport for Upyo email library.
8
7
 
9
- [Mailgun] transport for the [Upyo] email library.
10
-
11
- [JSR]: https://jsr.io/@upyo/mailgun
12
- [JSR badge]: https://jsr.io/badges/@upyo/mailgun
13
- [npm]: https://www.npmjs.com/package/@upyo/mailgun
14
- [npm badge]: https://img.shields.io/npm/v/@upyo/mailgun?logo=npm
15
8
  [Mailgun]: https://www.mailgun.com/
16
- [Upyo]: https://upyo.org/
17
9
 
18
10
 
19
11
  Installation
@@ -32,31 +24,22 @@ Usage
32
24
  -----
33
25
 
34
26
  ~~~~ typescript
35
- import { createMessage } from "@upyo/core";
36
- import { MailgunTransport } from "@upyo/mailgun";
37
- import fs from "node:fs/promises";
38
- import process from "node:process";
39
-
40
- const message = createMessage({
41
- from: "sender@example.com",
42
- to: "recipient@example.net",
43
- subject: "Hello from Upyo!",
44
- content: { text: "This is a test email." },
45
- attachments: [
46
- new File(
47
- [await fs.readFile("image.jpg"), "image.jpg", { type: "image/jpeg" }]
48
- )
49
- ],
50
- });
27
+ import { MailgunTransport } from '@upyo/mailgun';
51
28
 
52
29
  const transport = new MailgunTransport({
53
- apiKey: process.env.MAILGUN_KEY!,
54
- domain: process.env.MAILGUN_DOMAIN!,
55
- region: process.env.MAILGUN_REGION as "us" | "eu",
30
+ apiKey: 'your-api-key',
31
+ domain: 'your-domain.com'
56
32
  });
57
33
 
34
+ const message = {
35
+ sender: { address: 'sender@example.com' },
36
+ recipients: [{ address: 'recipient@example.com' }],
37
+ subject: 'Hello from Mailgun!',
38
+ content: { text: 'Hello, World!' }
39
+ };
40
+
58
41
  const receipt = await transport.send(message);
59
- console.log("Email sent:", receipt.successful);
42
+ console.log('Message sent:', receipt.messageId);
60
43
  ~~~~
61
44
 
62
45
 
package/dist/index.cjs CHANGED
@@ -162,11 +162,11 @@ var MailgunApiError = class extends Error {
162
162
  *
163
163
  * @example
164
164
  * ```typescript
165
- * const formData = await convertMessage(message, config);
165
+ * const formData = convertMessage(message, config);
166
166
  * const response = await fetch(url, { method: 'POST', body: formData });
167
167
  * ```
168
168
  */
169
- async function convertMessage(message, config) {
169
+ function convertMessage(message, config) {
170
170
  const formData = new FormData();
171
171
  formData.append("from", formatAddress(message.sender));
172
172
  for (const recipient of message.recipients) formData.append("to", formatAddress(recipient));
@@ -191,7 +191,7 @@ async function convertMessage(message, config) {
191
191
  }
192
192
  for (const tag of message.tags) formData.append("o:tag", tag);
193
193
  for (const [key, value] of message.headers.entries()) if (!isStandardHeader(key)) formData.append(`h:${key}`, value);
194
- for (const attachment of message.attachments) await appendAttachment(formData, attachment);
194
+ for (const attachment of message.attachments) appendAttachment(formData, attachment);
195
195
  if (config.tracking !== void 0) formData.append("o:tracking", config.tracking ? "yes" : "no");
196
196
  if (config.clickTracking !== void 0) formData.append("o:tracking-clicks", config.clickTracking ? "yes" : "no");
197
197
  if (config.openTracking !== void 0) formData.append("o:tracking-opens", config.openTracking ? "yes" : "no");
@@ -216,8 +216,8 @@ function formatAddress(address) {
216
216
  * @param formData - The FormData to append to
217
217
  * @param attachment - The attachment to append
218
218
  */
219
- async function appendAttachment(formData, attachment) {
220
- const blob = new Blob([await attachment.content], { type: attachment.contentType });
219
+ function appendAttachment(formData, attachment) {
220
+ const blob = new Blob([attachment.content], { type: attachment.contentType });
221
221
  if (attachment.contentId) formData.append("inline", blob, attachment.filename);
222
222
  else formData.append("attachment", blob, attachment.filename);
223
223
  }
@@ -314,7 +314,7 @@ var MailgunTransport = class {
314
314
  async send(message, options) {
315
315
  options?.signal?.throwIfAborted();
316
316
  try {
317
- const formData = await convertMessage(message, this.config);
317
+ const formData = convertMessage(message, this.config);
318
318
  options?.signal?.throwIfAborted();
319
319
  const response = await this.httpClient.sendMessage(formData, options?.signal);
320
320
  return {
package/dist/index.js CHANGED
@@ -161,11 +161,11 @@ var MailgunApiError = class extends Error {
161
161
  *
162
162
  * @example
163
163
  * ```typescript
164
- * const formData = await convertMessage(message, config);
164
+ * const formData = convertMessage(message, config);
165
165
  * const response = await fetch(url, { method: 'POST', body: formData });
166
166
  * ```
167
167
  */
168
- async function convertMessage(message, config) {
168
+ function convertMessage(message, config) {
169
169
  const formData = new FormData();
170
170
  formData.append("from", formatAddress(message.sender));
171
171
  for (const recipient of message.recipients) formData.append("to", formatAddress(recipient));
@@ -190,7 +190,7 @@ async function convertMessage(message, config) {
190
190
  }
191
191
  for (const tag of message.tags) formData.append("o:tag", tag);
192
192
  for (const [key, value] of message.headers.entries()) if (!isStandardHeader(key)) formData.append(`h:${key}`, value);
193
- for (const attachment of message.attachments) await appendAttachment(formData, attachment);
193
+ for (const attachment of message.attachments) appendAttachment(formData, attachment);
194
194
  if (config.tracking !== void 0) formData.append("o:tracking", config.tracking ? "yes" : "no");
195
195
  if (config.clickTracking !== void 0) formData.append("o:tracking-clicks", config.clickTracking ? "yes" : "no");
196
196
  if (config.openTracking !== void 0) formData.append("o:tracking-opens", config.openTracking ? "yes" : "no");
@@ -215,8 +215,8 @@ function formatAddress(address) {
215
215
  * @param formData - The FormData to append to
216
216
  * @param attachment - The attachment to append
217
217
  */
218
- async function appendAttachment(formData, attachment) {
219
- const blob = new Blob([await attachment.content], { type: attachment.contentType });
218
+ function appendAttachment(formData, attachment) {
219
+ const blob = new Blob([attachment.content], { type: attachment.contentType });
220
220
  if (attachment.contentId) formData.append("inline", blob, attachment.filename);
221
221
  else formData.append("attachment", blob, attachment.filename);
222
222
  }
@@ -313,7 +313,7 @@ var MailgunTransport = class {
313
313
  async send(message, options) {
314
314
  options?.signal?.throwIfAborted();
315
315
  try {
316
- const formData = await convertMessage(message, this.config);
316
+ const formData = convertMessage(message, this.config);
317
317
  options?.signal?.throwIfAborted();
318
318
  const response = await this.httpClient.sendMessage(formData, options?.signal);
319
319
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@upyo/mailgun",
3
- "version": "0.1.0-dev.13+aad44636",
3
+ "version": "0.1.0-dev.9+a57dde18",
4
4
  "description": "Mailgun transport for Upyo email library",
5
5
  "keywords": [
6
6
  "email",
@@ -53,12 +53,12 @@
53
53
  },
54
54
  "sideEffects": false,
55
55
  "peerDependencies": {
56
- "@upyo/core": "0.1.0-dev.13+aad44636"
56
+ "@upyo/core": "0.1.0-dev.9+a57dde18"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@dotenvx/dotenvx": "^1.47.3",
60
60
  "tsdown": "^0.12.7",
61
- "typescript": "5.8.3"
61
+ "typescript": "^5.8.3"
62
62
  },
63
63
  "scripts": {
64
64
  "build": "tsdown",