@perseidesjs/notification-nodemailer 3.0.0 → 3.1.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 +1 @@
|
|
|
1
|
-
export { NodemailerNotificationProviderService, PluginOptions, } from
|
|
1
|
+
export { NodemailerNotificationProviderService, PluginOptions, } from "./providers/nodemailer/service";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AbstractNotificationProviderService } from
|
|
3
|
-
import { type Transporter } from
|
|
4
|
-
import type SMTPConnection from
|
|
5
|
-
import type SMTPTransport from
|
|
1
|
+
import type { ProviderSendNotificationDTO, ProviderSendNotificationResultsDTO } from "@medusajs/framework/types";
|
|
2
|
+
import { AbstractNotificationProviderService } from "@medusajs/framework/utils";
|
|
3
|
+
import { type Transporter } from "nodemailer";
|
|
4
|
+
import type SMTPConnection from "nodemailer/lib/smtp-connection";
|
|
5
|
+
import type SMTPTransport from "nodemailer/lib/smtp-transport";
|
|
6
6
|
/**
|
|
7
7
|
* Checks if a string is in binary digit format.
|
|
8
8
|
* This format is created by converting a Buffer using:
|
|
@@ -52,7 +52,7 @@ function processAttachmentContent(content) {
|
|
|
52
52
|
if (Buffer.isBuffer(content)) {
|
|
53
53
|
return content;
|
|
54
54
|
}
|
|
55
|
-
if (typeof content ===
|
|
55
|
+
if (typeof content === "string" && isBinaryString(content)) {
|
|
56
56
|
return binaryStringToBuffer(content);
|
|
57
57
|
}
|
|
58
58
|
return content;
|
|
@@ -65,10 +65,10 @@ class NodemailerNotificationProviderService extends utils_1.AbstractNotification
|
|
|
65
65
|
}
|
|
66
66
|
static validateOptions(options) {
|
|
67
67
|
if (!options.host) {
|
|
68
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `"host" is required in the ${
|
|
68
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `"host" is required in the ${NodemailerNotificationProviderService.identifier} provider's options.`);
|
|
69
69
|
}
|
|
70
70
|
if (!options.port) {
|
|
71
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `"port" is required in the ${
|
|
71
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `"port" is required in the ${NodemailerNotificationProviderService.identifier} provider's options.`);
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
async send(notification) {
|
|
@@ -88,14 +88,14 @@ class NodemailerNotificationProviderService extends utils_1.AbstractNotification
|
|
|
88
88
|
content: processAttachmentContent(attachment.content),
|
|
89
89
|
filename: attachment.filename,
|
|
90
90
|
contentType: attachment.content_type,
|
|
91
|
-
contentDisposition: attachment.disposition ===
|
|
92
|
-
attachment.disposition ===
|
|
91
|
+
contentDisposition: attachment.disposition === "inline" ||
|
|
92
|
+
attachment.disposition === "attachment"
|
|
93
93
|
? attachment.disposition
|
|
94
94
|
: undefined,
|
|
95
95
|
cid: attachment.id,
|
|
96
|
-
contentTransferEncoding: attachment.content_type ===
|
|
97
|
-
?
|
|
98
|
-
:
|
|
96
|
+
contentTransferEncoding: attachment.content_type === "text/html"
|
|
97
|
+
? "quoted-printable"
|
|
98
|
+
: "base64",
|
|
99
99
|
}));
|
|
100
100
|
}
|
|
101
101
|
const mailOptions = {
|
|
@@ -116,6 +116,6 @@ class NodemailerNotificationProviderService extends utils_1.AbstractNotification
|
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
exports.NodemailerNotificationProviderService = NodemailerNotificationProviderService;
|
|
119
|
-
NodemailerNotificationProviderService.identifier =
|
|
119
|
+
NodemailerNotificationProviderService.identifier = "nodemailer";
|
|
120
120
|
exports.default = NodemailerNotificationProviderService;
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvbm9kZW1haWxlci9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXFCQSx3Q0FXQztBQU9ELG9EQU9DO0FBU0QsNERBVUM7QUE3REQscURBSWtDO0FBQ2xDLDREQUF5RDtBQUt6RDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixjQUFjLENBQUMsT0FBZTtJQUM3Qyw4QkFBOEI7SUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM5QixPQUFPLEtBQUssQ0FBQTtJQUNiLENBQUM7SUFDRCw4Q0FBOEM7SUFDOUMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM5QixPQUFPLEtBQUssQ0FBQTtJQUNiLENBQUM7SUFDRCxrREFBa0Q7SUFDbEQsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQTtBQUMzQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLFlBQW9CO0lBQ3hELE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQTtJQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzVDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDMUIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNI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
|
package/README.md
CHANGED
|
@@ -11,8 +11,17 @@
|
|
|
11
11
|
@perseidesjs/notification-nodemailer
|
|
12
12
|
</h1>
|
|
13
13
|
|
|
14
|
+
<p align="center">
|
|
15
|
+
<a href="https://www.npmjs.com/package/@perseidesjs/notification-nodemailer"><img src="https://img.shields.io/npm/v/@perseidesjs/notification-nodemailer.svg" alt="npm version"></a>
|
|
16
|
+
<a href="https://www.npmjs.com/package/@perseidesjs/notification-nodemailer"><img src="https://img.shields.io/npm/dm/@perseidesjs/notification-nodemailer.svg" alt="npm downloads"></a>
|
|
17
|
+
<a href="https://github.com/perseidesjs/notification-nodemailer/blob/develop/LICENSE.md"><img src="https://img.shields.io/npm/l/@perseidesjs/notification-nodemailer.svg" alt="license"></a>
|
|
18
|
+
<img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen" alt="node version">
|
|
19
|
+
<img src="https://img.shields.io/badge/TypeScript-5.x-blue" alt="typescript">
|
|
20
|
+
</p>
|
|
21
|
+
|
|
14
22
|
<h4 align="center">
|
|
15
23
|
<a href="https://perseides.org">Website</a> |
|
|
24
|
+
<a href="https://docs.perseides.org/plugins/notification-nodemailer/getting-started">Documentation</a> |
|
|
16
25
|
<a href="https://www.medusajs.com">Medusa</a>
|
|
17
26
|
</h4>
|
|
18
27
|
|
|
@@ -20,6 +29,20 @@
|
|
|
20
29
|
A Medusa plugin for sending notifications via Nodemailer (SMTP)
|
|
21
30
|
</p>
|
|
22
31
|
|
|
23
|
-
|
|
32
|
+
## Installation
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npm install @perseidesjs/notification-nodemailer
|
|
36
|
+
# or
|
|
37
|
+
yarn add @perseidesjs/notification-nodemailer
|
|
38
|
+
# or
|
|
39
|
+
pnpm add @perseidesjs/notification-nodemailer
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Documentation
|
|
43
|
+
|
|
44
|
+
Access the full documentation at [docs.perseides.org/plugins/notification-nodemailer](https://docs.perseides.org/plugins/notification-nodemailer/getting-started)
|
|
45
|
+
|
|
46
|
+
## License
|
|
24
47
|
|
|
25
|
-
|
|
48
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@perseidesjs/notification-nodemailer",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "A Medusa plugin for sending notifications via Nodemailer (SMTP)",
|
|
5
5
|
"author": "adevinwild",
|
|
6
6
|
"license": "MIT",
|
|
@@ -32,51 +32,37 @@
|
|
|
32
32
|
"changeset": "changeset",
|
|
33
33
|
"version": "changeset version",
|
|
34
34
|
"release": "yarn build && changeset publish",
|
|
35
|
-
"lint": "
|
|
36
|
-
"lint:
|
|
37
|
-
"format": "
|
|
38
|
-
"format:check": "
|
|
35
|
+
"lint": "biome lint --write",
|
|
36
|
+
"lint:check": "biome lint",
|
|
37
|
+
"format": "biome format --write",
|
|
38
|
+
"format:check": "biome format",
|
|
39
39
|
"typecheck": "tsc --noEmit",
|
|
40
40
|
"test": "vitest run",
|
|
41
|
-
"test:watch": "vitest"
|
|
42
|
-
"prepare": "husky"
|
|
41
|
+
"test:watch": "vitest"
|
|
43
42
|
},
|
|
44
43
|
"devDependencies": {
|
|
44
|
+
"@biomejs/biome": "2.3.11",
|
|
45
45
|
"@changesets/cli": "^2.29.5",
|
|
46
|
-
"@
|
|
47
|
-
"@medusajs/
|
|
48
|
-
"@medusajs/
|
|
49
|
-
"@medusajs/medusa": "2.12.4",
|
|
46
|
+
"@medusajs/cli": "2.13.0",
|
|
47
|
+
"@medusajs/framework": "2.13.0",
|
|
48
|
+
"@medusajs/medusa": "2.13.0",
|
|
50
49
|
"@swc/core": "1.5.7",
|
|
51
50
|
"@types/node": "^20.0.0",
|
|
52
51
|
"@types/nodemailer": "^6.4.17",
|
|
53
|
-
"eslint": "^9.30.1",
|
|
54
|
-
"husky": "^9.1.7",
|
|
55
|
-
"lint-staged": "^16.1.2",
|
|
56
52
|
"nodemailer": "^7.0.5",
|
|
57
|
-
"prettier": "^3.6.2",
|
|
58
53
|
"ts-node": "^10.9.2",
|
|
59
54
|
"typescript": "^5.6.2",
|
|
60
55
|
"vitest": "^4.0.16",
|
|
61
56
|
"yalc": "^1.0.0-pre.53"
|
|
62
57
|
},
|
|
63
58
|
"peerDependencies": {
|
|
64
|
-
"@medusajs/cli": ">=2.
|
|
65
|
-
"@medusajs/framework": "
|
|
66
|
-
"@medusajs/medusa": "
|
|
59
|
+
"@medusajs/cli": ">=2.13.0",
|
|
60
|
+
"@medusajs/framework": ">=2.13.0",
|
|
61
|
+
"@medusajs/medusa": ">=2.13.0",
|
|
67
62
|
"nodemailer": "^7.0.5"
|
|
68
63
|
},
|
|
69
64
|
"engines": {
|
|
70
65
|
"node": ">=20"
|
|
71
66
|
},
|
|
72
|
-
"packageManager": "yarn@4.9.2"
|
|
73
|
-
"lint-staged": {
|
|
74
|
-
"*.{js,jsx,ts,tsx,mjs,cjs}": [
|
|
75
|
-
"eslint --fix",
|
|
76
|
-
"prettier --write"
|
|
77
|
-
],
|
|
78
|
-
"*.{json,md,yml,yaml}": [
|
|
79
|
-
"prettier --write"
|
|
80
|
-
]
|
|
81
|
-
}
|
|
67
|
+
"packageManager": "yarn@4.9.2"
|
|
82
68
|
}
|