Add a new replace(url, init?) alternative to redirect(url, init?) that performs a history.replaceState instead of a history.pushState on client-side navigation redirects (#11811)
Patch Changes
Fix initial hydration behavior when using future.v7_partialHydration along with unstable_patchRoutesOnMiss (#11838)
During initial hydration, router.state.matches will now include any partial matches so that we can render ancestor HydrateFallback components
Updated dependencies:
@remix-run/router@1.19.0
6.25.1
No significant changes to this package were made in this release. See the repo CHANGELOG.md for an overview of all changes in v6.25.1.
6.25.0
Minor Changes
Stabilize future.unstable_skipActionErrorRevalidation as future.v7_skipActionErrorRevalidation (#11769)
When this flag is enabled, actions will not automatically trigger a revalidation if they return/throw a Response with a 4xx/5xx status code
You may still opt-into revalidation via shouldRevalidate
This also changes shouldRevalidate's unstable_actionStatus parameter to actionStatus
Patch Changes
Fix regression and properly decode paths inside useMatch so matches/params reflect decoded params (#11789)
Updated dependencies:
@remix-run/router@1.18.0
6.24.1
Patch Changes
When using future.v7_relativeSplatPath, properly resolve relative paths in splat routes that are children of pathless routes (#11633)
Updated dependencies:
@remix-run/router@1.17.1
6.24.0
Minor Changes
Add support for Lazy Route Discovery (a.k.a. Fog of War) (#11626)
Throw an error if an action/loader function returns undefined as revalidations need to know whether the loader has previously been executed. undefined also causes issues during SSR stringification for hydration. You should always ensure your loader/action returns a value, and you may return null if you don't wish to return anything. (#9511)
Properly handle redirects to external domains (#9590, #9654)
Preserve the HTTP method on 307/308 redirects (#9597)
This change removes the internal module-level routerSingleton we create and maintain inside our data routers since it was causing a number of headaches for non-simple use cases:
Unit tests are a pain because you need to find a way to reset the singleton in-between tests
Use use a _resetModuleScope singleton for our tests
...but this isn't exposed to users who may want to do their own tests around our router
The JSX children <Route> objects cause non-intuitive behavior based on idiomatic react expectations
Conditional runtime <Route>'s won't get picked up
Adding new <Route>'s during local dev won't get picked up during HMR
Using external state in your elements doesn't work as one might expect (see #9225)
Instead, we are going to lift the singleton out into user-land, so that they create the router singleton and manage it outside the react tree - which is what react 18 is encouraging with useSyncExternalStore anyways! This also means that since users create the router - there's no longer any difference in the rendering aspect for memory/browser/hash routers (which only impacts router/history creation) - so we can get rid of those and trim to a simple RouterProvider
// Before
function App() {
<DataBrowserRouter>
<Route path="/" element={<Layout />}>
<Route index element={<Home />}>
</Route>
<DataBrowserRouter>
}
// After
let router = createBrowserRouter([{
path: "/",
element: <Layout />,
children: [{
index: true,
Add a new replace(url, init?) alternative to redirect(url, init?) that performs a history.replaceState instead of a history.pushState on client-side navigation redirects (#11811)
Patch Changes
Fix initial hydration behavior when using future.v7_partialHydration along with unstable_patchRoutesOnMiss (#11838)
During initial hydration, router.state.matches will now include any partial matches so that we can render ancestor HydrateFallback components
Updated dependencies:
@remix-run/router@1.19.0
react-router@6.26.0
6.25.1
Patch Changes
Memoize some RouterProvider internals to reduce unnecessary re-renders (#11803)
Updated dependencies:
react-router@6.25.1
6.25.0
Minor Changes
Stabilize future.unstable_skipActionErrorRevalidation as future.v7_skipActionErrorRevalidation (#11769)
When this flag is enabled, actions will not automatically trigger a revalidation if they return/throw a Response with a 4xx/5xx status code
You may still opt-into revalidation via shouldRevalidate
This also changes shouldRevalidate's unstable_actionStatus parameter to actionStatus
Patch Changes
Updated dependencies:
react-router@6.25.0
@remix-run/router@1.18.0
6.24.1
Patch Changes
Remove polyfill.io reference from warning message because the domain was sold and has since been determined to serve malware (#11741)
Move @testing-library/dom and @types/react-dom to peer dependencies (#1305) (a4744fa)
BREAKING CHANGES
@testing-library/dom was moved to a peer dependency and needs to be explicitly installed. This reduces the chance of having conflicting versions of @testing-library/dom installed that frequently caused bugs when used with @testing-library/user-event. We will also be able to allow new versions of @testing-library/dom being used without a SemVer major release of @testing-library/react by just widening the peer dependency.
@types/react-dom needs to be installed if you're typechecking files using @testing-library/react.
Since reverting to nwsapi causes several functionality regressions, e.g. removing :has() support, we've decided to make this a major version.
Additionally:
Small fixes to edge-case behavior of the following properties: input.maxLength, input.minLength, input.size, progress.max, tableCell.colSpan, tableCell.rowSpan, tableCol.span, textArea.cols, textArea.maxLength, textArea.minLength, textArea.rows.
Version 23.2.0
This release switches our CSS selector engine from nwsapi to @asamuzakjp/dom-selector. The new engine is more actively maintained, and supports many new selectors: see the package's documentation for the full list. It also works better with shadow trees.
There is a potential of a performance regression due to this change. In our stress test benchmark, which runs most of these 273 selectors against this 128 KiB document, the new engine completes the benchmark only 0.25x as fast. However, we're hopeful that in more moderate usage this will not be a significant issue. Any help speeding up @asamuzakjp/dom-selector is appreciated, and feel free to open an issue if this has had a significant impact on your project.
Version 23.1.0
Added an initial implementation of ElementInternals, including the shadowRoot getter and the string-valued ARIA properties. (zjffun)
Added the string-valued ARIA attribute-reflecting properties to Element.
Fixed history.pushState() and history.replaceState() to follow the latest specification, notably with regards to how they handle empty string inputs and what new URLs are possible.
Fixed the input.valueAsANumber setter to handle NaN correctly. (alexandertrefz)
Updated various dependencies, including cssstyle which contains several bug fixes.
Version 23.0.1
Fixed the incorrect canvas peer dependency introduced in v23.0.0.
Version 23.0.0
Node.js v18 is now the minimum supported version.
Updated various dependencies, including whatwg-url which integrates various additions to the URL and URLSearchParams objects.
Since reverting to nwsapi causes several functionality regressions, e.g. removing :has() support, we've decided to make this a major version.
Additionally:
Small fixes to edge-case behavior of the following properties: input.maxLength, input.minLength, input.size, progress.max, tableCell.colSpan, tableCell.rowSpan, tableCol.span, textArea.cols, textArea.maxLength, textArea.minLength, textArea.rows.
23.2.0
This release switches our CSS selector engine from nwsapi to @asamuzakjp/dom-selector. The new engine is more actively maintained, and supports many new selectors: see the package's documentation for the full list. It also works better with shadow trees.
There is a potential of a performance regression due to this change. In our stress test benchmark, which runs most of these 273 selectors against this 128 KiB document, the new engine completes the benchmark only 0.25x as fast. However, we're hopeful that in more moderate usage this will not be a significant issue. Any help speeding up @asamuzakjp/dom-selector is appreciated, and feel free to open an issue if this has had a significant impact on your project.
23.1.0
Added an initial implementation of ElementInternals, including the shadowRoot getter and the string-valued ARIA properties. (zjffun)
Added the string-valued ARIA attribute-reflecting properties to Element.
Fixed history.pushState() and history.replaceState() to follow the latest specification, notably with regards to how they handle empty string inputs and what new URLs are possible.
Fixed the input.valueAsANumber setter to handle NaN correctly. (alexandertrefz)
Updated various dependencies, including cssstyle which contains several bug fixes.
23.0.1
Fixed the incorrect canvas peer dependency introduced in v23.0.0.
23.0.0
Node.js v18 is now the minimum supported version.
Updated various dependencies, including whatwg-url which integrates various additions to the URL and URLSearchParams objects.
Bumps the dev-dependencies group with 8 updates:
5.3.4
6.26.0
5.3.4
6.26.0
5.17.0
6.4.8
14.3.1
16.0.0
8.57.0
9.8.0
22.1.0
24.1.1
5.2.13
5.3.5
0.34.6
2.0.5
Updates
react-router
from 5.3.4 to 6.26.0Release notes
Sourced from react-router's releases.
... (truncated)
Changelog
Sourced from react-router's changelog.
... (truncated)
Commits
91ef146
chore: Update version for release (#11863)7acbfbe
chore: Update version for release (pre) (#11860)8334033
chore: Update version for release (pre) (#11854)653d1a8
Fix hydration behavior of patchRoutesOnMiss when v7_partialHydration is enabl...01d0f41
Add support for replace() redirects (#11811)98941f8
chore: Update version for release (#11815)db24ec9
chore: Update version for release (pre) (#11814)6b8daf9
Revert "Temporary change to test release process off v6 branch"b8a4cdb
Temporary change to test release process off v6 branch13dfa13
chore: Update version for release (#11807)Updates
react-router-dom
from 5.3.4 to 6.26.0Release notes
Sourced from react-router-dom's releases.
... (truncated)
Changelog
Sourced from react-router-dom's changelog.
... (truncated)
Commits
91ef146
chore: Update version for release (#11863)7acbfbe
chore: Update version for release (pre) (#11860)8334033
chore: Update version for release (pre) (#11854)653d1a8
Fix hydration behavior of patchRoutesOnMiss when v7_partialHydration is enabl...01d0f41
Add support for replace() redirects (#11811)98941f8
chore: Update version for release (#11815)db24ec9
chore: Update version for release (pre) (#11814)a252428
Reduce RouterProvider re-renders when using View Transitions (#11803)6b8daf9
Revert "Temporary change to test release process off v6 branch"b8a4cdb
Temporary change to test release process off v6 branchUpdates
@testing-library/jest-dom
from 5.17.0 to 6.4.8Release notes
Sourced from
@testing-library/jest-dom
's releases.... (truncated)
Commits
d02e80b
docs: add ddolcimascolo as a contributor for maintenance (#616)faf534b
fix: Drop peerDependencies from package.json (#610)78a2934
docs: add tonyhallett as a contributor for bug (#615)5cc6298
fix: Type definition oftoHaveClass
(#611)fd9ee68
fix: Support@starting-style
(#602)e8c8b13
fix: add js suffix to isEqualWith import (#599)f03a582
fix(infra): codecoverage token addition (#600)20aca33
fix: Updates role support for aria-required attribute intoBeRequired
(#590)bd82f64
refactor: replace lodash with own implementation when possible (#593)a93c0c4
fix: Remove errant export of GetByRoleMatcher, fixing type checking in some T...Updates
@testing-library/react
from 14.3.1 to 16.0.0Release notes
Sourced from
@testing-library/react
's releases.... (truncated)
Commits
a4744fa
feat: Move@testing-library/dom
and@types/react-dom
to peer dependencie...c1f2957
fix: Ensureact
is notany
whenReact.act
is not declared (#1323)b6e59f7
fix: export new act when available (#1319)f6a1677
chore: Adjust tests to workaround 18.3.0 bug (#1315)d143f46
fix: Stop restrictingcontainer
option based onhydrate
(#1313)48282c2
fix: EnsurerenderHook
options extend options forrender
(#1308)067d0c6
fix: Don't raise TypeScript errors when hydatingdocument
(#1304)c63b873
fix: ImprovelegacyRoot
error message (#1301)1645d21
fix: Stop using nullish coalescing (#1299)787cb85
Release: 15.0.0 (#1295)Updates
eslint
from 8.57.0 to 9.8.0Release notes
Sourced from eslint's releases.
... (truncated)
Changelog
Sourced from eslint's changelog.
... (truncated)
Commits
63881dc
9.8.0de36d1d
Build: changelog update for 9.8.0deee448
chore: upgrade to@eslint/js@9.8.0
(#18720)4aaf2b3
chore: package.json update for@eslint/js
release2570051
chore: package.json revert@eslint/js
version to 9.7.0 (#18719)d73b203
chore: package.json update for@eslint/js
release8e1a627
chore: update dependency@eslint/core
to ^0.2.0 (#18700)13d0bd3
feat: Add and use SourceCode#getLoc/getRange (#18703)282df1a
docs: Add system theme option (#18617)ab0ff27
fix: Throw error when invalid flags passed (#18705)Updates
jsdom
from 22.1.0 to 24.1.1Release notes
Sourced from jsdom's releases.
Changelog
Sourced from jsdom's changelog.
Commits
ee8b615
Version 24.1.14c167b3
Update ESLint to v9c8a5103
Update dependencies and dev dependenciesb2235af
Trigger selectionchange event ... _Description has been truncated_