Merge pull request 'Security: upgrade Next.js to 16.4.3 and pin Node 24' (#1) from security/next-16.4.3-node-24 into main

Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
2026-10-30 11:06:40 -07:00
6 changed files with 453 additions and 368 deletions
+1 -1
View File
@@ -1 +1 @@
20 24
+1 -1
View File
@@ -171,7 +171,7 @@ significantly, the costs scale roughly linearly with Lambda invocations.
## When something breaks ## When something breaks
- **Build fails on `npm ci`** → usually a Node version mismatch. The - **Build fails on `npm ci`** → usually a Node version mismatch. The
`.nvmrc` pins Node 20; if Amplify's build image doesn't have it, the `.nvmrc` pins Node 24; if Amplify's build image doesn't have it, the
`amplify.yml` `nvm install` falls back. Open the build log, search `amplify.yml` `nvm install` falls back. Open the build log, search
for "Node version". for "Node version".
- **Build fails on `next build`** → typecheck or lint error. Reproduce - **Build fails on `next build`** → typecheck or lint error. Reproduce
+1 -1
View File
@@ -108,7 +108,7 @@ works while in stub mode. The report is at `/report?cid=1&cs=anything`.
The repo ships with `amplify.yml` for [AWS Amplify Hosting](https://aws.amazon.com/amplify/) The repo ships with `amplify.yml` for [AWS Amplify Hosting](https://aws.amazon.com/amplify/)
(see `AMPLIFY_DEPLOY.md` for a first-time walkthrough) and `render.yaml` (see `AMPLIFY_DEPLOY.md` for a first-time walkthrough) and `render.yaml`
for [Render](https://render.com) (see `DEPLOYMENT.md`). The app is a for [Render](https://render.com) (see `DEPLOYMENT.md`). The app is a
standard Next.js 16 App Router project and runs anywhere Node 20+ can standard Next.js 16 App Router project and runs anywhere Node 24+ can
run `next start` — Vercel, App Runner, Fly, self-hosted, etc. run `next start` — Vercel, App Runner, Fly, self-hosted, etc.
Build + start: Build + start:
+446 -361
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -13,18 +13,18 @@
"test": "node --test lib/staff-field-mapping.test.mjs lib/mime.test.mjs" "test": "node --test lib/staff-field-mapping.test.mjs lib/mime.test.mjs"
}, },
"dependencies": { "dependencies": {
"next": "16.2.6", "next": "16.4.3",
"react": "19.2.4", "react": "19.2.4",
"react-dom": "19.2.4", "react-dom": "19.2.4",
"react-hook-form": "^7.75.0" "react-hook-form": "^7.75.0"
}, },
"devDependencies": { "devDependencies": {
"@tailwindcss/postcss": "^4", "@tailwindcss/postcss": "^4",
"@types/node": "^20", "@types/node": "^24",
"@types/react": "^19", "@types/react": "^19",
"@types/react-dom": "^19", "@types/react-dom": "^19",
"eslint": "^9", "eslint": "^9",
"eslint-config-next": "16.2.6", "eslint-config-next": "16.4.3",
"tailwindcss": "^4", "tailwindcss": "^4",
"typescript": "^5" "typescript": "^5"
} }
+1 -1
View File
@@ -17,7 +17,7 @@ services:
- key: NODE_ENV - key: NODE_ENV
value: production value: production
- key: NODE_VERSION - key: NODE_VERSION
value: "20" value: "24"
# Set these manually in the Render dashboard (UI → Environment). # Set these manually in the Render dashboard (UI → Environment).
# Marked sync:false so they're not echoed in this committed file. # Marked sync:false so they're not echoed in this committed file.
- key: CIVI_BASE_URL - key: CIVI_BASE_URL