@perseidesjs/notification-nodemailer 3.1.1 → 3.2.0
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.
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ProviderSendNotificationDTO, ProviderSendNotificationResultsDTO } from "@medusajs/framework/types";
|
|
2
2
|
import { AbstractNotificationProviderService } from "@medusajs/framework/utils";
|
|
3
3
|
import { type Transporter } from "nodemailer";
|
|
4
|
+
import type Mail from "nodemailer/lib/mailer";
|
|
4
5
|
import type SMTPConnection from "nodemailer/lib/smtp-connection";
|
|
5
6
|
import type SMTPTransport from "nodemailer/lib/smtp-transport";
|
|
6
7
|
/**
|
|
@@ -30,6 +31,7 @@ export declare function isBase64String(content: string): boolean;
|
|
|
30
31
|
* - Regular string: Passed through as-is (assumed to be base64 or text content)
|
|
31
32
|
*/
|
|
32
33
|
export declare function processAttachmentContent(content: string | Buffer): string | Buffer;
|
|
34
|
+
export declare function extractProviderData(provider_data: Record<string, unknown> | null | undefined): Pick<Mail.Options, "replyTo" | "cc" | "bcc">;
|
|
33
35
|
export type PluginOptions = SMTPConnection.Options & SMTPTransport.MailOptions & {
|
|
34
36
|
from: string;
|
|
35
37
|
};
|
|
@@ -8,6 +8,7 @@ exports.isBinaryString = isBinaryString;
|
|
|
8
8
|
exports.binaryStringToBuffer = binaryStringToBuffer;
|
|
9
9
|
exports.isBase64String = isBase64String;
|
|
10
10
|
exports.processAttachmentContent = processAttachmentContent;
|
|
11
|
+
exports.extractProviderData = extractProviderData;
|
|
11
12
|
const utils_1 = require("@medusajs/framework/utils");
|
|
12
13
|
const nodemailer_1 = __importDefault(require("nodemailer"));
|
|
13
14
|
/**
|
|
@@ -72,6 +73,21 @@ function processAttachmentContent(content) {
|
|
|
72
73
|
}
|
|
73
74
|
return content;
|
|
74
75
|
}
|
|
76
|
+
function extractProviderData(provider_data) {
|
|
77
|
+
if (!provider_data)
|
|
78
|
+
return {};
|
|
79
|
+
const result = {};
|
|
80
|
+
if ((0, utils_1.isDefined)(provider_data.replyTo)) {
|
|
81
|
+
result.replyTo = provider_data.replyTo;
|
|
82
|
+
}
|
|
83
|
+
if ((0, utils_1.isDefined)(provider_data.cc)) {
|
|
84
|
+
result.cc = provider_data.cc;
|
|
85
|
+
}
|
|
86
|
+
if ((0, utils_1.isDefined)(provider_data.bcc)) {
|
|
87
|
+
result.bcc = provider_data.bcc;
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
75
91
|
class NodemailerNotificationProviderService extends utils_1.AbstractNotificationProviderService {
|
|
76
92
|
constructor(_, options) {
|
|
77
93
|
super();
|
|
@@ -87,7 +103,7 @@ class NodemailerNotificationProviderService extends utils_1.AbstractNotification
|
|
|
87
103
|
}
|
|
88
104
|
}
|
|
89
105
|
async send(notification) {
|
|
90
|
-
const { to, content } = notification;
|
|
106
|
+
const { to, content, provider_data } = notification;
|
|
91
107
|
if (!(0, utils_1.isDefined)(this.options_.from) && !(0, utils_1.isDefined)(notification.from)) {
|
|
92
108
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `"from" is required in the ${NodemailerNotificationProviderService.identifier} provider's options.`);
|
|
93
109
|
}
|
|
@@ -121,6 +137,7 @@ class NodemailerNotificationProviderService extends utils_1.AbstractNotification
|
|
|
121
137
|
from: notification.from ?? this.options_.from,
|
|
122
138
|
to,
|
|
123
139
|
subject: content?.subject,
|
|
140
|
+
...extractProviderData(provider_data),
|
|
124
141
|
};
|
|
125
142
|
if ((0, utils_1.isDefined)(html)) {
|
|
126
143
|
mailOptions.html = html;
|
|
@@ -137,4 +154,4 @@ class NodemailerNotificationProviderService extends utils_1.AbstractNotification
|
|
|
137
154
|
exports.NodemailerNotificationProviderService = NodemailerNotificationProviderService;
|
|
138
155
|
NodemailerNotificationProviderService.identifier = "nodemailer";
|
|
139
156
|
exports.default = NodemailerNotificationProviderService;
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvbm9kZW1haWxlci9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXFCQSx3Q0FXQztBQU9ELG9EQU9DO0FBTUQsd0NBT0M7QUFTRCw0REFVQztBQUVELGtEQWVDO0FBM0ZELHFEQUlrQztBQUNsQyw0REFBeUQ7QUFLekQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLE9BQWU7SUFDN0MsOEJBQThCO0lBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxLQUFLLENBQUE7SUFDYixDQUFDO0lBQ0QsOENBQThDO0lBQzlDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxLQUFLLENBQUE7SUFDYixDQUFDO0lBQ0Qsa0RBQWtEO0lBQ2xELE9BQU8sT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUE7QUFDM0IsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxZQUFvQjtJQUN4RCxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUE7SUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2pELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUM1QyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQzFCLENB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
|
package/README.md
CHANGED
|
@@ -41,7 +41,7 @@ pnpm add @perseidesjs/notification-nodemailer
|
|
|
41
41
|
|
|
42
42
|
## Documentation
|
|
43
43
|
|
|
44
|
-
Access the full documentation at [docs.perseides.org/plugins/notification-nodemailer](https://docs.perseides.org/plugins/notification-nodemailer/getting-started)
|
|
44
|
+
Access the full documentation at [https://docs.perseides.org/docs/plugins/notification-nodemailer/getting-started](https://docs.perseides.org/docs/plugins/notification-nodemailer/getting-started)
|
|
45
45
|
|
|
46
46
|
## License
|
|
47
47
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@perseidesjs/notification-nodemailer",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "A Medusa plugin for sending notifications via Nodemailer (SMTP)",
|
|
5
5
|
"author": "adevinwild",
|
|
6
6
|
"license": "MIT",
|
|
@@ -43,14 +43,14 @@
|
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@biomejs/biome": "2.3.11",
|
|
45
45
|
"@changesets/cli": "^2.29.5",
|
|
46
|
-
"@medusajs/cli": "2.
|
|
47
|
-
"@medusajs/framework": "2.
|
|
48
|
-
"@medusajs/medusa": "2.
|
|
46
|
+
"@medusajs/cli": "2.14.1",
|
|
47
|
+
"@medusajs/framework": "2.14.1",
|
|
48
|
+
"@medusajs/medusa": "2.14.1",
|
|
49
49
|
"@swc/core": "1.5.7",
|
|
50
50
|
"@types/node": "^20.0.0",
|
|
51
51
|
"@types/nodemailer": "^6.4.17",
|
|
52
52
|
"@types/qrcode": "^1.5.6",
|
|
53
|
-
"nodemailer": "^
|
|
53
|
+
"nodemailer": "^8.0.5",
|
|
54
54
|
"qrcode": "^1.5.4",
|
|
55
55
|
"ts-node": "^10.9.2",
|
|
56
56
|
"typescript": "^5.6.2",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"@medusajs/cli": ">=2.13.0",
|
|
62
62
|
"@medusajs/framework": ">=2.13.0",
|
|
63
63
|
"@medusajs/medusa": ">=2.13.0",
|
|
64
|
-
"nodemailer": "^
|
|
64
|
+
"nodemailer": "^8.0.5"
|
|
65
65
|
},
|
|
66
66
|
"engines": {
|
|
67
67
|
"node": ">=20"
|