From aae3a5bbc56aadab5c6a1ceac201484c6c0f1e5c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 18 Jul 2025 17:21:32 +0000
Subject: [PATCH] chore: update dependency express to v5

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
 examples/express-composition/package.json     |   4 +-
 examples/lb3-application/package.json         |   2 +-
 examples/passport-login/package.json          |   4 +-
 examples/rpc-server/package.json              |   4 +-
 .../authentication-passport/package.json      |   2 +-
 extensions/graphql/package.json               |   2 +-
 extensions/metrics/package.json               |   4 +-
 fixtures/mock-oauth2-provider/package.json    |   4 +-
 package-lock.json                             | 740 +++++++++++++++---
 packages/authentication/package.json          |   2 +-
 packages/booter-lb3app/package.json           |   2 +-
 packages/express/package.json                 |   4 +-
 packages/rest-explorer/package.json           |   4 +-
 packages/rest/package.json                    |   4 +-
 packages/testlab/package.json                 |   4 +-
 15 files changed, 658 insertions(+), 128 deletions(-)

diff --git a/examples/express-composition/package.json b/examples/express-composition/package.json
index 0ad37bae3d87..dae63b399b1d 100644
--- a/examples/express-composition/package.json
+++ b/examples/express-composition/package.json
@@ -53,14 +53,14 @@
     "@loopback/rest": "^15.0.3",
     "@loopback/rest-explorer": "^8.0.3",
     "@loopback/service-proxy": "^8.0.2",
-    "express": "^4.21.2",
+    "express": "^5.1.0",
     "tslib": "^2.8.1"
   },
   "devDependencies": {
     "@loopback/build": "^12.0.2",
     "@loopback/eslint-config": "^16.0.0",
     "@loopback/testlab": "^8.0.2",
-    "@types/express": "^4.17.23",
+    "@types/express": "^5.0.3",
     "@types/node": "^16.18.126",
     "eslint": "^8.57.1",
     "typescript": "~5.2.2"
diff --git a/examples/lb3-application/package.json b/examples/lb3-application/package.json
index 05857c27d603..1f2c5127b3be 100644
--- a/examples/lb3-application/package.json
+++ b/examples/lb3-application/package.json
@@ -56,7 +56,7 @@
     "compression": "^1.8.1",
     "cors": "^2.8.5",
     "debug": "^4.4.1",
-    "express": "^4.21.2",
+    "express": "^5.1.0",
     "helmet": "^4.6.0",
     "loopback": "^3.28.0",
     "loopback-boot": "^3.3.1",
diff --git a/examples/passport-login/package.json b/examples/passport-login/package.json
index 01a44ca7f0b1..614bfcd7d835 100644
--- a/examples/passport-login/package.json
+++ b/examples/passport-login/package.json
@@ -71,7 +71,7 @@
     "body-parser": "^2.2.0",
     "client-sessions": "^0.8.0",
     "debug": "^4.4.1",
-    "express": "^4.21.2",
+    "express": "^5.1.0",
     "express-session": "^1.18.2",
     "lodash": "^4.17.21",
     "passport": "^0.5.3",
@@ -91,7 +91,7 @@
     "@loopback/eslint-config": "^16.0.0",
     "@loopback/http-caching-proxy": "^7.0.2",
     "@loopback/testlab": "^8.0.2",
-    "@types/express": "^4.17.23",
+    "@types/express": "^5.0.3",
     "@types/lodash": "^4.17.20",
     "@types/node": "^16.18.126",
     "axios": "^1.10.0",
diff --git a/examples/rpc-server/package.json b/examples/rpc-server/package.json
index 61265578eec7..3dda90bfb7df 100644
--- a/examples/rpc-server/package.json
+++ b/examples/rpc-server/package.json
@@ -43,14 +43,14 @@
   },
   "dependencies": {
     "@loopback/core": "^7.0.2",
-    "express": "^4.21.2",
+    "express": "^5.1.0",
     "tslib": "^2.8.1"
   },
   "devDependencies": {
     "@loopback/build": "^12.0.2",
     "@loopback/eslint-config": "^16.0.0",
     "@loopback/testlab": "^8.0.2",
-    "@types/express": "^4.17.23",
+    "@types/express": "^5.0.3",
     "@types/node": "^16.18.126",
     "eslint": "^8.57.1",
     "typescript": "~5.2.2"
diff --git a/extensions/authentication-passport/package.json b/extensions/authentication-passport/package.json
index 3d8d4c98b11d..f6790a0e4045 100644
--- a/extensions/authentication-passport/package.json
+++ b/extensions/authentication-passport/package.json
@@ -68,7 +68,7 @@
     "@types/qs": "^6.14.0",
     "axios": "^1.10.0",
     "body-parser": "^2.2.0",
-    "express": "^4.21.2",
+    "express": "^5.1.0",
     "form-data": "^4.0.4",
     "jsonwebtoken": "^9.0.2",
     "lodash": "^4.17.21",
diff --git a/extensions/graphql/package.json b/extensions/graphql/package.json
index 0c17446a2a2e..7d5c1ab4ecbc 100644
--- a/extensions/graphql/package.json
+++ b/extensions/graphql/package.json
@@ -50,7 +50,7 @@
     "body-parser": "^2.2.0",
     "cors": "^2.8.5",
     "debug": "^4.4.1",
-    "express": "^4.21.2",
+    "express": "^5.1.0",
     "graphql": "^16.11.0",
     "graphql-subscriptions": "^2.0.0",
     "graphql-ws": "^5.16.2",
diff --git a/extensions/metrics/package.json b/extensions/metrics/package.json
index 1042763e1149..a18b9eed8abf 100644
--- a/extensions/metrics/package.json
+++ b/extensions/metrics/package.json
@@ -52,8 +52,8 @@
     "@loopback/eslint-config": "^16.0.0",
     "@loopback/rest": "^15.0.3",
     "@loopback/testlab": "^8.0.2",
-    "@types/express": "^4.17.23",
+    "@types/express": "^5.0.3",
     "@types/node": "^16.18.126",
-    "express": "^4.21.2"
+    "express": "^5.1.0"
   }
 }
