diff --git a/packages/mailer/package.json b/packages/mailer/package.json index bebb4ee41..882c598dd 100644 --- a/packages/mailer/package.json +++ b/packages/mailer/package.json @@ -31,9 +31,9 @@ "typecheck": "tsc --noEmit -p tsconfig.json --composite false" }, "dependencies": { - "html-to-text": "9.0.5", + "html-to-text": "10.0.0", "mustache": "4.2.0", - "nodemailer": "7.0.13", + "nodemailer": "9.0.3", "nodemailer-html-to-text": "3.2.0", "nodemailer-mjml": "1.6.0" }, @@ -41,15 +41,15 @@ "@prefabs.tech/eslint-config": "0.8.7", "@prefabs.tech/fastify-config": "0.94.1", "@prefabs.tech/tsconfig": "0.8.7", - "@types/mjml": "4.7.4", + "@types/mjml": "5.0.0", "@types/node": "24.13.3", - "@types/nodemailer": "6.4.24", + "@types/nodemailer": "8.0.1", "@types/nodemailer-html-to-text": "3.1.3", "@vitest/coverage-istanbul": "4.1.10", "eslint": "10.7.0", "fastify": "5.10.0", "fastify-plugin": "6.0.0", - "mjml": "4.18.0", + "mjml": "5.4.0", "prettier": "3.9.5", "typescript": "5.9.3", "vite": "8.1.5", diff --git a/packages/mailer/src/__test__/registration.test.ts b/packages/mailer/src/__test__/registration.test.ts index e9bdcdeaf..e6970a437 100644 --- a/packages/mailer/src/__test__/registration.test.ts +++ b/packages/mailer/src/__test__/registration.test.ts @@ -71,6 +71,9 @@ describe("mailerPlugin — registration", async () => { const { templating } = createMailerConfig(); await fastify.register(plugin, createMailerConfig()); expect(nodemailerMjmlPlugin).toHaveBeenCalledWith({ + mjmlOptions: { + validationLevel: "soft", + }, templateFolder: templating.templateFolder, }); expect(useMock).toHaveBeenCalledWith( diff --git a/packages/mailer/src/plugin.ts b/packages/mailer/src/plugin.ts index d45e5b9cd..c67e8a89e 100644 --- a/packages/mailer/src/plugin.ts +++ b/packages/mailer/src/plugin.ts @@ -42,6 +42,9 @@ const plugin = async (fastify: FastifyInstance, options: MailerOptions) => { transporter.use( "compile", nodemailerMjmlPlugin({ + mjmlOptions: { + validationLevel: "soft", + }, templateFolder: templating.templateFolder, }), ); diff --git a/packages/mailer/src/router.ts b/packages/mailer/src/router.ts index c53fcce73..a84afccae 100644 --- a/packages/mailer/src/router.ts +++ b/packages/mailer/src/router.ts @@ -19,7 +19,7 @@ const router = async ( async (request: FastifyRequest, reply: FastifyReply) => { const { mailer } = fastify; - const html = mjml2html( + const html = await mjml2html( ` diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f4c01f90f..74f5a03ac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -268,20 +268,20 @@ importers: packages/mailer: dependencies: html-to-text: - specifier: 9.0.5 - version: 9.0.5 + specifier: 10.0.0 + version: 10.0.0 mustache: specifier: 4.2.0 version: 4.2.0 nodemailer: - specifier: 7.0.13 - version: 7.0.13 + specifier: 9.0.3 + version: 9.0.3 nodemailer-html-to-text: specifier: 3.2.0 version: 3.2.0 nodemailer-mjml: specifier: 1.6.0 - version: 1.6.0(nodemailer@7.0.13) + version: 1.6.0(htmlnano@3.4.0(cssnano@7.1.9(postcss@8.5.19))(postcss@8.5.19)(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3))(nodemailer@9.0.3) devDependencies: '@prefabs.tech/eslint-config': specifier: 0.8.7 @@ -293,14 +293,14 @@ importers: specifier: 0.8.7 version: 0.8.7 '@types/mjml': - specifier: 4.7.4 - version: 4.7.4 + specifier: 5.0.0 + version: 5.0.0 '@types/node': specifier: 24.13.3 version: 24.13.3 '@types/nodemailer': - specifier: 6.4.24 - version: 6.4.24 + specifier: 8.0.1 + version: 8.0.1 '@types/nodemailer-html-to-text': specifier: 3.1.3 version: 3.1.3 @@ -317,8 +317,8 @@ importers: specifier: 6.0.0 version: 6.0.0 mjml: - specifier: 4.18.0 - version: 4.18.0 + specifier: 5.4.0 + version: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) prettier: specifier: 3.9.5 version: 3.9.5 @@ -832,6 +832,9 @@ packages: resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} engines: {node: '>=6.9.0'} + '@colordx/core@5.5.0': + resolution: {integrity: sha512-3PxTH8itZzltK0U9jTwVVnjLXvnDYuq3m+QXsHkENxWiPRh4WaoLcs1SQjqgZ55kS+QyirpH5BVwzP2gMVG6EQ==} + '@commitlint/cli@21.2.1': resolution: {integrity: sha512-blsZGe29hJ72VGEFVl72IVYX+1vsfINpjA9yWQA6i7OKD/McGEOXg08sKIRKjFk4JvzhV/9n0l3i6NooPLTNfg==} engines: {node: '>=22.12.0'} @@ -1338,6 +1341,10 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@isaacs/cliui@9.0.0': + resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==} + engines: {node: '>=18'} + '@istanbuljs/schema@0.1.3': resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} @@ -1621,8 +1628,10 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@selderee/plugin-htmlparser2@0.11.0': - resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} + '@selderee/plugin-htmlparser2@0.12.0': + resolution: {integrity: sha512-oELmoyA6ML9jDRMV3kgcMQFKxUfBU0yFVn6yTctVaLT5ygXnxH52I3TZEgV9EhXJC68/uFvE5Daj1/25c0Xa/A==} + peerDependencies: + selderee: ~0.12.0 '@simple-libs/child-process-utils@2.0.0': resolution: {integrity: sha512-dvNoRKLijXnD0XoJAz94pbNuB5GQgDr55UhpSPhffDkTT0Cmcqh9jSCOtwfT2d4H6MI9E7c4SgtMuJXZ6F3c6A==} @@ -1790,8 +1799,8 @@ packages: '@types/mjml-core@4.15.2': resolution: {integrity: sha512-Q7SxFXgoX979HP57DEVsRI50TV8x1V4lfCA4Up9AvfINDM5oD/X9ARgfoyX1qS987JCnDLv85JjkqAjt3hZSiQ==} - '@types/mjml@4.7.4': - resolution: {integrity: sha512-vyi1vzWgMzFMwZY7GSZYX0GU0dmtC8vLHwpgk+NWmwbwRSrlieVyJ9sn5elodwUfklJM7yGl0zQeet1brKTWaQ==} + '@types/mjml@5.0.0': + resolution: {integrity: sha512-z6P0yjEOVOz6cZVyD3vkPSifzVH0fa9M8BFM8Jl9HtpeFkBJyCZHRLPx1uFnkZijgAYmtO/JfSbp4EF1fNwsXQ==} '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} @@ -1805,12 +1814,15 @@ packages: '@types/nodemailer-html-to-text@3.1.3': resolution: {integrity: sha512-Oo3UfBz/jscdgltyp7HABiSHd7aiUuQKxqklPea1san3hNN4w79PEf4S27NQ04JdLO0sU5ZDGK9S+tMHj15vcg==} - '@types/nodemailer@6.4.24': - resolution: {integrity: sha512-Ww4u0rT9wQNXh4JiQaIwx3QWdcOFXzOjQA2zc+jtFYNmQiT4mIUqcDin51bDFdkzKubFnQCZNK7FIHlPKQ/q9w==} + '@types/nodemailer@8.0.1': + resolution: {integrity: sha512-PxpaInm8V1JQDd4j0ds5HfvWQk8JupS1C0Picb96QJsrrRDjBH+DlK7L4ZdNSqNULhiZRQHc40nLVShaGxXAMw==} '@types/pg@8.20.0': resolution: {integrity: sha512-bEPFOaMAHTEP1EzpvHTbmwR8UsFyHSKsRisLIHVMXnpNefSbGA1bD6CVy+qKjGSqmZqNqBDV2azOBo8TgkcVow==} + '@types/relateurl@0.2.33': + resolution: {integrity: sha512-bTQCKsVbIdzLqZhLkF5fcJQreE4y1ro4DIyVrlDNSCJRRwHhB8Z+4zXXa8jN6eDvc2HbRsEYgbvrnGvi54EpSw==} + '@types/request@2.48.13': resolution: {integrity: sha512-FGJ6udDNUCjd19pp0Q3iTiDkwhYup7J8hpMW9c4k53NrccQFFWKRho6hvtPPEhnXWKvukfwAlB6DbDz4yhH5Gg==} @@ -2317,6 +2329,9 @@ packages: camel-case@3.0.0: resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==} + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + caniuse-lite@1.0.30001751: resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==} @@ -2340,6 +2355,10 @@ packages: cheerio-select@2.1.0: resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + cheerio@1.0.0: + resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} + engines: {node: '>=18.17'} + cheerio@1.0.0-rc.12: resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} engines: {node: '>= 6'} @@ -2348,6 +2367,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + ci-info@4.4.0: resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} @@ -2387,6 +2410,18 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commander@15.0.0: + resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==} + engines: {node: '>=22.12.0'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -2507,9 +2542,23 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + css-declaration-sorter@7.4.0: + resolution: {integrity: sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + css-select@5.2.2: resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@3.2.1: + resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-what@6.2.2: resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} engines: {node: '>= 6'} @@ -2519,6 +2568,34 @@ packages: engines: {node: '>=4'} hasBin: true + cssnano-preset-default@7.0.17: + resolution: {integrity: sha512-11qO63A+czwguQFJCaTdICvbaxn0pJzz/XghLlv+OT7WyToDxAMR0Xb3/26/l0y0hQJywwNbj/SLSQlGBHE1OA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + cssnano-preset-lite@4.0.6: + resolution: {integrity: sha512-EI/VDoucl8SmVkXUZtWIux31cWoxgNUbF7njnpPxdz5ZbnKOjAd5DueLuCE1RKKLrOPQsEUaNfUgB1taohIIyQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + cssnano-utils@5.0.3: + resolution: {integrity: sha512-ynIREMICLxkxm7e9bCR9sh75s4Q5drICi0ua1yxo5jH2XPBqSKkl4dOh4EbFqtUmnTMhRffHgYL0EKKkMjtJTg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + cssnano@7.1.9: + resolution: {integrity: sha512-uPR75+5Dk/WJ/YSPR1/YDHdwMM9c5FsaARljfKWgeCKLKOtJ0we21xy/RcCjn53fZnD/f6yYEIZ8pu18+GnbNQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -2564,6 +2641,10 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge-ts@7.1.5: + resolution: {integrity: sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==} + engines: {node: '>=16.0.0'} + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -2691,6 +2772,9 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encoding-sniffer@0.2.1: + resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} + end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} @@ -2701,6 +2785,10 @@ packages: entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + entities@3.0.1: + resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} + engines: {node: '>=0.12'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -2709,6 +2797,10 @@ packages: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -3294,6 +3386,13 @@ packages: glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + hasBin: true + + glob@11.1.0: + resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} + engines: {node: 20 || >=22} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@13.0.0: @@ -3436,14 +3535,47 @@ packages: engines: {node: '>=6'} hasBin: true + html-to-text@10.0.0: + resolution: {integrity: sha512-2OH59Gtprdczel+7Rxgpz9hGVJREaf8Lt1H4kZwWHpEn70VQKRuMNGsb2eDbwaTzrYzb0hheiOG1P7Dim0B4dQ==} + engines: {node: '>=20.19.0'} + html-to-text@7.1.1: resolution: {integrity: sha512-c9QWysrfnRZevVpS8MlE7PyOdSuIOjg8Bt8ZE10jMU/BEngA6j3llj4GRfAmtQzcd1FjKE0sWu5IHXRUH9YxIQ==} engines: {node: '>=10.23.2'} hasBin: true - html-to-text@9.0.5: - resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} - engines: {node: '>=14'} + htmlnano@3.4.0: + resolution: {integrity: sha512-5rgW9c/830dlDiWLlsT3ZLBs52UAupymGwkwr4rn2yyuzrNY0RZwgr6F4q2AkUqrRuuHb3kPelqYsUgtzQDtQw==} + hasBin: true + peerDependencies: + cssnano: ^7.0.0 || ^8.0.0 + postcss: ^8.3.11 + purgecss: ^8.0.0 + relateurl: ^0.2.7 + srcset: ^5.0.1 + svgo: ^4.0.0 + terser: ^5.21.0 + uncss: ^0.17.3 + peerDependenciesMeta: + cssnano: + optional: true + postcss: + optional: true + purgecss: + optional: true + relateurl: + optional: true + srcset: + optional: true + svgo: + optional: true + terser: + optional: true + uncss: + optional: true + + htmlparser2@10.1.0: + resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} htmlparser2@5.0.1: resolution: {integrity: sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==} @@ -3451,6 +3583,9 @@ packages: htmlparser2@6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + htmlparser2@7.2.0: + resolution: {integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==} + htmlparser2@8.0.2: resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} @@ -3492,6 +3627,10 @@ packages: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + iconv-lite@0.7.2: resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} @@ -3641,6 +3780,9 @@ packages: engines: {node: '>=14.16'} hasBin: true + is-json@2.0.1: + resolution: {integrity: sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==} + is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -3744,6 +3886,10 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@4.2.3: + resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==} + engines: {node: 20 || >=22} + jake@10.9.4: resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} engines: {node: '>=10'} @@ -3838,6 +3984,11 @@ packages: engines: {node: '>=10.0.0'} hasBin: true + juice@11.1.1: + resolution: {integrity: sha512-4SBfZqKcc6DrIS+5b/WiGoWaZsdUPBH+e6SbRlNjJpaIRtfoBhYReAtobIEW6mcLeFFDXLBJMuZwkJLkBJjs2w==} + engines: {node: '>=18.17'} + hasBin: true + jwa@1.4.2: resolution: {integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==} @@ -3864,8 +4015,8 @@ packages: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} - leac@0.6.0: - resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} + leac@0.7.0: + resolution: {integrity: sha512-qMrZeyEekgdRQ9o6a4NAB2EQZrv827GJdn1vnapwSJ90hWRB4TzUSunvacPkxQ2TnNqHNI1/zSt0hlo0crG8Jw==} levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} @@ -3951,6 +4102,10 @@ packages: resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} engines: {node: '>= 12.0.0'} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + limiter@1.1.5: resolution: {integrity: sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==} @@ -3997,9 +4152,15 @@ packages: lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} + long@5.3.2: resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} @@ -4041,6 +4202,12 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.27.1: + resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} + media-typer@1.1.0: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} @@ -4128,61 +4295,119 @@ packages: mjml-accordion@4.18.0: resolution: {integrity: sha512-9PUmy2JxIOGgAaVHvgVYX21nVAo3o/+wJckTTF/YTLGAqB+nm+44buxRzaXxVk7qXRwbCNfE8c8mlGVNh7vB1g==} + mjml-accordion@5.4.0: + resolution: {integrity: sha512-yElB+84k5kZpTz8Ct3eRu63fkEeGc4mBZmbAfZrS5sZCb9DiamAfhozLee5WgO4Y3cwuf8cFsfhYGPuBw60XCw==} + mjml-body@4.18.0: resolution: {integrity: sha512-34AwX70/7NkRIajPsa5j6NySRiNrlLatTKhiLwTVFiVtrEFlfCcbeMNmdVixI3Ldvs8209ZC6euaAnXDRyR1zw==} + mjml-body@5.4.0: + resolution: {integrity: sha512-fPZLONKnRGR2NxkmfKPvnnr/ycVeyahi1ySX6Rk8lEO76ywXNFDWzTbzz/UQ2gzfnD8AhDbuqzd/UZRpW0vdOg==} + mjml-button@4.18.0: resolution: {integrity: sha512-ZsWMI0j7EcFCMqbqdVwMWhmsVc03FhmypWXokKopGhwySn4IAB4AOURonRmFrO7k6sDeQ+iJ9QtTu7jA+S8wmg==} + mjml-button@5.4.0: + resolution: {integrity: sha512-HlecSMeio6xf21nh4vMaHIJF8bN24KatK3gwcR6ByxKfzTkQVR7jtWjJLUiyiuLOJcam9wCOVl7m5J6elrFpjg==} + mjml-carousel@4.18.0: resolution: {integrity: sha512-wY4g1CHCOoVSZuar7CLFon/qkPbICu71IT+6pa4BDwkAiaAMAemZPyy+a+iIUgdc8kHgSuHGsGf6PQzBSMWRZA==} + mjml-carousel@5.4.0: + resolution: {integrity: sha512-fuhOEETPC/+ZtISh5iOlc6uQqOKWwhwg1W8XTJrzWj5pfa46BzMdR7Nx0Z+8I8/HRqrZA3Ws4hiSTTgbpTIRjg==} + mjml-cli@4.18.0: resolution: {integrity: sha512-N6CnA4o/q/VRnGPxTzvVnjAEcF7WUVVQGYfS9SPAp0qwyf7RysMmewdS9yN8GwXwZV6L2sKdn+3ANNi2FNsJ7w==} hasBin: true + mjml-cli@5.4.0: + resolution: {integrity: sha512-6HeOz0zadc9iOmMVg85ts1HhoW2CiLUNaTFfnC5YXfowPnjK0bWfMluDzxHcaAk12wlnDF06kROl8pKpZeiy6A==} + hasBin: true + mjml-column@4.18.0: resolution: {integrity: sha512-0QZ1whxbHUmJaRT8tW+wmr3fWZ/kpsHKAd24c7Z/N1Otm/U2G0T/FFEFJ6cB25X6ZN0K40QZ8L9gdLfiSVuRbA==} + mjml-column@5.4.0: + resolution: {integrity: sha512-vnseCiUUKhtQXx5ZEoApxA3elu2AZZyyQkOhE2ntG5cPQuZd3EhRv/mkKKCS99Vi51Tcf7AQ3chwSD4AL+bDHg==} + mjml-core@4.18.0: resolution: {integrity: sha512-yey72LszXvIo5p0R6DB+YU8er/nP2wPsqpLKQCB0H8vG0WRT1sbSUvnCUOkKGn7subuyWDTdzHKbQO3XYIOmvg==} + mjml-core@5.4.0: + resolution: {integrity: sha512-dhcbpBmxktzv/tV2Gcz7BJC15fKEP8LzXUlEYMhi0XDsNEkhHxPGXxvhMoc020jJ9Ypjobnh1q7ow+F8Xx72jA==} + mjml-divider@4.18.0: resolution: {integrity: sha512-FmGUVJqi4RYroh7y85vDx0aUKZgECkxHtMQ4pkLGQbZ2g93/Qt0Ek88DVCNJ5XwUAQQkE/TvrGMLHp3CIqpQ9Q==} + mjml-divider@5.4.0: + resolution: {integrity: sha512-8mk7J0tn0rX+FBO43cJkaKO3x0GCjUX4bdPI5txoh1UWyq1N6xgoEqTAR3luwR0f8juTmUXZv97GnQdRUsWtvQ==} + mjml-group@4.18.0: resolution: {integrity: sha512-28ABkXsKljBqj7XCC8GkQ94xz8HEU2XTyD+9LTlkDafzGp/MGJb8DcLh/7IkxCwqkQWyeMiDNLf1djsQ909Vxw==} + mjml-group@5.4.0: + resolution: {integrity: sha512-gCCU0WV8Aytt68uczjId3xhsvUJ8qU1WDCL+b7I3wrI1ja5npRyXdATHM6Q2uXbm+an8Dxz5q77Ts9sodAHZIQ==} + mjml-head-attributes@4.18.0: resolution: {integrity: sha512-nLzix1wrMnojE0RPGhk4iKqSRwHKjie2EPzgKT7CDzfqN+Ref03E5Q19x3cQTLgxvq3C3CnvCQBfnhoS3Eakug==} + mjml-head-attributes@5.4.0: + resolution: {integrity: sha512-c2/Zi/2wCutEVChxY8RGbPIb2Wb0Ro3A9WVJ0DezyEeN9noTT1fRiMWYQIc2y3H5STfNtIFu6RbtDU+AK2p4rg==} + mjml-head-breakpoint@4.18.0: resolution: {integrity: sha512-k6rwff+7i+vTQYJ/CjBfE20qNqPaW60IRH2x2oEPuCzmwDmoVWOcplJIuotSqIAdfwF9hLkICknisp1BpczVlQ==} + mjml-head-breakpoint@5.4.0: + resolution: {integrity: sha512-qtJZ7uaMxVObrr13um5tbktxih8ycTStYAdcKMdSsgqLG3dTNEfVF9wg7AEHs6e3GB1cPnHgQwF9v7nxe+vocw==} + mjml-head-font@4.18.0: resolution: {integrity: sha512-ao8HB5nf+Dmxw4GO6lMMOlnj1lNZONai0GC9RobrZgPlghZw6hpURWGpkON7pQcy6XnOHwYwkV7Go/npzA2i7w==} + mjml-head-font@5.4.0: + resolution: {integrity: sha512-c0shDE+Bt7tob9NNpNOk8pRpJMWztfgNuoyXAIkOc7VhILnsYzH5+4Ly70wlHOzQAspC3cODdkZxut8i3ApRcQ==} + mjml-head-html-attributes@4.18.0: resolution: {integrity: sha512-xaQE1rthe0RrNotwEr71X1tE+QQ489Yc0ynMm3oNMrohDI/TaCeazx8GAHPMM7VLduDA8D4A5wkZ6PuEvlJu4w==} + mjml-head-html-attributes@5.4.0: + resolution: {integrity: sha512-o9yEfrA1/5r3EbxXXUVBKf91wSh+vxBSNDYQFc0Do8/8gLg7MvczFVXH2Gq9PQdxPEO+AeBrP4sGP5ZxGJnSwg==} + mjml-head-preview@4.18.0: resolution: {integrity: sha512-2JvYqhbLyU/+Te6/1AXxzTNoHYCDYhXOVZP7wMvU4t7K34pXqyRUNO405atyHUY1MRafrl6RJ8cIx0x5vUX7PA==} + mjml-head-preview@5.4.0: + resolution: {integrity: sha512-jXbbRIGPn7IiAq6M/KZpQMX+RjRN9dW4Az4QTyqL4PObqsrn+rbug6vdZXdxXnCERUZiA7a7K3R4Z5BTOi+qFw==} + mjml-head-style@4.18.0: resolution: {integrity: sha512-nEwDHkAqY3Fm7QWeAZc/a7MakZpXh6THfrE8/AWrfpgzTHrD/wihNUc09ztNpr6z/K1+JWgQfSF2BRc+X3P46g==} + mjml-head-style@5.4.0: + resolution: {integrity: sha512-wUPT4G8GjHlcy0Zq67taYT0E65pa6gwSxO43VJfjpU8Qa1QNmFYkOuDkzbb9oZN0QsETmbfG/RPK/mS4uOAfsg==} + mjml-head-title@4.18.0: resolution: {integrity: sha512-0Hm8o50rPMUQLSCOOa4D4pz9NajmCDccLvBYE4fwKdeUXjSJ6bwAYeMpveel8oNZMDUVJ4Hx+PskisEGHMHM2w==} + mjml-head-title@5.4.0: + resolution: {integrity: sha512-Tx4a6/CPDapUwq8NjGqfb3xBrzMXCxo3s1IGnd1Fnohl0uAZ5EySeBFf8c0uNSwrEhCDOTC5qrERm890Yselfw==} + mjml-head@4.18.0: resolution: {integrity: sha512-DS0adpIAsVMDIk2DOsHzjg+RNjQU0fF8jiVP9BmdRHVGrLPmpL9wIHZk2KvsKvZe7VaXXBijFt3DZ5/CQ/+D7Q==} + mjml-head@5.4.0: + resolution: {integrity: sha512-npWsul6ANzgxl2AZP0kG1yn9G5tOoX8iCgMhRwJkbIJ2rEX91SUvim9P/75s7HuqhccVsjO2L3OVHmnUEpWYng==} + mjml-hero@4.18.0: resolution: {integrity: sha512-rujm0ROM4QGWw77vnl3NaVaCKXrT4xTSHeAnkHKiY5AuRf6HPTgEtutq5pdel/y6Q9GrmxvN3HRESum7tpJCJw==} + mjml-hero@5.4.0: + resolution: {integrity: sha512-j9bKjilTHqJMp3GIDtKUdP3JRnktAc0o7gHhv1NgThgv/z1DDQJ2zgtW/pme6wA5VWng5DTriPk9aoCLPuOlyQ==} + mjml-image@4.18.0: resolution: {integrity: sha512-e09NkoYwvzMcTv7V6H5doWD6Te2E1y2EvOLQJoXKVdQpDwyBWGdfnZke0scJGdA58HLAB+0mLYogpLwmfLaP5Q==} + mjml-image@5.4.0: + resolution: {integrity: sha512-6Y8aMIZbzIZ7SSpo0/o4n5E+JQx5d7OCwUoIIiXWPWGevfOE8JvjFt5MIa24CmSDbKWbhVuJEi1h4TUJhvAVbQ==} + mjml-migrate@4.18.0: resolution: {integrity: sha512-qfNCgW9zhJIsbPyXFA5RT/WY4mlje3N0WhHHOsHc0nY89Q01DenyslUy9nLLGXwi4K5FHS58oCjwWbMhwDcj1w==} hasBin: true @@ -4190,40 +4415,77 @@ packages: mjml-navbar@4.18.0: resolution: {integrity: sha512-uho/MS2tfNAe+V9u2X7NoCco34MDbdp30ETA8009Qo1VCP/D8lZ+s69WGRPu6hvN/Y2pzBgZly++CMg3qFZqBQ==} + mjml-navbar@5.4.0: + resolution: {integrity: sha512-knEsmNN6uBLtEU3a9uwnRqUqAE38EeJcXYaGlI0ly75Zj+vyhKQGPjJzRN7XJqA2dFSgIm3dV9KU9vNW+jI3Zg==} + mjml-parser-xml@4.18.0: resolution: {integrity: sha512-sHSsZg4afY1heThuJzxa1Kvfh/QzB7/9P5fFUHeVnnxb07ZTXnhXWA6YbobdND5/l9+5yjN5/UgqDZm3tIT4Uw==} + mjml-parser-xml@5.4.0: + resolution: {integrity: sha512-A+KzRx+AeWIWxYN9z2KungvmVKMdW+NGLc5h+B9DeY93lSvcSpWH26nGDW9pcPi9B3fdwgYvqgOkYtX6EQATCA==} + mjml-preset-core@4.18.0: resolution: {integrity: sha512-x3l8vMVtsaqM/jauMeZIN7HFD2t5A28J4U0o4849yIlRxiWguLFV5l3BL8Byol+YLkoLuT9PjaZs9RYv+FGfeg==} + mjml-preset-core@5.4.0: + resolution: {integrity: sha512-rq22rNFCp4brsSAgpKrY4tXR/ZWeJeU/GyypihrzmDVu3dSFmOYbrJgW1eCo4g5rWMpEbnY8pn0t1SB8EB+ymQ==} + mjml-raw@4.18.0: resolution: {integrity: sha512-F/kViAwXm3ccPP52kw++/mHQbcYbYYxC8JH15TZxH8GLVZkX5CGKgcBrHhDK7WoIlfEIsVRZ6IZdlHjH8vgyxw==} + mjml-raw@5.4.0: + resolution: {integrity: sha512-ewGXtauxkE35Xd9cJ3REjfD6vNSU82HfIm2pPi2RZF9eXrmfuSrrbSpXuPy13BP2lPpDJa6umUAuDsg5XhXr4A==} + mjml-section@4.18.0: resolution: {integrity: sha512-bB8My9zvIEkTOxej+TrjEeaeRT0lsypGeRADtdrRZXeqUClkkuCnCXlsNKSLGT8ZRqjUqWRc5z8ubDOvGk2+Gg==} + mjml-section@5.4.0: + resolution: {integrity: sha512-BetZqHS31bK5FS7rr5HlFo24m5OGDZi3yjkSn0aanF1SgRkmX1+LwnMQoDdT986SMys0oUYFeNSlz9lp8QgtrA==} + mjml-social@4.18.0: resolution: {integrity: sha512-iAQc9g59L6L3VHDd55BxeIvk/zHkxflxmvuyYyOOvpmmKAvUBC//ULfpxiiM4yupofsThqFfrO+wc8d4kTRkbQ==} + mjml-social@5.4.0: + resolution: {integrity: sha512-7LUoIAOUzXzkLWfdErGrrqc8isxmDxaYQPcUNubQ1d9IXR48/S7Pi5s6PEiDxlaIgWHBcAJEoMszpLHA8+oCSQ==} + mjml-spacer@4.18.0: resolution: {integrity: sha512-FK/0f5IBiONgaRpwNBs7G8EbLdAbmYqcIfHR8O8tP4LipAChLQKHO9vX3vrRMGLBZZNTESLObcFSVWmA40Mfpw==} + mjml-spacer@5.4.0: + resolution: {integrity: sha512-v7P6InD4u7nyXTmNjKMOY0oQ2EaZzFzCcftexb6JdcqvFaZvO9vUSoOdfZUp2FzzFcXQaD7K5RRW3stJSdEJOQ==} + mjml-table@4.18.0: resolution: {integrity: sha512-vJysCPUL3CHcsQDAFpW+skzBtY0RYsmMBYswI4WX0B05GLKlOjXqpYOwcmAupWeGoBVL5r/t28ynu2PqnOlN3w==} + mjml-table@5.4.0: + resolution: {integrity: sha512-e1Kq3AWzzVFv6rPgAy4eK1txA4rfMPivaavW9BrvCDJU3Wiz+fOo9FqtMDyUQXrsJJKSOi6MMA0h2lAESTsR5w==} + mjml-text@4.18.0: resolution: {integrity: sha512-hBLmF3JgveUKktKQFWHqHAr7qr92j1CxAvq7mtpDUgiWgyPFzqRX8mUsFYgZ7DmRxG4UE+Kzpt8/YFd9+E98lw==} + mjml-text@5.4.0: + resolution: {integrity: sha512-QTLdNM6Fs6T4LlquEzJmM+i3lJ+toNmRLRSZyUXP1tjJQhlNmc9aT1UHRy1Gn5fb7XTAY4lo2LznVv/0Tb3qhw==} + mjml-validator@4.18.0: resolution: {integrity: sha512-JmpWAsNTUlAxJOz2zHYfF8Vod8OzM3Qp5JXtrVw5tivZQzq88ZfqVGuqsas51z0pp1/ilfD4lC17YGfGwKGyhA==} + mjml-validator@5.4.0: + resolution: {integrity: sha512-IVsV3RxiEFfAed9U0C5DYmQA06e1JWDQQ8MqBinU7lQCYUkZIexTStohDACzHpN6RTIawi+U0GkT6PUHprv+3Q==} + mjml-wrapper@4.18.0: resolution: {integrity: sha512-TZeOvLjIhXEK60rjWNiYhEYNlv5GKYahE+96ifcT5OGkWkRA0DsQDfp+6VI32OS5VxsfKq2h/UdERPlQijjpAQ==} + mjml-wrapper@5.4.0: + resolution: {integrity: sha512-niCuz5T7IfLKIKVv6G4BNu6sW07yl/kJ0o8oovd+CfG4lO9K+tXUwJQ+Iv3Y3tEQp0TfJE0aN1ysGrhAz6aB6Q==} + mjml@4.18.0: resolution: {integrity: sha512-rQM4aqFRrNvV1k733e8hJSopBjZvoSdBpRYzNTMAN+As0jqJsO5eN0wTT2IFtfe4PREzzu5b06RkPiUQdd0IIg==} hasBin: true + mjml@5.4.0: + resolution: {integrity: sha512-nKeUbKsNtSLzqKcmOwGh3ELxLYHY1fdeSNLif+A33uQV4zBdHahNL7LLshvpTpG2yyu5LlZHQWogVs1dS/V30w==} + hasBin: true + moment@2.30.1: resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} @@ -4314,8 +4576,8 @@ packages: resolution: {integrity: sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==} engines: {node: '>=6.0.0'} - nodemailer@7.0.13: - resolution: {integrity: sha512-PNDFSJdP+KFgdsG3ZzMXCgquO7I6McjY2vlqILjtJd0hy8wEvtugS9xKRF2NWlPNGxvLCXlTNIae4serI7dinw==} + nodemailer@9.0.3: + resolution: {integrity: sha512-n+YP+NKwR5zRWa60k3GiQ6Q3B4KXCoAw40dAKeCtYn020iNN74aWK2liXIC3ZEATeGql7we3tE3t8QwhY0eskw==} engines: {node: '>=6.0.0'} nopt@7.2.1: @@ -4444,11 +4706,14 @@ packages: parse5-htmlparser2-tree-adapter@7.1.0: resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} + parse5-parser-stream@7.1.2: + resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} - parseley@0.12.1: - resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + parseley@0.13.1: + resolution: {integrity: sha512-uNBJZzmb60l6p6VWLTmevizNAGnE0xoSf1n0B4q3ntegDNzcS68NRCcBDZTcyXHxt2XhBChsCuqj4M+nChvE/A==} path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -4484,8 +4749,8 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - peberminta@0.9.0: - resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} + peberminta@0.10.0: + resolution: {integrity: sha512-80B2AsU+I4Qdb0ZAPSfe9UwvGzwkM37IKIFEvdS3D/3Ndgv2bsuJ0bfG1+iEYO+l7Gfd4EUJmuRyq7efLgRMzQ==} pg-cloudflare@1.4.0: resolution: {integrity: sha512-Vo7z/6rrQYxpNRylp4Tlob2elzbh+N/MOQbxFVWCxS7oEx6jF53GTJFxK2WWpKuBRkmiin4Mt+xofFDjx09R0A==} @@ -4613,10 +4878,175 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} + postcss-calc@10.1.1: + resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} + engines: {node: ^18.12 || ^20.9 || >=22.0} + peerDependencies: + postcss: ^8.4.38 + + postcss-colormin@7.0.10: + resolution: {integrity: sha512-yFr6JezOolHLta/buLE71VKPh2mXursp4saVe98/ol8ZnEWhL+racShqPKlvd/DKWLre/39B6HhcMXf7RZ3hxg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-convert-values@7.0.12: + resolution: {integrity: sha512-xurKu5qqk4viR3Cp3p4xBR4KfnZm4w4ys6+UBwBmeuBSNkH7+DtLnYOYnOffgtE4yx8sH9S1VZ6RAAvROXzP2Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-discard-comments@7.0.8: + resolution: {integrity: sha512-CvvS5S9WrXblFXCEJ9nVo+4z+eA7zSC7Z88V1HEJuwlQhlFnYTIjg1xJY+BCUiG2bvICap2tXii4mP22BD108Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-discard-duplicates@7.0.4: + resolution: {integrity: sha512-VBNn1+EuMZkeGVVtz0gRfbNGtx9IFgAsAV+E2pHtXPrp4qfGBkhTIiAuE/wrb+Y6Pakg9NewAlfTpYIFAWODtw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-discard-empty@7.0.3: + resolution: {integrity: sha512-M2pyjQCU+/7cMHVtL6bKTHjv0lZnPLMpicgr67Dlth7AbuV9gjVTtUqaRwn6Pp6BwSDspUzhz8SaUrRykJU5Dw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-discard-overridden@7.0.3: + resolution: {integrity: sha512-aNovXo9UsZuRNLzHJtp13lHIvinDPfiXBPePpXkSjCbgp++iU2FqE+YxvjIsg6EdyPZsASFbfu+JcBFVsErXIQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-merge-longhand@7.0.7: + resolution: {integrity: sha512-b3mfYUxR388u5Pt0HPcVIUtUDn/k15UfTY9M+ORW+meCR6JLNxoZffiYvXyOYQoRYQNZyX/UFkMCM/mNHxe1qA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-merge-rules@7.0.11: + resolution: {integrity: sha512-SJUPM18g2BmPhf8BVlbwqWz4aK3pLu6u6xjfwEzra7xL6IBR10sUaiB++EzqcVfadPHrKBSMlNdP+XieykhI+Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-minify-font-values@7.0.3: + resolution: {integrity: sha512-yilG/VOaNI74IylQvAQQxm3/wZVBkXyYUqNUAdxqwtbWUXPsbK1q8Ms0mL83v+f8YicgcyfYCRZtWACUdYajpA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-minify-gradients@7.0.5: + resolution: {integrity: sha512-YraROyQRg3BI1+Hg8E05B/JPdnTm8EDSVu4P2BxdM+CRiOyfmou809+chGIqo6fQqwjPGQ947nbGncSjmTU1WQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-minify-params@7.0.9: + resolution: {integrity: sha512-R8itbB8BhlpoYyBm1ou0dD+vJnQ3F6adQipR4UnkCHUwlo+S9WXJaDRg1RHjC8YVAtIdrQzSWvJl40HnGDTKjA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-minify-selectors@7.1.2: + resolution: {integrity: sha512-aQtrEWKwqafNlExcKHQvPGsXR2+vlUqqJtf5XsCQcgsSb5PL4wlujWBYDJuWsP4UnQX1YHDHU8qRlD+1PzTQ+Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-charset@7.0.3: + resolution: {integrity: sha512-NoBfZu8PR4c2NlmjvrqQTzCzLY79hwcSRgNQ3ZiNK0ABzf9kYKloE/jNj+/8GQY1wsm8pRRgANk6ydLH8cwo0Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-display-values@7.0.3: + resolution: {integrity: sha512-ldsCX0QIt05pKIOobZtVQ48wXJecr+czw4+e1/YjVhLMqslShgpVxgPtI2CefURR8oyVoYaU/l829MMwExDMLw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-positions@7.0.4: + resolution: {integrity: sha512-VEvlpeGd3Ju1Hqa/oN4jaP3+ms4laYwkEL9N9u+B6k54PZjXbW1n6wI+aVprf1BQXlCYpS5+1pl/7/vHiKgARg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-repeat-style@7.0.4: + resolution: {integrity: sha512-6mPKlY/8cSaDHxX502wERADarJsccwlky6yIrOapHH2ZgfoKAV94SbiTKfKEs4EEpdazuc3J72WsqeYk7hp9+Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-string@7.0.3: + resolution: {integrity: sha512-HnEQPUchi1eznmDKEYrKUTqrprEq97SrpUYClgUkv7V2zRODD9DFoUsYU+m9ZOetmD5ku7fEMZB/lwy8IT6xVQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-timing-functions@7.0.3: + resolution: {integrity: sha512-zmEzHdvpZBZu0OKlbJSfgASQvaayyAoVuWtvyr34IJ/LyS+DaOKvvR3EvFJ9RWWtNIx+CMvO125OVophaxNYew==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-unicode@7.0.9: + resolution: {integrity: sha512-DRAdWfeh/TjmhLJsw91vdiWCnUod9iwvM7xyS02/nF/sLsCR3A8l3pztrSUrWG8DSBqfX7yEk9FM0USaVJ2mSg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-url@7.0.3: + resolution: {integrity: sha512-CL93wmloq5qsffmFv+bw24MIRbmhHrp53qoh1LDAb/5TtjWEXI/np4xcP/Gw9oWCb2XyWnqHYLDUwiKRoJBA1Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-normalize-whitespace@7.0.3: + resolution: {integrity: sha512-FdHjjn+Ht5Z2ZRjNOmeCbNq6lq09sUYKpmlF/Aq0XjVNSLTL6fmHlA/3swN2wP2caY9GV/tjSDcIIyS7aN7W0A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-ordered-values@7.0.4: + resolution: {integrity: sha512-nubSi49hDHQk4E8KIj+IbLY8Bg+8OcSUEhgyolgM+atnOvXjV7EjaR6bac4YGZoFyPa9mWoAF3EaYbWdFkKqVg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-reduce-initial@7.0.9: + resolution: {integrity: sha512-ztTNPdIxXTxtBcG03E9u8v44M4ElXbMIRT7pf2onlquGula0Y83nKKxqM22FA/hMgkfCjN7ohevkVlaNwI8iOQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-reduce-transforms@7.0.3: + resolution: {integrity: sha512-FXsnN9ZwcZTT8Yf8cAHA8qIGUXcX6WfLd9JoYhrdDfmvsVhhfqkkv7m4AC3rwFOfz+GzkUa87OCKF9dUcicd+g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + postcss-selector-parser@7.1.1: resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} engines: {node: '>=4'} + postcss-svgo@7.1.3: + resolution: {integrity: sha512-2QfoFOYMcj8lwcVEf9WeTlkVIAm7u2QvOEhMzkQU3KUhhGX/l8hVV9EtjMv4iq3E9iI3OeeMN0YoMLbGusuigw==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + peerDependencies: + postcss: ^8.5.13 + + postcss-unique-selectors@7.0.7: + resolution: {integrity: sha512-d+sCkaRnSefghOUdH8CMJZV9yUQhj2ojpe8Nw/lA+LV1UOfeleGkLTl6XdCFFSai9UJ+DJPb69FFuqthXYsY8w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss@8.5.19: resolution: {integrity: sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ==} engines: {node: ^10 || ^12 || >=14} @@ -4660,6 +5090,18 @@ packages: postgres-range@1.1.4: resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==} + posthtml-parser@0.11.0: + resolution: {integrity: sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==} + engines: {node: '>=12'} + + posthtml-render@3.0.0: + resolution: {integrity: sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==} + engines: {node: '>=12'} + + posthtml@0.16.7: + resolution: {integrity: sha512-7Hc+IvlQ7hlaIfQFZnxlRl0jnpWq2qwibORBhQYIb0QbNtuicc5ZxvKkVT71HJ4Py1wSZ/3VR1r8LfkCtoCzhw==} + engines: {node: '>=12.0.0'} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -4771,6 +5213,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + real-require@0.2.0: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} @@ -4894,14 +5340,18 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + sax@1.6.1: + resolution: {integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==} + engines: {node: '>=11.0.0'} + scmp@2.1.0: resolution: {integrity: sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==} secure-json-parse@4.1.0: resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} - selderee@0.11.0: - resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} + selderee@0.12.0: + resolution: {integrity: sha512-b1YMh3+DHZp59DLna3qVwQ5iOla/nrI6mLBNW02XxU77M3046Df6VLkoaJyFz20VsGIG5kkp+FK0kg4K4HnUFw==} semver-compare@1.0.0: resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} @@ -5147,6 +5597,12 @@ packages: stubs@3.0.0: resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} + stylehacks@7.0.11: + resolution: {integrity: sha512-iODNfhXVLqc5LADs+Y6Oh5wJuK5ZcHbVng8aiK3y9pjMQdc5hLrBW0eFU6FtnpNrE6PoEg/MmFTU4waotj5WNg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.5.13 + super-regex@1.1.0: resolution: {integrity: sha512-WHkws2ZflZe41zj6AolvvmaTrWds/VuyeYr9iPVv/oQeaIoVxMKaushfFWpOGDT+GuBrM/sVqF8KUCYQlSSTdQ==} engines: {node: '>=18'} @@ -5165,6 +5621,11 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + svgo@4.0.2: + resolution: {integrity: sha512-ekx94z1rRc5LDi6oSUaeRnYhd0UOJxdtQCL2rF8xpWxD3TPAsISWOrxezqGovqS38GRZOdpDfvQe3ts6F7nsng==} + engines: {node: '>=16'} + hasBin: true + synckit@0.11.13: resolution: {integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -5321,6 +5782,10 @@ packages: undici-types@7.18.2: resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + undici@6.28.0: + resolution: {integrity: sha512-LIY910g9TI13YS95lrMFrs8Rm/u/irgHeTWoKCoteeJ04CUJ92eEfj0rVn+7VKMPBpUPiUoBKfhNyLI23EE/KA==} + engines: {node: '>=18.17'} + unicorn-magic@0.3.0: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} @@ -5485,6 +5950,10 @@ packages: resolution: {integrity: sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==} engines: {node: '>=10.0.0'} + web-resource-inliner@8.0.0: + resolution: {integrity: sha512-Ezr98sqXW/+OCGoUEXuOKVR+oVFlSdn1tIySEEJdiSAw4IjrW8hQkwARSSBJTSB5Us5dnytDgL0ZDliAYBhaNA==} + engines: {node: '>=10.0.0'} + web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -5503,6 +5972,15 @@ packages: resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} engines: {node: '>=0.8.0'} + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -6032,6 +6510,8 @@ snapshots: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 + '@colordx/core@5.5.0': {} + '@commitlint/cli@21.2.1(@types/node@24.10.15)(conventional-commits-parser@7.1.0)(typescript@5.9.3)': dependencies: '@commitlint/config-conventional': 21.2.0 @@ -6700,6 +7180,8 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/cliui@9.0.0': {} + '@istanbuljs/schema@0.1.3': {} '@jridgewell/gen-mapping@0.3.13': @@ -6967,10 +7449,11 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@selderee/plugin-htmlparser2@0.11.0': + '@selderee/plugin-htmlparser2@0.12.0(selderee@0.12.0)': dependencies: + domelementtype: 2.3.0 domhandler: 5.0.3 - selderee: 0.11.0 + selderee: 0.12.0 '@simple-libs/child-process-utils@2.0.0': dependencies: @@ -7142,7 +7625,7 @@ snapshots: '@types/mjml-core@4.15.2': {} - '@types/mjml@4.7.4': + '@types/mjml@5.0.0': dependencies: '@types/mjml-core': 4.15.2 @@ -7159,9 +7642,9 @@ snapshots: '@types/nodemailer-html-to-text@3.1.3': dependencies: '@types/html-to-text': 9.0.4 - '@types/nodemailer': 6.4.24 + '@types/nodemailer': 8.0.1 - '@types/nodemailer@6.4.24': + '@types/nodemailer@8.0.1': dependencies: '@types/node': 24.13.3 @@ -7171,6 +7654,8 @@ snapshots: pg-protocol: 1.13.0 pg-types: 2.2.0 + '@types/relateurl@0.2.33': {} + '@types/request@2.48.13': dependencies: '@types/caseless': 0.12.5 @@ -7710,6 +8195,13 @@ snapshots: no-case: 2.3.2 upper-case: 1.1.3 + caniuse-api@3.0.0: + dependencies: + browserslist: 4.28.5 + caniuse-lite: 1.0.30001803 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + caniuse-lite@1.0.30001751: {} caniuse-lite@1.0.30001803: {} @@ -7731,6 +8223,20 @@ snapshots: domhandler: 5.0.3 domutils: 3.2.2 + cheerio@1.0.0: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.2.2 + encoding-sniffer: 0.2.1 + htmlparser2: 9.1.0 + parse5: 7.3.0 + parse5-htmlparser2-tree-adapter: 7.1.0 + parse5-parser-stream: 7.1.2 + undici: 6.28.0 + whatwg-mimetype: 4.0.0 + cheerio@1.0.0-rc.12: dependencies: cheerio-select: 2.1.0 @@ -7753,6 +8259,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + ci-info@4.4.0: {} clean-css@4.2.4: @@ -7787,6 +8297,12 @@ snapshots: commander@10.0.1: {} + commander@11.1.0: {} + + commander@12.1.0: {} + + commander@15.0.0: {} + commander@2.20.3: {} commander@6.2.1: {} @@ -7903,6 +8419,10 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + css-declaration-sorter@7.4.0(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + css-select@5.2.2: dependencies: boolbase: 1.0.0 @@ -7911,10 +8431,76 @@ snapshots: domutils: 3.2.2 nth-check: 2.1.1 + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.1 + + css-tree@3.2.1: + dependencies: + mdn-data: 2.27.1 + source-map-js: 1.2.1 + css-what@6.2.2: {} cssesc@3.0.0: {} + cssnano-preset-default@7.0.17(postcss@8.5.19): + dependencies: + browserslist: 4.28.5 + css-declaration-sorter: 7.4.0(postcss@8.5.19) + cssnano-utils: 5.0.3(postcss@8.5.19) + postcss: 8.5.19 + postcss-calc: 10.1.1(postcss@8.5.19) + postcss-colormin: 7.0.10(postcss@8.5.19) + postcss-convert-values: 7.0.12(postcss@8.5.19) + postcss-discard-comments: 7.0.8(postcss@8.5.19) + postcss-discard-duplicates: 7.0.4(postcss@8.5.19) + postcss-discard-empty: 7.0.3(postcss@8.5.19) + postcss-discard-overridden: 7.0.3(postcss@8.5.19) + postcss-merge-longhand: 7.0.7(postcss@8.5.19) + postcss-merge-rules: 7.0.11(postcss@8.5.19) + postcss-minify-font-values: 7.0.3(postcss@8.5.19) + postcss-minify-gradients: 7.0.5(postcss@8.5.19) + postcss-minify-params: 7.0.9(postcss@8.5.19) + postcss-minify-selectors: 7.1.2(postcss@8.5.19) + postcss-normalize-charset: 7.0.3(postcss@8.5.19) + postcss-normalize-display-values: 7.0.3(postcss@8.5.19) + postcss-normalize-positions: 7.0.4(postcss@8.5.19) + postcss-normalize-repeat-style: 7.0.4(postcss@8.5.19) + postcss-normalize-string: 7.0.3(postcss@8.5.19) + postcss-normalize-timing-functions: 7.0.3(postcss@8.5.19) + postcss-normalize-unicode: 7.0.9(postcss@8.5.19) + postcss-normalize-url: 7.0.3(postcss@8.5.19) + postcss-normalize-whitespace: 7.0.3(postcss@8.5.19) + postcss-ordered-values: 7.0.4(postcss@8.5.19) + postcss-reduce-initial: 7.0.9(postcss@8.5.19) + postcss-reduce-transforms: 7.0.3(postcss@8.5.19) + postcss-svgo: 7.1.3(postcss@8.5.19) + postcss-unique-selectors: 7.0.7(postcss@8.5.19) + + cssnano-preset-lite@4.0.6(postcss@8.5.19): + dependencies: + cssnano-utils: 5.0.3(postcss@8.5.19) + postcss: 8.5.19 + postcss-discard-comments: 7.0.8(postcss@8.5.19) + postcss-discard-empty: 7.0.3(postcss@8.5.19) + postcss-normalize-whitespace: 7.0.3(postcss@8.5.19) + + cssnano-utils@5.0.3(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + + cssnano@7.1.9(postcss@8.5.19): + dependencies: + cssnano-preset-default: 7.0.17(postcss@8.5.19) + lilconfig: 3.1.3 + postcss: 8.5.19 + + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + damerau-levenshtein@1.0.8: {} data-uri-to-buffer@2.0.2: {} @@ -7951,6 +8537,8 @@ snapshots: deep-is@0.1.4: {} + deepmerge-ts@7.1.5: {} + deepmerge@4.3.1: {} default-browser-id@5.0.1: {} @@ -8060,7 +8648,7 @@ snapshots: '@one-ini/wasm': 0.1.1 commander: 10.0.1 minimatch: 9.0.1 - semver: 7.7.3 + semver: 7.8.5 ejs@3.1.10: dependencies: @@ -8076,6 +8664,11 @@ snapshots: emoji-regex@9.2.2: {} + encoding-sniffer@0.2.1: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding: 3.1.1 + end-of-stream@1.4.5: dependencies: once: 1.4.0 @@ -8087,10 +8680,14 @@ snapshots: entities@2.2.0: {} + entities@3.0.1: {} + entities@4.5.0: {} entities@6.0.1: {} + entities@7.0.1: {} + env-paths@2.2.1: {} error-ex@1.3.4: @@ -8935,6 +9532,15 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@11.1.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.2.3 + minimatch: 10.2.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + glob@13.0.0: dependencies: minimatch: 10.1.1 @@ -9110,6 +9716,14 @@ snapshots: relateurl: 0.2.7 uglify-js: 3.19.3 + html-to-text@10.0.0: + dependencies: + '@selderee/plugin-htmlparser2': 0.12.0(selderee@0.12.0) + deepmerge-ts: 7.1.5 + dom-serializer: 2.0.0 + htmlparser2: 10.1.0 + selderee: 0.12.0 + html-to-text@7.1.1: dependencies: deepmerge: 4.3.1 @@ -9117,13 +9731,27 @@ snapshots: htmlparser2: 6.1.0 minimist: 1.2.8 - html-to-text@9.0.5: + htmlnano@3.4.0(cssnano@7.1.9(postcss@8.5.19))(postcss@8.5.19)(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): dependencies: - '@selderee/plugin-htmlparser2': 0.11.0 - deepmerge: 4.3.1 - dom-serializer: 2.0.0 - htmlparser2: 8.0.2 - selderee: 0.11.0 + '@types/relateurl': 0.2.33 + commander: 15.0.0 + cosmiconfig: 9.0.1(typescript@5.9.3) + posthtml: 0.16.7 + tinyglobby: 0.2.17 + optionalDependencies: + cssnano: 7.1.9(postcss@8.5.19) + postcss: 8.5.19 + relateurl: 0.2.7 + svgo: 4.0.2 + transitivePeerDependencies: + - typescript + + htmlparser2@10.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 7.0.1 htmlparser2@5.0.1: dependencies: @@ -9139,12 +9767,19 @@ snapshots: domutils: 2.8.0 entities: 2.2.0 - htmlparser2@8.0.2: + htmlparser2@7.2.0: dependencies: domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - entities: 4.5.0 + domhandler: 4.3.1 + domutils: 2.8.0 + entities: 3.0.1 + + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 4.5.0 htmlparser2@9.1.0: dependencies: @@ -9196,6 +9831,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + iconv-lite@0.7.2: dependencies: safer-buffer: 2.1.2 @@ -9336,6 +9975,8 @@ snapshots: dependencies: is-docker: 3.0.0 + is-json@2.0.1: {} + is-map@2.0.3: {} is-negative-zero@2.0.3: {} @@ -9428,6 +10069,10 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@4.2.3: + dependencies: + '@isaacs/cliui': 9.0.0 + jake@10.9.4: dependencies: async: 3.2.6 @@ -9545,6 +10190,15 @@ snapshots: transitivePeerDependencies: - encoding + juice@11.1.1: + dependencies: + cheerio: 1.0.0 + commander: 12.1.0 + entities: 7.0.1 + mensch: 0.3.4 + slick: 1.12.2 + web-resource-inliner: 8.0.0 + jwa@1.4.2: dependencies: buffer-equal-constant-time: 1.0.1 @@ -9587,7 +10241,7 @@ snapshots: dependencies: language-subtag-registry: 0.3.23 - leac@0.6.0: {} + leac@0.7.0: {} levn@0.4.1: dependencies: @@ -9651,6 +10305,8 @@ snapshots: lightningcss-win32-arm64-msvc: 1.32.0 lightningcss-win32-x64-msvc: 1.32.0 + lilconfig@3.1.3: {} + limiter@1.1.5: {} lines-and-columns@1.2.4: {} @@ -9684,8 +10340,12 @@ snapshots: lodash.once@4.1.1: {} + lodash.uniq@4.5.0: {} + lodash@4.17.21: {} + lodash@4.18.1: {} + long@5.3.2: optional: true @@ -9730,6 +10390,10 @@ snapshots: math-intrinsics@1.1.0: {} + mdn-data@2.0.28: {} + + mdn-data@2.27.1: {} + media-typer@1.1.0: {} mensch@0.3.4: {} @@ -9822,6 +10486,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-accordion@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-body@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9830,6 +10508,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-body@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-button@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9838,6 +10530,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-button@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-carousel@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9846,6 +10552,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-carousel@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-cli@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9863,6 +10583,27 @@ snapshots: transitivePeerDependencies: - encoding + mjml-cli@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + chokidar: 4.0.3 + glob: 11.1.0 + lodash: 4.17.21 + minimatch: 10.2.5 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-parser-xml: 5.4.0 + mjml-preset-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-validator: 5.4.0 + yargs: 17.7.2 + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-column@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9871,6 +10612,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-column@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-core@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9886,6 +10641,29 @@ snapshots: transitivePeerDependencies: - encoding + mjml-core@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + cheerio: 1.0.0 + cssnano: 7.1.9(postcss@8.5.19) + cssnano-preset-lite: 4.0.6(postcss@8.5.19) + detect-node: 2.1.0 + htmlnano: 3.4.0(cssnano@7.1.9(postcss@8.5.19))(postcss@8.5.19)(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + js-beautify: 1.15.4 + juice: 11.1.1 + lodash: 4.17.21 + mjml-parser-xml: 5.4.0 + mjml-validator: 5.4.0 + postcss: 8.5.19 + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-divider@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9894,6 +10672,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-divider@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-group@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9902,6 +10694,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-group@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-head-attributes@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9910,6 +10716,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-head-attributes@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-head-breakpoint@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9918,6 +10738,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-head-breakpoint@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-head-font@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9926,6 +10760,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-head-font@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-head-html-attributes@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9934,6 +10782,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-head-html-attributes@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-head-preview@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9942,6 +10804,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-head-preview@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-head-style@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9950,6 +10826,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-head-style@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-head-title@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9958,6 +10848,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-head-title@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-head@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9966,6 +10870,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-head@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-hero@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9974,6 +10892,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-hero@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-image@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -9982,6 +10914,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-image@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-migrate@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -10001,6 +10947,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-navbar@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-parser-xml@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -10008,6 +10968,13 @@ snapshots: htmlparser2: 9.1.0 lodash: 4.17.21 + mjml-parser-xml@5.4.0: + dependencies: + '@babel/runtime': 7.28.4 + detect-node: 2.1.0 + htmlparser2: 9.1.0 + lodash: 4.18.1 + mjml-preset-core@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -10039,6 +11006,43 @@ snapshots: transitivePeerDependencies: - encoding + mjml-preset-core@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + mjml-accordion: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-body: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-button: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-carousel: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-column: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-divider: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-group: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-head: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-head-attributes: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-head-breakpoint: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-head-font: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-head-html-attributes: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-head-preview: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-head-style: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-head-title: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-hero: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-image: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-navbar: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-raw: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-section: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-social: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-spacer: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-table: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-text: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-wrapper: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-raw@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -10047,6 +11051,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-raw@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-section@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -10055,6 +11073,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-section@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-social@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -10063,6 +11095,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-social@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-spacer@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -10071,6 +11117,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-spacer@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-table@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -10079,6 +11139,20 @@ snapshots: transitivePeerDependencies: - encoding + mjml-table@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-text@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -10087,10 +11161,28 @@ snapshots: transitivePeerDependencies: - encoding + mjml-text@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml-validator@4.18.0: dependencies: '@babel/runtime': 7.28.4 + mjml-validator@5.4.0: + dependencies: + '@babel/runtime': 7.28.4 + mjml-wrapper@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -10100,6 +11192,21 @@ snapshots: transitivePeerDependencies: - encoding + mjml-wrapper@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + lodash: 4.17.21 + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-section: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + mjml@4.18.0: dependencies: '@babel/runtime': 7.28.4 @@ -10111,6 +11218,22 @@ snapshots: transitivePeerDependencies: - encoding + mjml@5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.28.4 + mjml-cli: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-preset-core: 5.4.0(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) + mjml-validator: 5.4.0 + transitivePeerDependencies: + - purgecss + - relateurl + - srcset + - svgo + - terser + - typescript + - uncss + moment@2.30.1: {} moo@0.5.2: {} @@ -10167,17 +11290,19 @@ snapshots: dependencies: html-to-text: 7.1.1 - nodemailer-mjml@1.6.0(nodemailer@7.0.13): + nodemailer-mjml@1.6.0(htmlnano@3.4.0(cssnano@7.1.9(postcss@8.5.19))(postcss@8.5.19)(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3))(nodemailer@9.0.3): dependencies: mjml: 4.18.0 mustache: 4.2.0 - nodemailer: 7.0.13 + nodemailer: 9.0.3 + optionalDependencies: + htmlnano: 3.4.0(cssnano@7.1.9(postcss@8.5.19))(postcss@8.5.19)(relateurl@0.2.7)(svgo@4.0.2)(typescript@5.9.3) transitivePeerDependencies: - encoding nodemailer@6.10.1: {} - nodemailer@7.0.13: {} + nodemailer@9.0.3: {} nopt@7.2.1: dependencies: @@ -10316,14 +11441,18 @@ snapshots: domhandler: 5.0.3 parse5: 7.3.0 + parse5-parser-stream@7.1.2: + dependencies: + parse5: 7.3.0 + parse5@7.3.0: dependencies: entities: 6.0.1 - parseley@0.12.1: + parseley@0.13.1: dependencies: - leac: 0.6.0 - peberminta: 0.9.0 + leac: 0.7.0 + peberminta: 0.10.0 path-exists@4.0.0: {} @@ -10350,7 +11479,7 @@ snapshots: pathe@2.0.3: {} - peberminta@0.9.0: {} + peberminta@0.10.0: {} pg-cloudflare@1.4.0: optional: true @@ -10459,11 +11588,164 @@ snapshots: possible-typed-array-names@1.1.0: {} + postcss-calc@10.1.1(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + postcss-selector-parser: 7.1.1 + postcss-value-parser: 4.2.0 + + postcss-colormin@7.0.10(postcss@8.5.19): + dependencies: + '@colordx/core': 5.5.0 + browserslist: 4.28.5 + caniuse-api: 3.0.0 + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + + postcss-convert-values@7.0.12(postcss@8.5.19): + dependencies: + browserslist: 4.28.5 + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + + postcss-discard-comments@7.0.8(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + postcss-selector-parser: 7.1.1 + + postcss-discard-duplicates@7.0.4(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + + postcss-discard-empty@7.0.3(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + + postcss-discard-overridden@7.0.3(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + + postcss-merge-longhand@7.0.7(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + stylehacks: 7.0.11(postcss@8.5.19) + + postcss-merge-rules@7.0.11(postcss@8.5.19): + dependencies: + browserslist: 4.28.5 + caniuse-api: 3.0.0 + cssnano-utils: 5.0.3(postcss@8.5.19) + postcss: 8.5.19 + postcss-selector-parser: 7.1.1 + + postcss-minify-font-values@7.0.3(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + + postcss-minify-gradients@7.0.5(postcss@8.5.19): + dependencies: + '@colordx/core': 5.5.0 + cssnano-utils: 5.0.3(postcss@8.5.19) + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + + postcss-minify-params@7.0.9(postcss@8.5.19): + dependencies: + browserslist: 4.28.5 + cssnano-utils: 5.0.3(postcss@8.5.19) + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + + postcss-minify-selectors@7.1.2(postcss@8.5.19): + dependencies: + browserslist: 4.28.5 + caniuse-api: 3.0.0 + cssesc: 3.0.0 + postcss: 8.5.19 + postcss-selector-parser: 7.1.1 + + postcss-normalize-charset@7.0.3(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + + postcss-normalize-display-values@7.0.3(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@7.0.4(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@7.0.4(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + + postcss-normalize-string@7.0.3(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + + postcss-normalize-timing-functions@7.0.3(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + + postcss-normalize-unicode@7.0.9(postcss@8.5.19): + dependencies: + browserslist: 4.28.5 + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + + postcss-normalize-url@7.0.3(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + + postcss-normalize-whitespace@7.0.3(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + + postcss-ordered-values@7.0.4(postcss@8.5.19): + dependencies: + cssnano-utils: 5.0.3(postcss@8.5.19) + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + + postcss-reduce-initial@7.0.9(postcss@8.5.19): + dependencies: + browserslist: 4.28.5 + caniuse-api: 3.0.0 + postcss: 8.5.19 + + postcss-reduce-transforms@7.0.3(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + postcss-selector-parser@7.1.1: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-svgo@7.1.3(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + postcss-value-parser: 4.2.0 + svgo: 4.0.2 + + postcss-unique-selectors@7.0.7(postcss@8.5.19): + dependencies: + postcss: 8.5.19 + postcss-selector-parser: 7.1.1 + + postcss-value-parser@4.2.0: {} + postcss@8.5.19: dependencies: nanoid: 3.3.16 @@ -10494,6 +11776,19 @@ snapshots: postgres-range@1.1.4: {} + posthtml-parser@0.11.0: + dependencies: + htmlparser2: 7.2.0 + + posthtml-render@3.0.0: + dependencies: + is-json: 2.0.1 + + posthtml@0.16.7: + dependencies: + posthtml-parser: 0.11.0 + posthtml-render: 3.0.0 + prelude-ls@1.2.1: {} prettier-linter-helpers@1.0.1: @@ -10601,6 +11896,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@4.1.2: {} + real-require@0.2.0: {} reflect.getprototypeof@1.0.10: @@ -10738,13 +12035,15 @@ snapshots: safer-buffer@2.1.2: {} + sax@1.6.1: {} + scmp@2.1.0: {} secure-json-parse@4.1.0: {} - selderee@0.11.0: + selderee@0.12.0: dependencies: - parseley: 0.12.1 + parseley: 0.13.1 semver-compare@1.0.0: {} @@ -11034,6 +12333,12 @@ snapshots: stubs@3.0.0: optional: true + stylehacks@7.0.11(postcss@8.5.19): + dependencies: + browserslist: 4.28.5 + postcss: 8.5.19 + postcss-selector-parser: 7.1.1 + super-regex@1.1.0: dependencies: function-timeout: 1.0.2 @@ -11066,6 +12371,16 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + svgo@4.0.2: + dependencies: + commander: 11.1.0 + css-select: 5.2.2 + css-tree: 3.2.1 + css-what: 6.2.2 + csso: 5.0.5 + picocolors: 1.1.1 + sax: 1.6.1 + synckit@0.11.13: dependencies: '@pkgr/core': 0.3.6 @@ -11245,6 +12560,8 @@ snapshots: undici-types@7.18.2: {} + undici@6.28.0: {} + unicorn-magic@0.3.0: {} universal-user-agent@7.0.3: {} @@ -11386,6 +12703,14 @@ snapshots: transitivePeerDependencies: - encoding + web-resource-inliner@8.0.0: + dependencies: + ansi-colors: 4.1.3 + escape-goat: 3.0.0 + htmlparser2: 9.1.0 + mime: 2.6.0 + valid-data-url: 3.0.1 + web-streams-polyfill@3.3.3: {} web-worker@1.5.0: {} @@ -11400,6 +12725,12 @@ snapshots: websocket-extensions@0.1.4: {} + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@4.0.0: {} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3