mirror of
https://github.com/cloudflare/vinext.git
synced 2026-05-09 08:25:34 +02:00
[PR #461] [CLOSED] feat: track stable Next.js API surface and contract coverage #588
Labels
No labels
enhancement
enhancement
good first issue
help wanted
nextjs-tracking
nextjs-tracking
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/vinext#588
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/cloudflare/vinext/pull/461
Author: @Divkix
Created: 3/11/2026
Status: ❌ Closed
Base:
main← Head:feat/api-surface-tracking📝 Commits (7)
d05744bfeat: add Next.js API surface tracking systembff631afix: address review findings in API tracking system1201980feat: finish issue 454 API tracking follow-up27ca2c5fix: restore CI manifest fixtures and snapshots1f813acstyle: format manifest fixture dist files307272efix: silence lint in manifest fixtures578e7f5style: format lint-suppressed manifest fixtures📊 Changes
54 files changed (+2353 additions, -92 deletions)
View changed files
📝
.github/workflows/ci.yml(+8 -0)➕
.github/workflows/nextjs-api-track.yml(+108 -0)📝
.github/workflows/tip.yml(+20 -0)📝
.gitignore(+2 -0)➕
api-manifest.json(+152 -0)➕
known-gaps.json(+72 -0)📝
packages/vinext/src/entries/app-rsc-entry.ts(+1 -1)📝
packages/vinext/src/index.ts(+2 -83)➕
packages/vinext/src/shims/coverage.ts(+139 -0)➕
packages/vinext/src/shims/registry.ts(+116 -0)➕
scripts/check-shim-coverage.ts(+71 -0)➕
scripts/diff-nextjs-api.ts(+156 -0)➕
scripts/extract-nextjs-api.ts(+234 -0)📝
tests/__snapshots__/entry-templates.test.ts.snap(+6 -6)➕
tests/api-manifest.test.ts(+340 -0)📝
tests/app-router.test.ts(+28 -0)➕
tests/contracts/_helpers.ts(+166 -0)➕
tests/contracts/http.contract.test.ts(+44 -0)➕
tests/fixtures/app-basic/app/contracts/api/cookies-mutable/route.ts(+8 -0)➕
tests/fixtures/app-basic/app/contracts/api/headers-readonly/route.ts(+13 -0)...and 34 more files
📄 Description
Closes #454
Summary
This PR finishes the stable API-tracking work for vinext's Next.js compatibility layer.
It adds three things that now work together:
nextpackageknown-gaps.jsonnext devIt also moves the server-action redirect
303assertion out of the shared contract layer and into the regular App Router regression suite, because that flow depends on vinext's action transport details.What Changed
api-manifest.jsonfornext@16.1.6known-gaps.jsonfor intentional gaps surfaced by discovery (next/babeland experimental test helpers).github/workflows/nextjs-api-track.ymlto work fromnpm packoutput and de-dupe issues by version marker303server-action redirect assertion intotests/app-router.test.ts127.0.0.1for reliable local server boot in testsScope Notes
Verification
pnpm test tests/api-manifest.test.ts tests/manifest-diff.test.ts tests/shim-coverage.test.tspnpm test tests/app-router.test.ts -t "uses 303 for server action redirects"pnpm test tests/contracts/http.contract.test.tsCONTRACT_TARGET=nextjs pnpm test tests/contracts/http.contract.test.tspnpm test tests/shims.test.tsnext@16.1.6packagepnpm run typecheckpnpm run lintpnpm run fmt:check🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.