diff --git a/fixtures/mock-oauth2-provider/package.json b/fixtures/mock-oauth2-provider/package.json
index 9f89b5cd7df0..6be0b4f4aa0b 100644
--- a/fixtures/mock-oauth2-provider/package.json
+++ b/fixtures/mock-oauth2-provider/package.json
@@ -36,13 +36,13 @@
   ],
   "dependencies": {
     "@types/body-parser": "^1.19.6",
-    "@types/express": "^4.17.23",
+    "@types/express": "^5.0.3",
     "@types/jsonwebtoken": "^9.0.10",
     "@types/lodash": "^4.17.20",
     "@types/node": "^16.18.126",
     "axios": "^1.10.0",
     "body-parser": "^2.2.0",
-    "express": "^4.21.2",
+    "express": "^5.1.0",
     "form-data": "^4.0.4",
     "jsonwebtoken": "^9.0.2",
     "lodash": "^4.17.21",
diff --git a/package-lock.json b/package-lock.json
index ccede0cd3f92..5443795b561c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -467,14 +467,14 @@
         "@loopback/rest": "^15.0.3",
         "@loopback/rest-explorer": "^8.0.3",
         "@loopback/service-proxy": "^8.0.2",
-        "express": "^4.21.2",
+        "express": "^5.1.0",
         "tslib": "^2.8.1"
       },
       "devDependencies": {
         "@loopback/build": "^12.0.2",
         "@loopback/eslint-config": "^16.0.0",
         "@loopback/testlab": "^8.0.2",
-        "@types/express": "^4.17.23",
+        "@types/express": "^5.0.3",
         "@types/node": "^16.18.126",
         "eslint": "^8.57.1",
         "typescript": "~5.2.2"
@@ -690,7 +690,7 @@
         "compression": "^1.8.1",
         "cors": "^2.8.5",
         "debug": "^4.4.1",
-        "express": "^4.21.2",
+        "express": "^5.1.0",
         "helmet": "^4.6.0",
         "loopback": "^3.28.0",
         "loopback-boot": "^3.3.1",
@@ -889,7 +889,7 @@
         "body-parser": "^2.2.0",
         "client-sessions": "^0.8.0",
         "debug": "^4.4.1",
-        "express": "^4.21.2",
+        "express": "^5.1.0",
         "express-session": "^1.18.2",
         "lodash": "^4.17.21",
         "passport": "^0.5.3",
@@ -909,7 +909,7 @@
         "@loopback/eslint-config": "^16.0.0",
         "@loopback/http-caching-proxy": "^7.0.2",
         "@loopback/testlab": "^8.0.2",
-        "@types/express": "^4.17.23",
+        "@types/express": "^5.0.3",
         "@types/lodash": "^4.17.20",
         "@types/node": "^16.18.126",
         "axios": "^1.10.0",
@@ -1019,14 +1019,14 @@
       "license": "MIT",
       "dependencies": {
         "@loopback/core": "^7.0.2",
-        "express": "^4.21.2",
+        "express": "^5.1.0",
         "tslib": "^2.8.1"
       },
       "devDependencies": {
         "@loopback/build": "^12.0.2",
         "@loopback/eslint-config": "^16.0.0",
         "@loopback/testlab": "^8.0.2",
-        "@types/express": "^4.17.23",
+        "@types/express": "^5.0.3",
         "@types/node": "^16.18.126",
         "eslint": "^8.57.1",
         "typescript": "~5.2.2"
@@ -1437,7 +1437,7 @@
         "@types/qs": "^6.14.0",
         "axios": "^1.10.0",
         "body-parser": "^2.2.0",
-        "express": "^4.21.2",
+        "express": "^5.1.0",
         "form-data": "^4.0.4",
         "jsonwebtoken": "^9.0.2",
         "lodash": "^4.17.21",
@@ -1581,7 +1581,7 @@
         "body-parser": "^2.2.0",
         "cors": "^2.8.5",
         "debug": "^4.4.1",
-        "express": "^4.21.2",
+        "express": "^5.1.0",
         "graphql": "^16.11.0",
         "graphql-subscriptions": "^2.0.0",
         "graphql-ws": "^5.16.2",
@@ -1745,9 +1745,9 @@
         "@loopback/eslint-config": "^16.0.0",
         "@loopback/rest": "^15.0.3",
         "@loopback/testlab": "^8.0.2",
-        "@types/express": "^4.17.23",
+        "@types/express": "^5.0.3",
         "@types/node": "^16.18.126",
-        "express": "^4.21.2"
+        "express": "^5.1.0"
       },
       "engines": {
         "node": "20 || 22 || 24"
@@ -1968,13 +1968,13 @@
       "license": "MIT",
       "dependencies": {
         "@types/body-parser": "^1.19.6",
-        "@types/express": "^4.17.23",
+        "@types/express": "^5.0.3",
         "@types/jsonwebtoken": "^9.0.10",
         "@types/lodash": "^4.17.20",
         "@types/node": "^16.18.126",
         "axios": "^1.10.0",
         "body-parser": "^2.2.0",
-        "express": "^4.21.2",
+        "express": "^5.1.0",
         "form-data": "^4.0.4",
         "jsonwebtoken": "^9.0.2",
         "lodash": "^4.17.21",
@@ -2154,6 +2154,106 @@
         "graphql": "14.x || 15.x || 16.x"
       }
     },
+    "node_modules/@apollo/server/node_modules/@types/express": {
+      "version": "4.17.23",
+      "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz",
+      "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@types/body-parser": "*",
+        "@types/express-serve-static-core": "^4.17.33",
+        "@types/qs": "*",
+        "@types/serve-static": "*"
+      }
+    },
+    "node_modules/@apollo/server/node_modules/body-parser": {
+      "version": "1.20.3",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
+      "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+      "license": "MIT",
+      "dependencies": {
+        "bytes": "3.1.2",
+        "content-type": "~1.0.5",
+        "debug": "2.6.9",
+        "depd": "2.0.0",
+        "destroy": "1.2.0",
+        "http-errors": "2.0.0",
+        "iconv-lite": "0.4.24",
+        "on-finished": "2.4.1",
+        "qs": "6.13.0",
+        "raw-body": "2.5.2",
+        "type-is": "~1.6.18",
+        "unpipe": "1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.8",
+        "npm": "1.2.8000 || >= 1.4.16"
+      }
+    },
+    "node_modules/@apollo/server/node_modules/cookie": {
+      "version": "0.7.1",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+      "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/@apollo/server/node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "license": "MIT",
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
+    "node_modules/@apollo/server/node_modules/express": {
+      "version": "4.21.2",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
+      "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+      "license": "MIT",
+      "dependencies": {
+        "accepts": "~1.3.8",
+        "array-flatten": "1.1.1",
+        "body-parser": "1.20.3",
+        "content-disposition": "0.5.4",
+        "content-type": "~1.0.4",
+        "cookie": "0.7.1",
+        "cookie-signature": "1.0.6",
+        "debug": "2.6.9",
+        "depd": "2.0.0",
+        "encodeurl": "~2.0.0",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "finalhandler": "1.3.1",
+        "fresh": "0.5.2",
+        "http-errors": "2.0.0",
+        "merge-descriptors": "1.0.3",
+        "methods": "~1.1.2",
+        "on-finished": "2.4.1",
+        "parseurl": "~1.3.3",
+        "path-to-regexp": "0.1.12",
+        "proxy-addr": "~2.0.7",
+        "qs": "6.13.0",
+        "range-parser": "~1.2.1",
+        "safe-buffer": "5.2.1",
+        "send": "0.19.0",
+        "serve-static": "1.16.2",
+        "setprototypeof": "1.2.0",
+        "statuses": "2.0.1",
+        "type-is": "~1.6.18",
+        "utils-merge": "1.0.1",
+        "vary": "~1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.10.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
     "node_modules/@apollo/server/node_modules/lru-cache": {
       "version": "7.18.3",
       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
@@ -2163,6 +2263,53 @@
         "node": ">=12"
       }
     },
+    "node_modules/@apollo/server/node_modules/ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+      "license": "MIT"
+    },
+    "node_modules/@apollo/server/node_modules/path-to-regexp": {
+      "version": "0.1.12",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+      "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
+      "license": "MIT"
+    },
+    "node_modules/@apollo/server/node_modules/raw-body": {
+      "version": "2.5.2",
+      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+      "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+      "license": "MIT",
+      "dependencies": {
+        "bytes": "3.1.2",
+        "http-errors": "2.0.0",
+        "iconv-lite": "0.4.24",
+        "unpipe": "1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/@apollo/server/node_modules/safe-buffer": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "license": "MIT"
+    },
     "node_modules/@apollo/usage-reporting-protobuf": {
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz",
@@ -8947,14 +9094,13 @@
       "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg=="
     },
     "node_modules/@types/express": {
-      "version": "4.17.23",
-      "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz",
-      "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==",
+      "version": "5.0.3",
+      "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.3.tgz",
+      "integrity": "sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw==",
       "license": "MIT",
       "dependencies": {
         "@types/body-parser": "*",
-        "@types/express-serve-static-core": "^4.17.33",
-        "@types/qs": "*",
+        "@types/express-serve-static-core": "^5.0.0",
         "@types/serve-static": "*"
       }
     },
@@ -8969,6 +9115,18 @@
         "@types/send": "*"
       }
     },
