@perseidesjs/notification-nodemailer 3.1.0 → 3.1.1

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.
@@ -17,6 +17,11 @@ export declare function isBinaryString(content: string): boolean;
17
17
  * of each byte, e.g., "0100100001101001" represents "Hi".
18
18
  */
19
19
  export declare function binaryStringToBuffer(binaryString: string): Buffer;
20
+ /**
21
+ * Checks if a string is valid base64 encoded data.
22
+ * Base64 strings contain only A-Z, a-z, 0-9, +, /, and optional = padding.
23
+ */
24
+ export declare function isBase64String(content: string): boolean;
20
25
  /**
21
26
  * Processes attachment content to ensure it's in a format Nodemailer can handle.
22
27
  * Supports:
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.NodemailerNotificationProviderService = void 0;
7
7
  exports.isBinaryString = isBinaryString;
8
8
  exports.binaryStringToBuffer = binaryStringToBuffer;
9
+ exports.isBase64String = isBase64String;
9
10
  exports.processAttachmentContent = processAttachmentContent;
10
11
  const utils_1 = require("@medusajs/framework/utils");
11
12
  const nodemailer_1 = __importDefault(require("nodemailer"));
@@ -41,6 +42,20 @@ function binaryStringToBuffer(binaryString) {
41
42
  }
42
43
  return Buffer.from(bytes);
43
44
  }
45
+ /**
46
+ * Checks if a string is valid base64 encoded data.
47
+ * Base64 strings contain only A-Z, a-z, 0-9, +, /, and optional = padding.
48
+ */
49
+ function isBase64String(content) {
50
+ if (content.length < 4)
51
+ return false;
52
+ // Binary strings (only 0s and 1s) are NOT base64
53
+ if (isBinaryString(content))
54
+ return false;
55
+ // Base64 pattern: alphanumeric, +, /, with optional = padding at end
56
+ // Allow strings not divisible by 4 (some encoders omit padding)
57
+ return /^[A-Za-z0-9+/]+=*$/.test(content);
58
+ }
44
59
  /**
45
60
  * Processes attachment content to ensure it's in a format Nodemailer can handle.
46
61
  * Supports:
@@ -84,19 +99,23 @@ class NodemailerNotificationProviderService extends utils_1.AbstractNotification
84
99
  if ((0, utils_1.isDefined)(notification.attachments) &&
85
100
  Array.isArray(notification.attachments) &&
86
101
  notification.attachments.length > 0) {
87
- attachments = notification.attachments.map((attachment) => ({
88
- content: processAttachmentContent(attachment.content),
89
- filename: attachment.filename,
90
- contentType: attachment.content_type,
91
- contentDisposition: attachment.disposition === "inline" ||
92
- attachment.disposition === "attachment"
93
- ? attachment.disposition
94
- : undefined,
95
- cid: attachment.id,
96
- contentTransferEncoding: attachment.content_type === "text/html"
97
- ? "quoted-printable"
98
- : "base64",
99
- }));
102
+ attachments = notification.attachments.map((attachment) => {
103
+ const processedContent = processAttachmentContent(attachment.content);
104
+ const isBase64Content = typeof processedContent === "string" &&
105
+ isBase64String(processedContent);
106
+ return {
107
+ content: processedContent,
108
+ filename: attachment.filename,
109
+ contentType: attachment.content_type,
110
+ contentDisposition: attachment.disposition === "inline" ||
111
+ attachment.disposition === "attachment"
112
+ ? attachment.disposition
113
+ : undefined,
114
+ cid: attachment.id,
115
+ // Tell nodemailer the content is base64-encoded so it decodes first
116
+ encoding: isBase64Content ? "base64" : undefined,
117
+ };
118
+ });
100
119
  }
101
120
  const mailOptions = {
102
121
  from: notification.from ?? this.options_.from,
@@ -118,4 +137,4 @@ class NodemailerNotificationProviderService extends utils_1.AbstractNotification
118
137
  exports.NodemailerNotificationProviderService = NodemailerNotificationProviderService;
119
138
  NodemailerNotificationProviderService.identifier = "nodemailer";
120
139
  exports.default = NodemailerNotificationProviderService;
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvbm9kZW1haWxlci9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXFCQSx3Q0FXQztBQU9ELG9EQU9DO0FBU0QsNERBVUM7QUE3REQscURBSWtDO0FBQ2xDLDREQUF5RDtBQUt6RDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixjQUFjLENBQUMsT0FBZTtJQUM3Qyw4QkFBOEI7SUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM5QixPQUFPLEtBQUssQ0FBQTtJQUNiLENBQUM7SUFDRCw4Q0FBOEM7SUFDOUMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM5QixPQUFPLEtBQUssQ0FBQTtJQUNiLENBQUM7SUFDRCxrREFBa0Q7SUFDbEQsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQTtBQUMzQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLFlBQW9CO0lBQ3hELE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQTtJQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzVDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDMUIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNI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
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvbm9kZW1haWxlci9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXFCQSx3Q0FXQztBQU9ELG9EQU9DO0FBTUQsd0NBT0M7QUFTRCw0REFVQztBQTFFRCxxREFJa0M7QUFDbEMsNERBQXlEO0FBS3pEOzs7Ozs7R0FNRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxPQUFlO0lBQzdDLDhCQUE4QjtJQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFBO0lBQ2IsQ0FBQztJQUNELDhDQUE4QztJQUM5QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFBO0lBQ2IsQ0FBQztJQUNELGtEQUFrRDtJQUNsRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFBO0FBQzNCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsWUFBb0I7SUFDeEQsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFBO0lBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNqRCxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDNUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakMsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUMxQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLE9BQWU7SUFDN0MsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUNwQyxpREFBaUQ7SUFDakQsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUE7SUFDekMscUVBQXFFO0lBQ3JFLGdFQUFnRTtJQUNoRSxPQUFPLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUMxQyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQ3ZDLE9BQXdCO0lBRXhCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sT0FBTyxDQUFBO0lBQ2YsQ0FBQztJQUNELElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzVELE9BQU8sb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFBO0FBQ2YsQ0FBQztBQU9ELE1BQWEscUNBQXNDLFNBQVEsMkNBQW1DO0lBTTdGLFlBQVksQ0FBQyxFQUFFLE9BQXNCO1FBQ3BDLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUE7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxvQkFBVSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUF5QjtRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxtQkFBVyxDQUNwQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLDZCQUE2QixxQ0FBcUMsQ0FBQyxVQUFVLHNCQUFzQixDQUNuRyxDQUFBO1FBQ0YsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLG1CQUFXLENBQ3BCLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsNkJBQTZCLHFDQUFxQyxDQUFDLFVBQVUsc0JBQXNCLENBQ25HLENBQUE7UUFDRixDQUFDO0lBQ0YsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQ1QsWUFBeUM7UUFFekMsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxZQUFZLENBQUE7UUFFcEMsSUFBSSxDQUFDLElBQUEsaUJBQVMsRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSxpQkFBUyxFQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JFLE1BQU0sSUFBSSxtQkFBVyxDQUNwQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLDZCQUE2QixxQ0FBcUMsQ0FBQyxVQUFVLHNCQUFzQixDQUNuRyxDQUFBO1FBQ0YsQ0FBQztRQUVELElBQUksSUFBd0IsQ0FBQTtRQUM1QixJQUFJLElBQUEsaUJBQVMsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBQSxpQkFBUyxFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzFELElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxJQUFJLE9BQU8sRUFBRSxJQUFJLENBQUE7UUFDdEMsQ0FBQztRQUVELElBQUksV0FBVyxHQUFzQixFQUFFLENBQUE7UUFDdkMsSUFDQyxJQUFBLGlCQUFTLEVBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztZQUNuQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7WUFDdkMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUNsQyxDQUFDO1lBQ0YsV0FBVyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ3pELE1BQU0sZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO2dCQUNyRSxNQUFNLGVBQWUsR0FDcEIsT0FBTyxnQkFBZ0IsS0FBSyxRQUFRO29CQUNwQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtnQkFFakMsT0FBTztvQkFDTixPQUFPLEVBQUUsZ0JBQWdCO29CQUN6QixRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7b0JBQzdCLFdBQVcsRUFBRSxVQUFVLENBQUMsWUFBWTtvQkFDcEMsa0JBQWtCLEVBQ2pCLFVBQVUsQ0FBQyxXQUFXLEtBQUssUUFBUTt3QkFDbkMsVUFBVSxDQUFDLFdBQVcsS0FBSyxZQUFZO3dCQUN0QyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVc7d0JBQ3hCLENBQUMsQ0FBQyxTQUFTO29CQUNiLEdBQUcsRUFBRSxVQUFVLENBQUMsRUFBRTtvQkFDbEIsb0VBQW9FO29CQUNwRSxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVM7aUJBQ2hELENBQUE7WUFDRixDQUFDLENBQUMsQ0FBQTtRQUNILENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBaUI7WUFDakMsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQzdDLEVBQUU7WUFDRixPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU87U0FDekIsQ0FBQTtRQUVELElBQUksSUFBQSxpQkFBUyxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckIsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDeEIsQ0FBQztRQUVELElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QixXQUFXLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtRQUN0QyxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUV6RCxPQUFPO1lBQ04sRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQ2xCLENBQUE7SUFDRixDQUFDOztBQTVGRixzRkE2RkM7QUE1Rk8sZ0RBQVUsR0FBRyxZQUFZLENBQUE7QUE4RmpDLGtCQUFlLHFDQUFxQyxDQUFBIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@perseidesjs/notification-nodemailer",
3
- "version": "3.1.0",
3
+ "version": "3.1.1",
4
4
  "description": "A Medusa plugin for sending notifications via Nodemailer (SMTP)",
5
5
  "author": "adevinwild",
6
6
  "license": "MIT",
@@ -49,7 +49,9 @@
49
49
  "@swc/core": "1.5.7",
50
50
  "@types/node": "^20.0.0",
51
51
  "@types/nodemailer": "^6.4.17",
52
+ "@types/qrcode": "^1.5.6",
52
53
  "nodemailer": "^7.0.5",
54
+ "qrcode": "^1.5.4",
53
55
  "ts-node": "^10.9.2",
54
56
  "typescript": "^5.6.2",
55
57
  "vitest": "^4.0.16",