Update tanstack-router monorepo #118
No reviewers
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MobiusReactor/TicTacToeV2!118
Loading…
Reference in a new issue
No description provided.
Delete branch "renovate/tanstack-router-monorepo"
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?
This PR contains the following updates:
1.170.17→1.170.361.167.0→1.167.21.171.14→1.171.301.168.19→1.168.38Release Notes
TanStack/router (@tanstack/react-router)
v1.170.36Compare Source
Patch Changes
#8390
b747fb8- Keep the Link location cache out of server bundles:buildLocationonly creates, reads and writes it whenisServeris false. Render React Links on the server without the extra prop copies and the forwarded-ref hook. Link SSR rendering is 20-40% faster in the Link benchmarks and the React Start SSR request loop about 7% faster.React
activePropsandinactivePropsnow follow one precedence rule on every link, including links whose destination is blocked for using a disallowed scheme: state props override element props,refand event handlers, whilehref,disabledandtargetstay controlled by the router. Previously a blocked link ignored arefor handler from its inactive props.React
LinkanduseLinkPropssplit router options from element props with one key set on the client and the server. Element props pass through as given: external links forward them verbatim, falsy values included, anduseLinkPropsnow returnschildrenfor router-controlled links as it already did for external ones.#8324
6387d58- Reuse hydration snapshot getters to avoid unnecessary store-instance effect updates when Links and other hydration-aware components rerender.#8318
9b2adaf- Allow active and inactive Link props to override base element props in React and Solid while preserving class/style merging. Keep React'shref,target, anddisabledvalues controlled by routing options. Preserve Vue object and nested-array class bindings, including reactive updates and server rendering, without mutating cached bindings during VNode normalization.#8327
634da91- MakepathParamsAllowedCharactersinitialization-only. Configure it when creating the router; changing allowed characters requires a new router instance. Remove decoder-update bookkeeping and decoder-change checks from route-owned path caches.#8370
e9396c9- Stop exporting the internalisPlainObjectandisPlainArrayhelpers.#8324
6387d58- Avoid a redundant prop copy when rendering native Links while preserving custom-component props and the public hook result.#8252
7e349c3- Reduce the bundle cost of shared Link pathname interpolation while preserving its rendering performance. Reuse one interpolation pass for pathname and optional metadata, keep the bounded cache on the router, and simplify React Link active-state and prop merging.#8370
e9396c9- Reuse built locations for Links whose destination does not depend on the current location.buildLocationkeeps the result per options object when the build never read the current location, and the ReactLinkpasses one stable options object per instance, so navigations resolve unchanged Links with a lookup instead of a full build. The per-route pathname interpolation cache this replaces is removed. Linkparams,searchandactiveOptionsare compared by value on render, so inline object literals with unchanged contents keep reusing the Link's location. Pass a new object to change a destination; like any other React prop, an object mutated in place is not re-read.Updated dependencies [
d76a332,b747fb8,6cfb1e8,700a714,700a714,8fff7fa,f021f6d,ae68535,7e349c3,873c830,7e349c3,634da91,e9396c9,634da91,f151ab0,bc57fa3,9872d2a,d76a332,634da91,634da91,7e349c3,9448caa,e9396c9,700a714,634da91,634da91]:v1.170.35Compare Source
Patch Changes
8c43c71- Upgrade TanStack Store to 0.11 and migrate router subscriptions to useSelector, preserving selector comparisons and Vue subscription cleanup.v1.170.34Compare Source
Patch Changes
#8279
aee42c6- Avoid allocating event-handler arrays and wrapper functions for links without user-supplied event handlers.#8308
9c1871c- Validate navigation and redirect destinations, keep ambiguous relative URLs on the current origin, and constrain prerender requests and output paths. Prevent redirect headers from appearing in serialized server function response bodies.Preserve native form HTTP redirects, route error handling and masks for document redirects, and per-navigation destinations for shared loader redirects. Avoid redundant origin parsing and reduce link styling and server-rendering work. Configured origins must already be normalized.
Keep blocked-link inactive props consistent during React hydration, honor explicit redirect Location headers before checking route options, and refresh Vue link state when destinations become internal. Reuse the protocol-relative URL check while parsing redirect schemes once.
Reduce React link bundle size by sharing pathname comparisons, state-prop selection, and element creation.
Share normalized pathname comparisons in Solid and Vue links to reduce bundle size.
#8311
9aec5a7- React Links resolve state props without temporary class-name arrays or unnecessary style copies.Updated dependencies [
f9836f1,9c1871c,9871c06,0654c0a]:v1.170.33Compare Source
Patch Changes
#8165
2f20c00- Exclude structural descendants below error and not-found boundaries from route lifecycle callbacks. Preserve lifecycle membership through invalidation, hydration, background reloads, and superseded navigation publication.#8209
28a5e45- Preserve falsy thrown values in React and Vue error boundaries. Type React and Vue boundary error components andonCatchcallbacks asunknown. Solid boundary errors remain typed asError; SSR now wraps non-Errorloader errors to match Solid’s native boundary behavior, preserving the original value incause. Router state and loaderonErrorvalues are unchanged.When upgrading React or Vue, narrow boundary errors (for example, with
error instanceof Error) before readingmessageorstack.ErrorComponentProps<TError>remains available for values narrowed to a specific error type. RouteonErrortypes are unchanged.#8161
f0b5eda- Retain successful not-found matches as terminal shared boundaries during client navigation, preserving route context while the destination loads.#8251
0497cae- Use URL.canParse for absolute URL checks in links, navigation, redirects, and build configuration. Preserve a URL constructor fallback for older browsers.#8169
0caf6b9- Fix route-scopeduseMatch,useSearch, anduseParamsAPIs to forward theshouldThrowoption and preserve optional return types whenshouldThrow: false.#8257
cf166d1- Fix repeatedinnerHTMLwrites for unchanged styles and data scripts during React re-renders. This prevents unnecessary CSS parsing and Trusted Types errors during client navigation.Updated dependencies [
edf0e16,2f20c00,28a5e45,08eff50,216c0c4,2f91503,f0b5eda,50eafca,0497cae,ee28348,9035abc,c18e690]:v1.170.32Compare Source
Patch Changes
#8130
cb281d7- preserve context during reloadsUpdated dependencies [
fa65287,cb281d7]:v1.170.31Compare Source
Patch Changes
3e016ac]:v1.170.30Compare Source
Patch Changes
#8084
5d3785d- preserve pending UI across retained routes#8068
f75cada- direct export of CatchBoundary class component, remove function wrapperUpdated dependencies [
5d3785d,63d2cc9]:v1.170.29Compare Source
Patch Changes
#8073
0fdf9ff- inline isCtrlKey inside Link component for byte shavingUpdated dependencies [
4c89b15,cf6ab17,bdaf73a]:v1.170.28Compare Source
Patch Changes
#8055
0c25a7b- Avoid wrapping root components that may render the HTML document in a Suspense boundary during SSR and hydration.#8054
31882c7- Reuse resolved lazy route components when revisiting code-split routes, preventing unnecessary pending UI.Updated dependencies [
31882c7]:v1.170.27Compare Source
Patch Changes
b0817f5- useMatchRoute w/ React Compilerv1.170.26Compare Source
Patch Changes
#8045
f500760- Warn when an Outlet is rendered inside a pending, error, or not-found component.#8043
1aafca9- remove the undocumented LinkisTransitioningstate anddata-transitioningattribute#8044
aa10b65- ApplypreloadDelayto viewport link preloading and cancel pending preloads when links leave the viewport.Updated dependencies [
7e93431]:v1.170.25Compare Source
Patch Changes
51138a8]:v1.170.24Compare Source
Patch Changes
44a8c3e,5253e70]:v1.170.23Compare Source
Patch Changes
95dec51- bail out ofLinkre-renders when the resolved href and active state are unchangedv1.170.22Compare Source
Patch Changes
#7992
ea3a665- retain mounted UI during revalidationUpdated dependencies [
ea3a665]:v1.170.21Compare Source
Patch Changes
#7961
697ebb6- Prevent a blank frame before zero-delay initial pending UI by using acomponent-scoped React transition for match publication. Pending timing,
boundary selection, and rendered matches continue to come from the router
core.
#7970
2435885- createFileRoute does not rely on FileRoute class#7971
86bf510- clean intersection observer options in link component#7967
6aefb33- Preserve path params in their raw string form while matching routes so structured values returned byparams.parseproduce stable match IDs and do not reuse stale loader data.RouterCore.getMatchedRoutes()now returns[matchedRoutes, rawParams, foundRoute]instead of an object.Updated dependencies [
84db4a8,9cac62a,6aefb33]:v1.170.20Compare Source
Patch Changes
b2908c6]:v1.170.19Compare Source
Patch Changes
#7805
45c4ad8- Rewrite match loading around a lane-based scheduler that tracks each navigation, preload, and background reload as an ordered unit of work. This fixes pending/redirect/retry state leaking between overlapping navigations, restores correct SSR status codes for redirects, errors, and not-found responses, and closes hydration gaps where the client re-ran work the server had already completed.headers()now only runs on the server, matching the documented behavior — it is no longer invoked during client-side asset projection.gcTimeandpreloadGcTimenow match the existing runtime default of 5 minutes (300_000).Removed / changed exported internals
RouterStateno longer includesloadedAt,isTransitioning,statusCode, orredirect. Usematch.updatedAtin place ofloadedAt; subscribe torouter.state.status/router.state.isLoadingin place ofisTransitioning; server response status and redirect handling are now internal to the server loader and are no longer exposed onrouter.state.RouteMatch.fetchCounthas been removed, with no replacement — it was purely informational.RouteMatch.statusno longer includes'redirected'(it remains'pending' | 'success' | 'error' | 'notFound') — redirected matches are dropped from the match list instead of being rendered.RouteMatch.globalNotFoundhas been renamed and privatized to the internal_notFoundfield. Usematch.status === 'notFound'instead.Matchcomponents now acceptrouteIdinstead ofmatchId.RouterStoresadapter contract now uses route-keyed presentation stores:matchesIdis replaced byids,matchStoresbybyRoute, andgetRouteMatchStore()bygetMatchStore(). The separateloadedAt,isLoading,isTransitioning,statusCode, andredirectstores have been removed, along with the pending/cache stores and their setters.StoreConfig.inithas also been removed. Read application-facing state fromrouter.state; preload and cache coordination are now internal.RouterCoremembersgetMatch(),updateMatch(),cancelMatch(), andcancelMatches()— read matches fromrouter.state.matches(e.g.router.state.matches.find((m) => m.id === id)); there is no replacement for mutating or cancelling an individual in-flight match from outside the router.RouterCore.hasNotFoundMatch()— userouter.state.matches.some((m) => m.status === 'notFound').RouterCore.looseRoutesById— useroutesById.RouterCore.isPrerendering(),RouterCore.isViewTransitionTypesSupported, andRouterCore.viewTransitionPromise, with no replacement.RouterCore.getParsedLocationHref()andRouterCore.clearExpiredCache(), with no replacement — expired cache entries are now reconciled automatically as part of match commit.RouterCore.latestLoadPromiseandRouterCore.beforeLoad(), with no replacement.RouterCore.commitLocationPromiseandRouterCore.pendingBuiltLocationhave been replaced by the internal_commitPromiseand_pendingLocationfields.GetMatchFnandUpdateMatchFntypes, along with the methods they typed.getMatchedRoutes()export from@tanstack/router-core— use therouter.getMatchedRoutes()instance method instead.RouterCore.loadRouteChunk()no longer accepts an array of component types as its second argument. One-argument usage is unchanged; the optional second argument is now'errorComponent','notFoundComponent', orfalsefor internal boundary loading.Redirect.redirectHandled, which was internal redirect bookkeeping.MatchRoutesOpts.preloadandMatchRoutesOpts.desthave been removed.StartTransitionFnis now(fn, expected) => Promise<boolean>(previously(fn) => void). This only affects custom framework adapters that implementstartTransition.Updated dependencies [
45c4ad8]:v1.170.18Compare Source
Patch Changes
e2dd204]:TanStack/router (@tanstack/react-router-devtools)
v1.167.2Compare Source
Patch Changes
d76a332,b747fb8,6cfb1e8,700a714,700a714,6387d58,7e349c3,9b2adaf,873c830,7e349c3,634da91,e9396c9,634da91,f151ab0,bc57fa3,6387d58,9872d2a,d76a332,634da91,634da91,7e349c3,9448caa,e9396c9,700a714,634da91,634da91]:v1.167.1Compare Source
Patch Changes
45c4ad8]:TanStack/router (@tanstack/router-core)
v1.171.30Compare Source
Patch Changes
#8321
d76a332- Cache route branches and interpolated paths on their route objects, removing the fixed template limit for registered routes and reusing cached paths across server requests. Rebuild tree-dependent caches together, preserve decoder and trailing-slash isolation, and keep unregistered templates bounded.#8390
b747fb8- Keep the Link location cache out of server bundles:buildLocationonly creates, reads and writes it whenisServeris false. Render React Links on the server without the extra prop copies and the forwarded-ref hook. Link SSR rendering is 20-40% faster in the Link benchmarks and the React Start SSR request loop about 7% faster.React
activePropsandinactivePropsnow follow one precedence rule on every link, including links whose destination is blocked for using a disallowed scheme: state props override element props,refand event handlers, whilehref,disabledandtargetstay controlled by the router. Previously a blocked link ignored arefor handler from its inactive props.React
LinkanduseLinkPropssplit router options from element props with one key set on the client and the server. Element props pass through as given: external links forward them verbatim, falsy values included, anduseLinkPropsnow returnschildrenfor router-controlled links as it already did for external ones.#8382
6cfb1e8-buildLocationno longer structurally shares the builtsearchandstatewith the current location. The observablelocation.searchandlocation.statestill preserve equal nested references across navigations, becauseparseLocationstabilizes them once a location is committed. A search whose contents equal the current search but list its keys in a different order now serializes in the requested order, so navigating to it creates a new history entry instead of being treated as the same location. Astateobject passed tonavigateorbuildLocationis never mutated.#8325
700a714- Reuse the already-owned raw-param snapshot during lightweight source matching instead of copying it again.#8325
700a714- Reduce transient JIT compilation memory during navigation by separating search middleware collection from recursive execution.#8252
7e349c3- Collect shared pathname-cache keys during interpolation instead of parsing templates twice, and share dynamic-segment handling to reduce bundle size.#8319
873c830- Simplify path interpolation into ordered segment-type blocks with shared prefix/value/suffix assembly. Preserve one-pass parsing and optional metadata collection, and reuse the public result object instead of allocating and clearing a missing-parameter callback.#8252
7e349c3- Reuse pathname interpolation across Links with bounded router-scoped caches. Keep parameter callbacks and navigation state independent of the cache.#8327
634da91- MakepathParamsAllowedCharactersinitialization-only. Configure it when creating the router; changing allowed characters requires a new router instance. Remove decoder-update bookkeeping and decoder-change checks from route-owned path caches.#8370
e9396c9- Stop exporting the internalisPlainObjectandisPlainArrayhelpers.#8327
634da91- Initialize routes directly during route-tree processing, removing the callback indirection while preserving parent-first initialization and route indexes.#8328
f151ab0- Reduce duplication in navigation parameter handling while preserving parameter inheritance, null-prototype dictionaries, and updater isolation.#8410
bc57fa3- Treat0andfalseas provided_splatvalues when interpolating paths. Onlyundefined,null, and''now omit a splat segment, matching how other path params are stringified.#8354
9872d2a- Use lightweight request history for SSR and make server navigation a no-op. Use redirect() to issue HTTP redirects. Server hrefs use the same normalization as browser history to handle protocol-relative URLs and control characters.#8321
d76a332- Consolidate internal path interpolation intointerpolatePath, returning a pathname directly and collecting metadata only when requested. Update router and devtools callers without changing route parsing or interpolation caching.#8327
634da91- Reduce route-tree initialization work by avoiding temporary path-joining arrays and duplicate ID normalization.#8327
634da91- Reuse parsed route segments when generating paths for navigation, Links, and Devtools. Preserve interpolation metadata and refresh segments when the route tree is rebuilt, without reparsing templates for new parameter values.#8252
7e349c3- Reduce the bundle cost of shared Link pathname interpolation while preserving its rendering performance. Reuse one interpolation pass for pathname and optional metadata, keep the bounded cache on the router, and simplify React Link active-state and prop merging.#8385
9448caa- Collect search middlewares with a counted loop so the optimized code stays valid across navigations. This removes a JIT recompilation that raised peak memory in the interrupted-navigations client memory benchmark.#8370
e9396c9- Reuse built locations for Links whose destination does not depend on the current location.buildLocationkeeps the result per options object when the build never read the current location, and the ReactLinkpasses one stable options object per instance, so navigations resolve unchanged Links with a lookup instead of a full build. The per-route pathname interpolation cache this replaces is removed. Linkparams,searchandactiveOptionsare compared by value on render, so inline object literals with unchanged contents keep reusing the Link's location. Pass a new object to change a destination; like any other React prop, an object mutated in place is not re-read.#8325
700a714- Cache normalized route pathnames so repeated Link destinations do not decode the same interpolation result again.#8327
634da91- Share compact parsed route segments between matching and interpolation, preserve original parameter names, and avoid reparsing templates while building paths. Simplify route-tree traversal, reuse existing path helpers, and keep Devtools-only navigation validation out of the production formatter. Preserve dynamic match identity for standalone legacy fallback routes.#8327
634da91- Pass route initialization indexes directly instead of wrapping each index in an options object.Updated dependencies [
8fff7fa,f021f6d,ae68535,9872d2a]:v1.171.29Compare Source
Patch Changes
#8313
f9836f1- Avoid constructing a query serializer when search is empty or all values are undefined.#8308
9c1871c- Validate navigation and redirect destinations, keep ambiguous relative URLs on the current origin, and constrain prerender requests and output paths. Prevent redirect headers from appearing in serialized server function response bodies.Preserve native form HTTP redirects, route error handling and masks for document redirects, and per-navigation destinations for shared loader redirects. Avoid redundant origin parsing and reduce link styling and server-rendering work. Configured origins must already be normalized.
Keep blocked-link inactive props consistent during React hydration, honor explicit redirect Location headers before checking route options, and refresh Vue link state when destinations become internal. Reuse the protocol-relative URL check while parsing redirect schemes once.
Reduce React link bundle size by sharing pathname comparisons, state-prop selection, and element creation.
Share normalized pathname comparisons in Solid and Vue links to reduce bundle size.
#8288
9871c06- Reduce cache maintenance work during navigation by indexing incoming match IDs once per commit.#8287
0654c0a- Use full-document navigation when an output rewrite produces a cross-origin destination, including the public URL of a route mask.Respect registered history blockers during document navigation, passing history locations and the requested push or replace action.
Updated dependencies [
9c1871c,0654c0a]:v1.171.28Compare Source
Patch Changes
#8222
edf0e16- Make each load transaction's completion follow its current successor so a burst of back-to-back loads wakes each superseded waiter once instead of once per successor. Previously every supersededload()re-polled the current transaction on each later completion, which was quadratic in microtask work.#8165
2f20c00- Exclude structural descendants below error and not-found boundaries from route lifecycle callbacks. Preserve lifecycle membership through invalidation, hydration, background reloads, and superseded navigation publication.#8209
28a5e45- Preserve falsy thrown values in React and Vue error boundaries. Type React and Vue boundary error components andonCatchcallbacks asunknown. Solid boundary errors remain typed asError; SSR now wraps non-Errorloader errors to match Solid’s native boundary behavior, preserving the original value incause. Router state and loaderonErrorvalues are unchanged.When upgrading React or Vue, narrow boundary errors (for example, with
error instanceof Error) before readingmessageorstack.ErrorComponentProps<TError>remains available for values narrowed to a specific error type. RouteonErrortypes are unchanged.#8207
08eff50- Fix consumer typechecking withskipLibCheck: falseby omitting the internal beforeLoad context field from published dehydrated match declarations.Retain the exported
isAbsoluteUrldeclaration used by framework bindings so the package entry point does not reference a stripped symbol.#8259
216c0c4- Reduce Promise allocations during client navigation and static server SSR policy resolution. Skip cancellable waits for synchronous beforeLoad results while preserving navigation cancellation.#8240
2f91503- Avoid quadratic resource handoff scans when navigating with many cached route matches.#8161
f0b5eda- Retain successful not-found matches as terminal shared boundaries during client navigation, preserving route context while the destination loads.#8142
50eafca- Avoid unnecessary JSON.parse calls for search parameter values that cannot begin valid JSON, while preserving custom parser behavior.#8251
0497cae- Use URL.canParse for absolute URL checks in links, navigation, redirects, and build configuration. Preserve a URL constructor fallback for older browsers.#8230
ee28348- Replace the internal LRU cache behind path resolution, route matching and the SSR manifest lookup with a smaller SIEVE cache whose hits no longer relink a list, and fix an eviction edge case in the old implementation.#8244
c18e690- Reduce promise allocations during client navigation when loader data and route components are already available.Updated dependencies [
9035abc]:v1.171.27Compare Source
Patch Changes
#8132
fa65287- Build client preload locations on demand and remove the prebuilt-location argument used by framework links.#8130
cb281d7- preserve context during reloadsv1.171.26Compare Source
Patch Changes
3e016ac- optimize buildLocation path resolution #8108skip building search validation when disabled #8112
skip location state sharing when impossible #8110
fix cache hits for mask resolution when entry is null #8111
v1.171.25Compare Source
Patch Changes
#8084
5d3785d- preserve pending UI across retained routes#8092
63d2cc9- Render route errors when redirect target construction fails and let successor transactions own navigation and HMR presentation.v1.171.24Compare Source
Patch Changes
#8071
4c89b15- inline getOpenAndCloseBraces in parseSegment for byte shaving#8069
cf6ab17- inline isFunction utility fn for byte shaving#8070
bdaf73a- inline buildWithMatches inside buildLocation for byte shavingv1.171.23Compare Source
Patch Changes
31882c7- Reuse resolved lazy route components when revisiting code-split routes, preventing unnecessary pending UI.v1.171.22Compare Source
Patch Changes
7e93431- load-client can cache settles abandonned loader work without preload authorityv1.171.21Compare Source
Patch Changes
51138a8- handle excessive parent relative linksv1.171.20Compare Source
Patch Changes
#8006
44a8c3e- skip impossible JSON parse attempts#8010
5253e70- perf: speed up structural sharing (replaceEqualDeep) by computing enumerable own keys withObject.keys+ a length compare instead ofgetOwnPropertyNamesfollowed by apropertyIsEnumerablecall per key. This runs on every selector result on every state update whendefaultStructuralSharingis enabled, and is ~1.3-1.5x faster on typical router state objects with identical behavior.v1.171.19Compare Source
Patch Changes
ea3a665- retain mounted UI during revalidationv1.171.18Compare Source
Patch Changes
#7984
84db4a8- Improve route-tree construction and matching performance by fusing static anddynamic node creation, sorting only dynamic sibling lists that need it, and
deriving matcher depth from trie nodes.
#7985
9cac62a- perf: compact private bundle boundaries- #7975#7967
6aefb33- Preserve path params in their raw string form while matching routes so structured values returned byparams.parseproduce stable match IDs and do not reuse stale loader data.RouterCore.getMatchedRoutes()now returns[matchedRoutes, rawParams, foundRoute]instead of an object.Updated dependencies [
9cac62a]:v1.171.17Compare Source
Patch Changes
b2908c6- Update Seroval dependencies to version 1.6.2.v1.171.16Compare Source
Patch Changes
#7805
45c4ad8- Rewrite match loading around a lane-based scheduler that tracks each navigation, preload, and background reload as an ordered unit of work. This fixes pending/redirect/retry state leaking between overlapping navigations, restores correct SSR status codes for redirects, errors, and not-found responses, and closes hydration gaps where the client re-ran work the server had already completed.headers()now only runs on the server, matching the documented behavior — it is no longer invoked during client-side asset projection.gcTimeandpreloadGcTimenow match the existing runtime default of 5 minutes (300_000).Removed / changed exported internals
RouterStateno longer includesloadedAt,isTransitioning,statusCode, orredirect. Usematch.updatedAtin place ofloadedAt; subscribe torouter.state.status/router.state.isLoadingin place ofisTransitioning; server response status and redirect handling are now internal to the server loader and are no longer exposed onrouter.state.RouteMatch.fetchCounthas been removed, with no replacement — it was purely informational.RouteMatch.statusno longer includes'redirected'(it remains'pending' | 'success' | 'error' | 'notFound') — redirected matches are dropped from the match list instead of being rendered.RouteMatch.globalNotFoundhas been renamed and privatized to the internal_notFoundfield. Usematch.status === 'notFound'instead.Matchcomponents now acceptrouteIdinstead ofmatchId.RouterStoresadapter contract now uses route-keyed presentation stores:matchesIdis replaced byids,matchStoresbybyRoute, andgetRouteMatchStore()bygetMatchStore(). The separateloadedAt,isLoading,isTransitioning,statusCode, andredirectstores have been removed, along with the pending/cache stores and their setters.StoreConfig.inithas also been removed. Read application-facing state fromrouter.state; preload and cache coordination are now internal.RouterCoremembersgetMatch(),updateMatch(),cancelMatch(), andcancelMatches()— read matches fromrouter.state.matches(e.g.router.state.matches.find((m) => m.id === id)); there is no replacement for mutating or cancelling an individual in-flight match from outside the router.RouterCore.hasNotFoundMatch()— userouter.state.matches.some((m) => m.status === 'notFound').RouterCore.looseRoutesById— useroutesById.RouterCore.isPrerendering(),RouterCore.isViewTransitionTypesSupported, andRouterCore.viewTransitionPromise, with no replacement.RouterCore.getParsedLocationHref()andRouterCore.clearExpiredCache(), with no replacement — expired cache entries are now reconciled automatically as part of match commit.RouterCore.latestLoadPromiseandRouterCore.beforeLoad(), with no replacement.RouterCore.commitLocationPromiseandRouterCore.pendingBuiltLocationhave been replaced by the internal_commitPromiseand_pendingLocationfields.GetMatchFnandUpdateMatchFntypes, along with the methods they typed.getMatchedRoutes()export from@tanstack/router-core— use therouter.getMatchedRoutes()instance method instead.RouterCore.loadRouteChunk()no longer accepts an array of component types as its second argument. One-argument usage is unchanged; the optional second argument is now'errorComponent','notFoundComponent', orfalsefor internal boundary loading.Redirect.redirectHandled, which was internal redirect bookkeeping.MatchRoutesOpts.preloadandMatchRoutesOpts.desthave been removed.StartTransitionFnis now(fn, expected) => Promise<boolean>(previously(fn) => void). This only affects custom framework adapters that implementstartTransition.v1.171.15Compare Source
Patch Changes
#7807
e2dd204- fix(router-core): handle window and element scroll restoration independentlyWindow and element scroll targets are now handled independently. Restoring one target no longer suppresses resets for other uncached configured targets, and a restored element is no longer reset when the window has no cached position.
Hash navigation no longer resets elements configured through
scrollToTopSelectorsand retains precedence over stale window positions through destination invalidations.Scroll positions are sampled when leaving a route, preserving live changes made after the most recent scroll event. This also prevents client hydration from undoing nested positions restored by the SSR script.
Fixes #7687.
TanStack/router (@tanstack/router-plugin)
v1.168.38Compare Source
Patch Changes
d76a332,b747fb8,6cfb1e8,700a714,700a714,6387d58,7e349c3,9b2adaf,873c830,7e349c3,634da91,e9396c9,634da91,f151ab0,bc57fa3,6387d58,9872d2a,d76a332,634da91,634da91,7e349c3,9448caa,e9396c9,700a714,634da91,634da91]:v1.168.37Compare Source
Patch Changes
#8300
49bcd4d- Refresh compatible build and runtime dependencies.Updated dependencies [
f9836f1,aee42c6,49bcd4d,9c1871c,9aec5a7,9871c06,0654c0a]:v1.168.36Compare Source
Patch Changes
edf0e16,2f20c00,28a5e45,08eff50,216c0c4,2f91503,f0b5eda,50eafca,0497cae,0caf6b9,ee28348,cf166d1,c18e690]:v1.168.35Compare Source
Patch Changes
fa65287,cb281d7]:v1.168.34Compare Source
Patch Changes
3e016ac]:v1.168.33Compare Source
Patch Changes
5d3785d,63d2cc9,f75cada]:v1.168.32Compare Source
Patch Changes
4c89b15,cf6ab17,0fdf9ff,bdaf73a]:v1.168.31Compare Source
Patch Changes
0c25a7b,31882c7]:v1.168.30Compare Source
Patch Changes
7e93431,f500760,1aafca9,aa10b65]:v1.168.29Compare Source
Patch Changes
51138a8]:v1.168.28Compare Source
Patch Changes
44a8c3e,5253e70]:v1.168.27Compare Source
Patch Changes
ea3a665]:v1.168.26Compare Source
Patch Changes
697ebb6,2435885,84db4a8,9cac62a,86bf510,6aefb33]:v1.168.25Compare Source
Patch Changes
b2908c6]:v1.168.24Compare Source
Patch Changes
45c4ad8]:v1.168.23Compare Source
Patch Changes
49f6863- Preserve React component state during HMR when route components are declared with lowercase function names. The development-only React transforms cover split route component groups and unsplit root route component options, including shell, pending, and error components, without changing production output.v1.168.22Compare Source
Patch Changes
78dd1a6]:v1.168.21Compare Source
Patch Changes
e56a677]:v1.168.20Compare Source
Patch Changes
e2dd204]:Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate CLI.
be6a3f466etoe9d205d62be9d205d62btob4ce1c4c68b4ce1c4c68toc8afd4978ec8afd4978eto7645db3a907645db3a90to42bb7bbb1f42bb7bbb1ftoee068592f8ee068592f8toc61249c230c61249c230to75f711ca7375f711ca73to814fddafa9814fddafa9tocecd349928cecd349928toc2992d0196c2992d0196to2069f6c7fe2069f6c7fetoe5faa53316View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.