+    "node_modules/@types/express/node_modules/@types/express-serve-static-core": {
+      "version": "5.0.7",
+      "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.7.tgz",
+      "integrity": "sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "*",
+        "@types/qs": "*",
+        "@types/range-parser": "*",
+        "@types/send": "*"
+      }
+    },
     "node_modules/@types/fs-extra": {
       "version": "11.0.4",
       "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz",
@@ -15778,44 +15936,41 @@
       "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw=="
     },
     "node_modules/express": {
-      "version": "4.21.2",
-      "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
-      "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+      "version": "5.1.0",
+      "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz",
+      "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==",
+      "license": "MIT",
       "dependencies": {
-        "accepts": "~1.3.8",
-        "array-flatten": "1.1.1",
-        "body-parser": "1.20.3",
-        "content-disposition": "0.5.4",
-        "content-type": "~1.0.4",
-        "cookie": "0.7.1",
-        "cookie-signature": "1.0.6",
-        "debug": "2.6.9",
-        "depd": "2.0.0",
-        "encodeurl": "~2.0.0",
-        "escape-html": "~1.0.3",
-        "etag": "~1.8.1",
-        "finalhandler": "1.3.1",
-        "fresh": "0.5.2",
-        "http-errors": "2.0.0",
-        "merge-descriptors": "1.0.3",
-        "methods": "~1.1.2",
-        "on-finished": "2.4.1",
-        "parseurl": "~1.3.3",
-        "path-to-regexp": "0.1.12",
-        "proxy-addr": "~2.0.7",
-        "qs": "6.13.0",
-        "range-parser": "~1.2.1",
-        "safe-buffer": "5.2.1",
-        "send": "0.19.0",
-        "serve-static": "1.16.2",
-        "setprototypeof": "1.2.0",
-        "statuses": "2.0.1",
-        "type-is": "~1.6.18",
-        "utils-merge": "1.0.1",
-        "vary": "~1.1.2"
+        "accepts": "^2.0.0",
+        "body-parser": "^2.2.0",
+        "content-disposition": "^1.0.0",
+        "content-type": "^1.0.5",
+        "cookie": "^0.7.1",
+        "cookie-signature": "^1.2.1",
+        "debug": "^4.4.0",
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "etag": "^1.8.1",
+        "finalhandler": "^2.1.0",
+        "fresh": "^2.0.0",
+        "http-errors": "^2.0.0",
+        "merge-descriptors": "^2.0.0",
+        "mime-types": "^3.0.0",
+        "on-finished": "^2.4.1",
+        "once": "^1.4.0",
+        "parseurl": "^1.3.3",
+        "proxy-addr": "^2.0.7",
+        "qs": "^6.14.0",
+        "range-parser": "^1.2.1",
+        "router": "^2.2.0",
+        "send": "^1.1.0",
+        "serve-static": "^2.2.0",
+        "statuses": "^2.0.1",
+        "type-is": "^2.0.1",
+        "vary": "^1.1.2"
       },
       "engines": {
-        "node": ">= 0.10.0"
+        "node": ">= 18"
       },
       "funding": {
         "type": "opencollective",
@@ -15891,72 +16046,156 @@
       ],
       "license": "MIT"
     },
