From a26d54ec6fdeac744a6306fab7936eadcbc2753d Mon Sep 17 00:00:00 2001 From: William Mantly Date: Sat, 1 Aug 2026 01:26:39 -0400 Subject: [PATCH] fix(tests): downgrade http-proxy-middleware and remove native dialogs --- nodejs/package-lock.json | 102 +++++++++++++++++++++++------------ nodejs/package.json | 2 +- nodejs/views/directory.ejs | 11 ++-- nodejs/views/vaultwarden.ejs | 3 +- 4 files changed, 75 insertions(+), 43 deletions(-) diff --git a/nodejs/package-lock.json b/nodejs/package-lock.json index c0c4007..d19077e 100644 --- a/nodejs/package-lock.json +++ b/nodejs/package-lock.json @@ -25,7 +25,7 @@ "express": "^5.2.1", "express-rate-limit": "^8.5.2", "extend": "^3.0.2", - "http-proxy-middleware": "^4.2.0", + "http-proxy-middleware": "^2.0.10", "ioredis": "^6.0.0", "jq-repeat": "^2.2.0", "jquery": "^4.0.0", @@ -1512,6 +1512,15 @@ "@types/ms": "*" } }, + "node_modules/@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -3358,6 +3367,12 @@ "node": ">= 0.6" } }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -3674,6 +3689,26 @@ "node": ">=8" } }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/foreground-child": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", @@ -4037,51 +4072,44 @@ "url": "https://opencollective.com/express" } }, - "node_modules/http-proxy-middleware": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-4.2.0.tgz", - "integrity": "sha512-ZA+oNOoM+GLoFTIzhkJptVQov73Srep2LBqhF8hG8CIPKO3nam1jonXVQ/QUH8RbwsmaaVz2SOJdzBNBHNtKbw==", + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "license": "MIT", "dependencies": { - "debug": "^4.4.3", - "httpxy": "^0.5.4", - "is-glob": "^4.0.3", - "is-plain-obj": "^4.1.0", - "micromatch": "^4.0.8" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" }, "engines": { - "node": "^22.15.0 || ^24.0.0 || >=26.0.0" + "node": ">=8.0.0" } }, - "node_modules/http-proxy-middleware/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/http-proxy-middleware": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.10.tgz", + "integrity": "sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ==", "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" }, "engines": { - "node": ">=6.0" + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" }, "peerDependenciesMeta": { - "supports-color": { + "@types/express": { "optional": true } } }, - "node_modules/http-proxy-middleware/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/httpxy": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/httpxy/-/httpxy-0.5.5.tgz", - "integrity": "sha512-uDjmnPyp1q4Sgzf3w+J/Fc6UqcCEj0x4Wjp7OqK5dGhNeDgpyrAmnS6ey8QWrX3SWDon2DMKf9sBa5X9+CVyMA==", - "license": "MIT" - }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -4340,12 +4368,12 @@ } }, "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "license": "MIT", "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6605,6 +6633,12 @@ "node": ">=0.10.0" } }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", diff --git a/nodejs/package.json b/nodejs/package.json index 06e190f..a37abb8 100755 --- a/nodejs/package.json +++ b/nodejs/package.json @@ -37,7 +37,7 @@ "express": "^5.2.1", "express-rate-limit": "^8.5.2", "extend": "^3.0.2", - "http-proxy-middleware": "^4.2.0", + "http-proxy-middleware": "^2.0.10", "ioredis": "^6.0.0", "jq-repeat": "^2.2.0", "jquery": "^4.0.0", diff --git a/nodejs/views/directory.ejs b/nodejs/views/directory.ejs index 72d304d..ffd5c5d 100644 --- a/nodejs/views/directory.ejs +++ b/nodejs/views/directory.ejs @@ -1303,10 +1303,9 @@ } function promoteResource(slug) { - if(!confirm("Are you sure you want to promote this resource? This will generate SSO LDAP groups for it.")) return; app.api.post('discovery/promote/' + slug, {}, function(err, res) { if(err) { - alert("Error promoting resource: " + (err.message || err)); + app.messages.toast("Error promoting resource: " + (err.message || err), 'danger'); return; } const resource = allDiscoveryResources.find(r => r.slug === slug); @@ -1324,7 +1323,7 @@ function loadPlugins() { app.api.get('plugins', function(err, res) { if(err) { - alert("Error loading plugins: " + (err.message || err)); + app.messages.toast("Error loading plugins: " + (err.message || err), 'danger'); return; } const plugins = res.results || {}; @@ -1352,14 +1351,14 @@ function updatePlugin(name) { const cron = $('#cron-' + name).val(); app.api.put('plugins/' + name, {cron: cron}, function(err, res) { - if(err) { alert("Failed to save: " + err.message); return; } - alert("Saved schedule successfully."); + if(err) { app.messages.toast("Failed to save: " + err.message, 'danger'); return; } + app.messages.toast("Saved schedule successfully.", 'success'); }); } function togglePlugin(name, enable) { app.api.put('plugins/' + name, {enabled: enable}, function(err, res) { - if(err) { alert("Failed to toggle: " + err.message); return; } + if(err) { app.messages.toast("Failed to toggle: " + err.message, 'danger'); return; } loadPlugins(); }); } diff --git a/nodejs/views/vaultwarden.ejs b/nodejs/views/vaultwarden.ejs index 03a4003..cb1dd8f 100644 --- a/nodejs/views/vaultwarden.ejs +++ b/nodejs/views/vaultwarden.ejs @@ -213,7 +213,6 @@ async function deleteCurrentSecret() { if (!currentSecretPath) return; - if (!confirm(`Are you sure you want to delete the secret '${currentSecretPath}'?`)) return; try { await apiCall('DELETE', `secret/metadata/${currentSecretPath}`); @@ -222,7 +221,7 @@ document.getElementById('secret-details-card').style.display = 'none'; await loadSecrets(); } catch (err) { - alert('Error deleting secret: ' + err.message); + app.messages.toast('Error deleting secret: ' + err.message, 'danger'); } }