payload-plugin-newsletter 0.16.1 → 0.16.3
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/CHANGELOG.md +24 -0
- package/dist/collections.cjs +79 -16
- package/dist/collections.cjs.map +1 -1
- package/dist/collections.js +79 -16
- package/dist/collections.js.map +1 -1
- package/dist/index.cjs +82 -19
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +82 -19
- package/dist/index.js.map +1 -1
- package/dist/utils.cjs +49 -0
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +7 -1
- package/dist/utils.d.ts +7 -1
- package/dist/utils.js +47 -0
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/dist/collections.js
CHANGED
|
@@ -1149,6 +1149,29 @@ function wrapInEmailTemplate(content, preheader) {
|
|
|
1149
1149
|
</html>`;
|
|
1150
1150
|
}
|
|
1151
1151
|
|
|
1152
|
+
// src/utils/getBroadcastConfig.ts
|
|
1153
|
+
async function getBroadcastConfig(req, pluginConfig) {
|
|
1154
|
+
try {
|
|
1155
|
+
const settings = await req.payload.findGlobal({
|
|
1156
|
+
slug: pluginConfig.settingsSlug || "newsletter-settings",
|
|
1157
|
+
req
|
|
1158
|
+
});
|
|
1159
|
+
if (settings?.provider === "broadcast" && settings?.broadcastSettings) {
|
|
1160
|
+
return {
|
|
1161
|
+
apiUrl: settings.broadcastSettings.apiUrl || pluginConfig.providers?.broadcast?.apiUrl || "",
|
|
1162
|
+
token: settings.broadcastSettings.token || pluginConfig.providers?.broadcast?.token || "",
|
|
1163
|
+
fromAddress: settings.fromAddress || pluginConfig.providers?.broadcast?.fromAddress || "",
|
|
1164
|
+
fromName: settings.fromName || pluginConfig.providers?.broadcast?.fromName || "",
|
|
1165
|
+
replyTo: settings.replyTo || pluginConfig.providers?.broadcast?.replyTo
|
|
1166
|
+
};
|
|
1167
|
+
}
|
|
1168
|
+
return pluginConfig.providers?.broadcast || null;
|
|
1169
|
+
} catch (error) {
|
|
1170
|
+
req.payload.logger.error("Failed to get broadcast config from settings:", error);
|
|
1171
|
+
return pluginConfig.providers?.broadcast || null;
|
|
1172
|
+
}
|
|
1173
|
+
}
|
|
1174
|
+
|
|
1152
1175
|
// src/collections/Broadcasts.ts
|
|
1153
1176
|
var createBroadcastsCollection = (pluginConfig) => {
|
|
1154
1177
|
const hasProviders = !!(pluginConfig.providers?.broadcast || pluginConfig.providers?.resend);
|
|
@@ -1389,9 +1412,9 @@ var createBroadcastsCollection = (pluginConfig) => {
|
|
|
1389
1412
|
async ({ doc, operation, req }) => {
|
|
1390
1413
|
if (!hasProviders || operation !== "create") return doc;
|
|
1391
1414
|
try {
|
|
1392
|
-
const providerConfig = pluginConfig
|
|
1393
|
-
if (!providerConfig) {
|
|
1394
|
-
req.payload.logger.error("Broadcast provider not configured");
|
|
1415
|
+
const providerConfig = await getBroadcastConfig(req, pluginConfig);
|
|
1416
|
+
if (!providerConfig || !providerConfig.token) {
|
|
1417
|
+
req.payload.logger.error("Broadcast provider not configured in Newsletter Settings or environment variables");
|
|
1395
1418
|
return doc;
|
|
1396
1419
|
}
|
|
1397
1420
|
const { BroadcastApiProvider: BroadcastApiProvider2 } = await Promise.resolve().then(() => (init_broadcast2(), broadcast_exports));
|
|
@@ -1423,7 +1446,17 @@ var createBroadcastsCollection = (pluginConfig) => {
|
|
|
1423
1446
|
providerData: providerBroadcast.providerData
|
|
1424
1447
|
};
|
|
1425
1448
|
} catch (error) {
|
|
1426
|
-
|
|
1449
|
+
if (error instanceof Error) {
|
|
1450
|
+
req.payload.logger.error("Failed to create broadcast in provider:", {
|
|
1451
|
+
message: error.message,
|
|
1452
|
+
stack: error.stack,
|
|
1453
|
+
name: error.name,
|
|
1454
|
+
// If it's a BroadcastProviderError, it might have additional details
|
|
1455
|
+
...error.details
|
|
1456
|
+
});
|
|
1457
|
+
} else {
|
|
1458
|
+
req.payload.logger.error("Failed to create broadcast in provider:", error);
|
|
1459
|
+
}
|
|
1427
1460
|
return doc;
|
|
1428
1461
|
}
|
|
1429
1462
|
},
|
|
@@ -1437,13 +1470,13 @@ var createBroadcastsCollection = (pluginConfig) => {
|
|
|
1437
1470
|
return doc;
|
|
1438
1471
|
}
|
|
1439
1472
|
try {
|
|
1440
|
-
const broadcastConfig = pluginConfig
|
|
1473
|
+
const broadcastConfig = await getBroadcastConfig(req, pluginConfig);
|
|
1441
1474
|
const resendConfig = pluginConfig.providers?.resend;
|
|
1442
1475
|
if (!broadcastConfig && !resendConfig) {
|
|
1443
|
-
req.payload.logger.error("No provider configured for sending");
|
|
1476
|
+
req.payload.logger.error("No provider configured for sending in Newsletter Settings or environment variables");
|
|
1444
1477
|
return doc;
|
|
1445
1478
|
}
|
|
1446
|
-
if (broadcastConfig) {
|
|
1479
|
+
if (broadcastConfig && broadcastConfig.token) {
|
|
1447
1480
|
const { BroadcastApiProvider: BroadcastApiProvider2 } = await Promise.resolve().then(() => (init_broadcast2(), broadcast_exports));
|
|
1448
1481
|
const provider = new BroadcastApiProvider2(broadcastConfig);
|
|
1449
1482
|
await provider.send(doc.providerId);
|
|
@@ -1459,7 +1492,17 @@ var createBroadcastsCollection = (pluginConfig) => {
|
|
|
1459
1492
|
});
|
|
1460
1493
|
req.payload.logger.info(`Broadcast ${doc.id} sent successfully`);
|
|
1461
1494
|
} catch (error) {
|
|
1462
|
-
|
|
1495
|
+
if (error instanceof Error) {
|
|
1496
|
+
req.payload.logger.error(`Failed to send broadcast ${doc.id}:`, {
|
|
1497
|
+
message: error.message,
|
|
1498
|
+
stack: error.stack,
|
|
1499
|
+
name: error.name,
|
|
1500
|
+
// If it's a BroadcastProviderError, it might have additional details
|
|
1501
|
+
...error.details
|
|
1502
|
+
});
|
|
1503
|
+
} else {
|
|
1504
|
+
req.payload.logger.error(`Failed to send broadcast ${doc.id}:`, error);
|
|
1505
|
+
}
|
|
1463
1506
|
await req.payload.update({
|
|
1464
1507
|
collection: "broadcasts",
|
|
1465
1508
|
id: doc.id,
|
|
@@ -1478,9 +1521,9 @@ var createBroadcastsCollection = (pluginConfig) => {
|
|
|
1478
1521
|
async ({ data, originalDoc, operation, req }) => {
|
|
1479
1522
|
if (!hasProviders || !originalDoc?.providerId || operation !== "update") return data;
|
|
1480
1523
|
try {
|
|
1481
|
-
const providerConfig = pluginConfig
|
|
1482
|
-
if (!providerConfig) {
|
|
1483
|
-
req.payload.logger.error("Broadcast provider not configured");
|
|
1524
|
+
const providerConfig = await getBroadcastConfig(req, pluginConfig);
|
|
1525
|
+
if (!providerConfig || !providerConfig.token) {
|
|
1526
|
+
req.payload.logger.error("Broadcast provider not configured in Newsletter Settings or environment variables");
|
|
1484
1527
|
return data;
|
|
1485
1528
|
}
|
|
1486
1529
|
const { BroadcastApiProvider: BroadcastApiProvider2 } = await Promise.resolve().then(() => (init_broadcast2(), broadcast_exports));
|
|
@@ -1514,7 +1557,17 @@ var createBroadcastsCollection = (pluginConfig) => {
|
|
|
1514
1557
|
await provider.update(originalDoc.providerId, updates);
|
|
1515
1558
|
}
|
|
1516
1559
|
} catch (error) {
|
|
1517
|
-
|
|
1560
|
+
if (error instanceof Error) {
|
|
1561
|
+
req.payload.logger.error("Failed to update broadcast in provider:", {
|
|
1562
|
+
message: error.message,
|
|
1563
|
+
stack: error.stack,
|
|
1564
|
+
name: error.name,
|
|
1565
|
+
// If it's a BroadcastProviderError, it might have additional details
|
|
1566
|
+
...error.details
|
|
1567
|
+
});
|
|
1568
|
+
} else {
|
|
1569
|
+
req.payload.logger.error("Failed to update broadcast in provider:", error);
|
|
1570
|
+
}
|
|
1518
1571
|
}
|
|
1519
1572
|
return data;
|
|
1520
1573
|
}
|
|
@@ -1524,9 +1577,9 @@ var createBroadcastsCollection = (pluginConfig) => {
|
|
|
1524
1577
|
async ({ doc, req }) => {
|
|
1525
1578
|
if (!hasProviders || !doc?.providerId) return doc;
|
|
1526
1579
|
try {
|
|
1527
|
-
const providerConfig = pluginConfig
|
|
1528
|
-
if (!providerConfig) {
|
|
1529
|
-
req.payload.logger.error("Broadcast provider not configured");
|
|
1580
|
+
const providerConfig = await getBroadcastConfig(req, pluginConfig);
|
|
1581
|
+
if (!providerConfig || !providerConfig.token) {
|
|
1582
|
+
req.payload.logger.error("Broadcast provider not configured in Newsletter Settings or environment variables");
|
|
1530
1583
|
return doc;
|
|
1531
1584
|
}
|
|
1532
1585
|
const { BroadcastApiProvider: BroadcastApiProvider2 } = await Promise.resolve().then(() => (init_broadcast2(), broadcast_exports));
|
|
@@ -1536,7 +1589,17 @@ var createBroadcastsCollection = (pluginConfig) => {
|
|
|
1536
1589
|
await provider.delete(doc.providerId);
|
|
1537
1590
|
}
|
|
1538
1591
|
} catch (error) {
|
|
1539
|
-
|
|
1592
|
+
if (error instanceof Error) {
|
|
1593
|
+
req.payload.logger.error("Failed to delete broadcast from provider:", {
|
|
1594
|
+
message: error.message,
|
|
1595
|
+
stack: error.stack,
|
|
1596
|
+
name: error.name,
|
|
1597
|
+
// If it's a BroadcastProviderError, it might have additional details
|
|
1598
|
+
...error.details
|
|
1599
|
+
});
|
|
1600
|
+
} else {
|
|
1601
|
+
req.payload.logger.error("Failed to delete broadcast from provider:", error);
|
|
1602
|
+
}
|
|
1540
1603
|
}
|
|
1541
1604
|
return doc;
|
|
1542
1605
|
}
|