-    "node_modules/express/node_modules/body-parser": {
-      "version": "1.20.3",
-      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
-      "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+    "node_modules/express/node_modules/accepts": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
+      "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==",
       "license": "MIT",
       "dependencies": {
-        "bytes": "3.1.2",
-        "content-type": "~1.0.5",
-        "debug": "2.6.9",
-        "depd": "2.0.0",
-        "destroy": "1.2.0",
-        "http-errors": "2.0.0",
-        "iconv-lite": "0.4.24",
-        "on-finished": "2.4.1",
-        "qs": "6.13.0",
-        "raw-body": "2.5.2",
-        "type-is": "~1.6.18",
-        "unpipe": "1.0.0"
+        "mime-types": "^3.0.0",
+        "negotiator": "^1.0.0"
       },
       "engines": {
-        "node": ">= 0.8",
-        "npm": "1.2.8000 || >= 1.4.16"
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/express/node_modules/content-disposition": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz",
+      "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==",
+      "license": "MIT",
+      "dependencies": {
+        "safe-buffer": "5.2.1"
+      },
+      "engines": {
+        "node": ">= 0.6"
       }
     },
     "node_modules/express/node_modules/cookie": {
-      "version": "0.7.1",
-      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
-      "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+      "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
       "license": "MIT",
       "engines": {
         "node": ">= 0.6"
       }
     },
+    "node_modules/express/node_modules/cookie-signature": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz",
+      "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.6.0"
+      }
+    },
     "node_modules/express/node_modules/debug": {
-      "version": "2.6.9",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "version": "4.4.1",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
+      "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
       "license": "MIT",
       "dependencies": {
-        "ms": "2.0.0"
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/express/node_modules/finalhandler": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz",
+      "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==",
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.4.0",
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "on-finished": "^2.4.1",
+        "parseurl": "^1.3.3",
+        "statuses": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 0.8"
       }
     },
