Skip to content

chore(deps): combined upgrade superseding Dependabot #1-#10 (Bolt 5, web-api 8, TS 7, +7) - #11

Merged
greggTime merged 2 commits into
mainfrom
chore/combined-dependency-bumps
Sep 11, 2026
Merged

greggTime merged 2 commits into
mainfrom
chore/combined-dependency-bumps

Conversation

@greggTime

@greggTime greggTime commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

A single combined upgrade that supersedes all 10 open Dependabot PRs. Rather than merging ten PRs one at a time (and rebuilding the lockfile ten times, with the risky majors landing in an unverified order), this applies every bump together, regenerates package-lock.json once, and verifies the combined dependency tree end to end.

Supersedes #1, #2, #3, #4, #5, #6, #7, #8, #9, #10.

Dependencies

Package From To Dependabot PR
@slack/bolt 4.7.3 5.1.0 #9
@slack/web-api 7.19.0 8.1.1 #6
typescript 5.9.3 7.0.2 #5
pino 9.14.0 10.3.1 #4
@types/node 22.20.1 26.5.0 #7
dotenv 16.6.1 17.4.2 #3
@grpc/proto-loader 0.7.15 0.8.1 #10
tsx 4.23.12 4.23.13 #8
actions/checkout (CI) v4 v7 #2
actions/setup-node (CI) v4 v7 #1

The only code/config change (dependencies)

One line, in tsconfig.json:

-    "moduleResolution": "Node",
+    "moduleResolution": "bundler",

TypeScript 7 is the native (Go) compiler rewrite; it removed the legacy node10/Node resolver (TS5108). bundler pairs with module: CommonJS and emits identical CommonJS output with zero source edits. node16/nodenext were rejected because they force matching module semantics and .js extensions on the existing dynamic imports. No application .ts file was touched.

CI: drop EOL Node 20

Surfaced by this PR's first CI run (and failing on every Dependabot PR too, so it is pre-existing and not caused by the bumps): npm test runs node --test with a ** glob, which the Node test runner only supports on Node 21+. The CI matrix still tested Node 20.x, where the glob is passed through literally and never matches (Could not find 'test/**/*.test.ts'), failing the step. Install and typecheck already pass on Node 20.

Node 20 reached end-of-life in April 2026, so this PR drops it rather than working around the glob:

  • CI matrix: [20.x, 22.x] -> [22.x, 24.x]
  • engines.node: >=20 -> >=22

CI now passes on Node 22.x and 24.x.

Verification (combined tree)

Check Result
CI build (22.x) + build (24.x) pass
npm install (fresh lockfile) exit 0, 0 vulnerabilities
npm run typecheck (TS 7.0.2) exit 0
npm run build and emit exit 0, CommonJS confirmed
Compiled dist/ modules load under Node ok
Unit suite, 3 local runs 202 / 202 each, deterministic
seed:audit reset + --append 201 then 402 events, accumulates
Mock gRPC boot + send-samples round-trip accepted = 3 (grpc-js 1.14 / proto-loader 0.8)
App Home render (carousel + GA fallback) 13 blocks, exit 0
support-bundle happy + refusal paths writes verified bundle / exits 1 cleanly

Not covered

These checks do not exercise a live Socket Mode connection to Slack (that needs real SLACK_BOT_TOKEN / SLACK_APP_TOKEN). A short live smoke against a real workspace is recommended before merge.

After merge

The 10 Dependabot PRs above can be closed as superseded (Dependabot will also recognize the dependencies as already satisfied on its next run).

Co-Authored-By: Claude svc-devxp-claude@slack-corp.com

greggTime and others added 2 commits September 10, 2026 17:00
Supersedes Dependabot PRs #1-#10 by applying every bump together against
the real code, regenerating the lockfile, and verifying the combined tree.

