[PR #382] [MERGED] fix: preserve middleware request header deletions #527

Closed
opened 2026-05-06 13:08:34 +02:00 by BreizhHardware · 0 comments

📋 Pull Request Information

Original PR: https://github.com/cloudflare/vinext/pull/382
Author: @NathanDrake2406
Created: 3/9/2026
Status: Merged
Merged: 3/10/2026
Merged by: @james-elicx

Base: mainHead: fix/middleware-request-header-deletions


📝 Commits (5)

  • f466a5e fix: preserve middleware request header deletions
  • 3d1f18f test: refresh entry template snapshots
  • c9db67f test: cover mixed-router middleware header overrides
  • 28d3975 fix: clone lazy headers by iteration
  • 1c24e7c test: cover rewrite override serialization

📊 Changes

17 files changed (+592 additions, -94 deletions)

View changed files

📝 packages/vinext/src/config/config-matchers.ts (+5 -13)
📝 packages/vinext/src/entries/pages-server-entry.ts (+2 -1)
📝 packages/vinext/src/index.ts (+54 -16)
packages/vinext/src/server/middleware-request-headers.ts (+99 -0)
📝 packages/vinext/src/server/middleware.ts (+5 -7)
📝 packages/vinext/src/shims/headers.ts (+19 -16)
📝 packages/vinext/src/shims/server.ts (+6 -4)
📝 tests/__snapshots__/entry-templates.test.ts.snap (+41 -37)
📝 tests/app-router.test.ts (+50 -0)
tests/fixtures/app-basic/app/header-override-delete/page.tsx (+15 -0)
📝 tests/fixtures/app-basic/middleware.ts (+32 -0)
📝 tests/fixtures/app-basic/next.config.ts (+7 -0)
tests/fixtures/app-basic/pages/pages-header-override-delete.tsx (+34 -0)
📝 tests/fixtures/pages-basic/middleware.ts (+8 -0)
tests/fixtures/pages-basic/pages/header-override-delete.tsx (+33 -0)
📝 tests/pages-router.test.ts (+32 -0)
📝 tests/shims.test.ts (+150 -0)

📄 Description

Summary

  • preserve middleware request header deletions by serializing the full override set via x-middleware-override-headers
  • rebuild downstream request headers from the shared middleware override codec across shims, config matching, and Pages handling
  • keep App Router dev request-header ownership in the generated RSC entry so mixed app/pages fallback rewrites do not misroute through the pages shell

Tests

  • pnpm test tests/shims.test.ts -t "middleware request header"
  • pnpm test tests/pages-router.test.ts -t "middleware request header overrides can delete credential headers before page handling"
  • pnpm test tests/app-router.test.ts -t "middleware request header overrides can delete credential headers before rendering"
  • pnpm test tests/app-router.test.ts -t "fallback rewrite has/missing conditions see middleware-injected cookies"

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/cloudflare/vinext/pull/382 **Author:** [@NathanDrake2406](https://github.com/NathanDrake2406) **Created:** 3/9/2026 **Status:** ✅ Merged **Merged:** 3/10/2026 **Merged by:** [@james-elicx](https://github.com/james-elicx) **Base:** `main` ← **Head:** `fix/middleware-request-header-deletions` --- ### 📝 Commits (5) - [`f466a5e`](https://github.com/cloudflare/vinext/commit/f466a5eee258575f99bf8a6578cda3a644568700) fix: preserve middleware request header deletions - [`3d1f18f`](https://github.com/cloudflare/vinext/commit/3d1f18f0b281a521ba62b2bbdb20df3da1d3d270) test: refresh entry template snapshots - [`c9db67f`](https://github.com/cloudflare/vinext/commit/c9db67ffb7627671e3d195dec96e3bc087b4a894) test: cover mixed-router middleware header overrides - [`28d3975`](https://github.com/cloudflare/vinext/commit/28d397588fb209b4eb71799318d29e2fda3211f3) fix: clone lazy headers by iteration - [`1c24e7c`](https://github.com/cloudflare/vinext/commit/1c24e7c456ea281e79e189807880b4d02fc9e8b9) test: cover rewrite override serialization ### 📊 Changes **17 files changed** (+592 additions, -94 deletions) <details> <summary>View changed files</summary> 📝 `packages/vinext/src/config/config-matchers.ts` (+5 -13) 📝 `packages/vinext/src/entries/pages-server-entry.ts` (+2 -1) 📝 `packages/vinext/src/index.ts` (+54 -16) ➕ `packages/vinext/src/server/middleware-request-headers.ts` (+99 -0) 📝 `packages/vinext/src/server/middleware.ts` (+5 -7) 📝 `packages/vinext/src/shims/headers.ts` (+19 -16) 📝 `packages/vinext/src/shims/server.ts` (+6 -4) 📝 `tests/__snapshots__/entry-templates.test.ts.snap` (+41 -37) 📝 `tests/app-router.test.ts` (+50 -0) ➕ `tests/fixtures/app-basic/app/header-override-delete/page.tsx` (+15 -0) 📝 `tests/fixtures/app-basic/middleware.ts` (+32 -0) 📝 `tests/fixtures/app-basic/next.config.ts` (+7 -0) ➕ `tests/fixtures/app-basic/pages/pages-header-override-delete.tsx` (+34 -0) 📝 `tests/fixtures/pages-basic/middleware.ts` (+8 -0) ➕ `tests/fixtures/pages-basic/pages/header-override-delete.tsx` (+33 -0) 📝 `tests/pages-router.test.ts` (+32 -0) 📝 `tests/shims.test.ts` (+150 -0) </details> ### 📄 Description ## Summary - preserve middleware request header deletions by serializing the full override set via `x-middleware-override-headers` - rebuild downstream request headers from the shared middleware override codec across shims, config matching, and Pages handling - keep App Router dev request-header ownership in the generated RSC entry so mixed app/pages fallback rewrites do not misroute through the pages shell ## Tests - pnpm test tests/shims.test.ts -t "middleware request header" - pnpm test tests/pages-router.test.ts -t "middleware request header overrides can delete credential headers before page handling" - pnpm test tests/app-router.test.ts -t "middleware request header overrides can delete credential headers before rendering" - pnpm test tests/app-router.test.ts -t "fallback rewrite has/missing conditions see middleware-injected cookies" --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
BreizhHardware 2026-05-06 13:08:34 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/vinext#527
No description provided.