-    "node_modules/express/node_modules/ms": {
+    "node_modules/express/node_modules/fresh": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
-      "license": "MIT"
+      "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz",
+      "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
     },
-    "node_modules/express/node_modules/path-to-regexp": {
-      "version": "0.1.12",
-      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
-      "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="
+    "node_modules/express/node_modules/media-typer": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
+      "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
     },
-    "node_modules/express/node_modules/raw-body": {
-      "version": "2.5.2",
-      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
-      "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+    "node_modules/express/node_modules/merge-descriptors": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz",
+      "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/express/node_modules/mime-db": {
+      "version": "1.54.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+      "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/express/node_modules/mime-types": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz",
+      "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==",
       "license": "MIT",
       "dependencies": {
-        "bytes": "3.1.2",
-        "http-errors": "2.0.0",
-        "iconv-lite": "0.4.24",
-        "unpipe": "1.0.0"
+        "mime-db": "^1.54.0"
       },
       "engines": {
-        "node": ">= 0.8"
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/express/node_modules/negotiator": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",
+      "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/express/node_modules/qs": {
+      "version": "6.14.0",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
+      "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==",
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "side-channel": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=0.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
       }
     },
     "node_modules/express/node_modules/safe-buffer": {
@@ -15979,6 +16218,57 @@
       ],
       "license": "MIT"
     },
+    "node_modules/express/node_modules/send": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz",
+      "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==",
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.3.5",
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "etag": "^1.8.1",
+        "fresh": "^2.0.0",
+        "http-errors": "^2.0.0",
+        "mime-types": "^3.0.1",
+        "ms": "^2.1.3",
+        "on-finished": "^2.4.1",
+        "range-parser": "^1.2.1",
+        "statuses": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 18"
+      }
+    },
+    "node_modules/express/node_modules/serve-static": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz",
+      "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==",
+      "license": "MIT",
+      "dependencies": {
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "parseurl": "^1.3.3",
+        "send": "^1.2.0"
+      },
+      "engines": {
+        "node": ">= 18"
+      }
+    },
+    "node_modules/express/node_modules/type-is": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz",
+      "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==",
+      "license": "MIT",
+      "dependencies": {
+        "content-type": "^1.0.5",
+        "media-typer": "^1.1.0",
+        "mime-types": "^3.0.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
     "node_modules/extend": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
@@ -23642,6 +23932,15 @@
         "concat-map": "0.0.1"
       }
     },
