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:
@@ -41,5 +41,6 @@
|
||||
- @xen-orchestra/xapi patch
|
||||
- xo-server minor
|
||||
- xo-server-auth-saml minor
|
||||
- xo-server-transport-email major
|
||||
|
||||
<!--packages-end-->
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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: [
|
||||
{
|
||||
|
||||
17
yarn.lock
17
yarn.lock
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user