diff --git a/.changeset/cwv-report-id.md b/.changeset/cwv-report-id.md index 99f011405e..d503ec929d 100644 --- a/.changeset/cwv-report-id.md +++ b/.changeset/cwv-report-id.md @@ -3,4 +3,4 @@ "react-router-dom": minor --- -Include a window tag for CWV Report detection +Include a `window__reactRouterVersion` tag for CWV Report detection diff --git a/.changeset/pre.json b/.changeset/pre.json index b5139f1bc5..3d3908590a 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -8,5 +8,9 @@ "react-router-native": "6.21.3", "@remix-run/router": "1.14.2" }, - "changesets": [] + "changesets": [ + "cwv-report-id", + "static-context-error-status-code", + "throw-abort-reason" + ] } diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d083b9ffa..5d4a8f1078 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,136 +13,141 @@ We manage release notes in this file instead of the paginated Github Releases Pa Table of Contents - [React Router Releases](#react-router-releases) - - [v6.21.3](#v6213) + - [v6.22.0](#v6220) + - [What's Changed](#whats-changed) + - [Core Web Vitals Technology Report Flag](#core-web-vitals-technology-report-flag) + - [Minor Changes](#minor-changes) - [Patch Changes](#patch-changes) - - [v6.21.2](#v6212) + - [v6.21.3](#v6213) - [Patch Changes](#patch-changes-1) - - [v6.21.1](#v6211) + - [v6.21.2](#v6212) - [Patch Changes](#patch-changes-2) + - [v6.21.1](#v6211) + - [Patch Changes](#patch-changes-3) - [v6.21.0](#v6210) - - [What's Changed](#whats-changed) + - [What's Changed](#whats-changed-1) - [`future.v7_relativeSplatPath`](#futurev7_relativesplatpath) - [Partial Hydration](#partial-hydration) - - [Minor Changes](#minor-changes) - - [Patch Changes](#patch-changes-3) - - [v6.20.1](#v6201) - - [Patch Changes](#patch-changes-4) - - [v6.20.0](#v6200) - [Minor Changes](#minor-changes-1) + - [Patch Changes](#patch-changes-4) + - [v6.20.1](#v6201) - [Patch Changes](#patch-changes-5) - - [v6.19.0](#v6190) - - [What's Changed](#whats-changed-1) - - [`unstable_flushSync` API](#unstable_flushsync-api) + - [v6.20.0](#v6200) - [Minor Changes](#minor-changes-2) - [Patch Changes](#patch-changes-6) - - [v6.18.0](#v6180) + - [v6.19.0](#v6190) - [What's Changed](#whats-changed-2) - - [New Fetcher APIs](#new-fetcher-apis) - - [Persistence Future Flag (`future.v7_fetcherPersist`)](#persistence-future-flag-futurev7_fetcherpersist) + - [`unstable_flushSync` API](#unstable_flushsync-api) - [Minor Changes](#minor-changes-3) - [Patch Changes](#patch-changes-7) - - [v6.17.0](#v6170) + - [v6.18.0](#v6180) - [What's Changed](#whats-changed-3) - - [View Transitions ๐Ÿš€](#view-transitions-) + - [New Fetcher APIs](#new-fetcher-apis) + - [Persistence Future Flag (`future.v7_fetcherPersist`)](#persistence-future-flag-futurev7_fetcherpersist) - [Minor Changes](#minor-changes-4) - [Patch Changes](#patch-changes-8) - - [v6.16.0](#v6160) + - [v6.17.0](#v6170) + - [What's Changed](#whats-changed-4) + - [View Transitions ๐Ÿš€](#view-transitions-) - [Minor Changes](#minor-changes-5) - [Patch Changes](#patch-changes-9) - - [v6.15.0](#v6150) + - [v6.16.0](#v6160) - [Minor Changes](#minor-changes-6) - [Patch Changes](#patch-changes-10) - - [v6.14.2](#v6142) + - [v6.15.0](#v6150) + - [Minor Changes](#minor-changes-7) - [Patch Changes](#patch-changes-11) - - [v6.14.1](#v6141) + - [v6.14.2](#v6142) - [Patch Changes](#patch-changes-12) - - [v6.14.0](#v6140) - - [What's Changed](#whats-changed-4) - - [JSON/Text Submissions](#jsontext-submissions) - - [Minor Changes](#minor-changes-7) + - [v6.14.1](#v6141) - [Patch Changes](#patch-changes-13) - - [v6.13.0](#v6130) + - [v6.14.0](#v6140) - [What's Changed](#whats-changed-5) + - [JSON/Text Submissions](#jsontext-submissions) - [Minor Changes](#minor-changes-8) - [Patch Changes](#patch-changes-14) - - [v6.12.1](#v6121) - - [Patch Changes](#patch-changes-15) - - [v6.12.0](#v6120) + - [v6.13.0](#v6130) - [What's Changed](#whats-changed-6) - - [`React.startTransition` support](#reactstarttransition-support) - [Minor Changes](#minor-changes-9) + - [Patch Changes](#patch-changes-15) + - [v6.12.1](#v6121) - [Patch Changes](#patch-changes-16) - - [v6.11.2](#v6112) + - [v6.12.0](#v6120) + - [What's Changed](#whats-changed-7) + - [`React.startTransition` support](#reactstarttransition-support) + - [Minor Changes](#minor-changes-10) - [Patch Changes](#patch-changes-17) - - [v6.11.1](#v6111) + - [v6.11.2](#v6112) - [Patch Changes](#patch-changes-18) - - [v6.11.0](#v6110) - - [Minor Changes](#minor-changes-10) + - [v6.11.1](#v6111) - [Patch Changes](#patch-changes-19) - - [v6.10.0](#v6100) - - [What's Changed](#whats-changed-7) + - [v6.11.0](#v6110) - [Minor Changes](#minor-changes-11) - [Patch Changes](#patch-changes-20) - - [v6.9.0](#v690) + - [v6.10.0](#v6100) - [What's Changed](#whats-changed-8) - - [`Component`/`ErrorBoundary` route properties](#componenterrorboundary-route-properties) - - [Introducing Lazy Route Modules](#introducing-lazy-route-modules) - [Minor Changes](#minor-changes-12) - [Patch Changes](#patch-changes-21) - - [v6.8.2](#v682) + - [v6.9.0](#v690) + - [What's Changed](#whats-changed-9) + - [`Component`/`ErrorBoundary` route properties](#componenterrorboundary-route-properties) + - [Introducing Lazy Route Modules](#introducing-lazy-route-modules) + - [Minor Changes](#minor-changes-13) - [Patch Changes](#patch-changes-22) - - [v6.8.1](#v681) + - [v6.8.2](#v682) - [Patch Changes](#patch-changes-23) - - [v6.8.0](#v680) - - [Minor Changes](#minor-changes-13) + - [v6.8.1](#v681) - [Patch Changes](#patch-changes-24) - - [v6.7.0](#v670) + - [v6.8.0](#v680) - [Minor Changes](#minor-changes-14) - [Patch Changes](#patch-changes-25) - - [v6.6.2](#v662) + - [v6.7.0](#v670) + - [Minor Changes](#minor-changes-15) - [Patch Changes](#patch-changes-26) - - [v6.6.1](#v661) + - [v6.6.2](#v662) - [Patch Changes](#patch-changes-27) - - [v6.6.0](#v660) - - [What's Changed](#whats-changed-9) - - [Minor Changes](#minor-changes-15) + - [v6.6.1](#v661) - [Patch Changes](#patch-changes-28) - - [v6.5.0](#v650) + - [v6.6.0](#v660) - [What's Changed](#whats-changed-10) - [Minor Changes](#minor-changes-16) - [Patch Changes](#patch-changes-29) - - [v6.4.5](#v645) + - [v6.5.0](#v650) + - [What's Changed](#whats-changed-11) + - [Minor Changes](#minor-changes-17) - [Patch Changes](#patch-changes-30) - - [v6.4.4](#v644) + - [v6.4.5](#v645) - [Patch Changes](#patch-changes-31) - - [v6.4.3](#v643) + - [v6.4.4](#v644) - [Patch Changes](#patch-changes-32) - - [v6.4.2](#v642) + - [v6.4.3](#v643) - [Patch Changes](#patch-changes-33) - - [v6.4.1](#v641) + - [v6.4.2](#v642) - [Patch Changes](#patch-changes-34) + - [v6.4.1](#v641) + - [Patch Changes](#patch-changes-35) - [v6.4.0](#v640) - - [What's Changed](#whats-changed-11) + - [What's Changed](#whats-changed-12) - [Remix Data APIs](#remix-data-apis) - - [Patch Changes](#patch-changes-35) + - [Patch Changes](#patch-changes-36) - [v6.3.0](#v630) - - [Minor Changes](#minor-changes-17) + - [Minor Changes](#minor-changes-18) - [v6.2.2](#v622) - - [Patch Changes](#patch-changes-36) - - [v6.2.1](#v621) - [Patch Changes](#patch-changes-37) - - [v6.2.0](#v620) - - [Minor Changes](#minor-changes-18) + - [v6.2.1](#v621) - [Patch Changes](#patch-changes-38) - - [v6.1.1](#v611) - - [Patch Changes](#patch-changes-39) - - [v6.1.0](#v610) + - [v6.2.0](#v620) - [Minor Changes](#minor-changes-19) + - [Patch Changes](#patch-changes-39) + - [v6.1.1](#v611) - [Patch Changes](#patch-changes-40) - - [v6.0.2](#v602) + - [v6.1.0](#v610) + - [Minor Changes](#minor-changes-20) - [Patch Changes](#patch-changes-41) - - [v6.0.1](#v601) + - [v6.0.2](#v602) - [Patch Changes](#patch-changes-42) + - [v6.0.1](#v601) + - [Patch Changes](#patch-changes-43) - [v6.0.0](#v600) @@ -166,6 +171,36 @@ Date: YYYY-MM-DD **Full Changelog**: [`v6.X.Y...v6.X.Y`](https://github.com/remix-run/react-router/compare/react-router@6.X.Y...react-router@6.X.Y) --> +## v6.22.0 + +Date: 2024-01-31 + +### What's Changed + +#### Core Web Vitals Technology Report Flag + +In 2021, the HTTP Archive launched the [Core Web Vitals Technology Report dashboard](https://discuss.httparchive.org/t/new-dashboard-the-core-web-vitals-technology-report/2178): + +> By combining the powers of real-user experiences in the Chrome UX Report 26 (CrUX) dataset with web technology detections in HTTP Archive 30, we can get a glimpse into how architectural decisions like choices of CMS platform or JavaScript framework play a role in sitesโ€™ CWV performance. + +They use a tool called [`wappalyzer`](https://github.com/HTTPArchive/wappalyzer) to identify what technologies a given website is using by looking for certain scripts, global JS variables, or other identifying characteristics. For example, for Remix applications, they [look for the global `__remixContext`](https://github.com/HTTPArchive/wappalyzer/blob/c2a24ee7c2d07bf9c521f02584ae2dcf603ac0b7/src/technologies/r.json#L1328) variable to identify that a website is using Remix. + +It was brought to our attention that React Router was unable to be reliably identified because there is no identifying global aspects. They are currently [looking for external scripts with `react-router`](https://github.com/HTTPArchive/wappalyzer/blob/c2a24ee7c2d07bf9c521f02584ae2dcf603ac0b7/src/technologies/r.json#L637) in the name. This will identify sites using React Router from a CDN such as `unpkg` - but it will miss the **vast** majority of sites that are installing React Router from the npm registry and bundling it into their JS files. This results in [drastically under-reporting](https://lookerstudio.google.com/reporting/55bc8fad-44c2-4280-aa0b-5f3f0cd3d2be/page/M6ZPC?params=%7B%22df44%22:%22include%25EE%2580%25800%25EE%2580%2580IN%25EE%2580%2580React%2520Router%22%7D) the usage of React Router on the web. + +Starting with version `6.22.0`, sites using `react-router-dom` will begin adding a `window__reactRouterVersion` variable that will be set to a string value of the SemVer major version number (i.e., `window.__reactRouterVersion = "6";`). + +### Minor Changes + +- Include a `window__reactRouterVersion` for CWV Report detection ([#11222](https://github.com/remix-run/react-router/pull/11222)) +- Add a `createStaticHandler` `future.v7_throwAbortReason` flag to throw `request.signal.reason` (defaults to a `DOMException`) when a request is aborted instead of an `Error` such as `new Error("query() call aborted: GET /path")` ([#11104](https://github.com/remix-run/react-router/pull/11104)) + - Please note that `DOMException` was added in Node v17 so you will not get a `DOMException` on Node 16 and below. + +### Patch Changes + +- Respect the `ErrorResponse` status code if passed to `getStaticContextFormError` ([#11213](https://github.com/remix-run/react-router/pull/11213)) + +**Full Changelog**: [`v6.21.3...v6.22.0`](https://github.com/remix-run/react-router/compare/react-router@6.21.3...react-router@6.22.0) + ## v6.21.3 Date: 2024-01-18 diff --git a/packages/react-router-dom-v5-compat/CHANGELOG.md b/packages/react-router-dom-v5-compat/CHANGELOG.md index 124d7d32e2..cb2be21cde 100644 --- a/packages/react-router-dom-v5-compat/CHANGELOG.md +++ b/packages/react-router-dom-v5-compat/CHANGELOG.md @@ -1,5 +1,17 @@ # `react-router-dom-v5-compat` +## 6.22.0-pre.0 + +### Minor Changes + +- Include a window tag for CWV Report detection ([#11222](https://github.com/remix-run/react-router/pull/11222)) + +### Patch Changes + +- Updated dependencies: + - `react-router-dom@6.22.0-pre.0` + - `react-router@6.22.0-pre.0` + ## 6.21.3 ### Patch Changes diff --git a/packages/react-router-dom-v5-compat/package.json b/packages/react-router-dom-v5-compat/package.json index 657cbb79b9..f111fd8555 100644 --- a/packages/react-router-dom-v5-compat/package.json +++ b/packages/react-router-dom-v5-compat/package.json @@ -1,6 +1,6 @@ { "name": "react-router-dom-v5-compat", - "version": "6.21.3", + "version": "6.22.0-pre.0", "description": "Migration path to React Router v6 from v4/5", "keywords": [ "react", @@ -24,7 +24,7 @@ "types": "./dist/index.d.ts", "dependencies": { "history": "^5.3.0", - "react-router": "6.21.3" + "react-router": "6.22.0-pre.0" }, "peerDependencies": { "react": ">=16.8", diff --git a/packages/react-router-dom/CHANGELOG.md b/packages/react-router-dom/CHANGELOG.md index 995a49aebf..f7c39681e3 100644 --- a/packages/react-router-dom/CHANGELOG.md +++ b/packages/react-router-dom/CHANGELOG.md @@ -1,5 +1,17 @@ # `react-router-dom` +## 6.22.0-pre.0 + +### Minor Changes + +- Include a window tag for CWV Report detection ([#11222](https://github.com/remix-run/react-router/pull/11222)) + +### Patch Changes + +- Updated dependencies: + - `@remix-run/router@1.15.0-pre.0` + - `react-router@6.22.0-pre.0` + ## 6.21.3 ### Patch Changes diff --git a/packages/react-router-dom/package.json b/packages/react-router-dom/package.json index 7b8a1fa9d0..89b28a86f0 100644 --- a/packages/react-router-dom/package.json +++ b/packages/react-router-dom/package.json @@ -1,6 +1,6 @@ { "name": "react-router-dom", - "version": "6.21.3", + "version": "6.22.0-pre.0", "description": "Declarative routing for React web applications", "keywords": [ "react", @@ -23,8 +23,8 @@ "module": "./dist/index.js", "types": "./dist/index.d.ts", "dependencies": { - "@remix-run/router": "1.14.2", - "react-router": "6.21.3" + "@remix-run/router": "1.15.0-pre.0", + "react-router": "6.22.0-pre.0" }, "devDependencies": { "react": "^18.2.0", diff --git a/packages/react-router-native/CHANGELOG.md b/packages/react-router-native/CHANGELOG.md index dc7c8b30f3..788a8bfd84 100644 --- a/packages/react-router-native/CHANGELOG.md +++ b/packages/react-router-native/CHANGELOG.md @@ -1,5 +1,12 @@ # `react-router-native` +## 6.22.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `react-router@6.22.0-pre.0` + ## 6.21.3 ### Patch Changes diff --git a/packages/react-router-native/package.json b/packages/react-router-native/package.json index 726239a876..a316f7005b 100644 --- a/packages/react-router-native/package.json +++ b/packages/react-router-native/package.json @@ -1,6 +1,6 @@ { "name": "react-router-native", - "version": "6.21.3", + "version": "6.22.0-pre.0", "description": "Declarative routing for React Native applications", "keywords": [ "react", @@ -22,7 +22,7 @@ "types": "./dist/index.d.ts", "dependencies": { "@ungap/url-search-params": "^0.2.2", - "react-router": "6.21.3" + "react-router": "6.22.0-pre.0" }, "devDependencies": { "react": "^18.2.0", diff --git a/packages/react-router/CHANGELOG.md b/packages/react-router/CHANGELOG.md index 3dcea2d82c..5db0606b6f 100644 --- a/packages/react-router/CHANGELOG.md +++ b/packages/react-router/CHANGELOG.md @@ -1,5 +1,12 @@ # `react-router` +## 6.22.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/router@1.15.0-pre.0` + ## 6.21.3 ### Patch Changes diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 84c076c4dd..b32007184a 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -1,6 +1,6 @@ { "name": "react-router", - "version": "6.21.3", + "version": "6.22.0-pre.0", "description": "Declarative routing for React", "keywords": [ "react", @@ -23,7 +23,7 @@ "module": "./dist/index.js", "types": "./dist/index.d.ts", "dependencies": { - "@remix-run/router": "1.14.2" + "@remix-run/router": "1.15.0-pre.0" }, "devDependencies": { "react": "^18.2.0" diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md index 0d102ae942..e56bd4c8f4 100644 --- a/packages/router/CHANGELOG.md +++ b/packages/router/CHANGELOG.md @@ -1,5 +1,17 @@ # `@remix-run/router` +## 1.15.0-pre.0 + +### Minor Changes + +- Add a `createStaticHandler` `future.v7_throwAbortReason` flag to throw `request.signal.reason` (defaults to a `DOMException`) when a request is aborted instead of an `Error` such as `new Error("query() call aborted: GET /path")` ([#11104](https://github.com/remix-run/react-router/pull/11104)) + + - Please note that `DOMException` was added in Node v17 so you will not get a `DOMException` on Node 16 and below. + +### Patch Changes + +- Respect the `ErrorResponse` status code if passed to `getStaticContextFormError` ([#11213](https://github.com/remix-run/react-router/pull/11213)) + ## 1.14.2 ### Patch Changes diff --git a/packages/router/package.json b/packages/router/package.json index d1850f8397..92ef9ce009 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/router", - "version": "1.14.2", + "version": "1.15.0-pre.0", "description": "Nested/Data-driven/Framework-agnostic Routing", "keywords": [ "remix",