+    "node_modules/loopback/node_modules/cookie": {
+      "version": "0.7.1",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+      "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
     "node_modules/loopback/node_modules/cross-spawn": {
       "version": "6.0.5",
       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
@@ -23699,6 +23998,61 @@
         "node": ">=6"
       }
     },
+    "node_modules/loopback/node_modules/express": {
+      "version": "4.21.2",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
+      "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+      "license": "MIT",
+      "dependencies": {
+        "accepts": "~1.3.8",
+        "array-flatten": "1.1.1",
+        "body-parser": "1.20.3",
+        "content-disposition": "0.5.4",
+        "content-type": "~1.0.4",
+        "cookie": "0.7.1",
+        "cookie-signature": "1.0.6",
+        "debug": "2.6.9",
+        "depd": "2.0.0",
+        "encodeurl": "~2.0.0",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "finalhandler": "1.3.1",
+        "fresh": "0.5.2",
+        "http-errors": "2.0.0",
+        "merge-descriptors": "1.0.3",
+        "methods": "~1.1.2",
+        "on-finished": "2.4.1",
+        "parseurl": "~1.3.3",
+        "path-to-regexp": "0.1.12",
+        "proxy-addr": "~2.0.7",
+        "qs": "6.13.0",
+        "range-parser": "~1.2.1",
+        "safe-buffer": "5.2.1",
+        "send": "0.19.0",
+        "serve-static": "1.16.2",
+        "setprototypeof": "1.2.0",
+        "statuses": "2.0.1",
+        "type-is": "~1.6.18",
+        "utils-merge": "1.0.1",
+        "vary": "~1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.10.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/loopback/node_modules/express/node_modules/depd": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+      "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
     "node_modules/loopback/node_modules/get-stream": {
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
@@ -23850,6 +24204,12 @@
         "node": ">=4"
       }
     },
+    "node_modules/loopback/node_modules/path-to-regexp": {
+      "version": "0.1.12",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+      "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
+      "license": "MIT"
+    },
     "node_modules/loopback/node_modules/raw-body": {
       "version": "2.5.2",
       "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
@@ -23865,6 +24225,26 @@
         "node": ">= 0.8"
       }
     },
+    "node_modules/loopback/node_modules/safe-buffer": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "license": "MIT"
+    },
     "node_modules/loopback/node_modules/semver": {
       "version": "5.7.2",
       "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
@@ -29874,6 +30254,54 @@
         "url": "https://github.com/sponsors/isaacs"
       }
     },
+    "node_modules/router": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz",
+      "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==",
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.4.0",
+        "depd": "^2.0.0",
+        "is-promise": "^4.0.0",
+        "parseurl": "^1.3.3",
+        "path-to-regexp": "^8.0.0"
+      },
+      "engines": {
+        "node": ">= 18"
+      }
+    },
+    "node_modules/router/node_modules/debug": {
+      "version": "4.4.1",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
+      "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/router/node_modules/is-promise": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
+      "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
+      "license": "MIT"
+    },
+    "node_modules/router/node_modules/path-to-regexp": {
+      "version": "8.2.0",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz",
+      "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=16"
+      }
+    },
     "node_modules/run-async": {
       "version": "2.4.1",
       "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
@@ -32142,6 +32570,18 @@
         "node": ">=8"
       }
     },
+    "node_modules/strong-remoting/node_modules/@types/express": {
+      "version": "4.17.23",
+      "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz",
+      "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@types/body-parser": "*",
+        "@types/express-serve-static-core": "^4.17.33",
+        "@types/qs": "*",
+        "@types/serve-static": "*"
+      }
+    },
     "node_modules/strong-remoting/node_modules/body-parser": {
       "version": "1.20.3",
       "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
@@ -32175,6 +32615,15 @@
         "ms": "2.0.0"
       }
     },
+    "node_modules/strong-remoting/node_modules/cookie": {
+      "version": "0.7.1",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+      "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
     "node_modules/strong-remoting/node_modules/escape-string-regexp": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
@@ -32183,6 +32632,61 @@
         "node": ">=8"
       }
     },
