diff --git a/packages/cli/package.json b/packages/cli/package.json index bad65cba5bd..fdc0f7d7244 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -90,7 +90,6 @@ "@types/luxon": "catalog:", "@types/ms": "catalog:", "@types/multer": "^2.1.0", - "@types/nodemailer": "catalog:", "@types/psl": "^1.1.0", "@types/replacestream": "^4.0.1", "@types/semver": "catalog:", diff --git a/packages/cli/src/user-management/email/__tests__/node-mailer.test.ts b/packages/cli/src/user-management/email/__tests__/node-mailer.test.ts index 0b4e5470d5c..396533a9514 100644 --- a/packages/cli/src/user-management/email/__tests__/node-mailer.test.ts +++ b/packages/cli/src/user-management/email/__tests__/node-mailer.test.ts @@ -69,7 +69,7 @@ describe('NodeMailer', () => { ); mockTransport = mock(); - mockTransport.sendMail.mockResolvedValue({}); + mockTransport.sendMail.mockResolvedValue(undefined); // Replace the private transport with our mock Object.defineProperty(nodeMailer, 'transport', { value: mockTransport }); }); diff --git a/packages/cli/src/user-management/email/node-mailer.ts b/packages/cli/src/user-management/email/node-mailer.ts index 957dfb78319..a1c821e3acb 100644 --- a/packages/cli/src/user-management/email/node-mailer.ts +++ b/packages/cli/src/user-management/email/node-mailer.ts @@ -6,7 +6,7 @@ import { ErrorReporter } from 'n8n-core'; import path from 'node:path'; import type { Transporter } from 'nodemailer'; import { createTransport } from 'nodemailer'; -import type SMTPConnection from 'nodemailer/lib/smtp-connection'; +import type SMTPTransport from 'nodemailer/lib/smtp-transport'; import type { MailData, SendEmailResult } from './interfaces'; @@ -22,7 +22,7 @@ export class NodeMailer { private readonly errorReporter: ErrorReporter, ) { const smtpConfig = globalConfig.userManagement.emails.smtp; - const transportConfig: SMTPConnection.Options = pick(smtpConfig, ['host', 'port', 'secure']); + const transportConfig: SMTPTransport.Options = pick(smtpConfig, ['host', 'port', 'secure']); transportConfig.ignoreTLS = !smtpConfig.startTLS; const { auth } = smtpConfig; diff --git a/packages/nodes-base/package.json b/packages/nodes-base/package.json index 2d36c985a0a..9a13acb8982 100644 --- a/packages/nodes-base/package.json +++ b/packages/nodes-base/package.json @@ -924,7 +924,6 @@ "@types/mailparser": "^3.4.4", "@types/mime-types": "catalog:", "@types/mssql": "^9.1.5", - "@types/nodemailer": "catalog:", "@types/oracledb": "catalog:", "@types/promise-ftp": "^1.3.4", "@types/qs": "catalog:", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a2958a05dd5..9dd8948cd86 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -461,9 +461,6 @@ catalogs: '@types/ms': specifier: 2.1.0 version: 2.1.0 - '@types/nodemailer': - specifier: 8.0.1 - version: 8.0.1 '@types/oracledb': specifier: 6.10.3 version: 6.10.3 @@ -978,7 +975,7 @@ overrides: pdf-parse: 2.4.5 pdfjs-dist: 5.4.296 tmp: 0.2.7 - nodemailer: 8.0.10 + nodemailer: 10.0.14 validator: 13.15.26 zod: 3.25.76 knip>zod: ^4.4.3 @@ -5110,8 +5107,8 @@ importers: specifier: 'catalog:' version: 3.3.18 nodemailer: - specifier: 8.0.10 - version: 8.0.10 + specifier: 10.0.14 + version: 10.0.14 oauth-1.0a: specifier: 2.2.6 version: 2.2.6 @@ -5281,9 +5278,6 @@ importers: '@types/multer': specifier: ^2.1.0 version: 2.1.0 - '@types/nodemailer': - specifier: 'catalog:' - version: 8.0.1 '@types/psl': specifier: ^1.1.0 version: 1.1.3 @@ -7952,8 +7946,8 @@ importers: specifier: 13.2.0 version: 13.2.0 nodemailer: - specifier: 8.0.10 - version: 8.0.10 + specifier: 10.0.14 + version: 10.0.14 oracledb: specifier: 'catalog:' version: 6.10.0 @@ -8090,9 +8084,6 @@ importers: '@types/mssql': specifier: ^9.1.5 version: 9.1.5 - '@types/nodemailer': - specifier: 'catalog:' - version: 8.0.1 '@types/oracledb': specifier: 'catalog:' version: 6.10.3 @@ -15108,9 +15099,6 @@ packages: '@types/node@20.19.41': resolution: {integrity: sha512-ECymXOukMnOoVkC2bb1Vc/w/836DXncOg5m8Xj1RH7xSHZJWNYY6Zh7EH477vcnD5egKNNfy2RpNOmuChhFPgQ==} - '@types/nodemailer@8.0.1': - resolution: {integrity: sha512-PxpaInm8V1JQDd4j0ds5HfvWQk8JupS1C0Picb96QJsrrRDjBH+DlK7L4ZdNSqNULhiZRQHc40nLVShaGxXAMw==} - '@types/oracledb@6.10.3': resolution: {integrity: sha512-8SCGQF/VSiXnifVFTajmRNtjHUDTNxkd9SrBrvG2A/80uwLVee5xmv/juH4hnDNTfU9qxfd6HR4Mfmg2nC3RVw==} @@ -21474,9 +21462,9 @@ packages: resolution: {integrity: sha512-7vsKR2Bbs66th6IWCy/7SN4MSwlVt+G6QrHB631BjRUM8/LmvDugtYhi0uAmgvHS/+PVurfNBOmELf30rm0MZg==} engines: {node: '>= 10'} - nodemailer@8.0.10: - resolution: {integrity: sha512-BLFuSth7QtHOkBzyqTehWWyub0NTRDuK2Q2SQfnGLsrJnzyU+Yeh4WpV1eZGuARFj1xQJHIdnTuJZLP+b9R1GQ==} - engines: {node: '>=6.0.0'} + nodemailer@10.0.14: + resolution: {integrity: sha512-eJoLFKg55fesSlzUekmfOv/SBXh4KUYT8oiQc2RLP0tfG0rbNMJBK7wgHJwXTJwqyKlSJMz9UzDZ4v+aHEvo8g==} + engines: {node: '>=20.0.0'} nodemon@3.0.1: resolution: {integrity: sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==} @@ -33278,10 +33266,6 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/nodemailer@8.0.1': - dependencies: - '@types/node': 20.19.41 - '@types/oracledb@6.10.3': dependencies: '@types/node': 20.19.41 @@ -39640,7 +39624,7 @@ snapshots: iconv-lite: 0.7.2 libmime: 5.3.7 linkify-it: 5.0.2 - nodemailer: 8.0.10 + nodemailer: 10.0.14 punycode.js: 2.3.1 tlds: 1.261.0 @@ -40962,7 +40946,7 @@ snapshots: shell-escape: 0.2.0 ssh2: 1.16.0 - nodemailer@8.0.10: {} + nodemailer@10.0.14: {} nodemon@3.0.1: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index a826f89ddce..c2770b92e61 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -160,7 +160,6 @@ catalog: '@types/mime-types': 3.0.1 '@types/ms': 2.1.0 '@types/node': 24.10.1 - '@types/nodemailer': 8.0.1 '@types/oracledb': 6.10.3 '@types/proxy-from-env': ^1.0.4 '@types/qs': 6.9.15 @@ -242,7 +241,7 @@ catalog: mysql2: 3.23.1 nanoid: 3.3.18 nock: 14.0.14 - nodemailer: 8.0.10 + nodemailer: 10.0.14 openai: 6.46.0 oracledb: 6.10.0 oxlint: 1.78.0 @@ -398,7 +397,7 @@ overrides: pdf-parse: 'catalog:' pdfjs-dist: 'catalog:' tmp: 0.2.7 - nodemailer: 8.0.10 + nodemailer: 10.0.14 validator: 'catalog:' zod: 3.25.76 # Scoped to knip so the repo-wide zod 3 pin stays for everything else.