v8#14927
Conversation
- updates jest
|
Whoever PRs this branch next, please update the lock-file as part of your PR. |
|
👋 We've moved away from Changesets to our own internal changes process. Please convert your changesets file to a change file in the proper package directory (i.e., |
|
Preview Build AvailablePreview builds have been created for this PR. You can install pnpm install "remix-run/react-router#preview/pr-14927&path:packages/react-router"And/or install other packages via: pnpm install "remix-run/react-router#preview/pr-14927&path:packages/react-router-dev"
pnpm install "remix-run/react-router#preview/pr-14927&path:packages/react-router-express"
pnpm install "remix-run/react-router#preview/pr-14927&path:packages/react-router-node"
pnpm install "remix-run/react-router#preview/pr-14927&path:packages/react-router-serve"These preview builds will be updated automatically as you push new commits. |
# Conflicts: # packages/create-react-router/package.json # packages/react-router-architect/package.json # packages/react-router-cloudflare/package.json # packages/react-router-dev/package.json # packages/react-router-dom/package.json # packages/react-router-express/package.json # packages/react-router-fs-routes/package.json # packages/react-router-node/package.json # packages/react-router-remix-routes-option-adapter/package.json # packages/react-router-serve/package.json # packages/react-router/package.json
- removes Vite 6/non-environment support - drops the React Router Cloudflare dev proxy in favor of @cloudflare/vite-plugin - make unstable_previewServerPrerendering the default - refactor: rename bin files to .cjs and update references - fix: resolve Windows libuv assertion during prerendering by using node:http for internal requests Co-authored-by: Copilot <copilot@github.com>
* Remove `future.v8_middleware` flag and inline always-on codepaths
Middleware is now always enabled in v8. Removes the flag from the
runtime, dev config, typegen, server adapters, RSC, types, tests, and
docs. `getLoadContext` must return a `RouterContextProvider` instance.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* Fix integration test fixtures for always-on middleware context
Update EXPRESS_SERVER helper and vite-loader-context-test to provide a
RouterContextProvider instead of a plain object, since getLoadContext now
requires a RouterContextProvider after the v8_middleware flag removal.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Fix remaining integration test fixtures for always-on middleware
Three more fixtures still passed plain objects as load context, which
the always-on middleware runtime now rejects:
- helpers/express.ts: dropped the leftover getLoadContext = () => ({}),
no consumer (vite-dotenv-test, vite-hmr-hdr-test)
- vite-plugin-cloudflare-template: workers/app.ts now constructs a
RouterContextProvider and sets a cloudflareContext key from a new
shared app/cloudflare.ts; vite-plugin-cloudflare-test's route reads
via context.get(cloudflareContext)
- vite-plugin-cloudflare-test: pass inspectorPort: false so parallel
workers don't race on miniflare's inspector port 9229
Also drop vite-cloudflare-test.ts since @react-router/dev/vite/cloudflare
is being removed in v8.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
* feat: remove future.v8_passThroughRequests flag Request passthrough is now the unconditional default. The raw incoming `request` is always passed through to `loader`/`action`; use `url` for the normalized URL without React Router-specific implementation details (`.data` suffixes, `index`/`_routes` search params). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * test: update error message expectations for passthrough URLs The 405/POST error message now contains the raw `.data` URL since the request is passed through unmodified. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * test: update request URL expectations for passthrough CSR navigations now see the raw `.data` URL on `request.url`, and SSR POSTs to index routes see the `?index` query param that the form submits with. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * test: use normalized url in loaders for resource and single-fetch tests With passthrough now the default, `request.url` includes `.data`/`_routes` suffixes; switch loaders to the `url` arg or strip suffixes manually so test intent is preserved. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Bump small-effort dependencies for v8
Patch and minor bumps across the workspace — no API-breaking changes.
Excludes react/vite/vitest/jest-family deps (handled separately) and
held-back risky bumps (wrangler, msw, @mdx-js/rollup transitive conflict).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Revert integration dedent to ^0.7.0
v1 changed escape handling in tagged templates, breaking
vite-presets-test.ts where the BUILD_END_META.js fixture
relies on `.join("\\n")` inside a String.raw template. Deferred
to its own PR (#3.5 in the v8 deps roadmap).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* Bump integration dedent to ^1.7.2 to match react-router-dev
v1 stops interpreting backslash escapes in the function-call form,
so `String.raw\`...\\n...\`` now preserves both backslashes. Update
the one affected call site in vite-presets-test.ts to use a single
backslash so the joined newline survives to the written fixture.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* Update wrangler dep
* Remove workerd/react-is overrides
* Add back react-is override needed for tests
* Add dependency bump change files
* Reset wrngler peerDeps to just ^4.0.0
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Make route module splitting default in v8 Move the v8 route module splitting option out of future flags and resolve it as a top-level config field that defaults to true. Update plugin consumers, docs, fixtures, and tests to use splitRouteModules for opt-out/enforce behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix lazy client middleware error boundaries Load lazy route boundary metadata before bubbling client middleware errors that occur before route handlers run. This preserves route-level error boundaries when route module splitting loads middleware from a separate chunk. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Move route module splitting docs Move the route module splitting explanation from the future flags page into the automatic code splitting guide. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Handle lazy boundary load errors in middleware Convert lazy route load failures encountered while selecting client middleware error boundaries into data strategy error results instead of allowing them to escape the middleware pipeline. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Use optional catch binding for lazy boundary load Simplify the error handler using an optional catch binding instead of an unused variable + eslint-disable comment. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Polish split route modules config migration Clean up the v8 route module splitting migration now that splitRouteModules defaults to true. Remove obsolete future flag warning coverage, mark the config change as major, and simplify test/playground configs that rely on the default behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update active packages and templates to use @types/node 22.19.x so the workspace matches the Node 22.12 runtime floor. Refresh the lockfile to collapse older Node 20 and 22.14 type resolutions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update misc type and tooling dependencies * Update dev-time ESM dependencies
* Upgrade TypeScript to 6 * Migrate package builds to tsdown * Use native tsdown config loading * Enable tsdown unbundle mode * Add change files for build tooling updates * Remove unbundle because its dumb * Fix snapshot * chore: modernize TypeScript configs across workspace * Consolidate shared tsconfig options to a base config
… APIs (#15104) Use ESM path metadata in the absolute route typegen fixture, keep config loader resources alive through user `buildEnd` hooks, and avoid legacy SSR stack rewriting when using Vite runnable environments so native runner sourcemaps map correctly. Avoid overriding server `dev.createEnvironment` so integrations like `@cloudflare/vite-plugin` can provide their own environment implementations, while keeping native runner stack handling intact.
No description provided.