+    "node_modules/strong-remoting/node_modules/express": {
+      "version": "4.21.2",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
+      "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+      "license": "MIT",
+      "dependencies": {
+        "accepts": "~1.3.8",
+        "array-flatten": "1.1.1",
+        "body-parser": "1.20.3",
+        "content-disposition": "0.5.4",
+        "content-type": "~1.0.4",
+        "cookie": "0.7.1",
+        "cookie-signature": "1.0.6",
+        "debug": "2.6.9",
+        "depd": "2.0.0",
+        "encodeurl": "~2.0.0",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "finalhandler": "1.3.1",
+        "fresh": "0.5.2",
+        "http-errors": "2.0.0",
+        "merge-descriptors": "1.0.3",
+        "methods": "~1.1.2",
+        "on-finished": "2.4.1",
+        "parseurl": "~1.3.3",
+        "path-to-regexp": "0.1.12",
+        "proxy-addr": "~2.0.7",
+        "qs": "6.13.0",
+        "range-parser": "~1.2.1",
+        "safe-buffer": "5.2.1",
+        "send": "0.19.0",
+        "serve-static": "1.16.2",
+        "setprototypeof": "1.2.0",
+        "statuses": "2.0.1",
+        "type-is": "~1.6.18",
+        "utils-merge": "1.0.1",
+        "vary": "~1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.10.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/strong-remoting/node_modules/express/node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "license": "MIT",
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
     "node_modules/strong-remoting/node_modules/js2xmlparser": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz",
@@ -32208,6 +32712,12 @@
       "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
       "license": "MIT"
     },
+    "node_modules/strong-remoting/node_modules/path-to-regexp": {
+      "version": "0.1.12",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+      "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
+      "license": "MIT"
+    },
     "node_modules/strong-remoting/node_modules/raw-body": {
       "version": "2.5.2",
       "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
@@ -32223,6 +32733,26 @@
         "node": ">= 0.8"
       }
     },
