@upyo/maileroo 0.6.0-dev.311 → 0.6.0-dev.314
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/index.cjs +14 -27
- package/dist/index.js +15 -28
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -222,20 +222,20 @@ function parseResponse(text) {
|
|
|
222
222
|
function truncateErrorMessage(message) {
|
|
223
223
|
return message.length > maxErrorMessageLength ? `${message.slice(0, maxErrorMessageLength)}...` : message;
|
|
224
224
|
}
|
|
225
|
-
function abortReason
|
|
225
|
+
function abortReason(signal) {
|
|
226
226
|
return signal?.reason ?? new DOMException("The operation was aborted.", "AbortError");
|
|
227
227
|
}
|
|
228
228
|
function sleep(ms, signal) {
|
|
229
229
|
return new Promise((resolve, reject) => {
|
|
230
230
|
if (signal?.aborted) {
|
|
231
|
-
reject(abortReason
|
|
231
|
+
reject(abortReason(signal));
|
|
232
232
|
return;
|
|
233
233
|
}
|
|
234
234
|
const timeoutState = {};
|
|
235
235
|
const onAbort = () => {
|
|
236
236
|
if (timeoutState.id !== void 0) clearTimeout(timeoutState.id);
|
|
237
237
|
signal?.removeEventListener("abort", onAbort);
|
|
238
|
-
reject(abortReason
|
|
238
|
+
reject(abortReason(signal));
|
|
239
239
|
};
|
|
240
240
|
signal?.addEventListener("abort", onAbort, { once: true });
|
|
241
241
|
if (signal?.aborted) {
|
|
@@ -299,7 +299,16 @@ async function convertMessage(message, config, signal) {
|
|
|
299
299
|
if (Object.keys(tags).length > 0) emailData.tags = tags;
|
|
300
300
|
const headers = convertHeaders(message);
|
|
301
301
|
if (Object.keys(headers).length > 0) emailData.headers = headers;
|
|
302
|
-
if (message.attachments.length > 0)
|
|
302
|
+
if (message.attachments.length > 0) {
|
|
303
|
+
const cancellation = new AbortController();
|
|
304
|
+
const combined = (0, __upyo_core.combineSignals)(cancellation.signal, signal);
|
|
305
|
+
try {
|
|
306
|
+
emailData.attachments = await Promise.all(message.attachments.map((attachment) => convertAttachment(attachment, combined.signal)));
|
|
307
|
+
} finally {
|
|
308
|
+
cancellation.abort();
|
|
309
|
+
combined.cleanup();
|
|
310
|
+
}
|
|
311
|
+
}
|
|
303
312
|
signal?.throwIfAborted();
|
|
304
313
|
return emailData;
|
|
305
314
|
}
|
|
@@ -363,7 +372,7 @@ function convertHeaders(message) {
|
|
|
363
372
|
}
|
|
364
373
|
async function convertAttachment(attachment, signal) {
|
|
365
374
|
signal?.throwIfAborted();
|
|
366
|
-
const content = await
|
|
375
|
+
const content = await (0, __upyo_core.readAttachmentContent)(attachment.content, signal);
|
|
367
376
|
signal?.throwIfAborted();
|
|
368
377
|
return {
|
|
369
378
|
file_name: getAttachmentFileName(attachment),
|
|
@@ -372,28 +381,6 @@ async function convertAttachment(attachment, signal) {
|
|
|
372
381
|
inline: attachment.inline || void 0
|
|
373
382
|
};
|
|
374
383
|
}
|
|
375
|
-
function waitForAttachmentContent(content, signal) {
|
|
376
|
-
if (content instanceof Uint8Array) return signal?.aborted ? Promise.reject(abortReason(signal)) : Promise.resolve(content);
|
|
377
|
-
if (signal == null) return content;
|
|
378
|
-
if (signal.aborted) return Promise.reject(abortReason(signal));
|
|
379
|
-
return new Promise((resolve, reject) => {
|
|
380
|
-
const onAbort = () => {
|
|
381
|
-
signal.removeEventListener("abort", onAbort);
|
|
382
|
-
reject(abortReason(signal));
|
|
383
|
-
};
|
|
384
|
-
signal.addEventListener("abort", onAbort, { once: true });
|
|
385
|
-
Promise.resolve(content).then((value) => {
|
|
386
|
-
signal.removeEventListener("abort", onAbort);
|
|
387
|
-
resolve(value);
|
|
388
|
-
}, (error) => {
|
|
389
|
-
signal.removeEventListener("abort", onAbort);
|
|
390
|
-
reject(error);
|
|
391
|
-
});
|
|
392
|
-
});
|
|
393
|
-
}
|
|
394
|
-
function abortReason(signal) {
|
|
395
|
-
return signal.reason ?? new DOMException("The operation was aborted.", "AbortError");
|
|
396
|
-
}
|
|
397
384
|
function getAttachmentFileName(attachment) {
|
|
398
385
|
return attachment.inline && typeof attachment.contentId === "string" && attachment.contentId !== "" ? attachment.contentId : attachment.filename;
|
|
399
386
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { combineSignals, createFailedReceipt, parseRetryAfter } from "@upyo/core";
|
|
1
|
+
import { combineSignals, createFailedReceipt, parseRetryAfter, readAttachmentContent } from "@upyo/core";
|
|
2
2
|
|
|
3
3
|
//#region src/config.ts
|
|
4
4
|
/**
|
|
@@ -199,20 +199,20 @@ function parseResponse(text) {
|
|
|
199
199
|
function truncateErrorMessage(message) {
|
|
200
200
|
return message.length > maxErrorMessageLength ? `${message.slice(0, maxErrorMessageLength)}...` : message;
|
|
201
201
|
}
|
|
202
|
-
function abortReason
|
|
202
|
+
function abortReason(signal) {
|
|
203
203
|
return signal?.reason ?? new DOMException("The operation was aborted.", "AbortError");
|
|
204
204
|
}
|
|
205
205
|
function sleep(ms, signal) {
|
|
206
206
|
return new Promise((resolve, reject) => {
|
|
207
207
|
if (signal?.aborted) {
|
|
208
|
-
reject(abortReason
|
|
208
|
+
reject(abortReason(signal));
|
|
209
209
|
return;
|
|
210
210
|
}
|
|
211
211
|
const timeoutState = {};
|
|
212
212
|
const onAbort = () => {
|
|
213
213
|
if (timeoutState.id !== void 0) clearTimeout(timeoutState.id);
|
|
214
214
|
signal?.removeEventListener("abort", onAbort);
|
|
215
|
-
reject(abortReason
|
|
215
|
+
reject(abortReason(signal));
|
|
216
216
|
};
|
|
217
217
|
signal?.addEventListener("abort", onAbort, { once: true });
|
|
218
218
|
if (signal?.aborted) {
|
|
@@ -276,7 +276,16 @@ async function convertMessage(message, config, signal) {
|
|
|
276
276
|
if (Object.keys(tags).length > 0) emailData.tags = tags;
|
|
277
277
|
const headers = convertHeaders(message);
|
|
278
278
|
if (Object.keys(headers).length > 0) emailData.headers = headers;
|
|
279
|
-
if (message.attachments.length > 0)
|
|
279
|
+
if (message.attachments.length > 0) {
|
|
280
|
+
const cancellation = new AbortController();
|
|
281
|
+
const combined = combineSignals(cancellation.signal, signal);
|
|
282
|
+
try {
|
|
283
|
+
emailData.attachments = await Promise.all(message.attachments.map((attachment) => convertAttachment(attachment, combined.signal)));
|
|
284
|
+
} finally {
|
|
285
|
+
cancellation.abort();
|
|
286
|
+
combined.cleanup();
|
|
287
|
+
}
|
|
288
|
+
}
|
|
280
289
|
signal?.throwIfAborted();
|
|
281
290
|
return emailData;
|
|
282
291
|
}
|
|
@@ -340,7 +349,7 @@ function convertHeaders(message) {
|
|
|
340
349
|
}
|
|
341
350
|
async function convertAttachment(attachment, signal) {
|
|
342
351
|
signal?.throwIfAborted();
|
|
343
|
-
const content = await
|
|
352
|
+
const content = await readAttachmentContent(attachment.content, signal);
|
|
344
353
|
signal?.throwIfAborted();
|
|
345
354
|
return {
|
|
346
355
|
file_name: getAttachmentFileName(attachment),
|
|
@@ -349,28 +358,6 @@ async function convertAttachment(attachment, signal) {
|
|
|
349
358
|
inline: attachment.inline || void 0
|
|
350
359
|
};
|
|
351
360
|
}
|
|
352
|
-
function waitForAttachmentContent(content, signal) {
|
|
353
|
-
if (content instanceof Uint8Array) return signal?.aborted ? Promise.reject(abortReason(signal)) : Promise.resolve(content);
|
|
354
|
-
if (signal == null) return content;
|
|
355
|
-
if (signal.aborted) return Promise.reject(abortReason(signal));
|
|
356
|
-
return new Promise((resolve, reject) => {
|
|
357
|
-
const onAbort = () => {
|
|
358
|
-
signal.removeEventListener("abort", onAbort);
|
|
359
|
-
reject(abortReason(signal));
|
|
360
|
-
};
|
|
361
|
-
signal.addEventListener("abort", onAbort, { once: true });
|
|
362
|
-
Promise.resolve(content).then((value) => {
|
|
363
|
-
signal.removeEventListener("abort", onAbort);
|
|
364
|
-
resolve(value);
|
|
365
|
-
}, (error) => {
|
|
366
|
-
signal.removeEventListener("abort", onAbort);
|
|
367
|
-
reject(error);
|
|
368
|
-
});
|
|
369
|
-
});
|
|
370
|
-
}
|
|
371
|
-
function abortReason(signal) {
|
|
372
|
-
return signal.reason ?? new DOMException("The operation was aborted.", "AbortError");
|
|
373
|
-
}
|
|
374
361
|
function getAttachmentFileName(attachment) {
|
|
375
362
|
return attachment.inline && typeof attachment.contentId === "string" && attachment.contentId !== "" ? attachment.contentId : attachment.filename;
|
|
376
363
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@upyo/maileroo",
|
|
3
|
-
"version": "0.6.0-dev.
|
|
3
|
+
"version": "0.6.0-dev.314",
|
|
4
4
|
"description": "Maileroo transport for Upyo email library",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"email",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
},
|
|
54
54
|
"sideEffects": false,
|
|
55
55
|
"peerDependencies": {
|
|
56
|
-
"@upyo/core": "0.6.0-dev.
|
|
56
|
+
"@upyo/core": "0.6.0-dev.314+70a7c9c7"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"tsdown": "^0.12.7",
|