chore(xo-server-transport-email): dont use deprecated nodemailer-markdown

BREAKING CHANGE: now requires Node >=18.'

Permits the use of a more recent `marked`.
This commit is contained in:
Julien Fontanet
2023-12-17 11:54:07 +01:00
parent eb56666f98
commit 37fd6d13db
4 changed files with 31 additions and 19 deletions

View File

@@ -41,5 +41,6 @@
- @xen-orchestra/xapi patch
- xo-server minor
- xo-server-auth-saml minor
- xo-server-transport-email major
<!--packages-end-->

View File

@@ -25,11 +25,11 @@
"preferGlobal": false,
"main": "dist/",
"engines": {
"node": ">=6"
"node": ">=18"
},
"dependencies": {
"marked": "^11.1.0",
"nodemailer": "^6.1.0",
"nodemailer-markdown": "^1.0.1",
"promise-toolbox": "^0.21.0"
},
"devDependencies": {

View File

@@ -1,5 +1,5 @@
import { createTransport } from 'nodemailer'
import { markdown as nodemailerMarkdown } from 'nodemailer-markdown'
import { Marked } from 'marked'
import { promisify } from 'promise-toolbox'
// ===================================================================
@@ -13,8 +13,6 @@ const removeUndefined = obj => {
return obj
}
const markdownCompiler = nodemailerMarkdown()
const logAndRethrow = error => {
console.error('[WARN] plugin transport-email:', (error && error.stack) || error)
@@ -138,6 +136,7 @@ export const testSchema = {
class TransportEmailPlugin {
constructor({ staticConfig, xo }) {
this._marked = new Marked()
this._staticConfig = staticConfig
this._xo = xo
this._unset = null
@@ -168,7 +167,26 @@ class TransportEmailPlugin {
}
const transport = createTransport({ ...transportConf, ...this._staticConfig.transport }, { from })
transport.use('compile', markdownCompiler)
transport.use('compile', (mail, cb) => {
const data = mail?.data
if (data == null || data.markdown == null || data.html !== undefined) {
return cb()
}
mail.resolveContent(data, 'markdown', (error, markdown) => {
if (error != null) {
return cb(error)
}
markdown = String(markdown)
data.html = this._marked.parse(markdown)
if (data.text === undefined) {
data.text = markdown
}
cb()
})
})
this._send = promisify(transport.sendMail, transport)
}
@@ -187,7 +205,7 @@ class TransportEmailPlugin {
subject: '[Xen Orchestra] Test of transport-email plugin',
markdown: `Hi there,
The transport-email plugin for Xen Orchestra server seems to be working fine, nicely done :)
The \`transport-email\` plugin for *Xen Orchestra* server seems to be working fine, nicely done :)
`,
attachments: [
{

View File

@@ -14594,16 +14594,16 @@ markdown-it@^8.4.1:
mdurl "^1.0.1"
uc.micro "^1.0.5"
marked@^0.6.2:
version "0.6.3"
resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.3.tgz#79babad78af638ba4d522a9e715cdfdd2429e946"
integrity sha512-Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ==
marked@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/marked/-/marked-0.7.0.tgz#b64201f051d271b1edc10a04d1ae9b74bb8e5c0e"
integrity sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==
marked@^11.1.0:
version "11.1.0"
resolved "https://registry.yarnpkg.com/marked/-/marked-11.1.0.tgz#f2d12323e80ba8a97cc8262fe7e94fcc007476ab"
integrity sha512-fvKJWAPEafVj1dwGwcPI5mBB/0pvViL6NlCbNDG1HOIRwwAU/jeMoFxfbRLuirO1wRH7m4yPvBqD/O1wyWvayw==
marked@^9.1.5:
version "9.1.6"
resolved "https://registry.yarnpkg.com/marked/-/marked-9.1.6.tgz#5d2a3f8180abfbc5d62e3258a38a1c19c0381695"
@@ -15404,13 +15404,6 @@ node-zone@^0.4.0:
resolved "https://registry.yarnpkg.com/node-zone/-/node-zone-0.4.0.tgz#b058401a2e7c4bd34cb8cda8ee9d61360f620711"
integrity sha512-JzQcDNvCdWF1wmHAvNN2U63+8K72u4hN40axkrpRWE6Yvhkuf2i72SMzWUHiP3rxdm2CbgaaOw8N5Gw2qN5pbA==
nodemailer-markdown@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/nodemailer-markdown/-/nodemailer-markdown-1.0.3.tgz#13b1f9bcbcce3ff5d5c22a32bf097583e5f194bd"
integrity sha512-ztFMhfyQr7qKWofUDUXmC4qKylZsGLx/4Cn6ncjTrPfoeV9U4jyVx7NDT1nlKG7uNXJl1CIggeRgR9NOXTaxBA==
dependencies:
marked "^0.6.2"
nodemailer@^6.1.0:
version "6.9.7"
resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.9.7.tgz#ec2f488f62ba1558e7b19239b62778df4a5c4397"