Dependencies:
- @slack/bolt        4.7.3  -> 5.1.0   (#9)
- @slack/web-api     7.19.0 -> 8.1.1   (#6)
- typescript         5.9.3  -> 7.0.2   (#5)
- pino               9.14.0 -> 10.3.1  (#4)
- @types/node        22.20.1 -> 26.5.0 (#7)
- dotenv             16.6.1 -> 17.4.2  (#3)
- @grpc/proto-loader 0.7.15 -> 0.8.1   (#10)
- tsx                4.23.12 -> 4.23.13 (#8)

CI (GitHub Actions):
- actions/checkout   v4 -> v7 (#2)
- actions/setup-node v4 -> v7 (#1)

The only source/config change required across all ten bumps is one line:
tsconfig.json moduleResolution "Node" -> "bundler". TypeScript 7 (the native
compiler) removed the legacy node10/Node resolver; "bundler" keeps
module: CommonJS and emits identical CommonJS output with zero source edits.

Verified on the combined tree: fresh install (0 vulnerabilities), typecheck,
build (CommonJS emit + dist/ loads under Node), unit suite 202/202 across
three runs, a gRPC mock round-trip (grpc-js 1.14 / proto-loader 0.8), offline
App Home render, seed:audit reset/append, and support-bundle happy + refusal
paths. Not covered: a live Socket Mode connection (needs real Slack tokens).

Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
The `npm test` script runs `node --test` with a `**` glob, which is only
supported by the Node test runner on Node 21+. The CI matrix still included
Node 20.x, where the glob is passed through literally and never matches
(`Could not find 'test/**/*.test.ts'`), so `npm test` failed. This is a
pre-existing incompatibility (present since the initial import and failing on
every Dependabot PR), independent of the dependency bumps; install and
typecheck already pass on Node 20.

Node 20 reached end-of-life in April 2026, so drop it rather than work around
the glob:
- CI matrix: [20.x, 22.x] -> [22.x, 24.x]
- engines.node: >=20 -> >=22
- maintainers guide: reference Node 22 and 24

Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
@greggTime
greggTime merged commit f105544 into main Sep 11, 2026
2 checks passed
@greggTime
greggTime deleted the chore/combined-dependency-bumps branch September 11, 2026 01:15
greggTime added a commit that referenced this pull request Sep 11, 2026
… 7, +7) (#11)

* chore(deps): apply all 10 Dependabot bumps as one combined upgrade

Supersedes Dependabot PRs #1-#10 by applying every bump together against
the real code, regenerating the lockfile, and verifying the combined tree.

Dependencies:
- @slack/bolt        4.7.3  -> 5.1.0   (#9)
- @slack/web-api     7.19.0 -> 8.1.1   (#6)
- typescript         5.9.3  -> 7.0.2   (#5)
- pino               9.14.0 -> 10.3.1  (#4)
- @types/node        22.20.1 -> 26.5.0 (#7)
- dotenv             16.6.1 -> 17.4.2  (#3)
- @grpc/proto-loader 0.7.15 -> 0.8.1   (#10)
- tsx                4.23.12 -> 4.23.13 (#8)

CI (GitHub Actions):
- actions/checkout   v4 -> v7 (#2)
- actions/setup-node v4 -> v7 (#1)

The only source/config change required across all ten bumps is one line:
tsconfig.json moduleResolution "Node" -> "bundler". TypeScript 7 (the native
compiler) removed the legacy node10/Node resolver; "bundler" keeps
module: CommonJS and emits identical CommonJS output with zero source edits.

Verified on the combined tree: fresh install (0 vulnerabilities), typecheck,
build (CommonJS emit + dist/ loads under Node), unit suite 202/202 across
three runs, a gRPC mock round-trip (grpc-js 1.14 / proto-loader 0.8), offline
App Home render, seed:audit reset/append, and support-bundle happy + refusal
paths. Not covered: a live Socket Mode connection (needs real Slack tokens).

Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>

* ci: drop EOL Node 20, test on Node 22 and 24

The `npm test` script runs `node --test` with a `**` glob, which is only
supported by the Node test runner on Node 21+. The CI matrix still included
Node 20.x, where the glob is passed through literally and never matches
(`Could not find 'test/**/*.test.ts'`), so `npm test` failed. This is a
pre-existing incompatibility (present since the initial import and failing on
every Dependabot PR), independent of the dependency bumps; install and
typecheck already pass on Node 20.

Node 20 reached end-of-life in April 2026, so drop it rather than work around
the glob:
- CI matrix: [20.x, 22.x] -> [22.x, 24.x]
- engines.node: >=20 -> >=22
- maintainers guide: reference Node 22 and 24

Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>

---------

Co-authored-by: Claude <svc-devxp-claude@slack-corp.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant