diff --git a/package-lock.json b/package-lock.json index ab8b0e8..4b9ec9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,8 +15,8 @@ "bcryptjs": "^2.4.3", "dompurify": "^3.3.1", "jsonwebtoken": "^9.0.2", - "multer": "^2.0.2", - "nodemailer": "^9.0.1", + "multer": "^2.4.0", + "nodemailer": "^10.0.2", "nuxt": "^4.5.1", "pdf-lib": "^1.17.1", "pdf-parse": "^2.4.5", @@ -4763,19 +4763,6 @@ "dev": true, "license": "MIT" }, - "node_modules/concat-stream": { - "version": "2.0.0", - "engines": [ - "node >= 6.0" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, "node_modules/confbox": { "version": "0.2.4", "license": "MIT" @@ -7618,14 +7605,13 @@ "license": "MIT" }, "node_modules/multer": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/multer/-/multer-2.3.0.tgz", - "integrity": "sha512-cjNbm3sttszgZeGfJR124D+jFEfkXCVAsoPBmFn9X7UxmDSFHWqE2CoEj0vrmSpuAFnqWR1Szcm9QTsiHr60Xw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/multer/-/multer-2.4.0.tgz", + "integrity": "sha512-7dqa0ZcFfzbefdTuIkzOSMvZWC0J7FLqBOjJUZvDCXShIURWKxAyTT1wHhnE5q19c7jOJf43IYYKjBmZVZmvhg==", "license": "MIT", "dependencies": { "append-field": "^1.0.0", "busboy": "^1.6.0", - "concat-stream": "^2.0.0", "type-is": "^1.6.18" }, "engines": { @@ -7858,12 +7844,12 @@ } }, "node_modules/nodemailer": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-9.1.1.tgz", - "integrity": "sha512-izw9mVKFix6YSnC9eLgV6g1opl9DUlRio9ZNcq+Wu9Ujn2UwF+8Nl0B8nz22kEC+CTZCvinkxwJ0DeFbb6NwcQ==", + "version": "10.0.12", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-10.0.12.tgz", + "integrity": "sha512-PQ46oNbNMuH/Sno7B5IWIU9etytwrO0xdTFvWXpIQFRXhBAXtzD48243AS+BCbQQTPD8y3fqUrgLn0tSo77gvg==", "license": "MIT-0", "engines": { - "node": ">=6.0.0" + "node": ">=20.0.0" } }, "node_modules/nopt": { @@ -9408,18 +9394,6 @@ "pify": "^2.3.0" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/readdir-glob": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", @@ -11295,10 +11269,6 @@ "node": ">= 0.6" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "license": "MIT" - }, "node_modules/ufo": { "version": "1.6.4", "license": "MIT" @@ -11344,9 +11314,9 @@ } }, "node_modules/undici": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", - "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.2.tgz", + "integrity": "sha512-/y4/bH9YNU5hi9NIrpOuvGXFcxrj3CMrV+/AYpowAYTpHn8gX/XPFjNy766FPoYY0miQhdW977JFWKGNhBdwyQ==", "license": "MIT", "engines": { "node": ">=22.19.0" diff --git a/package.json b/package.json index ba2af11..179bc5d 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "harheimertc-website", - "version": "1.8.10", + "version": "1.8.11", "description": "Moderne Webseite für den Harheimer Tischtennis Club", "private": true, "type": "module", @@ -38,8 +38,8 @@ "bcryptjs": "^2.4.3", "dompurify": "^3.3.1", "jsonwebtoken": "^9.0.2", - "multer": "^2.0.2", - "nodemailer": "^9.0.1", + "multer": "^2.4.0", + "nodemailer": "^10.0.2", "nuxt": "^4.5.1", "pdf-lib": "^1.17.1", "pdf-parse": "^2.4.5", @@ -70,6 +70,7 @@ "@peculiar/x509": "1.13.0", "devalue": "5.9.2", "esbuild": "0.28.1", - "qs": "6.16.0" + "qs": "6.16.0", + "undici": "8.10.2" } } diff --git a/server/utils/push-notifications.js b/server/utils/push-notifications.js index 67b4c30..c064a2d 100755 --- a/server/utils/push-notifications.js +++ b/server/utils/push-notifications.js @@ -337,7 +337,7 @@ export async function sendOwnTtrChangePush(changes = []) { export async function sendQttrListUpdatedPush({ importedAt, rowCount }) { return sendPushToUsers({ title: 'QTTR-Liste aktualisiert', - body: `Die aktuelle TTR- und QTTR-Liste wurde aktualisiert (${rowCount} Einträge).`, + body: `Die aktuellen QTTR-Werte wurden aktualisiert (${rowCount} Einträge).`, data: { type: 'qttr_list_updated', importedAt: importedAt || '', diff --git a/server/utils/qttr-import.js b/server/utils/qttr-import.js index d0ee057..a2222a2 100755 --- a/server/utils/qttr-import.js +++ b/server/utils/qttr-import.js @@ -297,8 +297,7 @@ function qttrListSignature(rows) { if (!Array.isArray(rows) || rows.length === 0) return '' return rows .map(row => [ - String(row?.playerName || '').trim().toLocaleLowerCase('de-DE'), - row?.rank ?? '', + String(row?.playerNumber || row?.playerName || '').trim().toLocaleLowerCase('de-DE'), row?.currentQttr ?? '' ].join('|')) .sort()