diff --git a/api/package-lock.json b/api/package-lock.json index 2284efe6..1abb8898 100644 --- a/api/package-lock.json +++ b/api/package-lock.json @@ -33,7 +33,6 @@ "connect-mongo": "^5.1.0", "cookie-parser": "^1.4.6", "dotenv": "^16.3.1", - "ejs": "^3.1.9", "express-session": "^1.17.3", "handlebars": "^4.7.8", "module-alias": "^2.2.3", @@ -7408,7 +7407,8 @@ "node_modules/async": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "optional": true }, "node_modules/async-mutex": { "version": "0.4.1", @@ -9629,6 +9629,7 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "optional": true, "dependencies": { "jake": "^10.8.5" }, @@ -10805,6 +10806,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "optional": true, "dependencies": { "minimatch": "^5.0.1" } @@ -10813,6 +10815,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "optional": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -10821,6 +10824,7 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "optional": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -12526,6 +12530,7 @@ "version": "10.8.7", "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "optional": true, "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", diff --git a/api/package.json b/api/package.json index 70e5d59a..2f514805 100644 --- a/api/package.json +++ b/api/package.json @@ -68,7 +68,6 @@ "connect-mongo": "^5.1.0", "cookie-parser": "^1.4.6", "dotenv": "^16.3.1", - "ejs": "^3.1.9", "express-session": "^1.17.3", "handlebars": "^4.7.8", "module-alias": "^2.2.3", diff --git a/api/src/app.module.ts b/api/src/app.module.ts index 3c4692a1..86c35c44 100644 --- a/api/src/app.module.ts +++ b/api/src/app.module.ts @@ -71,7 +71,15 @@ const i18nOptions: I18nOptions = { debug: false, }), template: { - adapter: new MjmlAdapter('ejs', { inlineCssEnabled: false }), + adapter: new MjmlAdapter( + 'handlebars', + { + inlineCssEnabled: false, + }, + { + handlebar: {}, + }, + ), dir: path.join(process.cwd(), 'dist', 'templates'), options: { context: { diff --git a/api/src/templates/account_confirmation.mjml b/api/src/templates/account_confirmation.mjml index 07230f9d..debb4d1a 100644 --- a/api/src/templates/account_confirmation.mjml +++ b/api/src/templates/account_confirmation.mjml @@ -2,34 +2,38 @@ - + - <%= t('hi') %> <%= first_name %>, - <%= t('account_successfully_created_confirm_password') %> + + {{t 'hi'}} {{first_name}}, + + + {{t 'account_successfully_created_confirm_password'}} + - <%= t('confirm_account') %> + + {{t 'confirm_account'}} + <%= t('confirm') %> + {{t 'confirm'}} + - <%= t('best_regards') %> - <%= this.appName %> + + {{t 'best_regards'}} + + + {{appName}} + diff --git a/api/src/templates/invitation.mjml b/api/src/templates/invitation.mjml index 515a4899..1cd21878 100644 --- a/api/src/templates/invitation.mjml +++ b/api/src/templates/invitation.mjml @@ -2,36 +2,39 @@ - + - <%= t('welcome') %>, + {{t 'welcome'}} + + + + {{t 'invitation_for_account_creation'}} {{appName}} {{t 'account'}}. <%= `${t('invitation_for_account_creation')} ${this.appName} - ${t('account')}.` %> - - <%= t('create_account') %>{{ t 'create_account'}} <%= t('join') %> + {{t 'join'}} <%= t('best_regards') %> + >{{t 'best_regards'}} + <%= this.appName %>{{this.appName }} diff --git a/api/src/templates/password_reset.mjml b/api/src/templates/password_reset.mjml index 015425ae..2e66de56 100644 --- a/api/src/templates/password_reset.mjml +++ b/api/src/templates/password_reset.mjml @@ -2,33 +2,37 @@ - + - <%= t('hi') %> <%= first_name %>, - <%= t('password_reset_request') %> - <%= t('click_to_reset_password') %> + + {{t 'hi'}} {{first_name}}, + + + {{t 'password_reset_request'}} + + + {{t 'click_to_reset_password'}} + <%= t('reset') %> + {{t 'reset'}} + - <%= t('best_regards') %> - <%= this.appName %> + + {{t 'best_regards'}} + + + {{appName}} + diff --git a/api/src/user/services/invitation.service.ts b/api/src/user/services/invitation.service.ts index 69a1cc75..9e287f61 100644 --- a/api/src/user/services/invitation.service.ts +++ b/api/src/user/services/invitation.service.ts @@ -1,5 +1,5 @@ /* - * Copyright © 2024 Hexastack. All rights reserved. + * Copyright © 2025 Hexastack. All rights reserved. * * Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms: * 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.