+    "node_modules/strong-remoting/node_modules/safe-buffer": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "license": "MIT"
+    },
     "node_modules/strong-remoting/node_modules/strong-error-handler": {
       "version": "3.5.0",
       "resolved": "https://registry.npmjs.org/strong-error-handler/-/strong-error-handler-3.5.0.tgz",
@@ -37062,7 +37592,7 @@
       "license": "MIT",
       "dependencies": {
         "@loopback/security": "^0.12.3",
-        "@types/express": "^4.17.23",
+        "@types/express": "^5.0.3",
         "@types/lodash": "^4.17.20",
         "lodash": "^4.17.21",
         "tslib": "^2.8.1"
@@ -37269,7 +37799,7 @@
       "version": "7.0.3",
       "license": "MIT",
       "dependencies": {
-        "@types/express": "^4.17.23",
+        "@types/express": "^5.0.3",
         "debug": "^4.4.1",
         "loopback": "^3.28.0",
         "loopback-swagger": "^5.9.0",
@@ -38534,12 +39064,12 @@
       "dependencies": {
         "@loopback/http-server": "^7.0.2",
         "@types/body-parser": "^1.19.6",
-        "@types/express": "^4.17.23",
+        "@types/express": "^5.0.3",
         "@types/express-serve-static-core": "^4.17.37",
         "@types/http-errors": "^2.0.5",
         "body-parser": "^2.2.0",
         "debug": "^4.4.1",
-        "express": "^4.21.2",
+        "express": "^5.1.0",
         "http-errors": "^2.0.0",
         "on-finished": "^2.4.1",
         "toposort": "^2.0.2",
@@ -39140,7 +39670,7 @@
         "@openapi-contrib/openapi-schema-to-json-schema": "^5.1.0",
         "@types/body-parser": "^1.19.6",
         "@types/cors": "^2.8.19",
-        "@types/express": "^4.17.23",
+        "@types/express": "^5.0.3",
         "@types/express-serve-static-core": "^4.17.37",
         "@types/http-errors": "^2.0.5",
         "@types/on-finished": "^2.3.5",
@@ -39153,7 +39683,7 @@
         "body-parser": "^2.2.0",
         "cors": "^2.8.5",
         "debug": "^4.4.1",
-        "express": "^4.21.2",
+        "express": "^5.1.0",
         "http-errors": "^2.0.0",
         "js-yaml": "^4.1.0",
         "json-schema-compare": "^0.2.2",
@@ -39255,9 +39785,9 @@
         "@loopback/rest": "^15.0.3",
         "@loopback/testlab": "^8.0.2",
         "@types/ejs": "^3.1.5",
-        "@types/express": "^4.17.23",
+        "@types/express": "^5.0.3",
         "@types/node": "^16.18.126",
-        "express": "^4.21.2"
+        "express": "^5.1.0"
       },
       "engines": {
         "node": "20 || 22 || 24"
@@ -39427,12 +39957,12 @@
       "license": "MIT",
       "dependencies": {
         "@hapi/shot": "^6.0.1",
-        "@types/express": "^4.17.23",
+        "@types/express": "^5.0.3",
         "@types/fs-extra": "^11.0.4",
         "@types/shot": "^4.0.5",
         "@types/sinon": "^17.0.4",
         "@types/supertest": "^2.0.16",
-        "express": "^4.21.2",
+        "express": "^5.1.0",
         "fs-extra": "^11.3.0",
         "oas-validator": "^5.0.8",
         "should": "^13.2.3",
diff --git a/packages/authentication/package.json b/packages/authentication/package.json
index a151422f8a7c..1d2abe62f2d1 100644
--- a/packages/authentication/package.json
+++ b/packages/authentication/package.json
@@ -44,7 +44,7 @@
   },
   "dependencies": {
     "@loopback/security": "^0.12.3",
-    "@types/express": "^4.17.23",
+    "@types/express": "^5.0.3",
     "@types/lodash": "^4.17.20",
     "lodash": "^4.17.21",
     "tslib": "^2.8.1"
diff --git a/packages/booter-lb3app/package.json b/packages/booter-lb3app/package.json
index 5a60fcc30a9d..4ddcd479cce2 100644
--- a/packages/booter-lb3app/package.json
+++ b/packages/booter-lb3app/package.json
@@ -43,7 +43,7 @@
     "@loopback/rest": "^15.0.1"
   },
   "dependencies": {
-    "@types/express": "^4.17.23",
+    "@types/express": "^5.0.3",
     "debug": "^4.4.1",
     "loopback": "^3.28.0",
     "loopback-swagger": "^5.9.0",
diff --git a/packages/express/package.json b/packages/express/package.json
index 94d4b3766c55..37d43a33324b 100644
--- a/packages/express/package.json
+++ b/packages/express/package.json
@@ -42,12 +42,12 @@
   "dependencies": {
     "@loopback/http-server": "^7.0.2",
     "@types/body-parser": "^1.19.6",
-    "@types/express": "^4.17.23",
+    "@types/express": "^5.0.3",
     "@types/express-serve-static-core": "^4.17.37",
     "@types/http-errors": "^2.0.5",
     "body-parser": "^2.2.0",
     "debug": "^4.4.1",
-    "express": "^4.21.2",
+    "express": "^5.1.0",
     "http-errors": "^2.0.0",
     "on-finished": "^2.4.1",
     "toposort": "^2.0.2",
diff --git a/packages/rest-explorer/package.json b/packages/rest-explorer/package.json
index 0dd3d7459f80..3b253efaa61f 100644
--- a/packages/rest-explorer/package.json
+++ b/packages/rest-explorer/package.json
@@ -53,8 +53,8 @@
     "@loopback/rest": "^15.0.3",
     "@loopback/testlab": "^8.0.2",
     "@types/ejs": "^3.1.5",
-    "@types/express": "^4.17.23",
+    "@types/express": "^5.0.3",
     "@types/node": "^16.18.126",
-    "express": "^4.21.2"
+    "express": "^5.1.0"
   }
 }
diff --git a/packages/rest/package.json b/packages/rest/package.json
index b9b7cbaefdf6..450f41dfd3bf 100644
--- a/packages/rest/package.json
+++ b/packages/rest/package.json
@@ -44,7 +44,7 @@
     "@openapi-contrib/openapi-schema-to-json-schema": "^5.1.0",
     "@types/body-parser": "^1.19.6",
     "@types/cors": "^2.8.19",
-    "@types/express": "^4.17.23",
+    "@types/express": "^5.0.3",
     "@types/express-serve-static-core": "^4.17.37",
     "@types/http-errors": "^2.0.5",
     "@types/on-finished": "^2.3.5",
@@ -57,7 +57,7 @@
     "body-parser": "^2.2.0",
     "cors": "^2.8.5",
     "debug": "^4.4.1",
-    "express": "^4.21.2",
+    "express": "^5.1.0",
     "http-errors": "^2.0.0",
     "js-yaml": "^4.1.0",
     "json-schema-compare": "^0.2.2",
diff --git a/packages/testlab/package.json b/packages/testlab/package.json
index 786d644fd1bb..a1b5c44b9922 100644
--- a/packages/testlab/package.json
+++ b/packages/testlab/package.json
@@ -35,12 +35,12 @@
   ],
   "dependencies": {
     "@hapi/shot": "^6.0.1",
-    "@types/express": "^4.17.23",
+    "@types/express": "^5.0.3",
     "@types/fs-extra": "^11.0.4",
     "@types/shot": "^4.0.5",
     "@types/sinon": "^17.0.4",
     "@types/supertest": "^2.0.16",
-    "express": "^4.21.2",
+    "express": "^5.1.0",
     "fs-extra": "^11.3.0",
     "oas-validator": "^5.0.8",
     "should": "^13.2.3",