@forgezero/providers 0.1.20 → 0.1.21
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/binance.js +1 -1
- package/dist/chain.js +1 -1
- package/dist/database.js +1 -1
- package/dist/email.d.ts +4 -0
- package/dist/email.js +19 -5
- package/dist/http.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/pool.js +1 -1
- package/dist/storage.js +1 -1
- package/dist/translation.js +1 -1
- package/package.json +1 -1
package/dist/binance.js
CHANGED
package/dist/chain.js
CHANGED
package/dist/database.js
CHANGED
package/dist/email.d.ts
CHANGED
|
@@ -2,6 +2,10 @@ import { type EmailBatch, type EmailBatchResult, type EmailMessage } from './ind
|
|
|
2
2
|
export interface JetEmailConfig {
|
|
3
3
|
/** EU residency endpoint. */
|
|
4
4
|
eu?: boolean;
|
|
5
|
+
/** Bare sender mailbox. JetEmail's wire API receives it as `Name <mailbox>`. */
|
|
6
|
+
from?: string;
|
|
7
|
+
/** Optional display name. Defaults to the sender mailbox local part. */
|
|
8
|
+
fromName?: string;
|
|
5
9
|
endpoint?: string;
|
|
6
10
|
batchEndpoint?: string;
|
|
7
11
|
fetch?: typeof globalThis.fetch;
|
package/dist/email.js
CHANGED
|
@@ -336,7 +336,7 @@ function createService(definition, methods, options = {}) {
|
|
|
336
336
|
}
|
|
337
337
|
};
|
|
338
338
|
}
|
|
339
|
-
var VERSION = "0.1.
|
|
339
|
+
var VERSION = "0.1.21";
|
|
340
340
|
|
|
341
341
|
// src/email.ts
|
|
342
342
|
var recipients = (to) => Array.isArray(to) ? [...to] : [to];
|
|
@@ -348,6 +348,19 @@ function assertMessage(message) {
|
|
|
348
348
|
throw new ProviderError("EMAIL_NO_BODY", "An email needs html, text, or both.");
|
|
349
349
|
}
|
|
350
350
|
}
|
|
351
|
+
var JETEMAIL_MAILBOX = /^[^\s<>@]+@[^\s<>@]+\.[^\s<>@]+$/;
|
|
352
|
+
function jetemailSender(config, override) {
|
|
353
|
+
const mailbox = (override ?? config.from ?? "").trim();
|
|
354
|
+
if (!JETEMAIL_MAILBOX.test(mailbox)) {
|
|
355
|
+
throw new ProviderError("JETEMAIL_FROM", "JetEmail needs a valid sender mailbox.");
|
|
356
|
+
}
|
|
357
|
+
const fallbackName = mailbox.slice(0, mailbox.indexOf("@"));
|
|
358
|
+
const name = (config.fromName ?? fallbackName).trim();
|
|
359
|
+
if (!name || /[\r\n<>]/.test(name)) {
|
|
360
|
+
throw new ProviderError("JETEMAIL_FROM_NAME", "JetEmail sender name must be non-empty and header-safe.");
|
|
361
|
+
}
|
|
362
|
+
return `${name} <${mailbox}>`;
|
|
363
|
+
}
|
|
351
364
|
var jetemailCredentials = {
|
|
352
365
|
type: "object",
|
|
353
366
|
additionalProperties: false,
|
|
@@ -366,7 +379,8 @@ var jetemailConfig = {
|
|
|
366
379
|
additionalProperties: false,
|
|
367
380
|
properties: {
|
|
368
381
|
eu: { type: "boolean", default: false, title: "EU residency" },
|
|
369
|
-
from: { type: "string", format: "email", title: "Default from address" }
|
|
382
|
+
from: { type: "string", format: "email", title: "Default from address" },
|
|
383
|
+
fromName: { type: "string", minLength: 1, maxLength: 120, title: "Sender name" }
|
|
370
384
|
}
|
|
371
385
|
};
|
|
372
386
|
var jetemailSend = defineProviderMethod({
|
|
@@ -386,7 +400,7 @@ var jetemailSend = defineProviderMethod({
|
|
|
386
400
|
...message.idempotencyKey ? { "idempotency-key": message.idempotencyKey } : {}
|
|
387
401
|
},
|
|
388
402
|
body: JSON.stringify({
|
|
389
|
-
from: message.from
|
|
403
|
+
from: jetemailSender(config, message.from),
|
|
390
404
|
to: recipients(message.to),
|
|
391
405
|
subject: message.subject,
|
|
392
406
|
html: message.html,
|
|
@@ -395,7 +409,7 @@ var jetemailSend = defineProviderMethod({
|
|
|
395
409
|
eu: config.eu ?? false
|
|
396
410
|
})
|
|
397
411
|
});
|
|
398
|
-
if (response.status === 201 || response.status === 202) {
|
|
412
|
+
if (response.status === 200 || response.status === 201 || response.status === 202) {
|
|
399
413
|
const payload = await response.json().catch(() => ({}));
|
|
400
414
|
return { id: payload.id ?? "" };
|
|
401
415
|
}
|
|
@@ -437,7 +451,7 @@ var jetemailSendBatch = defineProviderMethod({
|
|
|
437
451
|
},
|
|
438
452
|
body: JSON.stringify({
|
|
439
453
|
emails: batch.emails.map((message) => ({
|
|
440
|
-
from: message.from
|
|
454
|
+
from: jetemailSender(config, message.from),
|
|
441
455
|
to: recipients(message.to),
|
|
442
456
|
subject: message.subject,
|
|
443
457
|
html: message.html,
|
package/dist/http.js
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/pool.js
CHANGED
package/dist/storage.js
CHANGED
package/dist/translation.js
CHANGED