From b2b4367541283310e0d84b401925b0e71425f5e9 Mon Sep 17 00:00:00 2001
From: Grmiade <jeremy@payfit.com>
Date: Tue, 28 Jan 2025 13:30:01 +0100
Subject: [PATCH 1/4] fix(deps): move @types/express to dependencies

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index c58812793..1a7e7ff17 100644
--- a/package.json
+++ b/package.json
@@ -47,6 +47,7 @@
     "@slack/socket-mode": "^2.0.3",
     "@slack/types": "^2.13.0",
     "@slack/web-api": "^7.8.0",
+    "@types/express": "^5.0.0",
     "axios": "^1.7.8",
     "express": "^5.0.0",
     "path-to-regexp": "^8.1.0",
@@ -57,7 +58,6 @@
     "@biomejs/biome": "^1.9.0",
     "@tsconfig/node18": "^18.2.4",
     "@types/chai": "^4.1.7",
-    "@types/express": "^5.0.0",
     "@types/mocha": "^10.0.1",
     "@types/node": "22.10.7",
     "@types/sinon": "^7.0.11",

From 81ecc85763d37468c3e78e14432f04c2ea37497e Mon Sep 17 00:00:00 2001
From: Grmiade <jeremy@payfit.com>
Date: Tue, 28 Jan 2025 13:46:00 +0100
Subject: [PATCH 2/4] fix(deps): add @types/express-serve-static-core to
 dependencies

---
 package.json | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package.json b/package.json
index 1a7e7ff17..9f38361b6 100644
--- a/package.json
+++ b/package.json
@@ -48,6 +48,7 @@
     "@slack/types": "^2.13.0",
     "@slack/web-api": "^7.8.0",
     "@types/express": "^5.0.0",
+    "@types/express-serve-static-core": "^5.0.0",
     "axios": "^1.7.8",
     "express": "^5.0.0",
     "path-to-regexp": "^8.1.0",

From cf73930d2c7462dbf98532c27116f9ff9a2b11e7 Mon Sep 17 00:00:00 2001
From: Grmiade <jeremy@payfit.com>
Date: Tue, 28 Jan 2025 21:31:55 +0100
Subject: [PATCH 3/4] declare express packages as optional peer dependencies

---
 package.json | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/package.json b/package.json
index 9f38361b6..ac94f2d49 100644
--- a/package.json
+++ b/package.json
@@ -47,10 +47,7 @@
     "@slack/socket-mode": "^2.0.3",
     "@slack/types": "^2.13.0",
     "@slack/web-api": "^7.8.0",
-    "@types/express": "^5.0.0",
-    "@types/express-serve-static-core": "^5.0.0",
     "axios": "^1.7.8",
-    "express": "^5.0.0",
     "path-to-regexp": "^8.1.0",
     "raw-body": "^3",
     "tsscmp": "^1.0.6"
@@ -73,5 +70,21 @@
     "ts-node": "^10.9.2",
     "tsd": "^0.31.2",
     "typescript": "5.3.3"
+  },
+  "peerDependencies": {
+    "express": "^5.0.0",
+    "@types/express": "^5.0.0",
+    "@types/express-serve-static-core": "^5.0.0"
+  },
+  "peerDependenciesMeta": {
+    "express": {
+      "optional": true
+    },
+    "@types/express": {
+      "optional": true
+    },
+    "@types/express-serve-static-core": {
+      "optional": true
+    }
   }
 }

From 85bfb8b9308bcbb52be042937e5b93b82f16c26e Mon Sep 17 00:00:00 2001
From: Grmiade <jeremy@payfit.com>
Date: Mon, 3 Feb 2025 10:39:24 +0100
Subject: [PATCH 4/4] ensure optional dependencies are installed

---
 .github/maintainers_guide.md   | 2 +-
 .github/workflows/ci-build.yml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/maintainers_guide.md b/.github/maintainers_guide.md
index 2cb44fd94..a9b5bffc3 100644
--- a/.github/maintainers_guide.md
+++ b/.github/maintainers_guide.md
@@ -41,7 +41,7 @@ Releasing can feel intimidating at first, but rest assured: if you make a mistak
 
 3. Bump the version number in adherence to [Semantic Versioning](http://semver.org/) in `package.json`. (see [Versioning and Tags](https://github.com/slackapi/node-slack-sdk/blob/main/.github/maintainers_guide.md#versioning-and-tags))
     - The version must be in the format of `Major.Minor.Patch-BetaNamespace.BetaVersion` (ex: `5.10.0-workflowStepsBeta.1`, `2.5.0-rc.1`)
-    -  Update any dependency versions in `package.json` and install locally `rm -rf node_modules && npm install`
+    -  Update any dependency versions in `package.json` and install locally `rm -rf node_modules && npm install --include=optional`
     -  Confirm tests pass and code is free of linting errors by running `npm test`.
     -  Make a single commit with a message for the version bump ([Example](https://github.com/slackapi/bolt-js/pull/1133/commits/bcc421cd05b50ddcdeb806fcb27a38d7d9f8ede8)).
     - Create a pull request for the version change ([Example](https://github.com/slackapi/bolt-js/pull/1133))
diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml
index 380685651..b1a4d1245 100644
--- a/.github/workflows/ci-build.yml
+++ b/.github/workflows/ci-build.yml
@@ -24,7 +24,7 @@ jobs:
         uses: actions/setup-node@v4
         with:
           node-version: ${{ matrix.node-version }}
-      - run: npm install
+      - run: npm install --include=optional
       - run: npm test
       - name: Upload coverage to Codecov
         if: matrix.node-version == '22.x'