From e1fd99902bfe9967b39853c25d76a5c3530a268e Mon Sep 17 00:00:00 2001 From: Remix Run Bot Date: Tue, 3 Dec 2024 02:20:20 +0000 Subject: [PATCH 01/31] chore: format --- packages/react-router-dev/CHANGELOG.md | 2 +- packages/react-router-dom/CHANGELOG.md | 2 +- packages/react-router-express/CHANGELOG.md | 2 +- packages/react-router-node/CHANGELOG.md | 2 +- packages/react-router-serve/CHANGELOG.md | 2 +- packages/react-router/CHANGELOG.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/react-router-dev/CHANGELOG.md b/packages/react-router-dev/CHANGELOG.md index 1820c67dfc..df09340aca 100644 --- a/packages/react-router-dev/CHANGELOG.md +++ b/packages/react-router-dev/CHANGELOG.md @@ -44,7 +44,7 @@ +import { cloudflareDevProxy } from "@react-router/dev/vite/cloudflare"; ``` -- Remove single\_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) +- Remove single_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) - update minimum node version to 18 ([#11690](https://github.com/remix-run/react-router/pull/11690)) diff --git a/packages/react-router-dom/CHANGELOG.md b/packages/react-router-dom/CHANGELOG.md index 5e0f94fbff..e1604ab57c 100644 --- a/packages/react-router-dom/CHANGELOG.md +++ b/packages/react-router-dom/CHANGELOG.md @@ -28,7 +28,7 @@ - Use `createRemixRouter`/`RouterProvider` in `entry.client` instead of `RemixBrowser` ([#11469](https://github.com/remix-run/react-router/pull/11469)) -- Remove single\_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) +- Remove single_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) - Remove `future.v7_startTransition` flag ([#11696](https://github.com/remix-run/react-router/pull/11696)) diff --git a/packages/react-router-express/CHANGELOG.md b/packages/react-router-express/CHANGELOG.md index e56e26274f..241c9d537d 100644 --- a/packages/react-router-express/CHANGELOG.md +++ b/packages/react-router-express/CHANGELOG.md @@ -20,7 +20,7 @@ ### Major Changes -- Remove single\_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) +- Remove single_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) - update minimum node version to 18 ([#11690](https://github.com/remix-run/react-router/pull/11690)) - Add `exports` field to all packages ([#11675](https://github.com/remix-run/react-router/pull/11675)) - node package no longer re-exports from react-router ([#11702](https://github.com/remix-run/react-router/pull/11702)) diff --git a/packages/react-router-node/CHANGELOG.md b/packages/react-router-node/CHANGELOG.md index 53e9a4c8a3..8b13276cfc 100644 --- a/packages/react-router-node/CHANGELOG.md +++ b/packages/react-router-node/CHANGELOG.md @@ -18,7 +18,7 @@ ### Major Changes -- Remove single\_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) +- Remove single_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) - For Remix consumers migrating to React Router, the `crypto` global from the [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API) is now required when using cookie and session APIs. This means that the following APIs are provided from `react-router` rather than platform-specific packages: ([#11837](https://github.com/remix-run/react-router/pull/11837)) diff --git a/packages/react-router-serve/CHANGELOG.md b/packages/react-router-serve/CHANGELOG.md index 701afd881b..2ba65d1143 100644 --- a/packages/react-router-serve/CHANGELOG.md +++ b/packages/react-router-serve/CHANGELOG.md @@ -22,7 +22,7 @@ ### Major Changes -- Remove single\_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) +- Remove single_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) - update minimum node version to 18 ([#11690](https://github.com/remix-run/react-router/pull/11690)) - Add `exports` field to all packages ([#11675](https://github.com/remix-run/react-router/pull/11675)) - node package no longer re-exports from react-router ([#11702](https://github.com/remix-run/react-router/pull/11702)) diff --git a/packages/react-router/CHANGELOG.md b/packages/react-router/CHANGELOG.md index 178f2a94c3..660dd356a8 100644 --- a/packages/react-router/CHANGELOG.md +++ b/packages/react-router/CHANGELOG.md @@ -30,7 +30,7 @@ - Collapse `@remix-run/server-runtime` into `react-router` - Collapse `@remix-run/testing` into `react-router` -- Remove single\_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) +- Remove single_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) - Drop support for Node 16, React Router SSR now requires Node 18 or higher ([#11391](https://github.com/remix-run/react-router/pull/11391)) From d8168195088308178c52b9445eee21400b7a1496 Mon Sep 17 00:00:00 2001 From: Siddhant Gupta Date: Tue, 3 Dec 2024 08:21:22 +0530 Subject: [PATCH 02/31] fix(fs-routes): throw error if routes directory is missing (#12407) Co-authored-by: Mark Dalgleish --- .changeset/honest-dots-deliver.md | 5 ++++ .../__tests__/flatRoutes-test.ts | 26 +++++++++++++++++++ packages/react-router-fs-routes/flatRoutes.ts | 2 +- 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 .changeset/honest-dots-deliver.md diff --git a/.changeset/honest-dots-deliver.md b/.changeset/honest-dots-deliver.md new file mode 100644 index 0000000000..5e8fd57841 --- /dev/null +++ b/.changeset/honest-dots-deliver.md @@ -0,0 +1,5 @@ +--- +"@react-router/fs-routes": patch +--- + +Throw error in `flatRoutes` if routes directory is missing diff --git a/packages/react-router-fs-routes/__tests__/flatRoutes-test.ts b/packages/react-router-fs-routes/__tests__/flatRoutes-test.ts index 9308fb0cc5..8efab812e9 100644 --- a/packages/react-router-fs-routes/__tests__/flatRoutes-test.ts +++ b/packages/react-router-fs-routes/__tests__/flatRoutes-test.ts @@ -1,8 +1,10 @@ import path from "node:path"; +import { mkdirSync, rmdirSync, createFileSync, rmSync } from "fs-extra"; import type { RouteManifestEntry } from "../manifest"; import { + flatRoutes, flatRoutesUniversal, getRoutePathConflictErrorMessage, getRouteIdConflictErrorMessage, @@ -877,4 +879,28 @@ describe("flatRoutes", () => { expect(routes).toHaveLength(3); }); }); + + describe("throw correct error", () => { + beforeEach(() => { + mkdirSync(APP_DIR, { recursive: true }); + }); + afterEach(() => { + rmdirSync(APP_DIR); + }); + + test("root route is not found", () => { + expect(() => flatRoutes(APP_DIR)).toThrow( + `Could not find a root route module in the app directory: test/root/app` + ); + }); + + test("routes dir is not found", () => { + const rootRoute = path.join(APP_DIR, "root.tsx"); + createFileSync(rootRoute); + expect(() => flatRoutes(APP_DIR)).toThrow( + `Could not find the routes directory: test/root/app/routes. Did you forget to create it?` + ); + rmSync(rootRoute); + }); + }); }); diff --git a/packages/react-router-fs-routes/flatRoutes.ts b/packages/react-router-fs-routes/flatRoutes.ts index 4195f735a4..63265f84d1 100644 --- a/packages/react-router-fs-routes/flatRoutes.ts +++ b/packages/react-router-fs-routes/flatRoutes.ts @@ -89,7 +89,7 @@ export function flatRoutes( ); } - if (!fs.existsSync(rootRoute)) { + if (!fs.existsSync(routesDir)) { throw new Error( `Could not find the routes directory: ${routesDir}. Did you forget to create it?` ); From f0145cca3b7004e3954e7c9ba43637bb21e40941 Mon Sep 17 00:00:00 2001 From: Mark Dalgleish Date: Tue, 3 Dec 2024 14:33:19 +1100 Subject: [PATCH 03/31] test(fs-routes): Write test files to temp dir (#12446) --- .../__tests__/flatRoutes-test.ts | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/packages/react-router-fs-routes/__tests__/flatRoutes-test.ts b/packages/react-router-fs-routes/__tests__/flatRoutes-test.ts index 8efab812e9..5ead9c84da 100644 --- a/packages/react-router-fs-routes/__tests__/flatRoutes-test.ts +++ b/packages/react-router-fs-routes/__tests__/flatRoutes-test.ts @@ -1,5 +1,6 @@ +import os from "node:os"; import path from "node:path"; -import { mkdirSync, rmdirSync, createFileSync, rmSync } from "fs-extra"; +import fse from "fs-extra"; import type { RouteManifestEntry } from "../manifest"; @@ -880,27 +881,35 @@ describe("flatRoutes", () => { }); }); - describe("throw correct error", () => { + describe("throws expected errors", () => { + let tempDir = path.join( + os.tmpdir(), + "react-router-fs-routes-test", + Math.random().toString(36).substring(2, 15) + ); + beforeEach(() => { - mkdirSync(APP_DIR, { recursive: true }); + fse.mkdirSync(tempDir, { recursive: true }); }); afterEach(() => { - rmdirSync(APP_DIR); + fse.rmSync(tempDir, { recursive: true, force: true }); }); test("root route is not found", () => { - expect(() => flatRoutes(APP_DIR)).toThrow( - `Could not find a root route module in the app directory: test/root/app` + expect(() => flatRoutes(tempDir)).toThrow( + `Could not find a root route module in the app directory: ${tempDir}` ); }); test("routes dir is not found", () => { - const rootRoute = path.join(APP_DIR, "root.tsx"); - createFileSync(rootRoute); - expect(() => flatRoutes(APP_DIR)).toThrow( - `Could not find the routes directory: test/root/app/routes. Did you forget to create it?` + const rootRoute = path.join(tempDir, "root.tsx"); + fse.createFileSync(rootRoute); + expect(() => flatRoutes(tempDir)).toThrow( + `Could not find the routes directory: ${path.join( + tempDir, + "routes" + )}. Did you forget to create it?` ); - rmSync(rootRoute); }); }); }); From 722d4881badb73dac1d804394d4d863d5e54294e Mon Sep 17 00:00:00 2001 From: Pedro Cattori Date: Tue, 3 Dec 2024 14:56:33 -0500 Subject: [PATCH 04/31] test: silence expected errors in integration test (#12456) --- integration/defer-test.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/integration/defer-test.ts b/integration/defer-test.ts index 4c8dfc792e..b325cbe7ba 100644 --- a/integration/defer-test.ts +++ b/integration/defer-test.ts @@ -20,6 +20,8 @@ const MANUAL_RESOLVED_ID = "MANUAL_RESOLVED_ID"; const MANUAL_FALLBACK_ID = "MANUAL_FALLBACK_ID"; const MANUAL_ERROR_ID = "MANUAL_ERROR_ID"; +let originalConsoleError: typeof console.error; + declare global { var __deferredManualResolveCache: { nextId: number; @@ -537,9 +539,12 @@ test.describe("non-aborted", () => { // This creates an interactive app using playwright. appFixture = await createAppFixture(fixture); + originalConsoleError = console.error; + console.error = () => {}; }); test.afterAll(() => { + console.error = originalConsoleError; appFixture.close(); }); @@ -1205,9 +1210,13 @@ test.describe("aborted", () => { // This creates an interactive app using playwright. appFixture = await createAppFixture(fixture); + + originalConsoleError = console.error; + console.error = () => {}; }); test.afterAll(() => { + console.error = originalConsoleError; appFixture.close(); }); From 5813c1ea0386caee2b1ec70eba1705b9a612b96d Mon Sep 17 00:00:00 2001 From: Pedro Cattori Date: Tue, 3 Dec 2024 15:39:40 -0500 Subject: [PATCH 05/31] silence remaining expected errors from integration tests (#12457) --- integration/catch-boundary-test.ts | 8 ++++++++ integration/fs-routes-test.ts | 8 ++++++++ integration/resource-routes-test.ts | 4 ++++ integration/vite-prerender-test.ts | 11 +++++++++++ 4 files changed, 31 insertions(+) diff --git a/integration/catch-boundary-test.ts b/integration/catch-boundary-test.ts index 0cad7d7b5c..c4419c0e4e 100644 --- a/integration/catch-boundary-test.ts +++ b/integration/catch-boundary-test.ts @@ -11,6 +11,8 @@ import { PlaywrightFixture } from "./helpers/playwright-fixture.js"; test.describe("ErrorBoundary (thrown responses)", () => { let fixture: Fixture; let appFixture: AppFixture; + let originalConsoleError: typeof console.error; + let originalConsoleWarn: typeof console.warn; let ROOT_BOUNDARY_TEXT = "ROOT_TEXT" as const; let OWN_BOUNDARY_TEXT = "OWN_BOUNDARY_TEXT" as const; @@ -214,10 +216,16 @@ test.describe("ErrorBoundary (thrown responses)", () => { }); appFixture = await createAppFixture(fixture); + originalConsoleError = console.error; + console.error = () => {}; + originalConsoleWarn = console.warn; + console.warn = () => {}; }); test.afterAll(() => { appFixture.close(); + console.error = originalConsoleError; + console.warn = originalConsoleWarn; }); test("non-matching urls on document requests", async () => { diff --git a/integration/fs-routes-test.ts b/integration/fs-routes-test.ts index 1a5d6122a3..5708622e2a 100644 --- a/integration/fs-routes-test.ts +++ b/integration/fs-routes-test.ts @@ -12,6 +12,8 @@ import { let fixture: Fixture; let appFixture: AppFixture; +let originalConsoleError: typeof console.error; +let originalConsoleWarn: typeof console.warn; test.describe("fs-routes", () => { test.beforeAll(async () => { @@ -138,10 +140,16 @@ test.describe("fs-routes", () => { }); appFixture = await createAppFixture(fixture); + originalConsoleError = console.error; + console.error = () => {}; + originalConsoleWarn = console.warn; + console.warn = () => {}; }); test.afterAll(() => { appFixture.close(); + console.error = originalConsoleError; + console.warn = originalConsoleWarn; }); test.describe("without JavaScript", () => { diff --git a/integration/resource-routes-test.ts b/integration/resource-routes-test.ts index 52f4928866..527813b2c9 100644 --- a/integration/resource-routes-test.ts +++ b/integration/resource-routes-test.ts @@ -13,12 +13,15 @@ test.describe("loader in an app", async () => { let appFixture: AppFixture; let fixture: Fixture; let _consoleError: typeof console.error; + let _consoleWarn: typeof console.warn; let SVG_CONTENTS = ``; test.beforeAll(async () => { _consoleError = console.error; console.error = () => {}; + _consoleWarn = console.warn; + console.warn = () => {}; fixture = await createFixture({ files: { "app/routes/_index.tsx": js` @@ -131,6 +134,7 @@ test.describe("loader in an app", async () => { test.afterAll(() => { appFixture.close(); console.error = _consoleError; + console.warn = _consoleWarn; }); test.describe("with JavaScript", () => { diff --git a/integration/vite-prerender-test.ts b/integration/vite-prerender-test.ts index d8045dcad5..2316955f38 100644 --- a/integration/vite-prerender-test.ts +++ b/integration/vite-prerender-test.ts @@ -150,9 +150,20 @@ function listAllFiles(_dir: string) { test.describe("Prerendering", () => { let fixture: Fixture; let appFixture: AppFixture; + let _consoleError: typeof console.error; + let _consoleWarn: typeof console.warn; + + test.beforeAll(() => { + _consoleError = console.error; + console.error = () => {}; + _consoleWarn = console.warn; + console.warn = () => {}; + }); test.afterAll(() => { appFixture.close(); + console.error = _consoleError; + console.warn = _consoleWarn; }); test("Prerenders known static routes when true is specified", async () => { From 8ff4d5fe7c95028d79fcd45cde5f97a7d9d0682a Mon Sep 17 00:00:00 2001 From: Pedro Cattori Date: Tue, 3 Dec 2024 15:46:48 -0500 Subject: [PATCH 06/31] internally deprecate createappfixture (#12458) --- integration/helpers/create-fixture.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/integration/helpers/create-fixture.ts b/integration/helpers/create-fixture.ts index c4062c59d4..b2c13aa15a 100644 --- a/integration/helpers/create-fixture.ts +++ b/integration/helpers/create-fixture.ts @@ -192,6 +192,13 @@ export async function createFixture(init: FixtureInit, mode?: ServerMode) { }; } +/** + * @deprecated Use `integration/helpers/vite.ts`'s `test` instead + * + * This implementation sometimes runs a request handler in memory, forcing tests to manually manage stdout/stderr + * which has caused many integration tests to leak noisy logs for expected errors. + * It also means that sometimes the CLI is skipped over in those tests, missing out on code paths that should be tested. + */ export async function createAppFixture(fixture: Fixture, mode?: ServerMode) { let startAppServer = async (): Promise<{ port: number; From 9a3d9fc19f6eecab842e8cf1505fc2b255964902 Mon Sep 17 00:00:00 2001 From: Pedro Cattori Date: Wed, 4 Dec 2024 09:01:04 -0500 Subject: [PATCH 07/31] clean up tsconfigs (#12461) * isolatedModules -> verbatimModuleSyntax * remove redundant `forceConsistentCasingInFileNames` it already defaults to `true` --- examples/auth-router-provider/tsconfig.json | 3 +- examples/auth/tsconfig.json | 3 +- examples/basic-data-router/tsconfig.json | 3 +- examples/basic/tsconfig.json | 3 +- examples/custom-filter-link/tsconfig.json | 3 +- examples/custom-link/tsconfig.json | 3 +- examples/custom-query-parsing/tsconfig.json | 3 +- examples/data-router/tsconfig.json | 3 +- examples/error-boundaries/tsconfig.json | 3 +- .../tsconfig.json | 3 +- examples/lazy-loading/tsconfig.json | 3 +- .../modal-route-with-outlet/tsconfig.json | 3 +- examples/modal/tsconfig.json | 3 +- examples/navigation-blocking/tsconfig.json | 3 +- examples/notes/tsconfig.json | 3 +- examples/route-objects/tsconfig.json | 3 +- examples/scroll-restoration/tsconfig.json | 3 +- examples/search-params/tsconfig.json | 3 +- examples/ssr-data-router/tsconfig.json | 3 +- examples/ssr/tsconfig.json | 3 +- examples/view-transitions/tsconfig.json | 3 +- .../vite-cloudflare-template/tsconfig.json | 3 +- .../helpers/vite-template/tsconfig.json | 3 +- integration/root-route-test.ts | 5 +-- integration/typegen-test.ts | 18 ++++----- integration/vite-dev-test.ts | 38 +++++++++---------- integration/vite-dot-server-test.ts | 3 +- .../__tests__/fixtures/basic/tsconfig.json | 3 +- .../__tests__/fixtures/node/tsconfig.json | 3 +- playground/framework-express/tsconfig.json | 3 +- playground/framework-spa/tsconfig.json | 3 +- playground/framework/tsconfig.json | 3 +- tutorial/tsconfig.json | 3 +- 33 files changed, 60 insertions(+), 91 deletions(-) diff --git a/examples/auth-router-provider/tsconfig.json b/examples/auth-router-provider/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/auth-router-provider/tsconfig.json +++ b/examples/auth-router-provider/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/auth/tsconfig.json b/examples/auth/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/auth/tsconfig.json +++ b/examples/auth/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/basic-data-router/tsconfig.json b/examples/basic-data-router/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/basic-data-router/tsconfig.json +++ b/examples/basic-data-router/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/basic/tsconfig.json b/examples/basic/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/basic/tsconfig.json +++ b/examples/basic/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/custom-filter-link/tsconfig.json b/examples/custom-filter-link/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/custom-filter-link/tsconfig.json +++ b/examples/custom-filter-link/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/custom-link/tsconfig.json b/examples/custom-link/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/custom-link/tsconfig.json +++ b/examples/custom-link/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/custom-query-parsing/tsconfig.json b/examples/custom-query-parsing/tsconfig.json index 370376ed19..78409fcc20 100644 --- a/examples/custom-query-parsing/tsconfig.json +++ b/examples/custom-query-parsing/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/data-router/tsconfig.json b/examples/data-router/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/data-router/tsconfig.json +++ b/examples/data-router/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/error-boundaries/tsconfig.json b/examples/error-boundaries/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/error-boundaries/tsconfig.json +++ b/examples/error-boundaries/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/lazy-loading-router-provider/tsconfig.json b/examples/lazy-loading-router-provider/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/lazy-loading-router-provider/tsconfig.json +++ b/examples/lazy-loading-router-provider/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/lazy-loading/tsconfig.json b/examples/lazy-loading/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/lazy-loading/tsconfig.json +++ b/examples/lazy-loading/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/modal-route-with-outlet/tsconfig.json b/examples/modal-route-with-outlet/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/modal-route-with-outlet/tsconfig.json +++ b/examples/modal-route-with-outlet/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/modal/tsconfig.json b/examples/modal/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/modal/tsconfig.json +++ b/examples/modal/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/navigation-blocking/tsconfig.json b/examples/navigation-blocking/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/navigation-blocking/tsconfig.json +++ b/examples/navigation-blocking/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/notes/tsconfig.json b/examples/notes/tsconfig.json index 52c16a5865..fa2b80f4fb 100644 --- a/examples/notes/tsconfig.json +++ b/examples/notes/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/route-objects/tsconfig.json b/examples/route-objects/tsconfig.json index 505647fa70..493906f91e 100644 --- a/examples/route-objects/tsconfig.json +++ b/examples/route-objects/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/scroll-restoration/tsconfig.json b/examples/scroll-restoration/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/scroll-restoration/tsconfig.json +++ b/examples/scroll-restoration/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/search-params/tsconfig.json b/examples/search-params/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/search-params/tsconfig.json +++ b/examples/search-params/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/examples/ssr-data-router/tsconfig.json b/examples/ssr-data-router/tsconfig.json index 9e8a06ccc7..17e4943385 100644 --- a/examples/ssr-data-router/tsconfig.json +++ b/examples/ssr-data-router/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "types": ["vite/client"], diff --git a/examples/ssr/tsconfig.json b/examples/ssr/tsconfig.json index 9e8a06ccc7..17e4943385 100644 --- a/examples/ssr/tsconfig.json +++ b/examples/ssr/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "types": ["vite/client"], diff --git a/examples/view-transitions/tsconfig.json b/examples/view-transitions/tsconfig.json index 429c4c3629..ad5cd682f2 100644 --- a/examples/view-transitions/tsconfig.json +++ b/examples/view-transitions/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react-jsx", "importsNotUsedAsValues": "error" diff --git a/integration/helpers/vite-cloudflare-template/tsconfig.json b/integration/helpers/vite-cloudflare-template/tsconfig.json index 6926eebeac..32573c8bb2 100644 --- a/integration/helpers/vite-cloudflare-template/tsconfig.json +++ b/integration/helpers/vite-cloudflare-template/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], "types": ["vite/client"], - "isolatedModules": true, + "verbatimModuleSyntax": true, "esModuleInterop": true, "jsx": "react-jsx", "module": "ESNext", @@ -13,7 +13,6 @@ "strict": true, "allowJs": true, "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, "baseUrl": ".", "noEmit": true } diff --git a/integration/helpers/vite-template/tsconfig.json b/integration/helpers/vite-template/tsconfig.json index 0b28589917..4f19efc420 100644 --- a/integration/helpers/vite-template/tsconfig.json +++ b/integration/helpers/vite-template/tsconfig.json @@ -7,7 +7,7 @@ ], "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], - "isolatedModules": true, + "verbatimModuleSyntax": true, "esModuleInterop": true, "jsx": "react-jsx", "module": "ESNext", @@ -17,7 +17,6 @@ "strict": true, "allowJs": true, "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, "baseUrl": ".", "paths": { "~/*": ["./app/*"] diff --git a/integration/root-route-test.ts b/integration/root-route-test.ts index 233a428da0..d0b63abe1a 100644 --- a/integration/root-route-test.ts +++ b/integration/root-route-test.ts @@ -166,7 +166,7 @@ test.describe("root route", () => { files: { "app/root.tsx": js` import * as React from "react"; - import { Await, Scripts, useRouteError, useRouteLoaderData } from "react-router"; + import { Scripts, useRouteError, useRouteLoaderData } from "react-router"; export function Layout({ children }) { let data = useRouteLoaderData("root"); return ( @@ -297,8 +297,7 @@ test.describe("root route", () => { files: { "app/root.tsx": js` import * as React from "react"; - import { defer } from "@react-router/node"; - import { Await, Scripts, useRouteError, useRouteLoaderData } from "react-router"; + import { Scripts, useRouteLoaderData } from "react-router"; export function Layout({ children }) { let data = useRouteLoaderData("root"); return ( diff --git a/integration/typegen-test.ts b/integration/typegen-test.ts index 409ac8c14b..c6d40231f8 100644 --- a/integration/typegen-test.ts +++ b/integration/typegen-test.ts @@ -51,7 +51,7 @@ test.describe("typegen", () => { ] satisfies RouteConfig; `, "app/routes/product.tsx": tsx` - import { Expect, Equal } from "../expect-type" + import type { Expect, Equal } from "../expect-type" import type { Route } from "./+types/product" export function loader({ params }: Route.LoaderArgs) { @@ -86,7 +86,7 @@ test.describe("typegen", () => { ] satisfies RouteConfig; `, "app/routes/repeated-params.tsx": tsx` - import { Expect, Equal } from "../expect-type" + import type { Expect, Equal } from "../expect-type" import type { Route } from "./+types/repeated-params" export function loader({ params }: Route.LoaderArgs) { @@ -114,7 +114,7 @@ test.describe("typegen", () => { ] satisfies RouteConfig; `, "app/routes/splat.tsx": tsx` - import { Expect, Equal } from "../expect-type" + import type { Expect, Equal } from "../expect-type" import type { Route } from "./+types/splat" export function loader({ params }: Route.LoaderArgs) { @@ -142,7 +142,7 @@ test.describe("typegen", () => { ] satisfies RouteConfig; `, "app/routes/param-with-ext.tsx": tsx` - import { Expect, Equal } from "../expect-type" + import type { Expect, Equal } from "../expect-type" import type { Route } from "./+types/param-with-ext" export function loader({ params }: Route.LoaderArgs) { @@ -151,7 +151,7 @@ test.describe("typegen", () => { } `, "app/routes/optional-param-with-ext.tsx": tsx` - import { Expect, Equal } from "../expect-type" + import type { Expect, Equal } from "../expect-type" import type { Route } from "./+types/optional-param-with-ext" export function loader({ params }: Route.LoaderArgs) { @@ -172,7 +172,7 @@ test.describe("typegen", () => { "vite.config.ts": viteConfig, "app/expect-type.ts": expectType, "app/routes/_index.tsx": tsx` - import { Expect, Equal } from "../expect-type" + import type { Expect, Equal } from "../expect-type" import type { Route } from "./+types/_index" export function loader() { @@ -209,7 +209,7 @@ test.describe("typegen", () => { `, "app/expect-type.ts": expectType, "app/routes/products.$id.tsx": tsx` - import { Expect, Equal } from "../expect-type" + import type { Expect, Equal } from "../expect-type" import type { Route } from "./+types/products.$id" export function loader({ params }: Route.LoaderArgs) { @@ -279,7 +279,7 @@ test.describe("typegen", () => { } `, "app/routes/current.tsx": tsx` - import { Expect, Equal } from "../expect-type" + import type { Expect, Equal } from "../expect-type" import type { Route } from "./+types/current" export function loader() { @@ -341,7 +341,7 @@ test.describe("typegen", () => { ] satisfies RouteConfig; `, "app/routes/absolute.tsx": tsx` - import { Expect, Equal } from "../expect-type" + import type { Expect, Equal } from "../expect-type" import type { Route } from "./+types/absolute" export function loader({ params }: Route.LoaderArgs) { diff --git a/integration/vite-dev-test.ts b/integration/vite-dev-test.ts index 7c84726eed..2266c21793 100644 --- a/integration/vite-dev-test.ts +++ b/integration/vite-dev-test.ts @@ -1,13 +1,15 @@ -import { expect } from "@playwright/test"; import fs from "node:fs/promises"; import path from "node:path"; +import { expect } from "@playwright/test"; +import dedent from "dedent"; + import { test, type Files } from "./helpers/vite.js"; -const js = String.raw; +const tsx = dedent; const files: Files = async ({ port }) => ({ - "vite.config.ts": js` + "vite.config.ts": tsx` import { defineConfig } from "vite"; import { reactRouter } from "@react-router/dev/vite"; import mdx from "@mdx-js/rollup"; @@ -23,7 +25,7 @@ const files: Files = async ({ port }) => ({ ], }); `, - "app/root.tsx": js` + "app/root.tsx": tsx` import { Links, Meta, Outlet, Scripts } from "react-router"; export default function Root() { @@ -44,7 +46,7 @@ const files: Files = async ({ port }) => ({ ); } `, - "app/routes/_index.tsx": js` + "app/routes/_index.tsx": tsx` import { Suspense } from "react"; import { Await, useLoaderData } from "react-router"; @@ -70,8 +72,8 @@ const files: Files = async ({ port }) => ({ ); } `, - "app/routes/set-cookies.tsx": js` - import { LoaderFunction } from "react-router"; + "app/routes/set-cookies.tsx": tsx` + import type { LoaderFunction } from "react-router"; export const loader: LoaderFunction = () => { const headers = new Headers(); @@ -101,9 +103,8 @@ const files: Files = async ({ port }) => ({ return response; }; `, - "app/routes/get-cookies.tsx": js` - import type { LoaderFunctionArgs } from "react-router"; - import { useLoaderData } from "react-router" + "app/routes/get-cookies.tsx": tsx` + import { useLoaderData, type LoaderFunctionArgs } from "react-router"; export const loader = ({ request }: LoaderFunctionArgs) => ({ cookies: request.headers.get("Cookie") @@ -120,7 +121,7 @@ const files: Files = async ({ port }) => ({ ); } `, - "app/routes/jsx.jsx": js` + "app/routes/jsx.jsx": tsx` export default function JsxRoute() { return (
@@ -129,7 +130,7 @@ const files: Files = async ({ port }) => ({ ); } `, - "app/routes/mdx.mdx": js` + "app/routes/mdx.mdx": tsx` import { useLoaderData } from "react-router"; export const loader = () => { @@ -150,7 +151,7 @@ const files: Files = async ({ port }) => ({ ".env": ` ENV_VAR_FROM_DOTENV_FILE=Content from .env file `, - "app/routes/dotenv.tsx": js` + "app/routes/dotenv.tsx": tsx` import { useState, useEffect } from "react"; import { useLoaderData } from "react-router"; @@ -178,9 +179,8 @@ const files: Files = async ({ port }) => ({ } `, - "app/routes/error-stacktrace.tsx": js` - import type { LoaderFunction, MetaFunction } from "react-router"; - import { Link, useLocation } from "react-router"; + "app/routes/error-stacktrace.tsx": tsx` + import { Link, useLocation, type LoaderFunction, type MetaFunction } from "react-router"; export const loader: LoaderFunction = ({ request }) => { if (request.url.includes("crash-loader")) { @@ -211,7 +211,7 @@ const files: Files = async ({ port }) => ({ ); } `, - "app/routes/known-route-exports.tsx": js` + "app/routes/known-route-exports.tsx": tsx` import { useMatches } from "react-router"; export const meta = () => [{ @@ -371,13 +371,13 @@ test.describe("Vite dev", () => { "Error: crash-server-render" ); await expect(page.locator("main")).toContainText( - "error-stacktrace.tsx:16:11" + "error-stacktrace.tsx:14:11" ); await page.goto(`http://localhost:${port}/error-stacktrace?crash-loader`); await expect(page.locator("main")).toContainText("Error: crash-loader"); await expect(page.locator("main")).toContainText( - "error-stacktrace.tsx:7:11" + "error-stacktrace.tsx:5:11" ); }); diff --git a/integration/vite-dot-server-test.ts b/integration/vite-dot-server-test.ts index 366dafb6c4..a4d6847357 100644 --- a/integration/vite-dot-server-test.ts +++ b/integration/vite-dot-server-test.ts @@ -22,7 +22,7 @@ let tsconfig = (aliases: Record) => ` "include": ["env.d.ts", "**/*.ts", "**/*.tsx"], "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], - "isolatedModules": true, + "verbatimModuleSyntax": true, "esModuleInterop": true, "jsx": "react-jsx", "module": "ESNext", @@ -31,7 +31,6 @@ let tsconfig = (aliases: Record) => ` "target": "ES2022", "strict": true, "allowJs": true, - "forceConsistentCasingInFileNames": true, "baseUrl": ".", "paths": ${JSON.stringify(aliases)}, "noEmit": true diff --git a/packages/create-react-router/__tests__/fixtures/basic/tsconfig.json b/packages/create-react-router/__tests__/fixtures/basic/tsconfig.json index 29b2316386..5d93a220de 100644 --- a/packages/create-react-router/__tests__/fixtures/basic/tsconfig.json +++ b/packages/create-react-router/__tests__/fixtures/basic/tsconfig.json @@ -11,7 +11,7 @@ "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], "types": ["@react-router/node", "vite/client"], - "isolatedModules": true, + "verbatimModuleSyntax": true, "esModuleInterop": true, "jsx": "react-jsx", "module": "ESNext", @@ -21,7 +21,6 @@ "strict": true, "allowJs": true, "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, "baseUrl": ".", "paths": { "~/*": ["./app/*"] diff --git a/packages/react-router-dev/__tests__/fixtures/node/tsconfig.json b/packages/react-router-dev/__tests__/fixtures/node/tsconfig.json index 28cce918b8..80f487a8a3 100644 --- a/packages/react-router-dev/__tests__/fixtures/node/tsconfig.json +++ b/packages/react-router-dev/__tests__/fixtures/node/tsconfig.json @@ -2,7 +2,7 @@ "include": ["remix.env.d.ts", "**/*.ts", "**/*.tsx"], "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], - "isolatedModules": true, + "verbatimModuleSyntax": true, "esModuleInterop": true, "jsx": "react-jsx", "moduleResolution": "Bundler", @@ -10,7 +10,6 @@ "target": "ES2022", "strict": true, "allowJs": true, - "forceConsistentCasingInFileNames": true, "baseUrl": ".", "paths": { "~/*": ["./app/*"] diff --git a/playground/framework-express/tsconfig.json b/playground/framework-express/tsconfig.json index f6dcf185fb..79cf7b5af6 100644 --- a/playground/framework-express/tsconfig.json +++ b/playground/framework-express/tsconfig.json @@ -11,7 +11,7 @@ "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], "types": ["@react-router/node", "vite/client"], - "isolatedModules": true, + "verbatimModuleSyntax": true, "esModuleInterop": true, "jsx": "react-jsx", "module": "ESNext", @@ -21,7 +21,6 @@ "strict": true, "allowJs": true, "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, "baseUrl": ".", "paths": { "~/*": ["./app/*"] diff --git a/playground/framework-spa/tsconfig.json b/playground/framework-spa/tsconfig.json index 5467cc6978..e4a33d683f 100644 --- a/playground/framework-spa/tsconfig.json +++ b/playground/framework-spa/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], "types": ["@react-router/node", "vite/client"], - "isolatedModules": true, + "verbatimModuleSyntax": true, "esModuleInterop": true, "jsx": "react-jsx", "module": "ESNext", @@ -13,7 +13,6 @@ "strict": true, "allowJs": true, "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, "baseUrl": ".", "paths": { "~/*": ["./app/*"] diff --git a/playground/framework/tsconfig.json b/playground/framework/tsconfig.json index f6dcf185fb..79cf7b5af6 100644 --- a/playground/framework/tsconfig.json +++ b/playground/framework/tsconfig.json @@ -11,7 +11,7 @@ "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], "types": ["@react-router/node", "vite/client"], - "isolatedModules": true, + "verbatimModuleSyntax": true, "esModuleInterop": true, "jsx": "react-jsx", "module": "ESNext", @@ -21,7 +21,6 @@ "strict": true, "allowJs": true, "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, "baseUrl": ".", "paths": { "~/*": ["./app/*"] diff --git a/tutorial/tsconfig.json b/tutorial/tsconfig.json index 6d0446d895..806d1ca3aa 100644 --- a/tutorial/tsconfig.json +++ b/tutorial/tsconfig.json @@ -8,11 +8,10 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, - "forceConsistentCasingInFileNames": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, - "isolatedModules": true, + "verbatimModuleSyntax": true, "noEmit": true, "jsx": "react", "importsNotUsedAsValues": "error" From 0ea8e66903292214ca2d829fb9d5bf7292a20857 Mon Sep 17 00:00:00 2001 From: Mark Dalgleish Date: Fri, 6 Dec 2024 16:18:40 +1100 Subject: [PATCH 08/31] Add tsup temp files to gitignore (#12481) --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 70fce75324..5db1ec8925 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,7 @@ node_modules/ .wireit .eslintcache .tmp +tsup.config.bundled_*.mjs /.env /NOTES.md From 5213a95e8e951ed63f44872792639489f3d12d19 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 6 Dec 2024 11:58:08 -0500 Subject: [PATCH 09/31] Remove deprecated `ABORT_DELAY` in favor of `streamTimeout` (#12478) --- .changeset/wild-dogs-double.md | 8 ++++++ docs/explanation/special-files.md | 27 +++++++++++++++++++ integration/error-sanitization-test.ts | 10 ++----- integration/vite-dev-custom-entry-test.ts | 10 ++----- integration/vite-spa-mode-test.ts | 10 ++----- .../config/defaults/entry.server.node.tsx | 12 ++++----- packages/react-router/lib/dom/ssr/entry.ts | 1 - packages/react-router/lib/dom/ssr/server.tsx | 3 --- .../lib/server-runtime/single-fetch.ts | 11 ++++---- .../framework-express/app/entry.server.tsx | 18 +++---------- playground/framework/app/entry.server.tsx | 18 +++---------- 11 files changed, 60 insertions(+), 68 deletions(-) create mode 100644 .changeset/wild-dogs-double.md diff --git a/.changeset/wild-dogs-double.md b/.changeset/wild-dogs-double.md new file mode 100644 index 0000000000..3987630ac1 --- /dev/null +++ b/.changeset/wild-dogs-double.md @@ -0,0 +1,8 @@ +--- +"@react-router/dev": patch +--- + +Remove the leftover/unused `abortDelay` prop from `ServerRouter` and update the default `entry.server.tsx` to use the new `streamTimeout` value for Single Fetch + +- The `abortDelay` functionality was removed in v7 as it was coupled to the `defer` implementation from Remix v2, but this removal of this prop was missed +- If you were still using this prop in your `entry.server` file, it's likely your app is not aborting streams as you would expect and you will need to adopt the new [`streamTimeout`](https://reactrouter.com/explanation/special-files#streamtimeout) value introduced with Single Fetch diff --git a/docs/explanation/special-files.md b/docs/explanation/special-files.md index 3150907c7b..7274569b5b 100644 --- a/docs/explanation/special-files.md +++ b/docs/explanation/special-files.md @@ -229,6 +229,32 @@ The `default` export of this module is a function that lets you create the respo This module should render the markup for the current page using a `` element with the `context` and `url` for the current request. This markup will (optionally) be re-hydrated once JavaScript loads in the browser using the [client entry module][client-entry]. +### `streamTimeout` + +If you are [streaming] responses, you can export an optional `streamTimeout` value (in milliseconds) that will control the amount of time the server will wait for streamed promises to settle before rejecting outstanding promises them and closing the stream. + +It's recommended to decouple this value from the timeout in which you abort the React renderer. You should always set the React rendering timeout to a higher value so it has time to stream down the underlying rejections from your `streamTimeout`. + +```tsx lines=[1-2,13-15] +// Reject all pending promises from handler functions after 10 seconds +export const streamTimeout = 10000; + +export default function handleRequest(...) { + return new Promise((resolve, reject) => { + // ... + + const { pipe, abort } = renderToPipeableStream( + , + { /* ... */ } + ); + + // Abort the streaming render pass after 11 seconds soto allow the rejected + // boundaries to be flushed + setTimeout(abort, streamTimeout + 1000); + }); +} +``` + ### `handleDataRequest` You can export an optional `handleDataRequest` function that will allow you to modify the response of a data request. These are the requests that do not render HTML, but rather return the loader and action data to the browser once client-side hydration has occurred. @@ -289,3 +315,4 @@ Note that this does not handle thrown `Response` instances from your `loader`/`a [rendertopipeablestream]: https://react.dev/reference/react-dom/server/renderToPipeableStream [rendertoreadablestream]: https://react.dev/reference/react-dom/server/renderToReadableStream [node-streaming-entry-server]: https://github.com/remix-run/react-router/blob/dev/packages/react-router-dev/config/defaults/entry.server.node.tsx +[streaming]: ../how-to/suspense diff --git a/integration/error-sanitization-test.ts b/integration/error-sanitization-test.ts index e0614e428e..89048930cc 100644 --- a/integration/error-sanitization-test.ts +++ b/integration/error-sanitization-test.ts @@ -497,8 +497,6 @@ test.describe("Error Sanitization", () => { import { ServerRouter, isRouteErrorResponse } from "react-router"; import { renderToPipeableStream } from "react-dom/server"; - const ABORT_DELAY = 5_000; - export default function handleRequest( request, responseStatusCode, @@ -508,11 +506,7 @@ test.describe("Error Sanitization", () => { return new Promise((resolve, reject) => { let shellRendered = false; const { pipe, abort } = renderToPipeableStream( - , + , { onShellReady() { shellRendered = true; @@ -545,7 +539,7 @@ test.describe("Error Sanitization", () => { } ); - setTimeout(abort, ABORT_DELAY); + setTimeout(abort, 5000); }); } diff --git a/integration/vite-dev-custom-entry-test.ts b/integration/vite-dev-custom-entry-test.ts index c9c05b9243..5236f51f56 100644 --- a/integration/vite-dev-custom-entry-test.ts +++ b/integration/vite-dev-custom-entry-test.ts @@ -14,8 +14,6 @@ const files: Files = async ({ port }) => ({ import { ServerRouter } from "react-router"; import { renderToPipeableStream } from "react-dom/server"; - const ABORT_DELAY = 5_000; - export default function handleRequest( request: Request, responseStatusCode: number, @@ -25,11 +23,7 @@ const files: Files = async ({ port }) => ({ return new Promise((resolve, reject) => { let shellRendered = false; const { pipe, abort } = renderToPipeableStream( - , + , { onShellReady() { shellRendered = true; @@ -65,7 +59,7 @@ const files: Files = async ({ port }) => ({ } ); - setTimeout(abort, ABORT_DELAY); + setTimeout(abort, 5000); }); } `, diff --git a/integration/vite-spa-mode-test.ts b/integration/vite-spa-mode-test.ts index 74912c3444..be9c3238b3 100644 --- a/integration/vite-spa-mode-test.ts +++ b/integration/vite-spa-mode-test.ts @@ -296,8 +296,6 @@ test.describe("SPA Mode", () => { import { ServerRouter } from "react-router"; import { renderToPipeableStream } from "react-dom/server"; - const ABORT_DELAY = 5_000; - export default function handleRequest( request: Request, responseStatusCode: number, @@ -322,11 +320,7 @@ test.describe("SPA Mode", () => { const html = await new Promise((resolve, reject) => { let shellRendered = false; const { pipe, abort } = renderToPipeableStream( - , + , { onAllReady() { shellRendered = true; @@ -359,7 +353,7 @@ test.describe("SPA Mode", () => { } ); - setTimeout(abort, ABORT_DELAY); + setTimeout(abort, 5000); }); const shellHtml = fs diff --git a/packages/react-router-dev/config/defaults/entry.server.node.tsx b/packages/react-router-dev/config/defaults/entry.server.node.tsx index bffa8aa271..f907b4b41d 100644 --- a/packages/react-router-dev/config/defaults/entry.server.node.tsx +++ b/packages/react-router-dev/config/defaults/entry.server.node.tsx @@ -7,7 +7,7 @@ import { isbot } from "isbot"; import type { RenderToPipeableStreamOptions } from "react-dom/server"; import { renderToPipeableStream } from "react-dom/server"; -const ABORT_DELAY = 5_000; +export const streamTimeout = 5_000; export default function handleRequest( request: Request, @@ -28,11 +28,7 @@ export default function handleRequest( : "onShellReady"; const { pipe, abort } = renderToPipeableStream( - , + , { [readyOption]() { shellRendered = true; @@ -65,6 +61,8 @@ export default function handleRequest( } ); - setTimeout(abort, ABORT_DELAY); + // Abort the rendering stream after the `streamTimeout` so it has tine to + // flush down the rejected boundaries + setTimeout(abort, streamTimeout + 1000); }); } diff --git a/packages/react-router/lib/dom/ssr/entry.ts b/packages/react-router/lib/dom/ssr/entry.ts index bded38733d..18094245de 100644 --- a/packages/react-router/lib/dom/ssr/entry.ts +++ b/packages/react-router/lib/dom/ssr/entry.ts @@ -17,7 +17,6 @@ export interface FrameworkContextObject { serverHandoffString?: string; future: FutureConfig; isSpaMode: boolean; - abortDelay?: number; serializeError?(error: Error): SerializedError; renderMeta?: { didRenderScripts?: boolean; diff --git a/packages/react-router/lib/dom/ssr/server.tsx b/packages/react-router/lib/dom/ssr/server.tsx index 1d91e31801..92d8597b45 100644 --- a/packages/react-router/lib/dom/ssr/server.tsx +++ b/packages/react-router/lib/dom/ssr/server.tsx @@ -11,7 +11,6 @@ import { StreamTransfer } from "./single-fetch"; export interface ServerRouterProps { context: EntryContext; url: string | URL; - abortDelay?: number; nonce?: string; } @@ -25,7 +24,6 @@ export interface ServerRouterProps { export function ServerRouter({ context, url, - abortDelay, nonce, }: ServerRouterProps): ReactElement { if (typeof url === "string") { @@ -79,7 +77,6 @@ export function ServerRouter({ future: context.future, isSpaMode: context.isSpaMode, serializeError: context.serializeError, - abortDelay, renderMeta: context.renderMeta, }} > diff --git a/packages/react-router/lib/server-runtime/single-fetch.ts b/packages/react-router/lib/server-runtime/single-fetch.ts index 907bd03720..517b1a6bc6 100644 --- a/packages/react-router/lib/server-runtime/single-fetch.ts +++ b/packages/react-router/lib/server-runtime/single-fetch.ts @@ -313,11 +313,12 @@ export function encodeViaTurboStream( ) { let controller = new AbortController(); // How long are we willing to wait for all of the promises in `data` to resolve - // before timing out? We default this to 50ms shorter than the default value for - // `ABORT_DELAY` in our built-in `entry.server.tsx` so that once we reject we - // have time to flush the rejections down through React's rendering stream before ` - // we call abort() on that. If the user provides their own it's up to them to - // decouple the aborting of the stream from the aborting of React's renderToPipeableStream + // before timing out? We default this to 50ms shorter than the default value + // of 5000ms we had in `ABORT_DELAY` in Remix v2 that folks may still be using + // in RR v7 so that once we reject we have time to flush the rejections down + // through React's rendering stream before we call `abort()` on that. If the + // user provides their own it's up to them to decouple the aborting of the + // stream from the aborting of React's `renderToPipeableStream` let timeoutId = setTimeout( () => controller.abort(new Error("Server Timeout")), typeof streamTimeout === "number" ? streamTimeout : 4950 diff --git a/playground/framework-express/app/entry.server.tsx b/playground/framework-express/app/entry.server.tsx index c4c366d190..1a1cbe6a58 100644 --- a/playground/framework-express/app/entry.server.tsx +++ b/playground/framework-express/app/entry.server.tsx @@ -6,8 +6,6 @@ import { ServerRouter } from "react-router"; import { isbot } from "isbot"; import { renderToPipeableStream } from "react-dom/server"; -const ABORT_DELAY = 5_000; - export default function handleRequest( request: Request, responseStatusCode: number, @@ -39,11 +37,7 @@ function handleBotRequest( return new Promise((resolve, reject) => { let shellRendered = false; const { pipe, abort } = renderToPipeableStream( - , + , { onAllReady() { shellRendered = true; @@ -76,7 +70,7 @@ function handleBotRequest( } ); - setTimeout(abort, ABORT_DELAY); + setTimeout(abort, 5000); }); } @@ -89,11 +83,7 @@ function handleBrowserRequest( return new Promise((resolve, reject) => { let shellRendered = false; const { pipe, abort } = renderToPipeableStream( - , + , { onShellReady() { shellRendered = true; @@ -126,6 +116,6 @@ function handleBrowserRequest( } ); - setTimeout(abort, ABORT_DELAY); + setTimeout(abort, 5000); }); } diff --git a/playground/framework/app/entry.server.tsx b/playground/framework/app/entry.server.tsx index c4c366d190..1a1cbe6a58 100644 --- a/playground/framework/app/entry.server.tsx +++ b/playground/framework/app/entry.server.tsx @@ -6,8 +6,6 @@ import { ServerRouter } from "react-router"; import { isbot } from "isbot"; import { renderToPipeableStream } from "react-dom/server"; -const ABORT_DELAY = 5_000; - export default function handleRequest( request: Request, responseStatusCode: number, @@ -39,11 +37,7 @@ function handleBotRequest( return new Promise((resolve, reject) => { let shellRendered = false; const { pipe, abort } = renderToPipeableStream( - , + , { onAllReady() { shellRendered = true; @@ -76,7 +70,7 @@ function handleBotRequest( } ); - setTimeout(abort, ABORT_DELAY); + setTimeout(abort, 5000); }); } @@ -89,11 +83,7 @@ function handleBrowserRequest( return new Promise((resolve, reject) => { let shellRendered = false; const { pipe, abort } = renderToPipeableStream( - , + , { onShellReady() { shellRendered = true; @@ -126,6 +116,6 @@ function handleBrowserRequest( } ); - setTimeout(abort, ABORT_DELAY); + setTimeout(abort, 5000); }); } From 64e0a031324bb3f5269639411326b5bec3099966 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 6 Dec 2024 12:18:49 -0500 Subject: [PATCH 10/31] Remove false positive link prefetch warning (#12485) --- .changeset/serious-chairs-lie.md | 5 +++++ packages/react-router/lib/dom/ssr/components.tsx | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 .changeset/serious-chairs-lie.md diff --git a/.changeset/serious-chairs-lie.md b/.changeset/serious-chairs-lie.md new file mode 100644 index 0000000000..4aa1de1217 --- /dev/null +++ b/.changeset/serious-chairs-lie.md @@ -0,0 +1,5 @@ +--- +"react-router": patch +--- + +Remove `` warning which suffers from false positives in a lazy route discovery world diff --git a/packages/react-router/lib/dom/ssr/components.tsx b/packages/react-router/lib/dom/ssr/components.tsx index f56ea11cb3..eb292bd7e0 100644 --- a/packages/react-router/lib/dom/ssr/components.tsx +++ b/packages/react-router/lib/dom/ssr/components.tsx @@ -279,7 +279,6 @@ export function PrefetchPageLinks({ ); if (!matches) { - console.warn(`Tried to prefetch ${page} but no routes matched.`); return null; } From 7cd5c540f513fd6338ca26e15f95623efaac9d85 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 11 Dec 2024 13:39:10 -0500 Subject: [PATCH 11/31] Throw single fetch redirects fetched from the server (#12506) --- .changeset/dry-toes-sneeze.md | 5 +++++ packages/react-router/lib/dom/ssr/single-fetch.tsx | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/dry-toes-sneeze.md diff --git a/.changeset/dry-toes-sneeze.md b/.changeset/dry-toes-sneeze.md new file mode 100644 index 0000000000..e93a21191f --- /dev/null +++ b/.changeset/dry-toes-sneeze.md @@ -0,0 +1,5 @@ +--- +"react-router": patch +--- + +Throw unwrapped single fetch redirect to align with pre-single fetch behavior diff --git a/packages/react-router/lib/dom/ssr/single-fetch.tsx b/packages/react-router/lib/dom/ssr/single-fetch.tsx index 7829b400ca..301d29428b 100644 --- a/packages/react-router/lib/dom/ssr/single-fetch.tsx +++ b/packages/react-router/lib/dom/ssr/single-fetch.tsx @@ -522,7 +522,7 @@ function unwrapSingleFetchResult(result: SingleFetchResult, routeId: string) { if (result.replace) { headers["X-Remix-Replace"] = "yes"; } - return redirect(result.redirect, { status: result.status, headers }); + throw redirect(result.redirect, { status: result.status, headers }); } else if ("data" in result) { return result.data; } else { From c9487e672f463f0e58a1dae900e21c124b0ec5f3 Mon Sep 17 00:00:00 2001 From: Pedro Cattori Date: Wed, 11 Dec 2024 17:17:37 -0500 Subject: [PATCH 12/31] ignore redirects when inferring loader data types (#12527) --- .changeset/khaki-gifts-grin.md | 5 +++++ packages/react-router/lib/router/utils.ts | 9 +++++++-- packages/react-router/lib/types/route-data.ts | 8 ++++++-- 3 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 .changeset/khaki-gifts-grin.md diff --git a/.changeset/khaki-gifts-grin.md b/.changeset/khaki-gifts-grin.md new file mode 100644 index 0000000000..c19f1feb79 --- /dev/null +++ b/.changeset/khaki-gifts-grin.md @@ -0,0 +1,5 @@ +--- +"react-router": patch +--- + +Ignore redirects when inferring loader data types diff --git a/packages/react-router/lib/router/utils.ts b/packages/react-router/lib/router/utils.ts index 8042099e5e..c80dab7ccb 100644 --- a/packages/react-router/lib/router/utils.ts +++ b/packages/react-router/lib/router/utils.ts @@ -1367,7 +1367,12 @@ export interface TrackedPromise extends Promise { export type RedirectFunction = ( url: string, init?: number | ResponseInit -) => Response; +) => Redirect; + +// use a `unique symbol` to create a branded type +// https://egghead.io/blog/using-branded-types-in-typescript +declare const redirectSymbol: unique symbol; +export type Redirect = Response & { [redirectSymbol]: never }; /** * A redirect response. Sets the status code and the `Location` header. @@ -1389,7 +1394,7 @@ export const redirect: RedirectFunction = (url, init = 302) => { return new Response(null, { ...responseInit, headers, - }); + }) as Redirect; }; /** diff --git a/packages/react-router/lib/types/route-data.ts b/packages/react-router/lib/types/route-data.ts index 5da38cf3e1..f2d8c41ff7 100644 --- a/packages/react-router/lib/types/route-data.ts +++ b/packages/react-router/lib/types/route-data.ts @@ -2,7 +2,7 @@ import type { ClientLoaderFunctionArgs, ClientActionFunctionArgs, } from "../dom/ssr/routeModules"; -import type { DataWithResponseInit } from "../router/utils"; +import type { DataWithResponseInit, Redirect } from "../router/utils"; import type { Serializable } from "../server-runtime/single-fetch"; import type { Equal, Expect, Func, IsAny, Pretty } from "./utils"; @@ -44,11 +44,13 @@ type DataFrom = // prettier-ignore type ClientData = + T extends Redirect ? never : T extends DataWithResponseInit ? U : T // prettier-ignore type ServerData = + T extends Redirect ? never : T extends DataWithResponseInit ? Serialize : Serialize @@ -84,6 +86,7 @@ type __tests = [ | { data: string; b: Date; c: undefined } > >, + Expect { a: string } | Redirect>, { a: string }>>, // ClientDataFrom Expect, undefined>>, @@ -105,5 +108,6 @@ type __tests = [ | { json: string; b: Date; c: () => boolean } | { data: string; b: Date; c: () => boolean } > - > + >, + Expect { a: string } | Redirect>, { a: string }>> ]; From a897f991637e76af87dac87570ac5b4fff748e12 Mon Sep 17 00:00:00 2001 From: Pedro Cattori Date: Fri, 13 Dec 2024 14:02:55 -0500 Subject: [PATCH 13/31] tests: silence `require(esm)` warnings for Node 22.12 (#12545) Node 22.12 enables `require(esm)` by default. As part of this, the `module-sync` export condition gets used whereas in 22.11 that export condition gets ignored. We've setup out package.json exports for `react-router` to use the `module-sync` condition to point to the ESM version so that no matter where you get `react-router` from you always get the same copy. That's a good thing! So in 22.11, you get a (duplicate) CJS version of `react-router` and in 22.12 you get a (deduplicated) ESM version of `react-router`. This is all intended behavior, but Node shipped this new default while still logging warnings for `require(esm)` to stderr. Since many of our integration tests check stderr for warnings, those started failing. Again, everything is working correctly (and better than in 22.11) so this commit simply silences the experimental warnings from Node so that our integration tests don't mistake expected Node warnings for unexpected warnings/errors. --- integration/helpers/create-fixture.ts | 1 + integration/playwright.config.ts | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/integration/helpers/create-fixture.ts b/integration/helpers/create-fixture.ts index b2c13aa15a..31932d90ba 100644 --- a/integration/helpers/create-fixture.ts +++ b/integration/helpers/create-fixture.ts @@ -217,6 +217,7 @@ export async function createAppFixture(fixture: Fixture, mode?: ServerMode) { ], { env: { + ...process.env, NODE_ENV: mode || "production", PORT: port.toFixed(0), }, diff --git a/integration/playwright.config.ts b/integration/playwright.config.ts index 6f2113059a..4fc9981c27 100644 --- a/integration/playwright.config.ts +++ b/integration/playwright.config.ts @@ -1,6 +1,11 @@ import type { PlaywrightTestConfig } from "@playwright/test"; import { devices } from "@playwright/test"; +// silence expected warnings in Node 22.12 about `require(esm)` +// when it implicitly uses `react-router`'s `module-sync` export condition +process.env.NODE_OPTIONS = + (process.env.NODE_OPTIONS ?? "") + ` --no-warnings=ExperimentalWarning`; + const config: PlaywrightTestConfig = { testDir: ".", testMatch: ["**/*-test.ts"], From 151c25c3de6c90042aee3fe73f7d71a81e41b77c Mon Sep 17 00:00:00 2001 From: Pedro Cattori Date: Fri, 13 Dec 2024 15:02:10 -0500 Subject: [PATCH 14/31] refactor vite plugin (#12539) * namespace vite plugins with `react-router:` * refactor: pre-compute virtual module resolvedId and url --- packages/react-router-dev/vite/plugin.ts | 93 ++++++++++--------- .../react-router-dev/vite/virtual-module.ts | 8 ++ packages/react-router-dev/vite/vmod.ts | 3 - packages/react-router-dev/vite/with-props.ts | 10 +- 4 files changed, 60 insertions(+), 54 deletions(-) create mode 100644 packages/react-router-dev/vite/virtual-module.ts delete mode 100644 packages/react-router-dev/vite/vmod.ts diff --git a/packages/react-router-dev/vite/plugin.ts b/packages/react-router-dev/vite/plugin.ts index f2f08f1bd6..7cad0a6794 100644 --- a/packages/react-router-dev/vite/plugin.ts +++ b/packages/react-router-dev/vite/plugin.ts @@ -31,7 +31,7 @@ import { generate, parse } from "./babel"; import type { NodeRequestHandler } from "./node-adapter"; import { fromNodeRequest, toNodeRequest } from "./node-adapter"; import { getStylesForUrl, isCssModulesFile } from "./styles"; -import * as VirtualModule from "./vmod"; +import * as VirtualModule from "./virtual-module"; import { resolveFileUrl } from "./resolve-file-url"; import { combineURLs } from "./combine-urls"; import { removeExports } from "./remove-exports"; @@ -163,11 +163,8 @@ export type ReactRouterPluginContext = ReactRouterPluginSsrBuildContext & { viteManifestEnabled: boolean; }; -let serverBuildId = VirtualModule.id("server-build"); -let serverManifestId = VirtualModule.id("server-manifest"); -let browserManifestId = VirtualModule.id("browser-manifest"); -let hmrRuntimeId = VirtualModule.id("hmr-runtime"); -let injectHmrRuntimeId = VirtualModule.id("inject-hmr-runtime"); +let virtualHmrRuntime = VirtualModule.create("hmr-runtime"); +let virtualInjectHmrRuntime = VirtualModule.create("inject-hmr-runtime"); const resolveRelativeRouteFilePath = ( route: RouteManifestEntry, @@ -180,13 +177,15 @@ const resolveRelativeRouteFilePath = ( return vite.normalizePath(fullPath); }; -let vmods = [serverBuildId, serverManifestId, browserManifestId]; +let virtual = { + serverBuild: VirtualModule.create("server-build"), + serverManifest: VirtualModule.create("server-manifest"), + browserManifest: VirtualModule.create("browser-manifest"), +}; -const invalidateVirtualModules = (viteDevServer: Vite.ViteDevServer) => { - vmods.forEach((vmod) => { - let mod = viteDevServer.moduleGraph.getModuleById( - VirtualModule.resolve(vmod) - ); +let invalidateVirtualModules = (viteDevServer: Vite.ViteDevServer) => { + Object.values(virtual).forEach((vmod) => { + let mod = viteDevServer.moduleGraph.getModuleById(vmod.resolvedId); if (mod) { viteDevServer.moduleGraph.invalidateModule(mod); } @@ -513,7 +512,9 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { )};`; }) .join("\n")} - export { default as assets } from ${JSON.stringify(serverManifestId)}; + export { default as assets } from ${JSON.stringify( + virtual.serverManifest.id + )}; export const assetsBuildDirectory = ${JSON.stringify( path.relative( ctx.rootDirectory, @@ -709,12 +710,9 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { return { version: String(Math.random()), - url: combineURLs(ctx.publicPath, VirtualModule.url(browserManifestId)), + url: combineURLs(ctx.publicPath, virtual.browserManifest.url), hmr: { - runtime: combineURLs( - ctx.publicPath, - VirtualModule.url(injectHmrRuntimeId) - ), + runtime: combineURLs(ctx.publicPath, virtualInjectHmrRuntime.url), }, entry: { module: combineURLs( @@ -908,7 +906,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { preserveEntrySignatures: "exports-only", input: viteUserConfig.build?.rollupOptions?.input ?? - serverBuildId, + virtual.serverBuild.id, output: { entryFileNames: ctx.reactRouterConfig.serverBuildFile, @@ -1012,8 +1010,8 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { plugin !== null && "name" in plugin && plugin.name !== "react-router" && - plugin.name !== "react-router-route-exports" && - plugin.name !== "react-router-hmr-updates" + plugin.name !== "react-router:route-exports" && + plugin.name !== "react-router:hmr-updates" ), ], }); @@ -1119,7 +1117,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { viteDevServer.middlewares.use(async (req, res, next) => { try { let build = (await viteDevServer.ssrLoadModule( - serverBuildId + virtual.serverBuild.id )) as ServerBuild; let handler = createRequestHandler(build, "development"); @@ -1253,7 +1251,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { }, }, { - name: "react-router-route-entry", + name: "react-router:route-entry", enforce: "pre", async transform(_code, id, options) { if (!isRouteEntry(id)) return; @@ -1279,17 +1277,18 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { }, }, { - name: "react-router-virtual-modules", + name: "react-router:virtual-modules", enforce: "pre", resolveId(id) { - if (vmods.includes(id)) return VirtualModule.resolve(id); + const vmod = Object.values(virtual).find((vmod) => vmod.id === id); + if (vmod) return vmod.resolvedId; }, async load(id) { switch (id) { - case VirtualModule.resolve(serverBuildId): { + case virtual.serverBuild.resolvedId: { return await getServerEntry(); } - case VirtualModule.resolve(serverManifestId): { + case virtual.serverManifest.resolvedId: { let reactRouterManifest = ctx.isSsrBuild ? await ctx.getReactRouterServerManifest() : await getReactRouterManifestForDev(); @@ -1298,7 +1297,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { es6: true, })};`; } - case VirtualModule.resolve(browserManifestId): { + case virtual.browserManifest.resolvedId: { if (viteCommand === "build") { throw new Error("This module only exists in development"); } @@ -1314,7 +1313,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { }, }, { - name: "react-router-dot-server", + name: "react-router:dot-server", enforce: "pre", async resolveId(id, importer, options) { // https://vitejs.dev/config/dep-optimization-options @@ -1324,9 +1323,9 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { if (isOptimizeDeps || options?.ssr) return; - let isResolving = options?.custom?.["react-router-dot-server"] ?? false; + let isResolving = options?.custom?.["react-router:dot-server"] ?? false; if (isResolving) return; - options.custom = { ...options.custom, "react-router-dot-server": true }; + options.custom = { ...options.custom, "react-router:dot-server": true }; let resolved = await this.resolve(id, importer, options); if (!resolved) return; @@ -1384,7 +1383,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { }, }, { - name: "react-router-dot-client", + name: "react-router:dot-client", async transform(code, id, options) { if (!options?.ssr) return; let clientFileRE = /\.client(\.[cm]?[jt]sx?)?$/; @@ -1406,7 +1405,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { }, WithProps.plugin, { - name: "react-router-route-exports", + name: "react-router:route-exports", async transform(code, id, options) { let route = getRoute(ctx.reactRouterConfig, id); if (!route) return; @@ -1454,17 +1453,18 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { }, }, { - name: "react-router-inject-hmr-runtime", + name: "react-router:inject-hmr-runtime", enforce: "pre", resolveId(id) { - if (id === injectHmrRuntimeId) - return VirtualModule.resolve(injectHmrRuntimeId); + if (id === virtualInjectHmrRuntime.id) { + return virtualInjectHmrRuntime.resolvedId; + } }, async load(id) { - if (id !== VirtualModule.resolve(injectHmrRuntimeId)) return; + if (id !== virtualInjectHmrRuntime.resolvedId) return; return [ - `import RefreshRuntime from "${hmrRuntimeId}"`, + `import RefreshRuntime from "${virtualHmrRuntime.id}"`, "RefreshRuntime.injectIntoGlobalHook(window)", "window.$RefreshReg$ = () => {}", "window.$RefreshSig$ = () => (type) => type", @@ -1473,13 +1473,13 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { }, }, { - name: "react-router-hmr-runtime", + name: "react-router:hmr-runtime", enforce: "pre", resolveId(id) { - if (id === hmrRuntimeId) return VirtualModule.resolve(hmrRuntimeId); + if (id === virtualHmrRuntime.id) return virtualHmrRuntime.resolvedId; }, async load(id) { - if (id !== VirtualModule.resolve(hmrRuntimeId)) return; + if (id !== virtualHmrRuntime.resolvedId) return; let reactRefreshDir = path.dirname( require.resolve("react-refresh/package.json") @@ -1501,7 +1501,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { }, }, { - name: "react-router-react-refresh-babel", + name: "react-router:react-refresh-babel", async transform(code, id, options) { if (viteCommand !== "serve") return; if (id.includes("/node_modules/")) return; @@ -1543,7 +1543,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { }, }, { - name: "react-router-hmr-updates", + name: "react-router:hmr-updates", async handleHotUpdate({ server, file, modules, read }) { let route = getRoute(ctx.reactRouterConfig, file); @@ -1553,8 +1553,9 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { if (route) { // invalidate manifest on route exports change - let serverManifest = (await server.ssrLoadModule(serverManifestId)) - .default as ReactRouterManifest; + let serverManifest = ( + await server.ssrLoadModule(virtual.serverManifest.id) + ).default as ReactRouterManifest; let oldRouteMetadata = serverManifest.routes[route.id]; let newRouteMetadata = await getRouteMetadata( @@ -1653,7 +1654,7 @@ function withCommentBoundaries(label: string, text: string) { } const REACT_REFRESH_HEADER = ` -import RefreshRuntime from "${hmrRuntimeId}"; +import RefreshRuntime from "${virtualHmrRuntime.id}"; const inWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; let prevRefreshReg; diff --git a/packages/react-router-dev/vite/virtual-module.ts b/packages/react-router-dev/vite/virtual-module.ts new file mode 100644 index 0000000000..bb84976e3b --- /dev/null +++ b/packages/react-router-dev/vite/virtual-module.ts @@ -0,0 +1,8 @@ +export function create(name: string) { + let id = `virtual:react-router/${name}`; + return { + id, + resolvedId: `\0${id}`, + url: `/@id/__x00__${id}`, + }; +} diff --git a/packages/react-router-dev/vite/vmod.ts b/packages/react-router-dev/vite/vmod.ts deleted file mode 100644 index a6e9e018a0..0000000000 --- a/packages/react-router-dev/vite/vmod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export let id = (name: string) => `virtual:react-router/${name}`; -export let resolve = (id: string) => `\0${id}`; -export let url = (id: string) => `/@id/__x00__${id}`; diff --git a/packages/react-router-dev/vite/with-props.ts b/packages/react-router-dev/vite/with-props.ts index 1c85d10a77..cdc247b35a 100644 --- a/packages/react-router-dev/vite/with-props.ts +++ b/packages/react-router-dev/vite/with-props.ts @@ -3,9 +3,9 @@ import dedent from "dedent"; import type { Babel, NodePath, ParseResult } from "./babel"; import { traverse, t } from "./babel"; -import * as VirtualModule from "./vmod"; +import * as VirtualModule from "./virtual-module"; -const vmodId = VirtualModule.id("with-props"); +const vmod = VirtualModule.create("with-props"); const NAMED_COMPONENT_EXPORTS = ["HydrateFallback", "ErrorBoundary"]; @@ -13,10 +13,10 @@ export const plugin: Plugin = { name: "react-router-with-props", enforce: "pre", resolveId(id) { - if (id === vmodId) return VirtualModule.resolve(vmodId); + if (id === vmod.id) return vmod.resolvedId; }, async load(id) { - if (id !== VirtualModule.resolve(vmodId)) return; + if (id !== vmod.resolvedId) return; return dedent` import { createElement as h } from "react"; import { useActionData, useLoaderData, useMatches, useParams, useRouteError } from "react-router"; @@ -126,7 +126,7 @@ export const transform = (ast: ParseResult) => { hocs.map(([name, identifier]) => t.importSpecifier(identifier, t.identifier(name)) ), - t.stringLiteral(vmodId) + t.stringLiteral(vmod.id) ) ); } From 8b821645a9fb854961ecd9d92fa2f5e505e2738b Mon Sep 17 00:00:00 2001 From: Pedro Cattori Date: Fri, 13 Dec 2024 17:04:18 -0500 Subject: [PATCH 15/31] remove client route virtual modules during dev (#12547) since they are only used for treeshaking in production --- packages/react-router-dev/vite/plugin.ts | 52 +++++++++++------------- 1 file changed, 23 insertions(+), 29 deletions(-) diff --git a/packages/react-router-dev/vite/plugin.ts b/packages/react-router-dev/vite/plugin.ts index 7cad0a6794..027692b50d 100644 --- a/packages/react-router-dev/vite/plugin.ts +++ b/packages/react-router-dev/vite/plugin.ts @@ -130,12 +130,11 @@ const CLIENT_ROUTE_EXPORTS = [ "shouldRevalidate", ]; -// Each route gets its own virtual module marked with an entry query string -const ROUTE_ENTRY_QUERY_STRING = "?route-entry=1"; - -const isRouteEntry = (id: string): boolean => { - return id.endsWith(ROUTE_ENTRY_QUERY_STRING); -}; +/** This is used to manage a build optimization to remove unused route exports +from the client build output. This is important in cases where custom route +exports are only ever used on the server. Without this optimization we can't +tree-shake any unused custom exports because routes are entry points. */ +const BUILD_CLIENT_ROUTE_QUERY_STRING = "?__react-router-build-client-route"; export type ServerBundleBuildConfig = { routes: RouteManifest; @@ -207,7 +206,7 @@ const resolveChunk = ( path.relative(ctx.rootDirectory, absoluteFilePath) ); let entryChunk = - viteManifest[rootRelativeFilePath + ROUTE_ENTRY_QUERY_STRING] ?? + viteManifest[rootRelativeFilePath + BUILD_CLIENT_ROUTE_QUERY_STRING] ?? viteManifest[rootRelativeFilePath]; if (!entryChunk) { @@ -508,7 +507,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { resolveFileUrl( ctx, resolveRelativeRouteFilePath(route, ctx.reactRouterConfig) - ) + ROUTE_ENTRY_QUERY_STRING + ) )};`; }) .join("\n")} @@ -694,10 +693,10 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { caseSensitive: route.caseSensitive, module: combineURLs( ctx.publicPath, - `${resolveFileUrl( + resolveFileUrl( ctx, resolveRelativeRouteFilePath(route, ctx.reactRouterConfig) - )}${ROUTE_ENTRY_QUERY_STRING}` + ) ), hasAction: sourceExports.includes("action"), hasLoader: sourceExports.includes("loader"), @@ -886,7 +885,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { `${path.resolve( ctx.reactRouterConfig.appDirectory, route.file - )}${ROUTE_ENTRY_QUERY_STRING}` + )}${BUILD_CLIENT_ROUTE_QUERY_STRING}` ), ], }, @@ -1251,11 +1250,11 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { }, }, { - name: "react-router:route-entry", + name: "react-router:build-client-route", enforce: "pre", async transform(_code, id, options) { - if (!isRouteEntry(id)) return; - let routeModuleId = id.replace(ROUTE_ENTRY_QUERY_STRING, ""); + if (!id.endsWith(BUILD_CLIENT_ROUTE_QUERY_STRING)) return; + let routeModuleId = id.replace(BUILD_CLIENT_ROUTE_QUERY_STRING, ""); let routeFileName = path.basename(routeModuleId); @@ -1516,10 +1515,6 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { let useFastRefresh = !ssr && (isJSX || code.includes(devRuntime)); if (!useFastRefresh) return; - if (isRouteEntry(id)) { - return { code: addRefreshWrapper(ctx.reactRouterConfig, code, id) }; - } - let result = await babel.transformAsync(code, { babelrc: false, configFile: false, @@ -1615,17 +1610,16 @@ function addRefreshWrapper( id: string ): string { let route = getRoute(reactRouterConfig, id); - let acceptExports = - route || isRouteEntry(id) - ? [ - "clientAction", - "clientLoader", - "handle", - "meta", - "links", - "shouldRevalidate", - ] - : []; + let acceptExports = route + ? [ + "clientAction", + "clientLoader", + "handle", + "meta", + "links", + "shouldRevalidate", + ] + : []; return ( "\n\n" + withCommentBoundaries( From 3be44ecefdc654854217b2ad90515878b180dd9f Mon Sep 17 00:00:00 2001 From: Mark Dalgleish Date: Mon, 16 Dec 2024 17:04:29 +1100 Subject: [PATCH 16/31] fix(create-react-router): Add missing fs-extra dep (#12556) --- .changeset/perfect-elephants-type.md | 5 +++++ packages/create-react-router/package.json | 2 +- pnpm-lock.yaml | 6 +++--- 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 .changeset/perfect-elephants-type.md diff --git a/.changeset/perfect-elephants-type.md b/.changeset/perfect-elephants-type.md new file mode 100644 index 0000000000..cddd761813 --- /dev/null +++ b/.changeset/perfect-elephants-type.md @@ -0,0 +1,5 @@ +--- +"create-react-router": patch +--- + +Fix missing `fs-extra` dependency diff --git a/packages/create-react-router/package.json b/packages/create-react-router/package.json index a0df799e60..d5716500e0 100644 --- a/packages/create-react-router/package.json +++ b/packages/create-react-router/package.json @@ -39,6 +39,7 @@ "arg": "^5.0.1", "chalk": "^4.1.2", "execa": "5.1.1", + "fs-extra": "^10.0.0", "gunzip-maybe": "^1.4.2", "log-update": "^5.0.1", "proxy-agent": "^6.3.0", @@ -55,7 +56,6 @@ "@types/tar-fs": "^2.0.1", "esbuild": "0.17.6", "esbuild-register": "^3.3.2", - "fs-extra": "^10.0.0", "msw": "^1.2.3", "tiny-invariant": "^1.2.0", "tsup": "^8.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5d55ab5ac6..c47cc288c5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -474,6 +474,9 @@ importers: execa: specifier: 5.1.1 version: 5.1.1 + fs-extra: + specifier: ^10.0.0 + version: 10.1.0 gunzip-maybe: specifier: ^1.4.2 version: 1.4.2 @@ -517,9 +520,6 @@ importers: esbuild-register: specifier: ^3.3.2 version: 3.5.0(esbuild@0.17.6) - fs-extra: - specifier: ^10.0.0 - version: 10.1.0 msw: specifier: ^1.2.3 version: 1.3.5(typescript@5.4.5) From 5115991bfaef708b91dd4793831a3b2b2825a618 Mon Sep 17 00:00:00 2001 From: Mark Dalgleish Date: Tue, 17 Dec 2024 11:04:16 +1100 Subject: [PATCH 17/31] Add Vite 6 support (#12469) --- .changeset/lovely-lemons-bake.md | 5 + integration/helpers/create-fixture.ts | 2 +- .../.gitignore | 0 .../app/root.tsx | 0 .../app/routes.ts | 0 .../app/routes/_index.tsx | 0 .../env.d.ts | 0 .../package.json | 2 +- .../vite-5-template/public/favicon.ico | Bin 0 -> 15086 bytes .../tsconfig.json | 0 .../helpers/vite-5-template/vite.config.ts | 11 + .../helpers/vite-6-template/.gitignore | 6 + .../helpers/vite-6-template/app/root.tsx | 19 + .../helpers/vite-6-template/app/routes.ts | 4 + .../vite-6-template/app/routes/_index.tsx | 16 + integration/helpers/vite-6-template/env.d.ts | 2 + .../helpers/vite-6-template/package.json | 41 + .../vite-6-template/public/favicon.ico | Bin 0 -> 15086 bytes .../helpers/vite-6-template/tsconfig.json | 27 + .../vite.config.ts | 0 .../vite-cloudflare-template/package.json | 2 +- .../helpers/vite-template/public/favicon.ico | Bin 16958 -> 0 bytes integration/helpers/vite.ts | 71 +- integration/package.json | 3 +- integration/route-config-test.ts | 474 +-- integration/typegen-test.ts | 1 + integration/vite-css-test.ts | 213 +- integration/vite-hmr-hdr-test.ts | 143 +- package.json | 2 +- packages/react-router-architect/package.json | 2 +- packages/react-router-dev/package.json | 8 +- packages/react-router-dev/vite/plugin.ts | 57 + packages/react-router-dev/vite/styles.ts | 19 +- packages/react-router-express/package.json | 2 +- playground/framework-express/package.json | 2 +- playground/framework-spa/package.json | 2 +- playground/framework/package.json | 2 +- pnpm-lock.yaml | 2600 +++++------------ 38 files changed, 1423 insertions(+), 2315 deletions(-) create mode 100644 .changeset/lovely-lemons-bake.md rename integration/helpers/{vite-template => vite-5-template}/.gitignore (100%) rename integration/helpers/{vite-template => vite-5-template}/app/root.tsx (100%) rename integration/helpers/{vite-template => vite-5-template}/app/routes.ts (100%) rename integration/helpers/{vite-template => vite-5-template}/app/routes/_index.tsx (100%) rename integration/helpers/{vite-template => vite-5-template}/env.d.ts (100%) rename integration/helpers/{vite-template => vite-5-template}/package.json (96%) create mode 100644 integration/helpers/vite-5-template/public/favicon.ico rename integration/helpers/{vite-template => vite-5-template}/tsconfig.json (100%) create mode 100644 integration/helpers/vite-5-template/vite.config.ts create mode 100644 integration/helpers/vite-6-template/.gitignore create mode 100644 integration/helpers/vite-6-template/app/root.tsx create mode 100644 integration/helpers/vite-6-template/app/routes.ts create mode 100644 integration/helpers/vite-6-template/app/routes/_index.tsx create mode 100644 integration/helpers/vite-6-template/env.d.ts create mode 100644 integration/helpers/vite-6-template/package.json create mode 100644 integration/helpers/vite-6-template/public/favicon.ico create mode 100644 integration/helpers/vite-6-template/tsconfig.json rename integration/helpers/{vite-template => vite-6-template}/vite.config.ts (100%) delete mode 100644 integration/helpers/vite-template/public/favicon.ico diff --git a/.changeset/lovely-lemons-bake.md b/.changeset/lovely-lemons-bake.md new file mode 100644 index 0000000000..09f212f4e1 --- /dev/null +++ b/.changeset/lovely-lemons-bake.md @@ -0,0 +1,5 @@ +--- +"@react-router/dev": minor +--- + +Add support for Vite v6 diff --git a/integration/helpers/create-fixture.ts b/integration/helpers/create-fixture.ts index 31932d90ba..cc62dd0dbc 100644 --- a/integration/helpers/create-fixture.ts +++ b/integration/helpers/create-fixture.ts @@ -352,7 +352,7 @@ export async function createFixtureProject( init: FixtureInit = {}, mode?: ServerMode ): Promise { - let template = "vite-template"; + let template = "vite-5-template"; let integrationTemplateDir = path.resolve(__dirname, template); let projectName = `rr-${template}-${Math.random().toString(32).slice(2)}`; let projectDir = path.join(TMP_DIR, projectName); diff --git a/integration/helpers/vite-template/.gitignore b/integration/helpers/vite-5-template/.gitignore similarity index 100% rename from integration/helpers/vite-template/.gitignore rename to integration/helpers/vite-5-template/.gitignore diff --git a/integration/helpers/vite-template/app/root.tsx b/integration/helpers/vite-5-template/app/root.tsx similarity index 100% rename from integration/helpers/vite-template/app/root.tsx rename to integration/helpers/vite-5-template/app/root.tsx diff --git a/integration/helpers/vite-template/app/routes.ts b/integration/helpers/vite-5-template/app/routes.ts similarity index 100% rename from integration/helpers/vite-template/app/routes.ts rename to integration/helpers/vite-5-template/app/routes.ts diff --git a/integration/helpers/vite-template/app/routes/_index.tsx b/integration/helpers/vite-5-template/app/routes/_index.tsx similarity index 100% rename from integration/helpers/vite-template/app/routes/_index.tsx rename to integration/helpers/vite-5-template/app/routes/_index.tsx diff --git a/integration/helpers/vite-template/env.d.ts b/integration/helpers/vite-5-template/env.d.ts similarity index 100% rename from integration/helpers/vite-template/env.d.ts rename to integration/helpers/vite-5-template/env.d.ts diff --git a/integration/helpers/vite-template/package.json b/integration/helpers/vite-5-template/package.json similarity index 96% rename from integration/helpers/vite-template/package.json rename to integration/helpers/vite-5-template/package.json index e76a042915..e9c7a67b2e 100644 --- a/integration/helpers/vite-template/package.json +++ b/integration/helpers/vite-5-template/package.json @@ -1,5 +1,5 @@ { - "name": "integration-vite-template", + "name": "integration-vite-5-template", "version": "0.0.0", "private": true, "sideEffects": false, diff --git a/integration/helpers/vite-5-template/public/favicon.ico b/integration/helpers/vite-5-template/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5dbdfcddcb14182535f6d32d1c900681321b1aa3 GIT binary patch literal 15086 zcmeI33v3ic7{|AFEmuJ-;v>ep_G*NPi6KM`qNryCe1PIJ8siIN1WZ(7qVa)RVtmC% z)Ch?tN+afMKm;5@rvorJk zcXnoOc4q51HBQnQH_jn!cAg&XI1?PlX>Kl^k8qq0;zkha`kY$Fxt#=KNJAE9CMdpW zqr4#g8`nTw191(+H4xW8Tmyru2I^3=J1G3emPxkPXA=3{vvuvse_WWSshqaqls^-m zgB7q8&Vk*aYRe?sn$n53dGH#%3y%^vxv{pL*-h0Z4bmb_(k6{FL7HWIz(V*HT#IcS z-wE{)+0x1U!RUPt3gB97%p}@oHxF4|6S*+Yw=_tLtxZ~`S=z6J?O^AfU>7qOX`JNBbV&8+bO0%@fhQitKIJ^O^ zpgIa__qD_y07t@DFlBJ)8SP_#^j{6jpaXt{U%=dx!qu=4u7^21lWEYHPPY5U3TcoQ zX_7W+lvZi>TapNk_X>k-KO%MC9iZp>1E`N34gHKd9tK&){jq2~7OsJ>!G0FzxQFw6G zm&Vb(2#-T|rM|n3>uAsG_hnbvUKFf3#ay@u4uTzia~NY%XgCHfx4^To4BDU@)HlV? z@EN=g^ymETa1sQK{kRwyE4Ax8?wT&GvaG@ASO}{&a17&^v`y z!oPdiSiia^oov(Z)QhG2&|FgE{M9_4hJROGbnj>#$~ZF$-G^|zPj*QApltKe?;u;uKHJ~-V!=VLkg7Kgct)l7u39f@%VG8e3f$N-B zAu3a4%ZGf)r+jPAYCSLt73m_J3}p>}6Tx0j(wg4vvKhP!DzgiWANiE;Ppvp}P2W@m z-VbYn+NXFF?6ngef5CfY6ZwKnWvNV4z6s^~yMXw2i5mv}jC$6$46g?G|CPAu{W5qF zDobS=zb2ILX9D827g*NtGe5w;>frjanY{f)hrBP_2ehBt1?`~ypvg_Ot4x1V+43P@Ve8>qd)9NX_jWdLo`Zfy zoeam9)@Dpym{4m@+LNxXBPjPKA7{3a&H+~xQvr>C_A;7=JrfK~$M2pCh>|xLz>W6SCs4qC|#V`)# z)0C|?$o>jzh<|-cpf

K7osU{Xp5PG4-K+L2G=)c3f&}H&M3wo7TlO_UJjQ-Oq&_ zjAc9=nNIYz{c3zxOiS5UfcE1}8#iI4@uy;$Q7>}u`j+OU0N<*Ezx$k{x_27+{s2Eg z`^=rhtIzCm!_UcJ?Db~Lh-=_))PT3{Q0{Mwdq;0>ZL%l3+;B&4!&xm#%HYAK|;b456Iv&&f$VQHf` z>$*K9w8T+paVwc7fLfMlhQ4)*zL_SG{~v4QR;IuX-(oRtYAhWOlh`NLoX0k$RUYMi z2Y!bqpdN}wz8q`-%>&Le@q|jFw92ErW-hma-le?S z-@OZt2EEUm4wLsuEMkt4zlyy29_3S50JAcQHTtgTC{P~%-mvCTzrjXOc|{}N`Cz`W zSj7CrXfa7lcsU0J(0uSX6G`54t^7}+OLM0n(|g4waOQ}bd3%!XLh?NX9|8G_|06Ie zD5F1)w5I~!et7lA{G^;uf7aqT`KE&2qx9|~O;s6t!gb`+zVLJyT2T)l*8l(j literal 0 HcmV?d00001 diff --git a/integration/helpers/vite-template/tsconfig.json b/integration/helpers/vite-5-template/tsconfig.json similarity index 100% rename from integration/helpers/vite-template/tsconfig.json rename to integration/helpers/vite-5-template/tsconfig.json diff --git a/integration/helpers/vite-5-template/vite.config.ts b/integration/helpers/vite-5-template/vite.config.ts new file mode 100644 index 0000000000..fac933f23c --- /dev/null +++ b/integration/helpers/vite-5-template/vite.config.ts @@ -0,0 +1,11 @@ +import { reactRouter } from "@react-router/dev/vite"; +import { defineConfig } from "vite"; +import tsconfigPaths from "vite-tsconfig-paths"; + +export default defineConfig({ + plugins: [ + // @ts-expect-error `dev` depends on Vite 6, Plugin type is mismatched. + reactRouter(), + tsconfigPaths(), + ], +}); diff --git a/integration/helpers/vite-6-template/.gitignore b/integration/helpers/vite-6-template/.gitignore new file mode 100644 index 0000000000..c08251ce0e --- /dev/null +++ b/integration/helpers/vite-6-template/.gitignore @@ -0,0 +1,6 @@ +node_modules + +/.cache +/build +.env +.react-router diff --git a/integration/helpers/vite-6-template/app/root.tsx b/integration/helpers/vite-6-template/app/root.tsx new file mode 100644 index 0000000000..b36392b4dd --- /dev/null +++ b/integration/helpers/vite-6-template/app/root.tsx @@ -0,0 +1,19 @@ +import { Links, Meta, Outlet, Scripts, ScrollRestoration } from "react-router"; + +export default function App() { + return ( + + + + + + + + + + + + + + ); +} diff --git a/integration/helpers/vite-6-template/app/routes.ts b/integration/helpers/vite-6-template/app/routes.ts new file mode 100644 index 0000000000..4c05936cb6 --- /dev/null +++ b/integration/helpers/vite-6-template/app/routes.ts @@ -0,0 +1,4 @@ +import { type RouteConfig } from "@react-router/dev/routes"; +import { flatRoutes } from "@react-router/fs-routes"; + +export default flatRoutes() satisfies RouteConfig; diff --git a/integration/helpers/vite-6-template/app/routes/_index.tsx b/integration/helpers/vite-6-template/app/routes/_index.tsx new file mode 100644 index 0000000000..ecfc25c614 --- /dev/null +++ b/integration/helpers/vite-6-template/app/routes/_index.tsx @@ -0,0 +1,16 @@ +import type { MetaFunction } from "react-router"; + +export const meta: MetaFunction = () => { + return [ + { title: "New React Router App" }, + { name: "description", content: "Welcome to React Router!" }, + ]; +}; + +export default function Index() { + return ( +

+

Welcome to React Router

+
+ ); +} diff --git a/integration/helpers/vite-6-template/env.d.ts b/integration/helpers/vite-6-template/env.d.ts new file mode 100644 index 0000000000..5e7dfe5dd9 --- /dev/null +++ b/integration/helpers/vite-6-template/env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/integration/helpers/vite-6-template/package.json b/integration/helpers/vite-6-template/package.json new file mode 100644 index 0000000000..0f8ac5843e --- /dev/null +++ b/integration/helpers/vite-6-template/package.json @@ -0,0 +1,41 @@ +{ + "name": "integration-vite-6-template", + "version": "0.0.0", + "private": true, + "sideEffects": false, + "type": "module", + "scripts": { + "dev": "react-router dev", + "build": "react-router build", + "start": "react-router-serve ./build/server/index.js", + "typecheck": "react-router typegen && tsc" + }, + "dependencies": { + "@react-router/express": "workspace:*", + "@react-router/node": "workspace:*", + "@react-router/serve": "workspace:*", + "@vanilla-extract/css": "^1.10.0", + "@vanilla-extract/vite-plugin": "^3.9.2", + "express": "^4.19.2", + "isbot": "^5.1.11", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router": "workspace:*", + "serialize-javascript": "^6.0.1" + }, + "devDependencies": { + "@react-router/dev": "workspace:*", + "@react-router/fs-routes": "workspace:*", + "@react-router/remix-routes-option-adapter": "workspace:*", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", + "eslint": "^8.38.0", + "typescript": "^5.1.6", + "vite": "^6.0.0", + "vite-env-only": "^3.0.1", + "vite-tsconfig-paths": "^4.2.1" + }, + "engines": { + "node": ">=20.0.0" + } +} diff --git a/integration/helpers/vite-6-template/public/favicon.ico b/integration/helpers/vite-6-template/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5dbdfcddcb14182535f6d32d1c900681321b1aa3 GIT binary patch literal 15086 zcmeI33v3ic7{|AFEmuJ-;v>ep_G*NPi6KM`qNryCe1PIJ8siIN1WZ(7qVa)RVtmC% z)Ch?tN+afMKm;5@rvorJk zcXnoOc4q51HBQnQH_jn!cAg&XI1?PlX>Kl^k8qq0;zkha`kY$Fxt#=KNJAE9CMdpW zqr4#g8`nTw191(+H4xW8Tmyru2I^3=J1G3emPxkPXA=3{vvuvse_WWSshqaqls^-m zgB7q8&Vk*aYRe?sn$n53dGH#%3y%^vxv{pL*-h0Z4bmb_(k6{FL7HWIz(V*HT#IcS z-wE{)+0x1U!RUPt3gB97%p}@oHxF4|6S*+Yw=_tLtxZ~`S=z6J?O^AfU>7qOX`JNBbV&8+bO0%@fhQitKIJ^O^ zpgIa__qD_y07t@DFlBJ)8SP_#^j{6jpaXt{U%=dx!qu=4u7^21lWEYHPPY5U3TcoQ zX_7W+lvZi>TapNk_X>k-KO%MC9iZp>1E`N34gHKd9tK&){jq2~7OsJ>!G0FzxQFw6G zm&Vb(2#-T|rM|n3>uAsG_hnbvUKFf3#ay@u4uTzia~NY%XgCHfx4^To4BDU@)HlV? z@EN=g^ymETa1sQK{kRwyE4Ax8?wT&GvaG@ASO}{&a17&^v`y z!oPdiSiia^oov(Z)QhG2&|FgE{M9_4hJROGbnj>#$~ZF$-G^|zPj*QApltKe?;u;uKHJ~-V!=VLkg7Kgct)l7u39f@%VG8e3f$N-B zAu3a4%ZGf)r+jPAYCSLt73m_J3}p>}6Tx0j(wg4vvKhP!DzgiWANiE;Ppvp}P2W@m z-VbYn+NXFF?6ngef5CfY6ZwKnWvNV4z6s^~yMXw2i5mv}jC$6$46g?G|CPAu{W5qF zDobS=zb2ILX9D827g*NtGe5w;>frjanY{f)hrBP_2ehBt1?`~ypvg_Ot4x1V+43P@Ve8>qd)9NX_jWdLo`Zfy zoeam9)@Dpym{4m@+LNxXBPjPKA7{3a&H+~xQvr>C_A;7=JrfK~$M2pCh>|xLz>W6SCs4qC|#V`)# z)0C|?$o>jzh<|-cpf

K7osU{Xp5PG4-K+L2G=)c3f&}H&M3wo7TlO_UJjQ-Oq&_ zjAc9=nNIYz{c3zxOiS5UfcE1}8#iI4@uy;$Q7>}u`j+OU0N<*Ezx$k{x_27+{s2Eg z`^=rhtIzCm!_UcJ?Db~Lh-=_))PT3{Q0{Mwdq;0>ZL%l3+;B&4!&xm#%HYAK|;b456Iv&&f$VQHf` z>$*K9w8T+paVwc7fLfMlhQ4)*zL_SG{~v4QR;IuX-(oRtYAhWOlh`NLoX0k$RUYMi z2Y!bqpdN}wz8q`-%>&Le@q|jFw92ErW-hma-le?S z-@OZt2EEUm4wLsuEMkt4zlyy29_3S50JAcQHTtgTC{P~%-mvCTzrjXOc|{}N`Cz`W zSj7CrXfa7lcsU0J(0uSX6G`54t^7}+OLM0n(|g4waOQ}bd3%!XLh?NX9|8G_|06Ie zD5F1)w5I~!et7lA{G^;uf7aqT`KE&2qx9|~O;s6t!gb`+zVLJyT2T)l*8l(j literal 0 HcmV?d00001 diff --git a/integration/helpers/vite-6-template/tsconfig.json b/integration/helpers/vite-6-template/tsconfig.json new file mode 100644 index 0000000000..4f19efc420 --- /dev/null +++ b/integration/helpers/vite-6-template/tsconfig.json @@ -0,0 +1,27 @@ +{ + "include": [ + "env.d.ts", + "**/*.ts", + "**/*.tsx", + ".react-router/types/**/*.d.ts" + ], + "compilerOptions": { + "lib": ["DOM", "DOM.Iterable", "ES2022"], + "verbatimModuleSyntax": true, + "esModuleInterop": true, + "jsx": "react-jsx", + "module": "ESNext", + "moduleResolution": "Bundler", + "resolveJsonModule": true, + "target": "ES2022", + "strict": true, + "allowJs": true, + "skipLibCheck": true, + "baseUrl": ".", + "paths": { + "~/*": ["./app/*"] + }, + "noEmit": true, + "rootDirs": [".", ".react-router/types/"] + } +} diff --git a/integration/helpers/vite-template/vite.config.ts b/integration/helpers/vite-6-template/vite.config.ts similarity index 100% rename from integration/helpers/vite-template/vite.config.ts rename to integration/helpers/vite-6-template/vite.config.ts diff --git a/integration/helpers/vite-cloudflare-template/package.json b/integration/helpers/vite-cloudflare-template/package.json index d52b527070..37750d3109 100644 --- a/integration/helpers/vite-cloudflare-template/package.json +++ b/integration/helpers/vite-cloudflare-template/package.json @@ -26,7 +26,7 @@ "@types/react": "^18.2.20", "@types/react-dom": "^18.2.7", "typescript": "^5.1.6", - "vite": "^5.1.0", + "vite": "^6.0.0", "wrangler": "^3.28.2" }, "engines": { diff --git a/integration/helpers/vite-template/public/favicon.ico b/integration/helpers/vite-template/public/favicon.ico deleted file mode 100644 index 8830cf6821b354114848e6354889b8ecf6d2bc61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16958 zcmeI3+jCXb9mnJN2h^uNlXH@jlam{_a8F3W{T}Wih>9YJpaf7TUbu)A5fv|h7OMfR zR;q$lr&D!wv|c)`wcw1?>4QT1(&|jdsrI2h`Rn)dTW5t$8pz=s3_5L?#oBxAowe8R z_WfPfN?F+@`q$D@rvC?(W!uWieppskmQ~YG*>*L?{img@tWpnYXZslxeh#TSUS3{q z1Ju6JcfQSbQuORq69@YK(X-3c9vC2c2a2z~zw=F=50@pm0PUiCAm!bAT?2jpM`(^b zC|2&Ngngt^<>oCv#?P(AZ`5_84x#QBPulix)TpkIAUp=(KgGo4CVS~Sxt zVoR4>r5g9%bDh7hi0|v$={zr>CHd`?-l4^Ld(Z9PNz9piFY+llUw_x4ou7Vf-q%$g z)&)J4>6Ft~RZ(uV>dJD|`nxI1^x{X@Z5S<=vf;V3w_(*O-7}W<=e$=}CB9_R;)m9)d7`d_xx+nl^Bg|%ew=?uoKO8w zeQU7h;~8s!@9-k>7Cx}1SDQ7m(&miH zs8!l*wOJ!GHbdh)pD--&W3+w`9YJ=;m^FtMY=`mTq8pyV!-@L6smwp3(q?G>=_4v^ zn(ikLue7!y70#2uhqUVpb7fp!=xu2{aM^1P^pts#+feZv8d~)2sf`sjXLQCEj;pdI z%~f`JOO;*KnziMv^i_6+?mL?^wrE_&=IT9o1i!}Sd4Sx4O@w~1bi1)8(sXvYR-1?7~Zr<=SJ1Cw!i~yfi=4h6o3O~(-Sb2Ilwq%g$+V` z>(C&N1!FV5rWF&iwt8~b)=jIn4b!XbrWrZgIHTISrdHcpjjx=TwJXI7_%Ks4oFLl9 zNT;!%!P4~xH85njXdfqgnIxIFOOKW`W$fxU%{{5wZkVF^G=JB$oUNU5dQSL&ZnR1s z*ckJ$R`eCUJsWL>j6*+|2S1TL_J|Fl&kt=~XZF=+=iT0Xq1*KU-NuH%NAQff$LJp3 zU_*a;@7I0K{mqwux87~vwsp<}@P>KNDb}3U+6$rcZ114|QTMUSk+rhPA(b{$>pQTc zIQri{+U>GMzsCy0Mo4BfWXJlkk;RhfpWpAB{=Rtr*d1MNC+H3Oi5+3D$gUI&AjV-1 z=0ZOox+bGyHe=yk-yu%=+{~&46C$ut^ZN+ysx$NH}*F43)3bKkMsxGyIl#>7Yb8W zO{}&LUO8Ow{7>!bvSq?X{15&Y|4}0w2=o_^0ZzYgB+4HhZ4>s*mW&?RQ6&AY|CPcx z$*LjftNS|H)ePYnIKNg{ck*|y7EJ&Co0ho0K`!{ENPkASeKy-JWE}dF_%}j)Z5a&q zXAI2gPu6`s-@baW=*+keiE$ALIs5G6_X_6kgKK8n3jH2-H9`6bo)Qn1 zZ2x)xPt1=`9V|bE4*;j9$X20+xQCc$rEK|9OwH-O+Q*k`ZNw}K##SkY z3u}aCV%V|j@!gL5(*5fuWo>JFjeU9Qqk`$bdwH8(qZovE2tA7WUpoCE=VKm^eZ|vZ z(k<+j*mGJVah>8CkAsMD6#I$RtF;#57Wi`c_^k5?+KCmX$;Ky2*6|Q^bJ8+s%2MB}OH-g$Ev^ zO3uqfGjuN%CZiu<`aCuKCh{kK!dDZ+CcwgIeU2dsDfz+V>V3BDb~)~ zO!2l!_)m;ZepR~sL+-~sHS7;5ZB|~uUM&&5vDda2b z)CW8S6GI*oF><|ZeY5D^+Mcsri)!tmrM33qvwI4r9o@(GlW!u2R>>sB|E#%W`c*@5 z|0iA|`{6aA7D4Q?vc1{vT-#yytn07`H!QIO^1+X7?zG3%y0gPdIPUJ#s*DNAwd}m1_IMN1^T&be~+E z_z%1W^9~dl|Me9U6+3oNyuMDkF*z_;dOG(Baa*yq;TRiw{EO~O_S6>e*L(+Cdu(TM z@o%xTCV%hi&p)x3_inIF!b|W4|AF5p?y1j)cr9RG@v%QVaN8&LaorC-kJz_ExfVHB za!mtuee#Vb?dh&bwrfGHYAiX&&|v$}U*UBM;#F!N=x>x|G5s0zOa9{(`=k4v^6iK3 z8d&=O@xhDs{;v7JQ%eO;!Bt`&*MH&d zp^K#dkq;jnJz%%bsqwlaKA5?fy zS5JDbO#BgSAdi8NM zDo2SifX6^Z;vn>cBh-?~r_n9qYvP|3ihrnqq6deS-#>l#dV4mX|G%L8|EL;$U+w69 z;rTK3FW$ewUfH|R-Z;3;jvpfiDm?Fvyu9PeR>wi|E8>&j2Z@2h`U}|$>2d`BPV3pz#ViIzH8v6pP^L-p!GbLv<;(p>}_6u&E6XO5- zJ8JEvJ1)0>{iSd|kOQn#?0rTYL=KSmgMHCf$Qbm;7|8d(goD&T-~oCDuZf57iP#_Y zmxaoOSjQsm*^u+m$L9AMqwi=6bpdiAY6k3akjGN{xOZ`_J<~Puyzpi7yhhKrLmXV; z@ftONPy;Uw1F#{_fyGbk04yLE01v=i_5`RqQP+SUH0nb=O?l!J)qCSTdsbmjFJrTm zx4^ef@qt{B+TV_OHOhtR?XT}1Etm(f21;#qyyW6FpnM+S7*M1iME?9fe8d-`Q#InN z?^y{C_|8bxgUE@!o+Z72C)BrS&5D`gb-X8kq*1G7Uld-z19V}HY~mK#!o9MC-*#^+ znEsdc-|jj0+%cgBMy(cEkq4IQ1D*b;17Lyp>Utnsz%LRTfjQKL*vo(yJxwtw^)l|! z7jhIDdtLB}mpkOIG&4@F+9cYkS5r%%jz}I0R#F4oBMf-|Jmmk* zk^OEzF%}%5{a~kGYbFjV1n>HKC+a`;&-n*v_kD2DPP~n5(QE3C;30L<32GB*qV2z$ zWR1Kh=^1-q)P37WS6YWKlUSDe=eD^u_CV+P)q!3^{=$#b^auGS7m8zFfFS<>(e~)TG z&uwWhSoetoe!1^%)O}=6{SUcw-UQmw+i8lokRASPsbT=H|4D|( zk^P7>TUEFho!3qXSWn$m2{lHXw zD>eN6-;wwq9(?@f^F4L2Ny5_6!d~iiA^s~(|B*lbZir-$&%)l>%Q(36yOIAu|326K ztmBWz|MLA{Kj(H_{w2gd*nZ6a@ma(w==~EHIscEk|C=NGJa%Ruh4_+~f|%rt{I5v* zIX@F?|KJID56-ivb+PLo(9hn_CdK{irOcL15>JNQFY112^$+}JPyI{uQ~$&E*=ri; z`d^fH?4f=8vKHT4!p9O*fX(brB75Y9?e>T9=X#Fc@V#%@5^)~#zu5I(=>LQA-EGTS zecy*#6gG+8lapch#Hh%vl(+}J;Q!hC1OKoo;#h3#V%5Js)tQ)|>pTT@1ojd+F9Gey zg`B)zm`|Mo%tH31s4=<+`Pu|B3orXwNyIcNN>;fBkIj^X8P}RXhF= zXQK1u5RLN7k#_Q(KznJrALtMM13!vhfr025ar?@-%{l|uWt@NEd<$~n>RQL{ z+o;->n)+~0tt(u|o_9h!T`%M8%)w2awpV9b*xz9Pl-daUJm3y-HT%xg`^mFd6LBeL z!0~s;zEr)Bn9x)I(wx`;JVwvRcc^io2XX(Nn3vr3dgbrr@YJ?K3w18P*52^ieBCQP z=Up1V$N2~5ppJHRTeY8QfM(7Yv&RG7oWJAyv?c3g(29)P)u;_o&w|&)HGDIinXT~p z3;S|e$=&Tek9Wn!`cdY+d-w@o`37}x{(hl>ykB|%9yB$CGdIcl7Z?d&lJ%}QHck77 zJPR%C+s2w1_Dl_pxu6$Zi!`HmoD-%7OD@7%lKLL^Ixd9VlRSW*o&$^iQ2z+}hTgH) z#91TO#+jH<`w4L}XWOt(`gqM*uTUcky`O(mEyU|4dJoy6*UZJ7%*}ajuos%~>&P2j zk23f5<@GeV?(?`l=ih+D8t`d72xrUjv0wsg;%s1@*2p?TQ;n2$pV7h?_T%sL>iL@w zZ{lmc<|B7!e&o!zs6RW+u8+aDyUdG>ZS(v&rT$QVymB7sEC@VsK1dg^3F@K90-wYB zX!we79qx`(6LA>F$~{{xE8-3Wzyfe`+Lsce(?uj{k@lb97YTJt#>l*Z&LyKX@zjmu?UJC9w~;|NsB{%7G}y*uNDBxirfC EKbET!0{{R3 diff --git a/integration/helpers/vite.ts b/integration/helpers/vite.ts index 8fd8c4ac49..8875eea7c6 100644 --- a/integration/helpers/vite.ts +++ b/integration/helpers/vite.ts @@ -1,5 +1,5 @@ import { spawn, spawnSync, type ChildProcess } from "node:child_process"; -import path from "node:path"; +import path from "pathe"; import fs from "node:fs/promises"; import type { Readable } from "node:stream"; import url from "node:url"; @@ -123,11 +123,45 @@ export const EXPRESS_SERVER = (args: { app.listen(port, () => console.log('http://localhost:' + port)); `; -type TemplateName = "vite-template" | "vite-cloudflare-template"; +type TemplateName = + | "vite-5-template" + | "vite-6-template" + | "vite-cloudflare-template"; + +export const viteMajorTemplates = [ + { templateName: "vite-5-template", templateDisplayName: "Vite 5" }, + { templateName: "vite-6-template", templateDisplayName: "Vite 6" }, +] as const satisfies Array<{ + templateName: TemplateName; + templateDisplayName: string; +}>; + +function resolveDevPackageDir(root: string) { + return path.join(root, "node_modules", "@react-router", "dev"); +} + +function resolveDevPackageNodeModulesDir(root: string) { + return path.join(resolveDevPackageDir(root), "node_modules"); +} + +async function copyDirContents( + srcDir: string, + destDir: string, + filter?: (file: string) => boolean +) { + for (const file of await fse.readdir(srcDir)) { + if (filter && !filter(path.normalize(file))) { + continue; + } + const srcFile = path.join(srcDir, file); + const destFile = path.join(destDir, file); + await fse.copy(srcFile, destFile, { errorOnExist: true }); + } +} export async function createProject( files: Record = {}, - templateName: TemplateName = "vite-template" + templateName: TemplateName = "vite-5-template" ) { let projectName = `rr-${Math.random().toString(32).slice(2)}`; let projectDir = path.join(TMP_DIR, projectName); @@ -135,7 +169,27 @@ export async function createProject( // base template let templateDir = path.resolve(__dirname, templateName); - await fse.copy(templateDir, projectDir, { errorOnExist: true }); + + // When we copy the template, we need to filter out the version of Vite + // installed locally within @react-router/dev. If we don't do this, the dev + // package doesn't use the version of Vite defined within the test template + // which means we can't run integration tests across different versions of + // Vite. Since pnpm uses symlinks for dependencies, we need to perform the + // copy in multiple steps so that we can filter at each level. + await fse.copy(templateDir, projectDir, { + errorOnExist: true, + filter: (src) => !path.normalize(src).endsWith("/@react-router/dev"), + }); + await copyDirContents( + resolveDevPackageDir(templateDir), + resolveDevPackageDir(projectDir), + (file) => file !== "node_modules" + ); + await copyDirContents( + resolveDevPackageNodeModulesDir(templateDir), + resolveDevPackageNodeModulesDir(projectDir), + (file) => file !== "vite" + ); // user-defined files await Promise.all( @@ -273,7 +327,10 @@ type Fixtures = { port: number; cwd: string; }>; - customDev: (files: Files) => Promise<{ + customDev: ( + files: Files, + templateName?: TemplateName + ) => Promise<{ port: number; cwd: string; }>; @@ -307,9 +364,9 @@ export const test = base.extend({ // eslint-disable-next-line no-empty-pattern customDev: async ({}, use) => { let stop: (() => unknown) | undefined; - await use(async (files) => { + await use(async (files, template) => { let port = await getPort(); - let cwd = await createProject(await files({ port })); + let cwd = await createProject(await files({ port }), template); stop = await customDev({ cwd, port }); return { port, cwd }; }); diff --git a/integration/package.json b/integration/package.json index b428d8e2e0..5bf051acf9 100644 --- a/integration/package.json +++ b/integration/package.json @@ -27,6 +27,7 @@ "glob": "8.0.3", "isbot": "^5.1.11", "npm-run-all": "^4.1.5", + "pathe": "^1.1.2", "postcss": "^8.4.19", "postcss-import": "^15.1.0", "prettier": "^2.7.1", @@ -40,7 +41,7 @@ "tailwindcss": "^3.3.0", "type-fest": "^4.0.0", "typescript": "^5.1.0", - "vite": "^5.1.0", + "vite": "^6.0.0", "vite-env-only": "^3.0.1", "vite-tsconfig-paths": "^4.2.2", "wait-on": "^7.0.1" diff --git a/integration/route-config-test.ts b/integration/route-config-test.ts index c57ff6d5fa..c92ece1fa1 100644 --- a/integration/route-config-test.ts +++ b/integration/route-config-test.ts @@ -9,232 +9,264 @@ import { test, viteConfig, createEditor, + viteMajorTemplates, } from "./helpers/vite.js"; const js = String.raw; test.describe("route config", () => { - test("fails the build if route config is missing", async () => { - let cwd = await createProject(); - await fs.rm(path.join(cwd, "app/routes.ts")); - let buildResult = build({ cwd }); - expect(buildResult.status).toBe(1); - expect(buildResult.stderr.toString()).toContain( - 'Route config file not found at "app/routes.ts"' - ); - }); - - test("fails the build if route config is invalid", async () => { - let cwd = await createProject({ - "app/routes.ts": `export default INVALID(`, - }); - let buildResult = build({ cwd }); - expect(buildResult.status).toBe(1); - expect(buildResult.stderr.toString()).toContain( - 'Route config in "routes.ts" is invalid.' - ); - }); - - test("fails the dev process if route config is initially invalid", async ({ - dev, - }) => { - let files: Files = async ({ port }) => ({ - "vite.config.js": await viteConfig.basic({ port }), - "app/routes.ts": `export default INVALID(`, - }); - let devError: Error | undefined; - try { - await dev(files); - } catch (error: any) { - devError = error; - } - expect(devError?.toString()).toContain( - 'Route config in "routes.ts" is invalid.' - ); - }); - - test("supports correcting an invalid route config", async ({ page, dev }) => { - let files: Files = async ({ port }) => ({ - "vite.config.js": await viteConfig.basic({ port }), - "app/routes.ts": js` - import { type RouteConfig, index } from "@react-router/dev/routes"; - - export default [ - index("test-route-1.tsx"), - ] satisfies RouteConfig; - `, - "app/test-route-1.tsx": ` - export default () =>

Test route 1
- `, - "app/test-route-2.tsx": ` - export default () =>
Test route 2
- `, - }); - let { cwd, port } = await dev(files); - - await page.goto(`http://localhost:${port}/`, { waitUntil: "networkidle" }); - await expect(page.locator("[data-test-route]")).toHaveText("Test route 1"); - - let edit = createEditor(cwd); - - // Make config invalid - await edit("app/routes.ts", (contents) => contents + "INVALID"); - - // Ensure dev server is still running with old config + HMR - await edit("app/test-route-1.tsx", (contents) => - contents.replace("Test route 1", "Test route 1 updated") - ); - await expect(page.locator("[data-test-route]")).toHaveText( - "Test route 1 updated" - ); - - // Fix config with new route - await edit("app/routes.ts", (contents) => - contents.replace("INVALID", "").replace("test-route-1", "test-route-2") - ); - - await expect(async () => { - // Reload to pick up new route for current path - await page.reload(); - await expect(page.locator("[data-test-route]")).toHaveText( - "Test route 2" - ); - }).toPass(); - }); - - test("supports correcting an invalid route config module graph", async ({ - page, - dev, - }) => { - let files: Files = async ({ port }) => ({ - "vite.config.js": await viteConfig.basic({ port }), - "app/routes.ts": js` - export { default } from "./actual-routes"; - `, - "app/actual-routes.ts": js` - import { type RouteConfig, index } from "@react-router/dev/routes"; - - export default [ - index("test-route-1.tsx"), - ] satisfies RouteConfig; - `, - "app/test-route-1.tsx": ` - export default () =>
Test route 1
- `, - "app/test-route-2.tsx": ` - export default () =>
Test route 2
- `, - }); - let { cwd, port } = await dev(files); - - await page.goto(`http://localhost:${port}/`, { waitUntil: "networkidle" }); - await expect(page.locator("[data-test-route]")).toHaveText("Test route 1"); - - let edit = createEditor(cwd); - - // Make config invalid - await edit("app/actual-routes.ts", (contents) => contents + "INVALID"); - - // Ensure dev server is still running with old config + HMR - await edit("app/test-route-1.tsx", (contents) => - contents.replace("Test route 1", "Test route 1 updated") - ); - await expect(page.locator("[data-test-route]")).toHaveText( - "Test route 1 updated" - ); - - // Fix config with new route - await edit("app/actual-routes.ts", (contents) => - contents.replace("INVALID", "").replace("test-route-1", "test-route-2") - ); - - await expect(async () => { - // Reload to pick up new route for current path - await page.reload(); - await expect(page.locator("[data-test-route]")).toHaveText( - "Test route 2" - ); - }).toPass(); - }); - - test("supports correcting a missing route config", async ({ page, dev }) => { - let files: Files = async ({ port }) => ({ - "vite.config.js": await viteConfig.basic({ port }), - "app/routes.ts": js` - import { type RouteConfig, index } from "@react-router/dev/routes"; - - export default [ - index("test-route-1.tsx"), - ] satisfies RouteConfig; - `, - "app/test-route-1.tsx": ` - export default () =>
Test route 1
- `, - "app/test-route-2.tsx": ` - export default () =>
Test route 2
- `, + viteMajorTemplates.forEach(({ templateName, templateDisplayName }) => { + test.describe(templateDisplayName, () => { + test("fails the build if route config is missing", async () => { + let cwd = await createProject({}, templateName); + await fs.rm(path.join(cwd, "app/routes.ts")); + let buildResult = build({ cwd }); + expect(buildResult.status).toBe(1); + expect(buildResult.stderr.toString()).toContain( + 'Route config file not found at "app/routes.ts"' + ); + }); + + test("fails the build if route config is invalid", async () => { + let cwd = await createProject( + { "app/routes.ts": `export default INVALID(` }, + templateName + ); + let buildResult = build({ cwd }); + expect(buildResult.status).toBe(1); + expect(buildResult.stderr.toString()).toContain( + 'Route config in "routes.ts" is invalid.' + ); + }); + + test("fails the dev process if route config is initially invalid", async ({ + dev, + }) => { + let files: Files = async ({ port }) => ({ + "vite.config.js": await viteConfig.basic({ port }), + "app/routes.ts": `export default INVALID(`, + }); + let devError: Error | undefined; + try { + await dev(files); + } catch (error: any) { + devError = error; + } + expect(devError?.toString()).toContain( + 'Route config in "routes.ts" is invalid.' + ); + }); + + test("supports correcting an invalid route config", async ({ + page, + dev, + }) => { + let files: Files = async ({ port }) => ({ + "vite.config.js": await viteConfig.basic({ port }), + "app/routes.ts": js` + import { type RouteConfig, index } from "@react-router/dev/routes"; + + export default [ + index("test-route-1.tsx"), + ] satisfies RouteConfig; + `, + "app/test-route-1.tsx": ` + export default () =>
Test route 1
+ `, + "app/test-route-2.tsx": ` + export default () =>
Test route 2
+ `, + }); + let { cwd, port } = await dev(files); + + await page.goto(`http://localhost:${port}/`, { + waitUntil: "networkidle", + }); + await expect(page.locator("[data-test-route]")).toHaveText( + "Test route 1" + ); + + let edit = createEditor(cwd); + + // Make config invalid + await edit("app/routes.ts", (contents) => contents + "INVALID"); + + // Ensure dev server is still running with old config + HMR + await edit("app/test-route-1.tsx", (contents) => + contents.replace("Test route 1", "Test route 1 updated") + ); + await expect(page.locator("[data-test-route]")).toHaveText( + "Test route 1 updated" + ); + + // Fix config with new route + await edit("app/routes.ts", (contents) => + contents + .replace("INVALID", "") + .replace("test-route-1", "test-route-2") + ); + + await expect(async () => { + // Reload to pick up new route for current path + await page.reload(); + await expect(page.locator("[data-test-route]")).toHaveText( + "Test route 2" + ); + }).toPass(); + }); + + test("supports correcting an invalid route config module graph", async ({ + page, + dev, + }) => { + let files: Files = async ({ port }) => ({ + "vite.config.js": await viteConfig.basic({ port }), + "app/routes.ts": js` + export { default } from "./actual-routes"; + `, + "app/actual-routes.ts": js` + import { type RouteConfig, index } from "@react-router/dev/routes"; + + export default [ + index("test-route-1.tsx"), + ] satisfies RouteConfig; + `, + "app/test-route-1.tsx": ` + export default () =>
Test route 1
+ `, + "app/test-route-2.tsx": ` + export default () =>
Test route 2
+ `, + }); + let { cwd, port } = await dev(files); + + await page.goto(`http://localhost:${port}/`, { + waitUntil: "networkidle", + }); + await expect(page.locator("[data-test-route]")).toHaveText( + "Test route 1" + ); + + let edit = createEditor(cwd); + + // Make config invalid + await edit("app/actual-routes.ts", (contents) => contents + "INVALID"); + + // Ensure dev server is still running with old config + HMR + await edit("app/test-route-1.tsx", (contents) => + contents.replace("Test route 1", "Test route 1 updated") + ); + await expect(page.locator("[data-test-route]")).toHaveText( + "Test route 1 updated" + ); + + // Fix config with new route + await edit("app/actual-routes.ts", (contents) => + contents + .replace("INVALID", "") + .replace("test-route-1", "test-route-2") + ); + + await expect(async () => { + // Reload to pick up new route for current path + await page.reload(); + await expect(page.locator("[data-test-route]")).toHaveText( + "Test route 2" + ); + }).toPass(); + }); + + test("supports correcting a missing route config", async ({ + page, + dev, + }) => { + let files: Files = async ({ port }) => ({ + "vite.config.js": await viteConfig.basic({ port }), + "app/routes.ts": js` + import { type RouteConfig, index } from "@react-router/dev/routes"; + + export default [ + index("test-route-1.tsx"), + ] satisfies RouteConfig; + `, + "app/test-route-1.tsx": js` + export default () =>
Test route 1
+ `, + "app/test-route-2.tsx": js` + export default () =>
Test route 2
+ `, + }); + let { cwd, port } = await dev(files); + + await page.goto(`http://localhost:${port}/`, { + waitUntil: "networkidle", + }); + await expect(page.locator("[data-test-route]")).toHaveText( + "Test route 1" + ); + + let edit = createEditor(cwd); + + let INVALID_FILENAME = "app/routes.ts.oops"; + + // Rename config to make it missing + await fs.rename( + path.join(cwd, "app/routes.ts"), + path.join(cwd, INVALID_FILENAME) + ); + + // Ensure dev server is still running with old config + HMR + await edit("app/test-route-1.tsx", (contents) => + contents.replace("Test route 1", "Test route 1 updated") + ); + await expect(page.locator("[data-test-route]")).toHaveText( + "Test route 1 updated" + ); + + // Add new route + await edit(INVALID_FILENAME, (contents) => + contents.replace("test-route-1", "test-route-2") + ); + + // Rename config to bring it back + await fs.rename( + path.join(cwd, INVALID_FILENAME), + path.join(cwd, "app/routes.ts") + ); + + await expect(async () => { + // Reload to pick up new route for current path + await page.reload(); + await expect(page.locator("[data-test-route]")).toHaveText( + "Test route 2" + ); + }).toPass(); + }); + + test("supports absolute route file paths", async ({ page, dev }) => { + let files: Files = async ({ port }) => ({ + "vite.config.js": await viteConfig.basic({ port }), + "app/routes.ts": js` + import path from "node:path"; + import { type RouteConfig, index } from "@react-router/dev/routes"; + + export default [ + index(path.resolve(import.meta.dirname, "test-route.tsx")), + ] satisfies RouteConfig; + `, + "app/test-route.tsx": ` + export default () =>
Test route
+ `, + }); + let { port } = await dev(files); + + await page.goto(`http://localhost:${port}/`, { + waitUntil: "networkidle", + }); + await expect(page.locator("[data-test-route]")).toHaveText( + "Test route" + ); + }); }); - let { cwd, port } = await dev(files); - - await page.goto(`http://localhost:${port}/`, { waitUntil: "networkidle" }); - await expect(page.locator("[data-test-route]")).toHaveText("Test route 1"); - - let edit = createEditor(cwd); - - let INVALID_FILENAME = "app/routes.ts.oops"; - - // Rename config to make it missing - await fs.rename( - path.join(cwd, "app/routes.ts"), - path.join(cwd, INVALID_FILENAME) - ); - - // Ensure dev server is still running with old config + HMR - await edit("app/test-route-1.tsx", (contents) => - contents.replace("Test route 1", "Test route 1 updated") - ); - await expect(page.locator("[data-test-route]")).toHaveText( - "Test route 1 updated" - ); - - // Add new route - await edit(INVALID_FILENAME, (contents) => - contents.replace("test-route-1", "test-route-2") - ); - - // Rename config to bring it back - await fs.rename( - path.join(cwd, INVALID_FILENAME), - path.join(cwd, "app/routes.ts") - ); - - await expect(async () => { - // Reload to pick up new route for current path - await page.reload(); - await expect(page.locator("[data-test-route]")).toHaveText( - "Test route 2" - ); - }).toPass(); - }); - - test("supports absolute route file paths", async ({ page, dev }) => { - let files: Files = async ({ port }) => ({ - "vite.config.js": await viteConfig.basic({ port }), - "app/routes.ts": js` - import path from "node:path"; - import { type RouteConfig, index } from "@react-router/dev/routes"; - - export default [ - index(path.resolve(import.meta.dirname, "test-route.tsx")), - ] satisfies RouteConfig; - `, - "app/test-route.tsx": ` - export default () =>
Test route
- `, - }); - let { port } = await dev(files); - - await page.goto(`http://localhost:${port}/`, { waitUntil: "networkidle" }); - await expect(page.locator("[data-test-route]")).toHaveText("Test route"); }); }); diff --git a/integration/typegen-test.ts b/integration/typegen-test.ts index c6d40231f8..7de40c08f8 100644 --- a/integration/typegen-test.ts +++ b/integration/typegen-test.ts @@ -202,6 +202,7 @@ test.describe("typegen", () => { test("custom app dir", async () => { const cwd = await createProject({ + "vite.config.ts": viteConfig, "react-router.config.ts": tsx` export default { appDirectory: "src/myapp", diff --git a/integration/vite-css-test.ts b/integration/vite-css-test.ts index c421f38b45..296c0bd586 100644 --- a/integration/vite-css-test.ts +++ b/integration/vite-css-test.ts @@ -12,6 +12,7 @@ import { customDev, EXPRESS_SERVER, viteConfig, + viteMajorTemplates, } from "./helpers/vite.js"; const js = String.raw; @@ -165,111 +166,121 @@ const VITE_CONFIG = async (port: number) => dedent` } `; -test.describe(() => { - test.describe(async () => { - let port: number; - let cwd: string; - let stop: () => void; - - test.beforeAll(async () => { - port = await getPort(); - cwd = await createProject({ - "vite.config.ts": await VITE_CONFIG(port), - ...files, +test.describe("Vite CSS", () => { + viteMajorTemplates.forEach(({ templateName, templateDisplayName }) => { + test.describe(templateDisplayName, () => { + test.describe("vite dev", async () => { + let port: number; + let cwd: string; + let stop: () => void; + + test.beforeAll(async () => { + port = await getPort(); + cwd = await createProject( + { + "vite.config.ts": await VITE_CONFIG(port), + ...files, + }, + templateName + ); + stop = await dev({ cwd, port }); + }); + test.afterAll(() => stop()); + + test.describe(() => { + test.use({ javaScriptEnabled: false }); + test("without JS", async ({ page }) => { + await pageLoadWorkflow({ page, port }); + }); + }); + + test.describe(() => { + test.use({ javaScriptEnabled: true }); + test("with JS", async ({ page }) => { + await pageLoadWorkflow({ page, port }); + await hmrWorkflow({ page, port, cwd }); + }); + }); }); - stop = await dev({ cwd, port }); - }); - test.afterAll(() => stop()); - - test.describe(() => { - test.use({ javaScriptEnabled: false }); - test("Vite / CSS / vite dev / without JS", async ({ page }) => { - await pageLoadWorkflow({ page, port }); - }); - }); - - test.describe(() => { - test.use({ javaScriptEnabled: true }); - test("Vite / CSS / vite dev / with JS", async ({ page }) => { - await pageLoadWorkflow({ page, port }); - await hmrWorkflow({ page, port, cwd }); - }); - }); - }); - - test.describe(async () => { - let port: number; - let cwd: string; - let stop: () => void; - - test.beforeAll(async () => { - port = await getPort(); - cwd = await createProject({ - "vite.config.ts": await VITE_CONFIG(port), - "server.mjs": EXPRESS_SERVER({ port }), - ...files, - }); - stop = await customDev({ cwd, port }); - }); - test.afterAll(() => stop()); - - test.describe(() => { - test.use({ javaScriptEnabled: false }); - test("Vite / CSS / express / without JS", async ({ page }) => { - await pageLoadWorkflow({ page, port }); - }); - }); - test.describe(() => { - test.use({ javaScriptEnabled: true }); - test("Vite / CSS / express / with JS", async ({ page }) => { - await pageLoadWorkflow({ page, port }); - await hmrWorkflow({ page, port, cwd }); + test.describe("express", async () => { + let port: number; + let cwd: string; + let stop: () => void; + + test.beforeAll(async () => { + port = await getPort(); + cwd = await createProject({ + "vite.config.ts": await VITE_CONFIG(port), + "server.mjs": EXPRESS_SERVER({ port }), + ...files, + }); + stop = await customDev({ cwd, port }); + }); + test.afterAll(() => stop()); + + test.describe(() => { + test.use({ javaScriptEnabled: false }); + test("without JS", async ({ page }) => { + await pageLoadWorkflow({ page, port }); + }); + }); + + test.describe(() => { + test.use({ javaScriptEnabled: true }); + test("with JS", async ({ page }) => { + await pageLoadWorkflow({ page, port }); + await hmrWorkflow({ page, port, cwd }); + }); + }); }); - }); - }); - - test.describe(async () => { - let port: number; - let cwd: string; - let stop: () => void; - - test.beforeAll(async () => { - port = await getPort(); - cwd = await createProject({ - "vite.config.ts": await VITE_CONFIG(port), - ...files, - }); - - let edit = createEditor(cwd); - await edit("package.json", (contents) => - contents.replace('"sideEffects": false', '"sideEffects": ["*.css.ts"]') - ); - - let { stderr, status } = build({ - cwd, - env: { - // Vanilla Extract uses Vite's CJS build which emits a warning to stderr - VITE_CJS_IGNORE_WARNING: "true", - }, - }); - expect(stderr.toString()).toBeFalsy(); - expect(status).toBe(0); - stop = await reactRouterServe({ cwd, port }); - }); - test.afterAll(() => stop()); - - test.describe(() => { - test.use({ javaScriptEnabled: false }); - test("Vite / CSS / vite build / without JS", async ({ page }) => { - await pageLoadWorkflow({ page, port }); - }); - }); - test.describe(() => { - test.use({ javaScriptEnabled: true }); - test("Vite / CSS / vite build / with JS", async ({ page }) => { - await pageLoadWorkflow({ page, port }); + test.describe(async () => { + let port: number; + let cwd: string; + let stop: () => void; + + test.beforeAll(async () => { + port = await getPort(); + cwd = await createProject({ + "vite.config.ts": await VITE_CONFIG(port), + ...files, + }); + + let edit = createEditor(cwd); + await edit("package.json", (contents) => + contents.replace( + '"sideEffects": false', + '"sideEffects": ["*.css.ts"]' + ) + ); + + let { stderr, status } = build({ + cwd, + env: { + // Vanilla Extract uses Vite's CJS build which emits a warning to stderr + VITE_CJS_IGNORE_WARNING: "true", + }, + }); + expect(stderr.toString()).toBeFalsy(); + expect(status).toBe(0); + stop = await reactRouterServe({ cwd, port }); + }); + test.afterAll(() => stop()); + + test.describe(() => { + test.use({ javaScriptEnabled: false }); + test("vite build / without JS", async ({ page }) => { + await pageLoadWorkflow({ page, port }); + }); + }); + + test.describe(() => { + test.use({ javaScriptEnabled: true }); + test("vite build / with JS", async ({ page }) => { + await pageLoadWorkflow({ page, port }); + }); + }); }); }); }); diff --git a/integration/vite-hmr-hdr-test.ts b/integration/vite-hmr-hdr-test.ts index f86ad66b8d..6b39135c60 100644 --- a/integration/vite-hmr-hdr-test.ts +++ b/integration/vite-hmr-hdr-test.ts @@ -9,6 +9,7 @@ import { createEditor, EXPRESS_SERVER, viteConfig, + viteMajorTemplates, } from "./helpers/vite.js"; const indexRoute = ` @@ -38,78 +39,84 @@ const indexRoute = ` } `; -test("Vite / HMR & HDR / vite dev", async ({ page, browserName, dev }) => { - let files: Files = async ({ port }) => ({ - "vite.config.js": await viteConfig.basic({ port }), - "app/routes/_index.tsx": indexRoute, - }); - let { cwd, port } = await dev(files); - await workflow({ page, browserName, cwd, port }); -}); - -test("Vite / HMR & HDR / express", async ({ page, browserName, customDev }) => { - let files: Files = async ({ port }) => ({ - "vite.config.js": await viteConfig.basic({ port }), - "server.mjs": EXPRESS_SERVER({ port }), - "app/routes/_index.tsx": indexRoute, - }); - let { cwd, port } = await customDev(files); - await workflow({ page, browserName, cwd, port }); -}); - -test("Vite / HMR & HDR / mdx", async ({ page, dev }) => { - let files: Files = async ({ port }) => ({ - "vite.config.ts": ` - import { defineConfig } from "vite"; - import { reactRouter } from "@react-router/dev/vite"; - import mdx from "@mdx-js/rollup"; - - export default defineConfig({ - ${await viteConfig.server({ port })} - plugins: [ - mdx(), - reactRouter(), - ], +test.describe("Vite HMR & HDR", () => { + viteMajorTemplates.forEach(({ templateName, templateDisplayName }) => { + test.describe(templateDisplayName, () => { + test("vite dev", async ({ page, browserName, dev }) => { + let files: Files = async ({ port }) => ({ + "vite.config.js": await viteConfig.basic({ port }), + "app/routes/_index.tsx": indexRoute, + }); + let { cwd, port } = await dev(files, templateName); + await workflow({ page, browserName, cwd, port }); }); - `, - "app/component.tsx": ` - import {useState} from "react"; - - export const Counter = () => { - const [count, setCount] = useState(0); - return - } - `, - "app/routes/mdx.mdx": ` - import { Counter } from "../component"; - # MDX Title (HMR: 0) - - - `, - }); + test("express", async ({ page, browserName, customDev }) => { + let files: Files = async ({ port }) => ({ + "vite.config.js": await viteConfig.basic({ port }), + "server.mjs": EXPRESS_SERVER({ port }), + "app/routes/_index.tsx": indexRoute, + }); + let { cwd, port } = await customDev(files, templateName); + await workflow({ page, browserName, cwd, port }); + }); - let { port, cwd } = await dev(files); - let edit = createEditor(cwd); - await page.goto(`http://localhost:${port}/mdx`, { - waitUntil: "networkidle", + test("mdx", async ({ page, dev }) => { + let files: Files = async ({ port }) => ({ + "vite.config.ts": ` + import { defineConfig } from "vite"; + import { reactRouter } from "@react-router/dev/vite"; + import mdx from "@mdx-js/rollup"; + + export default defineConfig({ + ${await viteConfig.server({ port })} + plugins: [ + mdx(), + reactRouter(), + ], + }); + `, + "app/component.tsx": ` + import {useState} from "react"; + + export const Counter = () => { + const [count, setCount] = useState(0); + return + } + `, + "app/routes/mdx.mdx": ` + import { Counter } from "../component"; + + # MDX Title (HMR: 0) + + + `, + }); + + let { port, cwd } = await dev(files, templateName); + let edit = createEditor(cwd); + await page.goto(`http://localhost:${port}/mdx`, { + waitUntil: "networkidle", + }); + + await expect(page.locator("h1")).toHaveText("MDX Title (HMR: 0)"); + let button = page.locator("button"); + await expect(button).toHaveText("Count: 0"); + await button.click(); + await expect(button).toHaveText("Count: 1"); + + await edit("app/routes/mdx.mdx", (contents) => + contents.replace("(HMR: 0)", "(HMR: 1)") + ); + await page.waitForLoadState("networkidle"); + + await expect(page.locator("h1")).toHaveText("MDX Title (HMR: 1)"); + await expect(page.locator("button")).toHaveText("Count: 1"); + + expect(page.errors).toEqual([]); + }); + }); }); - - await expect(page.locator("h1")).toHaveText("MDX Title (HMR: 0)"); - let button = page.locator("button"); - await expect(button).toHaveText("Count: 0"); - await button.click(); - await expect(button).toHaveText("Count: 1"); - - await edit("app/routes/mdx.mdx", (contents) => - contents.replace("(HMR: 0)", "(HMR: 1)") - ); - await page.waitForLoadState("networkidle"); - - await expect(page.locator("h1")).toHaveText("MDX Title (HMR: 1)"); - await expect(page.locator("button")).toHaveText("Count: 1"); - - expect(page.errors).toEqual([]); }); async function workflow({ diff --git a/package.json b/package.json index 894ea2734a..6c46983910 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ "undici": "^6.10.1", "unified": "^10.1.2", "unist-util-remove": "^3.1.0", - "vite": "^5.1.0", + "vite": "^6.0.0", "vite-env-only": "^3.0.1", "vite-tsconfig-paths": "^4.2.2" }, diff --git a/packages/react-router-architect/package.json b/packages/react-router-architect/package.json index ac1835ed45..91cae30ea1 100644 --- a/packages/react-router-architect/package.json +++ b/packages/react-router-architect/package.json @@ -55,7 +55,7 @@ "devDependencies": { "@react-router/node": "workspace:*", "@types/lambda-tester": "^3.6.1", - "@types/node": "^18.17.1", + "@types/node": "^20.0.0", "lambda-tester": "^4.0.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/packages/react-router-dev/package.json b/packages/react-router-dev/package.json index 713b4de78b..bfeb2e9f48 100644 --- a/packages/react-router-dev/package.json +++ b/packages/react-router-dev/package.json @@ -85,7 +85,7 @@ "semver": "^7.3.7", "set-cookie-parser": "^2.6.0", "valibot": "^0.41.0", - "vite-node": "^1.6.0" + "vite-node": "3.0.0-beta.2" }, "devDependencies": { "@react-router/serve": "workspace:*", @@ -98,7 +98,7 @@ "@types/gunzip-maybe": "^1.4.0", "@types/jsesc": "^3.0.1", "@types/lodash": "^4.14.182", - "@types/node": "^18.17.1", + "@types/node": "^20.0.0", "@types/npmcli__package-json": "^4.0.0", "@types/picomatch": "^2.3.0", "@types/prettier": "^2.7.3", @@ -113,7 +113,7 @@ "tiny-invariant": "^1.2.0", "tsup": "^8.3.0", "typescript": "^5.1.6", - "vite": "^5.1.0", + "vite": "^6.0.0", "wireit": "0.14.9", "wrangler": "^3.28.2" }, @@ -121,7 +121,7 @@ "@react-router/serve": "workspace:^", "react-router": "workspace:^", "typescript": "^5.1.0", - "vite": "^5.1.0", + "vite": "^5.1.0 || ^6.0.0", "wrangler": "^3.28.2" }, "peerDependenciesMeta": { diff --git a/packages/react-router-dev/vite/plugin.ts b/packages/react-router-dev/vite/plugin.ts index 027692b50d..e9736c2600 100644 --- a/packages/react-router-dev/vite/plugin.ts +++ b/packages/react-router-dev/vite/plugin.ts @@ -1587,9 +1587,66 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { return modules; }, }, + { + name: "react-router-server-change-trigger-client-hmr", + // This hook is only available in Vite v6+ so this is a no-op in v5. + // Previously the server and client modules were shared in a single module + // graph. This meant that changes to server code automatically resulted in + // client HMR updates. In Vite v6+ these module graphs are separate from + // each other so we need to manually trigger client HMR updates if server + // code has changed. + hotUpdate(this, { server, modules }) { + if (this.environment.name !== "ssr" && modules.length <= 0) { + return; + } + + let clientModules = uniqueNodes( + modules.flatMap((mod) => + getParentClientNodes(server.environments.client.moduleGraph, mod) + ) + ); + + for (let clientModule of clientModules) { + server.environments.client.reloadModule(clientModule); + } + }, + }, ]; }; +function getParentClientNodes( + clientModuleGraph: Vite.EnvironmentModuleGraph, + module: Vite.EnvironmentModuleNode +): Vite.EnvironmentModuleNode[] { + if (!module.id) { + return []; + } + + let clientModule = clientModuleGraph.getModuleById(module.id); + if (clientModule) { + return [clientModule]; + } + + return [...module.importers].flatMap((importer) => + getParentClientNodes(clientModuleGraph, importer) + ); +} + +function uniqueNodes( + nodes: Vite.EnvironmentModuleNode[] +): Vite.EnvironmentModuleNode[] { + let nodeUrls = new Set(); + let unique: Vite.EnvironmentModuleNode[] = []; + for (let node of nodes) { + if (nodeUrls.has(node.url)) { + continue; + } + nodeUrls.add(node.url); + unique.push(node); + } + return unique; +} + function findConfig( dir: string, basename: string, diff --git a/packages/react-router-dev/vite/styles.ts b/packages/react-router-dev/vite/styles.ts index 530ab528cb..6dfb4b8a74 100644 --- a/packages/react-router-dev/vite/styles.ts +++ b/packages/react-router-dev/vite/styles.ts @@ -5,6 +5,7 @@ import type { ModuleNode, ViteDevServer } from "vite"; import type { ResolvedReactRouterConfig } from "../config/config"; import { resolveFileUrl } from "./resolve-file-url"; +import { importViteEsmSync } from "./import-vite-esm-sync"; type ServerRouteManifest = ServerBuild["routes"]; type ServerRoute = ServerRouteManifest[string]; @@ -48,6 +49,9 @@ export const isCssUrlWithoutSideEffects = (url: string) => { return false; }; +const injectQuery = (url: string, query: string) => + url.includes("?") ? url.replace("?", `?${query}&`) : `${url}?${query}`; + const getStylesForFiles = async ({ viteDevServer, rootDirectory, @@ -59,6 +63,9 @@ const getStylesForFiles = async ({ cssModulesManifest: Record; files: string[]; }): Promise => { + let vite = importViteEsmSync(); + let viteMajor = parseInt(vite.version.split(".")[0], 10); + let styles: Record = {}; let deps = new Set(); @@ -103,7 +110,17 @@ const getStylesForFiles = async ({ try { let css = isCssModulesFile(dep.file) ? cssModulesManifest[dep.file] - : (await viteDevServer.ssrLoadModule(dep.url)).default; + : ( + await viteDevServer.ssrLoadModule( + // We need the ?inline query in Vite v6 when loading CSS in SSR + // since it does not expose the default export for CSS in a + // server environment. This is to align with non-SSR + // environments. For backwards compatibility with v5 we keep + // using the URL without ?inline query because the HMR code was + // relying on the implicit SSR-client module graph relationship. + viteMajor >= 6 ? injectQuery(dep.url, "inline") : dep.url + ) + ).default; if (css === undefined) { throw new Error(); diff --git a/packages/react-router-express/package.json b/packages/react-router-express/package.json index 0789612576..431a2cc271 100644 --- a/packages/react-router-express/package.json +++ b/packages/react-router-express/package.json @@ -52,7 +52,7 @@ }, "devDependencies": { "@types/express": "^4.17.9", - "@types/node": "^18.17.1", + "@types/node": "^20.0.0", "@types/supertest": "^2.0.10", "express": "^4.19.2", "node-mocks-http": "^1.10.1", diff --git a/playground/framework-express/package.json b/playground/framework-express/package.json index 65e646efaa..de094a9d24 100644 --- a/playground/framework-express/package.json +++ b/playground/framework-express/package.json @@ -30,7 +30,7 @@ "@types/react-dom": "^18.2.7", "cross-env": "^7.0.3", "typescript": "^5.1.6", - "vite": "^5.1.0", + "vite": "^6.0.0", "vite-tsconfig-paths": "^4.2.1" }, "engines": { diff --git a/playground/framework-spa/package.json b/playground/framework-spa/package.json index c6244af7d5..16149bccdf 100644 --- a/playground/framework-spa/package.json +++ b/playground/framework-spa/package.json @@ -21,7 +21,7 @@ "@types/react": "^18.2.20", "@types/react-dom": "^18.2.7", "typescript": "^5.1.6", - "vite": "^5.1.0", + "vite": "^6.0.0", "vite-tsconfig-paths": "^4.2.1" }, "engines": { diff --git a/playground/framework/package.json b/playground/framework/package.json index d068a9fbf6..14a8760dce 100644 --- a/playground/framework/package.json +++ b/playground/framework/package.json @@ -23,7 +23,7 @@ "@types/react": "^18.2.20", "@types/react-dom": "^18.2.7", "typescript": "^5.1.6", - "vite": "^5.1.0", + "vite": "^6.0.0", "vite-tsconfig-paths": "^4.2.1" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c47cc288c5..a85a9e9eb7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,25 +24,25 @@ importers: dependencies: '@babel/core': specifier: ^7.22.9 - version: 7.22.9 + version: 7.24.3 '@babel/plugin-proposal-export-namespace-from': specifier: ^7.18.9 - version: 7.18.9(@babel/core@7.22.9) + version: 7.18.9(@babel/core@7.24.3) '@babel/plugin-proposal-optional-chaining': specifier: ^7.21.0 - version: 7.21.0(@babel/core@7.22.9) + version: 7.21.0(@babel/core@7.24.3) '@babel/preset-env': specifier: ^7.22.9 - version: 7.22.9(@babel/core@7.22.9) + version: 7.22.9(@babel/core@7.24.3) '@babel/preset-modules': specifier: ^0.1.6 - version: 0.1.6(@babel/core@7.22.9) + version: 0.1.6(@babel/core@7.24.3) '@babel/preset-react': specifier: ^7.22.5 - version: 7.22.5(@babel/core@7.22.9) + version: 7.22.5(@babel/core@7.24.3) '@babel/preset-typescript': specifier: ^7.22.5 - version: 7.22.5(@babel/core@7.22.9) + version: 7.22.5(@babel/core@7.24.3) '@changesets/cli': specifier: ^2.26.2 version: 2.26.2 @@ -123,10 +123,10 @@ importers: version: 7.5.0(eslint@8.57.0)(typescript@5.4.5) babel-jest: specifier: ^29.7.0 - version: 29.7.0(@babel/core@7.22.9) + version: 29.7.0(@babel/core@7.24.3) babel-plugin-dev-expression: specifier: ^0.2.3 - version: 0.2.3(@babel/core@7.22.9) + version: 0.2.3(@babel/core@7.24.3) babel-plugin-transform-remove-console: specifier: ^6.9.4 version: 6.9.4 @@ -138,16 +138,16 @@ importers: version: 8.57.0 eslint-config-react-app: specifier: ^7.0.1 - version: 7.0.1(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.22.9))(@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.9))(eslint@8.57.0)(jest@29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0))(typescript@5.4.5) + version: 7.0.1(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.24.3))(@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.24.3))(eslint@8.57.0)(jest@29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0))(typescript@5.4.5) eslint-plugin-flowtype: specifier: ^8.0.3 - version: 8.0.3(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.22.9))(@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.9))(eslint@8.57.0) + version: 8.0.3(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.24.3))(@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.24.3))(eslint@8.57.0) eslint-plugin-import: specifier: ^2.29.1 version: 2.29.1(@typescript-eslint/parser@7.5.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) eslint-plugin-jest: specifier: ^27.9.0 - version: 27.9.0(@typescript-eslint/eslint-plugin@7.5.0(@typescript-eslint/parser@7.5.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(jest@29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0))(typescript@5.4.5) + version: 27.9.0(@typescript-eslint/eslint-plugin@7.5.0(@typescript-eslint/parser@7.5.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(jest@29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0))(typescript@5.4.5) eslint-plugin-jsx-a11y: specifier: ^6.8.0 version: 6.8.0(eslint@8.57.0) @@ -156,7 +156,7 @@ importers: version: 7.34.1(eslint@8.57.0) eslint-plugin-react-hooks: specifier: next - version: 5.1.0-rc-0bc30748-20241028(eslint@8.57.0) + version: 5.1.0-rc-1c9b1387-20241204(eslint@8.57.0) fs-extra: specifier: ^10.1.0 version: 10.1.0 @@ -168,7 +168,7 @@ importers: version: 5.1.11 jest: specifier: ^29.6.4 - version: 29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0) + version: 29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0) jest-environment-jsdom: specifier: ^29.6.2 version: 29.6.2 @@ -216,7 +216,7 @@ importers: version: 5.4.5 undici: specifier: ^6.10.1 - version: 6.10.1 + version: 6.20.1 unified: specifier: ^10.1.2 version: 10.1.2 @@ -224,14 +224,14 @@ importers: specifier: ^3.1.0 version: 3.1.1 vite: - specifier: ^5.1.0 - version: 5.1.3(@types/node@18.19.26)(terser@5.15.0) + specifier: ^6.0.0 + version: 6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0) vite-env-only: specifier: ^3.0.1 - version: 3.0.1(vite@5.1.3(@types/node@18.19.26)(terser@5.15.0)) + version: 3.0.1(vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0)) vite-tsconfig-paths: specifier: ^4.2.2 - version: 4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@18.19.26)(terser@5.15.0)) + version: 4.3.2(typescript@5.4.5)(vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0)) integration: dependencies: @@ -261,7 +261,7 @@ importers: version: 1.14.2 '@vanilla-extract/vite-plugin': specifier: ^3.9.2 - version: 3.9.5(@types/node@20.11.30)(terser@5.15.0)(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)) + version: 3.9.5(@types/node@20.11.30)(vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0)) cheerio: specifier: ^1.0.0-rc.12 version: 1.0.0 @@ -292,12 +292,15 @@ importers: npm-run-all: specifier: ^4.1.5 version: 4.1.5 + pathe: + specifier: ^1.1.2 + version: 1.1.2 postcss: specifier: ^8.4.19 - version: 8.4.38 + version: 8.4.49 postcss-import: specifier: ^15.1.0 - version: 15.1.0(postcss@8.4.38) + version: 15.1.0(postcss@8.4.49) prettier: specifier: ^2.7.1 version: 2.8.8 @@ -330,31 +333,43 @@ importers: version: 4.15.0 typescript: specifier: ^5.1.0 - version: 5.1.6 + version: 5.4.5 vite: - specifier: ^5.1.0 - version: 5.1.3(@types/node@20.11.30)(terser@5.15.0) + specifier: ^6.0.0 + version: 6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0) vite-env-only: specifier: ^3.0.1 - version: 3.0.1(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)) + version: 3.0.1(vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0)) vite-tsconfig-paths: specifier: ^4.2.2 - version: 4.3.2(typescript@5.1.6)(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)) + version: 4.3.2(typescript@5.4.5)(vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0)) wait-on: specifier: ^7.0.1 version: 7.2.0 - integration/helpers/vite-cloudflare-template: + integration/helpers/vite-5-template: dependencies: - '@react-router/cloudflare': + '@react-router/express': specifier: workspace:* - version: link:../../../packages/react-router-cloudflare + version: link:../../../packages/react-router-express + '@react-router/node': + specifier: workspace:* + version: link:../../../packages/react-router-node + '@react-router/serve': + specifier: workspace:* + version: link:../../../packages/react-router-serve + '@vanilla-extract/css': + specifier: ^1.10.0 + version: 1.14.2 + '@vanilla-extract/vite-plugin': + specifier: ^3.9.2 + version: 3.9.5(@types/node@20.11.30)(terser@5.15.0)(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)) + express: + specifier: ^4.19.2 + version: 4.19.2 isbot: - specifier: ^4.1.0 - version: 4.4.0 - miniflare: - specifier: ^3.20231030.4 - version: 3.20240701.0 + specifier: ^5.1.11 + version: 5.1.11 react: specifier: ^18.2.0 version: 18.2.0 @@ -364,10 +379,10 @@ importers: react-router: specifier: workspace:* version: link:../../../packages/react-router + serialize-javascript: + specifier: ^6.0.1 + version: 6.0.2 devDependencies: - '@cloudflare/workers-types': - specifier: ^4.20230518.0 - version: 4.20240712.0 '@react-router/dev': specifier: workspace:* version: link:../../../packages/react-router-dev @@ -383,17 +398,23 @@ importers: '@types/react-dom': specifier: ^18.2.7 version: 18.2.7 + eslint: + specifier: ^8.38.0 + version: 8.57.0 typescript: specifier: ^5.1.6 version: 5.4.5 vite: specifier: ^5.1.0 version: 5.1.3(@types/node@20.11.30)(terser@5.15.0) - wrangler: - specifier: ^3.28.2 - version: 3.64.0(@cloudflare/workers-types@4.20240712.0) + vite-env-only: + specifier: ^3.0.1 + version: 3.0.1(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)) + vite-tsconfig-paths: + specifier: ^4.2.1 + version: 4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)) - integration/helpers/vite-template: + integration/helpers/vite-6-template: dependencies: '@react-router/express': specifier: workspace:* @@ -409,7 +430,7 @@ importers: version: 1.14.2 '@vanilla-extract/vite-plugin': specifier: ^3.9.2 - version: 3.9.5(@types/node@20.11.30)(terser@5.15.0)(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)) + version: 3.9.5(@types/node@20.11.30)(vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0)) express: specifier: ^4.19.2 version: 4.19.2 @@ -451,14 +472,63 @@ importers: specifier: ^5.1.6 version: 5.4.5 vite: - specifier: ^5.1.0 - version: 5.1.3(@types/node@20.11.30)(terser@5.15.0) + specifier: ^6.0.0 + version: 6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0) vite-env-only: specifier: ^3.0.1 - version: 3.0.1(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)) + version: 3.0.1(vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0)) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)) + version: 4.3.2(typescript@5.4.5)(vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0)) + + integration/helpers/vite-cloudflare-template: + dependencies: + '@react-router/cloudflare': + specifier: workspace:* + version: link:../../../packages/react-router-cloudflare + isbot: + specifier: ^4.1.0 + version: 4.4.0 + miniflare: + specifier: ^3.20231030.4 + version: 3.20240701.0 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-router: + specifier: workspace:* + version: link:../../../packages/react-router + devDependencies: + '@cloudflare/workers-types': + specifier: ^4.20230518.0 + version: 4.20240712.0 + '@react-router/dev': + specifier: workspace:* + version: link:../../../packages/react-router-dev + '@react-router/fs-routes': + specifier: workspace:* + version: link:../../../packages/react-router-fs-routes + '@react-router/remix-routes-option-adapter': + specifier: workspace:* + version: link:../../../packages/react-router-remix-routes-option-adapter + '@types/react': + specifier: ^18.2.18 + version: 18.2.18 + '@types/react-dom': + specifier: ^18.2.7 + version: 18.2.7 + typescript: + specifier: ^5.1.6 + version: 5.4.5 + vite: + specifier: ^6.0.0 + version: 6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0) + wrangler: + specifier: ^3.28.2 + version: 3.64.0(@cloudflare/workers-types@4.20240712.0) packages/create-react-router: dependencies: @@ -528,7 +598,7 @@ importers: version: 1.3.3 tsup: specifier: ^8.3.0 - version: 8.3.0(jiti@1.21.0)(postcss@8.4.38)(typescript@5.4.5)(yaml@2.6.0) + version: 8.3.0(jiti@1.21.0)(postcss@8.4.49)(typescript@5.4.5)(yaml@2.6.0) typescript: specifier: ^5.1.6 version: 5.4.5 @@ -565,7 +635,7 @@ importers: version: 6.0.1 tsup: specifier: ^8.3.0 - version: 8.3.0(jiti@1.21.0)(postcss@8.4.38)(typescript@5.4.5)(yaml@2.6.0) + version: 8.3.0(jiti@1.21.0)(postcss@8.4.49)(typescript@5.4.5)(yaml@2.6.0) typescript: specifier: ^5.1.6 version: 5.4.5 @@ -589,8 +659,8 @@ importers: specifier: ^3.6.1 version: 3.6.2 '@types/node': - specifier: ^18.17.1 - version: 18.19.26 + specifier: ^20.0.0 + version: 20.11.30 lambda-tester: specifier: ^4.0.1 version: 4.0.1 @@ -605,7 +675,7 @@ importers: version: link:../react-router tsup: specifier: ^8.3.0 - version: 8.3.0(jiti@1.21.0)(postcss@8.4.38)(typescript@5.4.5)(yaml@2.6.0) + version: 8.3.0(jiti@1.21.0)(postcss@8.4.49)(typescript@5.4.5)(yaml@2.6.0) typescript: specifier: ^5.1.6 version: 5.4.5 @@ -623,7 +693,7 @@ importers: version: link:../react-router tsup: specifier: ^8.3.0 - version: 8.3.0(jiti@1.21.0)(postcss@8.4.38)(typescript@5.4.5)(yaml@2.6.0) + version: 8.3.0(jiti@1.21.0)(postcss@8.4.49)(typescript@5.4.5)(yaml@2.6.0) typescript: specifier: ^5.1.6 version: 5.4.5 @@ -677,7 +747,7 @@ importers: version: 1.5.3(babel-plugin-macros@3.1.0) es-module-lexer: specifier: ^1.3.1 - version: 1.5.0 + version: 1.5.4 exit-hook: specifier: 2.2.1 version: 2.2.1 @@ -718,8 +788,8 @@ importers: specifier: ^0.41.0 version: 0.41.0(typescript@5.4.5) vite-node: - specifier: ^1.6.0 - version: 1.6.0(@types/node@18.19.26)(terser@5.15.0) + specifier: 3.0.0-beta.2 + version: 3.0.0-beta.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0) devDependencies: '@react-router/serve': specifier: workspace:* @@ -752,8 +822,8 @@ importers: specifier: ^4.14.182 version: 4.17.0 '@types/node': - specifier: ^18.17.1 - version: 18.19.26 + specifier: ^20.0.0 + version: 20.11.30 '@types/npmcli__package-json': specifier: ^4.0.0 version: 4.0.4 @@ -771,7 +841,7 @@ importers: version: 16.4.5 esbuild-register: specifier: ^3.3.2 - version: 3.5.0(esbuild@0.23.1) + version: 3.5.0(esbuild@0.24.0) execa: specifier: 5.1.1 version: 5.1.1 @@ -792,13 +862,13 @@ importers: version: 1.3.3 tsup: specifier: ^8.3.0 - version: 8.3.0(jiti@1.21.0)(postcss@8.4.38)(typescript@5.4.5)(yaml@2.6.0) + version: 8.3.0(jiti@1.21.0)(postcss@8.4.49)(typescript@5.4.5)(yaml@2.6.0) typescript: specifier: ^5.1.6 version: 5.4.5 vite: - specifier: ^5.1.0 - version: 5.1.3(@types/node@18.19.26)(terser@5.15.0) + specifier: ^6.0.0 + version: 6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0) wireit: specifier: 0.14.9 version: 0.14.9 @@ -820,7 +890,7 @@ importers: version: 18.2.0(react@18.2.0) tsup: specifier: ^8.3.0 - version: 8.3.0(jiti@1.21.0)(postcss@8.4.38)(typescript@5.4.5)(yaml@2.6.0) + version: 8.3.0(jiti@1.21.0)(postcss@8.4.49)(typescript@5.4.5)(yaml@2.6.0) typescript: specifier: ^5.1.6 version: 5.4.5 @@ -841,8 +911,8 @@ importers: specifier: ^4.17.9 version: 4.17.21 '@types/node': - specifier: ^18.17.1 - version: 18.19.26 + specifier: ^20.0.0 + version: 20.11.30 '@types/supertest': specifier: ^2.0.10 version: 2.0.16 @@ -857,7 +927,7 @@ importers: version: 6.3.4 tsup: specifier: ^8.3.0 - version: 8.3.0(jiti@1.21.0)(postcss@8.4.38)(typescript@5.4.5)(yaml@2.6.0) + version: 8.3.0(jiti@1.21.0)(postcss@8.4.49)(typescript@5.4.5)(yaml@2.6.0) typescript: specifier: ^5.1.6 version: 5.4.5 @@ -869,14 +939,14 @@ importers: dependencies: minimatch: specifier: ^9.0.0 - version: 9.0.3 + version: 9.0.5 devDependencies: '@react-router/dev': specifier: workspace:* version: link:../react-router-dev tsup: specifier: ^8.3.0 - version: 8.3.0(jiti@1.21.0)(postcss@8.4.38)(typescript@5.4.5)(yaml@2.6.0) + version: 8.3.0(jiti@1.21.0)(postcss@8.4.49)(typescript@5.4.5)(yaml@2.6.0) typescript: specifier: ^5.1.6 version: 5.4.5 @@ -897,7 +967,7 @@ importers: version: 0.1.2 undici: specifier: ^6.19.2 - version: 6.19.2 + version: 6.20.1 devDependencies: '@types/source-map-support': specifier: ^0.5.4 @@ -907,7 +977,7 @@ importers: version: link:../react-router tsup: specifier: ^8.3.0 - version: 8.3.0(jiti@1.21.0)(postcss@8.4.38)(typescript@5.4.5)(yaml@2.6.0) + version: 8.3.0(jiti@1.21.0)(postcss@8.4.49)(typescript@5.4.5)(yaml@2.6.0) typescript: specifier: ^5.1.6 version: 5.4.5 @@ -922,7 +992,7 @@ importers: version: link:../react-router-dev tsup: specifier: ^8.3.0 - version: 8.3.0(jiti@1.21.0)(postcss@8.4.38)(typescript@5.4.5)(yaml@2.6.0) + version: 8.3.0(jiti@1.21.0)(postcss@8.4.49)(typescript@5.4.5)(yaml@2.6.0) typescript: specifier: ^5.1.6 version: 5.4.5 @@ -971,7 +1041,7 @@ importers: version: 0.5.10 tsup: specifier: ^8.3.0 - version: 8.3.0(jiti@1.21.0)(postcss@8.4.38)(typescript@5.4.5)(yaml@2.6.0) + version: 8.3.0(jiti@1.21.0)(postcss@8.4.49)(typescript@5.4.5)(yaml@2.6.0) typescript: specifier: ^5.1.6 version: 5.4.5 @@ -1013,11 +1083,11 @@ importers: specifier: ^5.1.6 version: 5.4.5 vite: - specifier: ^5.1.0 - version: 5.1.3(@types/node@20.11.30)(terser@5.15.0) + specifier: ^6.0.0 + version: 6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)) + version: 4.3.2(typescript@5.4.5)(vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0)) playground/framework-express: dependencies: @@ -1074,11 +1144,11 @@ importers: specifier: ^5.1.6 version: 5.4.5 vite: - specifier: ^5.1.0 - version: 5.1.3(@types/node@20.11.30)(terser@5.15.0) + specifier: ^6.0.0 + version: 6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)) + version: 4.3.2(typescript@5.4.5)(vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0)) playground/framework-spa: dependencies: @@ -1108,11 +1178,11 @@ importers: specifier: ^5.1.6 version: 5.4.5 vite: - specifier: ^5.1.0 - version: 5.1.3(@types/node@20.11.30)(terser@5.15.0) + specifier: ^6.0.0 + version: 6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)) + version: 4.3.2(typescript@5.4.5)(vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0)) packages: @@ -1135,26 +1205,14 @@ packages: resolution: {integrity: sha512-F13FBUvVHjerUaSdnXIC3pZUnI10lxyVZ7HsrU8vM2qB5pFNqw5EgqcnVgORz/eqCcqevpIKayQ9yOUf/HuBAA==} engines: {node: '>=12'} - '@babel/code-frame@7.22.5': - resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.24.2': resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.22.9': - resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} - engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.1': resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} engines: {node: '>=6.9.0'} - '@babel/core@7.22.9': - resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} - engines: {node: '>=6.9.0'} - '@babel/core@7.24.3': resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} engines: {node: '>=6.9.0'} @@ -1178,22 +1236,10 @@ packages: resolution: {integrity: sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.22.9': - resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-compilation-targets@7.23.6': resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.22.9': - resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-class-features-plugin@7.24.1': resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} engines: {node: '>=6.9.0'} @@ -1228,28 +1274,14 @@ packages: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.22.5': - resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.23.0': resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.22.5': - resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} - engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.3': resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.22.9': - resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.23.3': resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} @@ -1260,10 +1292,6 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.22.5': - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} - engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.0': resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} @@ -1274,12 +1302,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.22.9': - resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.24.1': resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} @@ -1306,10 +1328,6 @@ packages: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.22.5': - resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.23.5': resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} @@ -1318,18 +1336,10 @@ packages: resolution: {integrity: sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.22.6': - resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.1': resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.22.5': - resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} - engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.2': resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} @@ -1900,18 +1910,10 @@ packages: '@babel/regjsgen@0.8.0': resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - '@babel/runtime@7.22.6': - resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.24.1': resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} engines: {node: '>=6.9.0'} - '@babel/template@7.22.5': - resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} - engines: {node: '>=6.9.0'} - '@babel/template@7.24.0': resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} @@ -2048,6 +2050,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.24.0': + resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.17.19': resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} @@ -2072,6 +2080,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.24.0': + resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.17.19': resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} @@ -2096,6 +2110,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.24.0': + resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.17.19': resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} @@ -2120,6 +2140,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.24.0': + resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.17.19': resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} @@ -2144,6 +2170,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.24.0': + resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.17.19': resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} @@ -2168,6 +2200,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.24.0': + resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.17.19': resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} @@ -2192,6 +2230,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.24.0': + resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.17.19': resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} @@ -2216,6 +2260,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.24.0': + resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.17.19': resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} @@ -2240,6 +2290,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.24.0': + resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.17.19': resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} @@ -2264,6 +2320,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.24.0': + resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.17.19': resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} @@ -2288,6 +2350,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.24.0': + resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.17.19': resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} @@ -2312,6 +2380,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.24.0': + resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.17.19': resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} @@ -2336,6 +2410,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.24.0': + resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.17.19': resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} @@ -2360,6 +2440,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.24.0': + resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.17.19': resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} @@ -2384,6 +2470,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.24.0': + resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.17.19': resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} @@ -2408,6 +2500,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.24.0': + resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.17.19': resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} @@ -2432,6 +2530,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.24.0': + resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-x64@0.17.19': resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} @@ -2456,12 +2560,24 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.24.0': + resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.23.1': resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.24.0': + resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.17.19': resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} @@ -2486,6 +2602,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.24.0': + resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.17.19': resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -2510,6 +2632,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.24.0': + resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.17.19': resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} @@ -2534,6 +2662,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.24.0': + resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.17.19': resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} @@ -2558,6 +2692,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.24.0': + resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.17.19': resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} @@ -2582,6 +2722,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.24.0': + resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2652,10 +2798,6 @@ packages: node-notifier: optional: true - '@jest/environment@29.6.2': - resolution: {integrity: sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/environment@29.7.0': resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2668,10 +2810,6 @@ packages: resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/fake-timers@29.6.2': - resolution: {integrity: sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/fake-timers@29.7.0': resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2689,10 +2827,6 @@ packages: node-notifier: optional: true - '@jest/schemas@29.6.0': - resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/schemas@29.6.3': resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2713,10 +2847,6 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/types@29.6.1': - resolution: {integrity: sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/types@29.6.3': resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2909,51 +3039,26 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.13.1': - resolution: {integrity: sha512-4C4UERETjXpC4WpBXDbkgNVgHyWfG3B/NKY46e7w5H134UDOFqUJKpsLm0UYmuupW+aJmRgeScrDNfvZ5WV80A==} - cpu: [arm] - os: [android] - '@rollup/rollup-android-arm-eabi@4.24.0': resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.13.1': - resolution: {integrity: sha512-TrTaFJ9pXgfXEiJKQ3yQRelpQFqgRzVR9it8DbeRzG0RX7mKUy0bqhCFsgevwXLJepQKTnLl95TnPGf9T9AMOA==} - cpu: [arm64] - os: [android] - '@rollup/rollup-android-arm64@4.24.0': resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.13.1': - resolution: {integrity: sha512-fz7jN6ahTI3cKzDO2otQuybts5cyu0feymg0bjvYCBrZQ8tSgE8pc0sSNEuGvifrQJWiwx9F05BowihmLxeQKw==} - cpu: [arm64] - os: [darwin] - '@rollup/rollup-darwin-arm64@4.24.0': resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.13.1': - resolution: {integrity: sha512-WTvdz7SLMlJpektdrnWRUN9C0N2qNHwNbWpNo0a3Tod3gb9leX+yrYdCeB7VV36OtoyiPAivl7/xZ3G1z5h20g==} - cpu: [x64] - os: [darwin] - '@rollup/rollup-darwin-x64@4.24.0': resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.13.1': - resolution: {integrity: sha512-dBHQl+7wZzBYcIF6o4k2XkAfwP2ks1mYW2q/Gzv9n39uDcDiAGDqEyml08OdY0BIct0yLSPkDTqn4i6czpBLLw==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} cpu: [arm] @@ -2964,21 +3069,11 @@ packages: cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.13.1': - resolution: {integrity: sha512-bur4JOxvYxfrAmocRJIW0SADs3QdEYK6TQ7dTNz6Z4/lySeu3Z1H/+tl0a4qDYv0bCdBpUYM0sYa/X+9ZqgfSQ==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.24.0': resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.13.1': - resolution: {integrity: sha512-ssp77SjcDIUSoUyj7DU7/5iwM4ZEluY+N8umtCT9nBRs3u045t0KkW02LTyHouHDomnMXaXSZcCSr2bdMK63kA==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-musl@4.24.0': resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} cpu: [arm64] @@ -2989,71 +3084,36 @@ packages: cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.13.1': - resolution: {integrity: sha512-Jv1DkIvwEPAb+v25/Unrnnq9BO3F5cbFPT821n3S5litkz+O5NuXuNhqtPx5KtcwOTtaqkTsO+IVzJOsxd11aQ==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.24.0': resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.13.1': - resolution: {integrity: sha512-U564BrhEfaNChdATQaEODtquCC7Ez+8Hxz1h5MAdMYj0AqD0GA9rHCpElajb/sQcaFL6NXmHc5O+7FXpWMa73Q==} - cpu: [s390x] - os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.24.0': resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.13.1': - resolution: {integrity: sha512-zGRDulLTeDemR8DFYyFIQ8kMP02xpUsX4IBikc7lwL9PrwR3gWmX2NopqiGlI2ZVWMl15qZeUjumTwpv18N7sQ==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-gnu@4.24.0': resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.13.1': - resolution: {integrity: sha512-VTk/MveyPdMFkYJJPCkYBw07KcTkGU2hLEyqYMsU4NjiOfzoaDTW9PWGRsNwiOA3qI0k/JQPjkl/4FCK1smskQ==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-musl@4.24.0': resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.13.1': - resolution: {integrity: sha512-L+hX8Dtibb02r/OYCsp4sQQIi3ldZkFI0EUkMTDwRfFykXBPptoz/tuuGqEd3bThBSLRWPR6wsixDSgOx/U3Zw==} - cpu: [arm64] - os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.24.0': resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.13.1': - resolution: {integrity: sha512-+dI2jVPfM5A8zme8riEoNC7UKk0Lzc7jCj/U89cQIrOjrZTCWZl/+IXUeRT2rEZ5j25lnSA9G9H1Ob9azaF/KQ==} - cpu: [ia32] - os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.24.0': resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.13.1': - resolution: {integrity: sha512-YY1Exxo2viZ/O2dMHuwQvimJ0SqvL+OAWQLLY6rvXavgQKjhQUzn7nc1Dd29gjB5Fqi00nrBWctJBOyfVMIVxw==} - cpu: [x64] - os: [win32] - '@rollup/rollup-win32-x64-msvc@4.24.0': resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} cpu: [x64] @@ -3174,9 +3234,6 @@ packages: '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -3231,9 +3288,6 @@ packages: '@types/jsesc@3.0.3': resolution: {integrity: sha512-YZZ9ZOAiiSVC6KApWd/fTCDTdTOOMiRU4Lq3/VSmXNPse8IvCVOn5kYRRLu900Ub1lTPurVZFI5unEqLDJR7wg==} - '@types/json-schema@7.0.11': - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} - '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -3285,9 +3339,6 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@18.19.26': - resolution: {integrity: sha512-+wiMJsIwLOYCvUqSdKTrfkS8mpTp+MPINe6+Np4TAGFWWRWiBQ5kSq9nZGCSPkzx9mvT+uEukzpX4MOSCydcvw==} - '@types/node@20.11.30': resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} @@ -3632,9 +3683,6 @@ packages: aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} @@ -3658,10 +3706,6 @@ packages: resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} - array.prototype.flat@1.3.1: - resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} - engines: {node: '>= 0.4'} - array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} @@ -3676,10 +3720,6 @@ packages: array.prototype.tosorted@1.1.3: resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} - arraybuffer.prototype.slice@1.0.1: - resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} - engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.3: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} @@ -3708,10 +3748,6 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} - available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -3726,9 +3762,6 @@ packages: axobject-query@3.2.1: resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} - babel-dead-code-elimination@1.0.1: - resolution: {integrity: sha512-QD6IAGZU/Qd7qJJPptnPVGRl9SnK9IdowcIjOcxVKbfB70chvCXRaV2BOgxpVckQud3CppYoI6QA+/cfdBGAMA==} - babel-dead-code-elimination@1.0.6: resolution: {integrity: sha512-JxFi9qyRJpN0LjEbbjbN8g0ux71Qppn9R8Qe3k6QzHg2CaKsbUQtbn307LQGiDLGjV6JCtEFqfxzVig9MyDCHQ==} @@ -3870,11 +3903,6 @@ packages: browserify-zlib@0.1.4: resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} - browserslist@4.21.10: - resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.23.0: resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -3910,9 +3938,6 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -3937,9 +3962,6 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001579: - resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==} - caniuse-lite@1.0.30001599: resolution: {integrity: sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==} @@ -4256,8 +4278,8 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -4265,8 +4287,8 @@ packages: supports-color: optional: true - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -4291,14 +4313,6 @@ packages: dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - dedent@1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - dedent@1.5.3: resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} peerDependencies: @@ -4324,10 +4338,6 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} - engines: {node: '>= 0.4'} - define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -4443,9 +4453,6 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.4.481: - resolution: {integrity: sha512-25DitMKGaWUPjv3kCt2H3UqgMhmdN+ufG+PoSjnQtheR64Dvo75RbojLPzUmnwrEuLEzR5YrbTzOUq9DtnTUUw==} - electron-to-chromium@1.4.714: resolution: {integrity: sha512-OfnVHt+nMRH9Ua5koH/2gKlCAXbG+u1yXwLKyBVqNboBV34ZTwb846RUe8K5mtE1uhz0BXoMarZ13JCQr+sBtQ==} @@ -4483,10 +4490,6 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.22.1: - resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} - engines: {node: '>= 0.4'} - es-abstract@1.23.3: resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} @@ -4503,24 +4506,17 @@ packages: resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} engines: {node: '>= 0.4'} - es-module-lexer@1.5.0: - resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} - es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} - engines: {node: '>= 0.4'} - es-set-tostringtag@2.0.3: resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} - es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} @@ -4553,6 +4549,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.24.0: + resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + engines: {node: '>=18'} + hasBin: true + escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -4671,8 +4672,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react-hooks@5.1.0-rc-0bc30748-20241028: - resolution: {integrity: sha512-rewMgmolwvtkbULITBMnN/TE7k+OdAxDvvyalLijoD3ZfZMgjrlfOXQgZFPkwAXS5SQOBklagQmqnB7E6gD8ew==} + eslint-plugin-react-hooks@5.1.0-rc-1c9b1387-20241204: + resolution: {integrity: sha512-E9JU9aJux/AlcpVVvPvwAzou9pkoCMfIs8JchMUcUufw+poffUoXtV1QG+JE3c5mIJ887BeQyXCX1pQNLghu5g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 @@ -4941,16 +4942,9 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} - engines: {node: '>= 0.4'} - function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} @@ -4966,9 +4960,6 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} - get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} @@ -4988,10 +4979,6 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - get-symbol-description@1.0.2: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} @@ -5091,16 +5078,9 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - has-proto@1.0.3: resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} @@ -5109,18 +5089,10 @@ packages: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} - has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -5243,10 +5215,6 @@ packages: resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} engines: {node: '>=12.0.0'} - internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} - engines: {node: '>= 0.4'} - internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} @@ -5273,9 +5241,6 @@ packages: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} - is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} - is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} @@ -5369,10 +5334,6 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} - is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -5426,9 +5387,6 @@ packages: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} @@ -5449,10 +5407,6 @@ packages: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} - is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} - is-typed-array@1.1.13: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} @@ -5606,18 +5560,10 @@ packages: resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-message-util@29.6.2: - resolution: {integrity: sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-message-util@29.7.0: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-mock@29.6.2: - resolution: {integrity: sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-mock@29.7.0: resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5655,10 +5601,6 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-util@29.6.2: - resolution: {integrity: sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6265,10 +6207,6 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -6301,9 +6239,6 @@ packages: ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -6372,9 +6307,6 @@ packages: resolution: {integrity: sha512-mfXuCGonz0A7uG1FEjnypjm34xegeN5+HI6xeGhYKecfgaZhjsmYoLE9LEFmT+53G1n8IuagPZmVnEL/xNsFaA==} engines: {node: '>=14'} - node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} @@ -6432,9 +6364,6 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} - object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} @@ -6442,10 +6371,6 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} - object.assign@4.1.5: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} @@ -6613,9 +6538,6 @@ packages: path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - path-to-regexp@6.2.2: - resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} - path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} @@ -6636,12 +6558,6 @@ packages: periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -6750,8 +6666,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} preferred-pm@3.0.3: @@ -6969,9 +6885,6 @@ packages: regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -6981,10 +6894,6 @@ packages: regex@4.4.0: resolution: {integrity: sha512-uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ==} - regexp.prototype.flags@1.5.0: - resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} - engines: {node: '>= 0.4'} - regexp.prototype.flags@1.5.2: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} @@ -7091,11 +7000,6 @@ packages: rollup-pluginutils@2.8.2: resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - rollup@4.13.1: - resolution: {integrity: sha512-hFi+fU132IvJ2ZuihN56dwgpltpmLZHZWsx27rMCTZ2sYwrqlgL5sECGy1eeV2lAihD8EzChBVVhsXci0wD4Tg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - rollup@4.24.0: resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -7121,10 +7025,6 @@ packages: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} - safe-array-concat@1.0.0: - resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} - engines: {node: '>=0.4'} - safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} @@ -7135,9 +7035,6 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - safe-regex-test@1.0.3: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} @@ -7274,8 +7171,8 @@ packages: resolution: {integrity: sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q==} hasBin: true - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} source-map-support@0.5.13: @@ -7377,23 +7274,13 @@ packages: resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==} engines: {node: '>= 0.4'} - string.prototype.trim@1.2.7: - resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} - engines: {node: '>= 0.4'} - string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} - string.prototype.trimend@1.0.8: resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} - string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} - string.prototype.trimstart@1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} @@ -7675,33 +7562,18 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} - typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.1: resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.2: resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} engines: {node: '>= 0.4'} - typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - typed-array-length@1.0.6: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} @@ -7713,11 +7585,6 @@ packages: peerDependencies: typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x - typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} - engines: {node: '>=14.17'} - hasBin: true - typescript@5.4.5: resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} @@ -7743,14 +7610,6 @@ packages: resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} engines: {node: '>=14.0'} - undici@6.10.1: - resolution: {integrity: sha512-kSzmWrOx3XBKTgPm4Tal8Hyl3yf+hzlA00SAf4goxv8LZYafKmS6gJD/7Fe5HH/DMNiFTRXvkwhLo7mUn5fuQQ==} - engines: {node: '>=18.0'} - - undici@6.19.2: - resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==} - engines: {node: '>=18.17'} - undici@6.20.1: resolution: {integrity: sha512-AjQF1QsmqfJys+LXfGTNum+qw4S88CojRInG/6t31W/1fk6G59s92bnAvGz5Cmur+kQv2SURXEvvudLmbrE8QA==} engines: {node: '>=18.17'} @@ -7835,12 +7694,6 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - update-browserslist-db@1.0.11: - resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - update-browserslist-db@1.0.13: resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true @@ -7925,6 +7778,11 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true + vite-node@3.0.0-beta.2: + resolution: {integrity: sha512-ofTf6cfRdL30Wbl9n/BX81EyIR5s4PReLmSurrxQ+koLaWUNOEo8E0lCM53OJkb8vpa2URM2nSrxZsIFyvY1rg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + vite-tsconfig-paths@4.3.2: resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} peerDependencies: @@ -7961,6 +7819,46 @@ packages: terser: optional: true + vite@6.0.2: + resolution: {integrity: sha512-XdQ+VsY2tJpBsKGs0wf3U/+azx8BBpYRHFAyKm5VeEZNOJZRB63q7Sc8Iup3k0TrN3KO6QgyzFf+opSbfY1y0g==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} @@ -8037,10 +7935,6 @@ packages: resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} engines: {node: '>=8.15'} - which-typed-array@1.1.11: - resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} - engines: {node: '>= 0.4'} - which-typed-array@1.1.15: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} @@ -8144,11 +8038,6 @@ packages: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - yaml@2.4.1: - resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} - engines: {node: '>= 14'} - hasBin: true - yaml@2.6.0: resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} engines: {node: '>= 14'} @@ -8206,39 +8095,13 @@ snapshots: run-waterfall: 1.1.7 uid-safe: 2.1.5 - '@babel/code-frame@7.22.5': - dependencies: - '@babel/highlight': 7.22.5 - '@babel/code-frame@7.24.2': dependencies: '@babel/highlight': 7.24.2 picocolors: 1.1.1 - '@babel/compat-data@7.22.9': {} - '@babel/compat-data@7.24.1': {} - '@babel/core@7.22.9': - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.24.1 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) - '@babel/helpers': 7.22.6 - '@babel/parser': 7.24.1 - '@babel/template': 7.22.5 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/core@7.24.3': dependencies: '@ampproject/remapping': 2.2.1 @@ -8252,7 +8115,7 @@ snapshots: '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 convert-source-map: 2.0.0 - debug: 4.3.4 + debug: 4.3.7 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -8282,24 +8145,6 @@ snapshots: dependencies: '@babel/types': 7.24.0 - '@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9)': - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.21.10 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-compilation-targets@7.22.9(@babel/core@7.24.3)': - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.24.3 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.21.10 - lru-cache: 5.1.1 - semver: 6.3.1 - '@babel/helper-compilation-targets@7.23.6': dependencies: '@babel/compat-data': 7.24.1 @@ -8308,32 +8153,6 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.22.5 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.22.5 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.24.3) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -8347,13 +8166,6 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -8373,17 +8185,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - debug: 4.3.7 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - '@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -8406,40 +8207,14 @@ snapshots: dependencies: '@babel/types': 7.24.0 - '@babel/helper-member-expression-to-functions@7.22.5': - dependencies: - '@babel/types': 7.24.0 - '@babel/helper-member-expression-to-functions@7.23.0': dependencies: '@babel/types': 7.24.0 - '@babel/helper-module-imports@7.22.5': + '@babel/helper-module-imports@7.24.3': dependencies: '@babel/types': 7.24.0 - '@babel/helper-module-imports@7.24.3': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - - '@babel/helper-module-transforms@7.23.3(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -8453,17 +8228,8 @@ snapshots: dependencies: '@babel/types': 7.24.0 - '@babel/helper-plugin-utils@7.22.5': {} - '@babel/helper-plugin-utils@7.24.0': {} - '@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.9 - '@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -8471,20 +8237,6 @@ snapshots: '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.9 - '@babel/helper-replace-supers@7.22.9(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.22.5 - '@babel/helper-optimise-call-expression': 7.22.5 - - '@babel/helper-replace-supers@7.22.9(@babel/core@7.24.3)': - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.22.5 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -8508,8 +8260,6 @@ snapshots: '@babel/helper-validator-identifier@7.22.20': {} - '@babel/helper-validator-option@7.22.5': {} - '@babel/helper-validator-option@7.23.5': {} '@babel/helper-wrap-function@7.22.9': @@ -8518,14 +8268,6 @@ snapshots: '@babel/template': 7.24.0 '@babel/types': 7.24.0 - '@babel/helpers@7.22.6': - dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - transitivePeerDependencies: - - supports-color - '@babel/helpers@7.24.1': dependencies: '@babel/template': 7.24.0 @@ -8534,12 +8276,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/highlight@7.22.5': - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - '@babel/highlight@7.24.2': dependencies: '@babel/helper-validator-identifier': 7.22.20 @@ -8551,23 +8287,11 @@ snapshots: dependencies: '@babel/types': 7.24.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -8588,11 +8312,11 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-decorators': 7.24.1(@babel/core@7.24.3) - '@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.22.9)': + '@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.24.3)': dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3) '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.3)': dependencies: @@ -8606,17 +8330,10 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3) - '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) @@ -8626,10 +8343,6 @@ snapshots: '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -8642,53 +8355,27 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3) - '@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -8699,29 +8386,14 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-flow@7.18.6(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-flow@7.18.6(@babel/core@7.24.3)': @@ -8729,119 +8401,59 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3)': @@ -8849,56 +8461,27 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-async-generator-functions@7.22.7(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) - '@babel/plugin-transform-async-generator-functions@7.22.7(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -8907,79 +8490,36 @@ snapshots: '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.24.3) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) - '@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9) - '@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - '@babel/helper-module-imports': 7.22.5 + '@babel/helper-module-imports': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.24.3) - '@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.24.3) - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9) '@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.24.3) + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3) - '@babel/plugin-transform-classes@7.22.6(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 - '@babel/plugin-transform-classes@7.22.6(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -8989,84 +8529,44 @@ snapshots: '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.24.3) + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 - '@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/template': 7.24.0 - '@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/template': 7.24.0 - '@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -9079,23 +8579,11 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.24.3) - '@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-for-of@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-function-name@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -9103,69 +8591,34 @@ snapshots: '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-literals@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3) - '@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-simple-access': 7.22.5 - '@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -9173,14 +8626,6 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-simple-access': 7.22.5 - '@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-identifier': 7.22.20 - '@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -9189,99 +8634,49 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-identifier': 7.22.20 - '@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-new-target@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3) - '@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.24.3)': dependencies: - '@babel/compat-data': 7.22.9 + '@babel/compat-data': 7.24.1 '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3) '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.24.3) - '@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) - '@babel/plugin-transform-object-super@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.24.3) - - '@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) '@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.24.3)': dependencies: @@ -9289,13 +8684,6 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-optional-chaining@7.22.6(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-transform-optional-chaining@7.22.6(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -9303,109 +8691,54 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) - '@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-parameters@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.24.3) - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9) '@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.24.3) + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3) - '@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-react-display-name@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-react-display-name@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.24.3) - '@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9) - '@babel/types': 7.24.0 - '@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.24.3) '@babel/types': 7.24.0 - '@babel/plugin-transform-react-pure-annotations@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-react-pure-annotations@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.24.0 - regenerator-transform: 0.15.1 '@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.24.3)': dependencies: @@ -9413,11 +8746,6 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 regenerator-transform: 0.15.1 - '@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -9435,21 +8763,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.24.3)': dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-spread@7.22.5(@babel/core@7.24.3)': dependencies: @@ -9457,191 +8774,59 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-typescript@7.22.9(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-typescript@7.22.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.24.3) + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.24.3) - '@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/preset-env@7.22.9(@babel/core@7.22.9)': - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.9) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.9) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.9) - '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-async-generator-functions': 7.22.7(@babel/core@7.22.9) - '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.22.9) - '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-regenerator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-escapes': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.9) - '@babel/preset-modules': 0.1.6(@babel/core@7.22.9) - '@babel/types': 7.24.0 - babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.22.9) - babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.22.9) - babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.22.9) - core-js-compat: 3.32.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/preset-env@7.22.9(@babel/core@7.24.3)': dependencies: - '@babel/compat-data': 7.22.9 + '@babel/compat-data': 7.24.1 '@babel/core': 7.24.3 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.24.3) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.24.3) '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.24.3) '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3) @@ -9721,57 +8906,29 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.9) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9) - '@babel/types': 7.24.0 - esutils: 2.0.3 - '@babel/preset-modules@0.1.6(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.24.3) '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.24.3) '@babel/types': 7.24.0 esutils: 2.0.3 - '@babel/preset-react@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-react-pure-annotations': 7.22.5(@babel/core@7.22.9) - '@babel/preset-react@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.24.3) '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.24.3) '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3) '@babel/plugin-transform-react-pure-annotations': 7.22.5(@babel/core@7.24.3) - '@babel/preset-typescript@7.22.5(@babel/core@7.22.9)': - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-typescript': 7.22.9(@babel/core@7.22.9) - '@babel/preset-typescript@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-option': 7.23.5 '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.24.3) '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.24.3) @@ -9779,20 +8936,10 @@ snapshots: '@babel/regjsgen@0.8.0': {} - '@babel/runtime@7.22.6': - dependencies: - regenerator-runtime: 0.13.11 - '@babel/runtime@7.24.1': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.22.5': - dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.1 - '@babel/types': 7.24.0 - '@babel/template@7.24.0': dependencies: '@babel/code-frame': 7.24.2 @@ -9809,7 +8956,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.24.1 '@babel/types': 7.24.0 - debug: 4.3.4 + debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -9853,7 +9000,7 @@ snapshots: '@changesets/cli@2.26.2': dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.24.1 '@changesets/apply-release-plan': 6.1.4 '@changesets/assemble-release-plan': 5.2.4(patch_hash=xlpxbvc6gfcmwbnthfqwsopnoi) '@changesets/changelog-git': 0.1.14 @@ -10021,6 +9168,9 @@ snapshots: '@esbuild/aix-ppc64@0.23.1': optional: true + '@esbuild/aix-ppc64@0.24.0': + optional: true + '@esbuild/android-arm64@0.17.19': optional: true @@ -10033,6 +9183,9 @@ snapshots: '@esbuild/android-arm64@0.23.1': optional: true + '@esbuild/android-arm64@0.24.0': + optional: true + '@esbuild/android-arm@0.17.19': optional: true @@ -10045,6 +9198,9 @@ snapshots: '@esbuild/android-arm@0.23.1': optional: true + '@esbuild/android-arm@0.24.0': + optional: true + '@esbuild/android-x64@0.17.19': optional: true @@ -10057,6 +9213,9 @@ snapshots: '@esbuild/android-x64@0.23.1': optional: true + '@esbuild/android-x64@0.24.0': + optional: true + '@esbuild/darwin-arm64@0.17.19': optional: true @@ -10069,6 +9228,9 @@ snapshots: '@esbuild/darwin-arm64@0.23.1': optional: true + '@esbuild/darwin-arm64@0.24.0': + optional: true + '@esbuild/darwin-x64@0.17.19': optional: true @@ -10081,6 +9243,9 @@ snapshots: '@esbuild/darwin-x64@0.23.1': optional: true + '@esbuild/darwin-x64@0.24.0': + optional: true + '@esbuild/freebsd-arm64@0.17.19': optional: true @@ -10093,6 +9258,9 @@ snapshots: '@esbuild/freebsd-arm64@0.23.1': optional: true + '@esbuild/freebsd-arm64@0.24.0': + optional: true + '@esbuild/freebsd-x64@0.17.19': optional: true @@ -10105,6 +9273,9 @@ snapshots: '@esbuild/freebsd-x64@0.23.1': optional: true + '@esbuild/freebsd-x64@0.24.0': + optional: true + '@esbuild/linux-arm64@0.17.19': optional: true @@ -10117,6 +9288,9 @@ snapshots: '@esbuild/linux-arm64@0.23.1': optional: true + '@esbuild/linux-arm64@0.24.0': + optional: true + '@esbuild/linux-arm@0.17.19': optional: true @@ -10129,6 +9303,9 @@ snapshots: '@esbuild/linux-arm@0.23.1': optional: true + '@esbuild/linux-arm@0.24.0': + optional: true + '@esbuild/linux-ia32@0.17.19': optional: true @@ -10141,6 +9318,9 @@ snapshots: '@esbuild/linux-ia32@0.23.1': optional: true + '@esbuild/linux-ia32@0.24.0': + optional: true + '@esbuild/linux-loong64@0.17.19': optional: true @@ -10153,6 +9333,9 @@ snapshots: '@esbuild/linux-loong64@0.23.1': optional: true + '@esbuild/linux-loong64@0.24.0': + optional: true + '@esbuild/linux-mips64el@0.17.19': optional: true @@ -10165,6 +9348,9 @@ snapshots: '@esbuild/linux-mips64el@0.23.1': optional: true + '@esbuild/linux-mips64el@0.24.0': + optional: true + '@esbuild/linux-ppc64@0.17.19': optional: true @@ -10177,6 +9363,9 @@ snapshots: '@esbuild/linux-ppc64@0.23.1': optional: true + '@esbuild/linux-ppc64@0.24.0': + optional: true + '@esbuild/linux-riscv64@0.17.19': optional: true @@ -10189,6 +9378,9 @@ snapshots: '@esbuild/linux-riscv64@0.23.1': optional: true + '@esbuild/linux-riscv64@0.24.0': + optional: true + '@esbuild/linux-s390x@0.17.19': optional: true @@ -10201,6 +9393,9 @@ snapshots: '@esbuild/linux-s390x@0.23.1': optional: true + '@esbuild/linux-s390x@0.24.0': + optional: true + '@esbuild/linux-x64@0.17.19': optional: true @@ -10213,6 +9408,9 @@ snapshots: '@esbuild/linux-x64@0.23.1': optional: true + '@esbuild/linux-x64@0.24.0': + optional: true + '@esbuild/netbsd-x64@0.17.19': optional: true @@ -10225,9 +9423,15 @@ snapshots: '@esbuild/netbsd-x64@0.23.1': optional: true + '@esbuild/netbsd-x64@0.24.0': + optional: true + '@esbuild/openbsd-arm64@0.23.1': optional: true + '@esbuild/openbsd-arm64@0.24.0': + optional: true + '@esbuild/openbsd-x64@0.17.19': optional: true @@ -10240,6 +9444,9 @@ snapshots: '@esbuild/openbsd-x64@0.23.1': optional: true + '@esbuild/openbsd-x64@0.24.0': + optional: true + '@esbuild/sunos-x64@0.17.19': optional: true @@ -10252,6 +9459,9 @@ snapshots: '@esbuild/sunos-x64@0.23.1': optional: true + '@esbuild/sunos-x64@0.24.0': + optional: true + '@esbuild/win32-arm64@0.17.19': optional: true @@ -10264,6 +9474,9 @@ snapshots: '@esbuild/win32-arm64@0.23.1': optional: true + '@esbuild/win32-arm64@0.24.0': + optional: true + '@esbuild/win32-ia32@0.17.19': optional: true @@ -10276,6 +9489,9 @@ snapshots: '@esbuild/win32-ia32@0.23.1': optional: true + '@esbuild/win32-ia32@0.24.0': + optional: true + '@esbuild/win32-x64@0.17.19': optional: true @@ -10288,6 +9504,9 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true + '@esbuild/win32-x64@0.24.0': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 @@ -10355,7 +9574,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.26 + '@types/node': 20.11.30 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -10368,14 +9587,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.26 + '@types/node': 20.11.30 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -10396,18 +9615,11 @@ snapshots: - supports-color - ts-node - '@jest/environment@29.6.2': - dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 18.19.26 - jest-mock: 29.7.0 - '@jest/environment@29.7.0': dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.26 + '@types/node': 20.11.30 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -10421,20 +9633,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/fake-timers@29.6.2': - dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.0.2 - '@types/node': 18.19.26 - jest-message-util: 29.6.2 - jest-mock: 29.7.0 - jest-util: 29.7.0 - '@jest/fake-timers@29.7.0': dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 18.19.26 + '@types/node': 20.11.30 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -10456,7 +9659,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 18.19.26 + '@types/node': 20.11.30 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -10477,10 +9680,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/schemas@29.6.0': - dependencies: - '@sinclair/typebox': 0.27.8 - '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.8 @@ -10525,21 +9724,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/types@29.6.1': - dependencies: - '@jest/schemas': 29.6.0 - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 - '@types/node': 18.19.26 - '@types/yargs': 17.0.24 - chalk: 4.1.2 - '@jest/types@29.6.3': dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/yargs': 17.0.24 chalk: 4.1.2 @@ -10580,7 +9770,7 @@ snapshots: '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.24.1 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -10589,7 +9779,7 @@ snapshots: '@mdx-js/mdx@3.0.1': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdx': 2.0.12 @@ -10871,99 +10061,57 @@ snapshots: '@rollup/pluginutils@5.1.0(rollup@4.24.0)': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: rollup: 4.24.0 - '@rollup/rollup-android-arm-eabi@4.13.1': - optional: true - '@rollup/rollup-android-arm-eabi@4.24.0': optional: true - '@rollup/rollup-android-arm64@4.13.1': - optional: true - '@rollup/rollup-android-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-arm64@4.13.1': - optional: true - '@rollup/rollup-darwin-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-x64@4.13.1': - optional: true - '@rollup/rollup-darwin-x64@4.24.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.13.1': - optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': optional: true '@rollup/rollup-linux-arm-musleabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.13.1': - optional: true - '@rollup/rollup-linux-arm64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.13.1': - optional: true - '@rollup/rollup-linux-arm64-musl@4.24.0': optional: true '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.13.1': - optional: true - '@rollup/rollup-linux-riscv64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.13.1': - optional: true - '@rollup/rollup-linux-s390x-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.13.1': - optional: true - '@rollup/rollup-linux-x64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-musl@4.13.1': - optional: true - '@rollup/rollup-linux-x64-musl@4.24.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.13.1': - optional: true - '@rollup/rollup-win32-arm64-msvc@4.24.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.13.1': - optional: true - '@rollup/rollup-win32-ia32-msvc@4.24.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.13.1': - optional: true - '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true @@ -11016,7 +10164,7 @@ snapshots: '@testing-library/dom@8.17.1': dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.24.2 '@babel/runtime': 7.24.1 '@types/aria-query': 4.2.2 aria-query: 5.3.0 @@ -11028,7 +10176,7 @@ snapshots: '@testing-library/jest-dom@5.17.0': dependencies: '@adobe/css-tools': 4.2.0 - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.24.1 '@types/testing-library__jest-dom': 5.14.5 aria-query: 5.3.0 chalk: 3.0.0 @@ -11039,7 +10187,7 @@ snapshots: '@testing-library/react@13.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.24.1 '@testing-library/dom': 8.17.1 '@types/react-dom': 18.2.7 react: 18.2.0 @@ -11055,7 +10203,7 @@ snapshots: '@types/acorn@4.0.6': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/aria-query@4.2.2': {} @@ -11085,7 +10233,7 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/compression@1.7.5': dependencies: @@ -11093,7 +10241,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/cookie@0.4.1': {} @@ -11103,7 +10251,7 @@ snapshots: '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/debug@4.1.12': dependencies: @@ -11113,15 +10261,13 @@ snapshots: '@types/estree-jsx@1.0.5': dependencies: - '@types/estree': 1.0.5 - - '@types/estree@1.0.5': {} + '@types/estree': 1.0.6 '@types/estree@1.0.6': {} '@types/express-serve-static-core@4.17.43': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/qs': 6.9.14 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -11135,24 +10281,24 @@ snapshots: '@types/fs-extra@8.1.2': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/graceful-fs@4.1.6': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/gunzip-maybe@1.4.2': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/hast@3.0.4': dependencies: - '@types/unist': 2.0.10 + '@types/unist': 3.0.2 '@types/http-errors@2.0.4': {} @@ -11179,27 +10325,25 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/tough-cookie': 4.0.2 parse5: 7.1.2 '@types/jsdom@21.1.1': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/tough-cookie': 4.0.2 parse5: 7.1.2 '@types/jsesc@3.0.3': {} - '@types/json-schema@7.0.11': {} - '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} '@types/jsonfile@6.1.1': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/lambda-tester@3.6.2': dependencies: @@ -11213,7 +10357,7 @@ snapshots: '@types/mdast@4.0.3': dependencies: - '@types/unist': 2.0.10 + '@types/unist': 3.0.2 '@types/mdx@2.0.12': {} @@ -11229,20 +10373,16 @@ snapshots: '@types/morgan@1.9.9': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/ms@0.7.34': {} '@types/node-forge@1.3.11': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/node@12.20.55': {} - '@types/node@18.19.26': - dependencies: - undici-types: 5.26.5 - '@types/node@20.11.30': dependencies: undici-types: 5.26.5 @@ -11279,7 +10419,7 @@ snapshots: '@types/recursive-readdir@2.2.4': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/scheduler@0.16.2': {} @@ -11288,22 +10428,22 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/serve-static@1.15.5': dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/set-cookie-parser@2.4.7': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/shelljs@0.8.15': dependencies: '@types/glob': 7.2.0 - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/source-map-support@0.5.10': dependencies: @@ -11315,7 +10455,7 @@ snapshots: dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/supertest@2.0.16': dependencies: @@ -11323,12 +10463,12 @@ snapshots: '@types/tar-fs@2.0.4': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/tar-stream': 3.1.3 '@types/tar-stream@3.1.3': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/testing-library__jest-dom@5.14.5': dependencies: @@ -11342,7 +10482,7 @@ snapshots: '@types/wait-on@5.3.4': dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 '@types/yargs-parser@21.0.0': {} @@ -11377,7 +10517,7 @@ snapshots: '@typescript-eslint/type-utils': 7.5.0(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/utils': 7.5.0(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/visitor-keys': 7.5.0 - debug: 4.3.4 + debug: 4.3.7 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 @@ -11415,7 +10555,7 @@ snapshots: '@typescript-eslint/types': 7.5.0 '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.4.5) '@typescript-eslint/visitor-keys': 7.5.0 - debug: 4.3.4 + debug: 4.3.7 eslint: 8.57.0 optionalDependencies: typescript: 5.4.5 @@ -11492,7 +10632,7 @@ snapshots: '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.11 + '@types/json-schema': 7.0.15 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 @@ -11581,8 +10721,8 @@ snapshots: dependencies: '@vanilla-extract/integration': 6.5.0(@types/node@20.11.30)(terser@5.15.0) outdent: 0.8.0 - postcss: 8.4.38 - postcss-load-config: 4.0.2(postcss@8.4.38) + postcss: 8.4.49 + postcss-load-config: 4.0.2(postcss@8.4.49) vite: 5.1.3(@types/node@20.11.30)(terser@5.15.0) transitivePeerDependencies: - '@types/node' @@ -11595,6 +10735,24 @@ snapshots: - terser - ts-node + '@vanilla-extract/vite-plugin@3.9.5(@types/node@20.11.30)(vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0))': + dependencies: + '@vanilla-extract/integration': 6.5.0(@types/node@20.11.30)(terser@5.15.0) + outdent: 0.8.0 + postcss: 8.4.49 + postcss-load-config: 4.0.2(postcss@8.4.49) + vite: 6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + - ts-node + '@web3-storage/multipart-parser@1.0.0': {} '@xmldom/xmldom@0.8.10': {} @@ -11689,11 +10847,6 @@ snapshots: dependencies: dequal: 2.0.3 - array-buffer-byte-length@1.0.0: - dependencies: - call-bind: 1.0.2 - is-array-buffer: 3.0.2 - array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 @@ -11730,13 +10883,6 @@ snapshots: es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - array.prototype.flat@1.3.1: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 - array.prototype.flat@1.3.2: dependencies: call-bind: 1.0.7 @@ -11754,9 +10900,9 @@ snapshots: array.prototype.toreversed@1.1.2: dependencies: call-bind: 1.0.7 - define-properties: 1.2.0 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 array.prototype.tosorted@1.1.3: dependencies: @@ -11766,15 +10912,6 @@ snapshots: es-errors: 1.3.0 es-shim-unscopables: 1.0.2 - arraybuffer.prototype.slice@1.0.1: - dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.2 - define-properties: 1.2.0 - get-intrinsic: 1.2.1 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 - arraybuffer.prototype.slice@1.0.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -11804,8 +10941,6 @@ snapshots: asynckit@0.4.0: {} - available-typed-arrays@1.0.5: {} - available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 @@ -11824,15 +10959,6 @@ snapshots: dependencies: dequal: 2.0.3 - babel-dead-code-elimination@1.0.1: - dependencies: - '@babel/core': 7.24.3 - '@babel/parser': 7.24.1 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - transitivePeerDependencies: - - supports-color - babel-dead-code-elimination@1.0.6: dependencies: '@babel/core': 7.24.3 @@ -11842,19 +10968,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-jest@29.7.0(@babel/core@7.22.9): - dependencies: - '@babel/core': 7.22.9 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.22.9) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - babel-jest@29.7.0(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 @@ -11868,9 +10981,9 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-dev-expression@0.2.3(@babel/core@7.22.9): + babel-plugin-dev-expression@0.2.3(@babel/core@7.24.3): dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.24.3 babel-plugin-istanbul@6.1.1: dependencies: @@ -11895,27 +11008,18 @@ snapshots: cosmiconfig: 7.1.0 resolve: 1.22.8 - babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.24.3): - dependencies: - '@babel/compat-data': 7.24.1 - '@babel/core': 7.24.3 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.24.3) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.22.9): + babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.24.3): dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) + '@babel/compat-data': 7.24.1 + '@babel/core': 7.24.3 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.24.3) semver: 6.3.1 transitivePeerDependencies: - supports-color babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.24.3): dependencies: - '@babel/compat-data': 7.22.9 + '@babel/compat-data': 7.24.1 '@babel/core': 7.24.3 '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.24.3) semver: 6.3.1 @@ -11930,14 +11034,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.8.3(@babel/core@7.22.9): - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) - core-js-compat: 3.32.0 - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-corejs3@0.8.3(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 @@ -11953,13 +11049,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.22.9): - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 @@ -11971,22 +11060,6 @@ snapshots: babel-plugin-transform-remove-console@6.9.4: {} - babel-preset-current-node-syntax@1.0.1(@babel/core@7.22.9): - dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.9) - babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 @@ -12003,12 +11076,6 @@ snapshots: '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3) - babel-preset-jest@29.6.3(@babel/core@7.22.9): - dependencies: - '@babel/core': 7.22.9 - babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.9) - babel-preset-jest@29.6.3(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 @@ -12111,13 +11178,6 @@ snapshots: dependencies: pako: 0.2.9 - browserslist@4.21.10: - dependencies: - caniuse-lite: 1.0.30001579 - electron-to-chromium: 1.4.481 - node-releases: 2.0.13 - update-browserslist-db: 1.0.11(browserslist@4.21.10) - browserslist@4.23.0: dependencies: caniuse-lite: 1.0.30001599 @@ -12151,11 +11211,6 @@ snapshots: cac@6.7.14: {} - call-bind@1.0.2: - dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.1 - call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -12178,8 +11233,6 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001579: {} - caniuse-lite@1.0.30001599: {} capnp-ts@0.7.0: @@ -12375,7 +11428,7 @@ snapshots: core-js-compat@3.32.0: dependencies: - browserslist: 4.21.10 + browserslist: 4.23.0 core-util-is@1.0.3: {} @@ -12387,13 +11440,13 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - create-jest@29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0): + create-jest@29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -12509,11 +11562,11 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.4: + debug@4.3.7: dependencies: - ms: 2.1.2 + ms: 2.1.3 - debug@4.3.7: + debug@4.4.0: dependencies: ms: 2.1.3 @@ -12532,10 +11585,6 @@ snapshots: dedent@0.7.0: {} - dedent@1.5.1(babel-plugin-macros@3.1.0): - optionalDependencies: - babel-plugin-macros: 3.1.0 - dedent@1.5.3(babel-plugin-macros@3.1.0): optionalDependencies: babel-plugin-macros: 3.1.0 @@ -12556,11 +11605,6 @@ snapshots: es-errors: 1.3.0 gopd: 1.0.1 - define-properties@1.2.0: - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - define-properties@1.2.1: dependencies: define-data-property: 1.1.4 @@ -12661,8 +11705,6 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.4.481: {} - electron-to-chromium@1.4.714: {} emittery@0.13.1: {} @@ -12694,48 +11736,6 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.22.1: - dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.1 - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.2.1 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.12 - is-weakref: 1.0.2 - object-inspect: 1.12.3 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.0 - safe-array-concat: 1.0.0 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.7 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.11 - es-abstract@1.23.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -12808,28 +11808,18 @@ snapshots: iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 - es-module-lexer@1.5.0: {} + es-module-lexer@1.5.4: {} es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 - es-set-tostringtag@2.0.1: - dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 - has-tostringtag: 1.0.0 - es-set-tostringtag@2.0.3: dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.0.0: - dependencies: - has: 1.0.3 - es-shim-unscopables@1.0.2: dependencies: hasown: 2.0.2 @@ -12842,15 +11832,15 @@ snapshots: esbuild-register@3.5.0(esbuild@0.17.6): dependencies: - debug: 4.3.4 + debug: 4.3.7 esbuild: 0.17.6 transitivePeerDependencies: - supports-color - esbuild-register@3.5.0(esbuild@0.23.1): + esbuild-register@3.5.0(esbuild@0.24.0): dependencies: - debug: 4.3.4 - esbuild: 0.23.1 + debug: 4.3.7 + esbuild: 0.24.0 transitivePeerDependencies: - supports-color @@ -12957,6 +11947,33 @@ snapshots: '@esbuild/win32-ia32': 0.23.1 '@esbuild/win32-x64': 0.23.1 + esbuild@0.24.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.0 + '@esbuild/android-arm': 0.24.0 + '@esbuild/android-arm64': 0.24.0 + '@esbuild/android-x64': 0.24.0 + '@esbuild/darwin-arm64': 0.24.0 + '@esbuild/darwin-x64': 0.24.0 + '@esbuild/freebsd-arm64': 0.24.0 + '@esbuild/freebsd-x64': 0.24.0 + '@esbuild/linux-arm': 0.24.0 + '@esbuild/linux-arm64': 0.24.0 + '@esbuild/linux-ia32': 0.24.0 + '@esbuild/linux-loong64': 0.24.0 + '@esbuild/linux-mips64el': 0.24.0 + '@esbuild/linux-ppc64': 0.24.0 + '@esbuild/linux-riscv64': 0.24.0 + '@esbuild/linux-s390x': 0.24.0 + '@esbuild/linux-x64': 0.24.0 + '@esbuild/netbsd-x64': 0.24.0 + '@esbuild/openbsd-arm64': 0.24.0 + '@esbuild/openbsd-x64': 0.24.0 + '@esbuild/sunos-x64': 0.24.0 + '@esbuild/win32-arm64': 0.24.0 + '@esbuild/win32-ia32': 0.24.0 + '@esbuild/win32-x64': 0.24.0 + escalade@3.1.1: {} escape-html@1.0.3: {} @@ -12977,7 +11994,7 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.22.9))(@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.9))(eslint@8.57.0)(jest@29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0))(typescript@5.4.5): + eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.24.3))(@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.24.3))(eslint@8.57.0)(jest@29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0))(typescript@5.4.5): dependencies: '@babel/core': 7.24.3 '@babel/eslint-parser': 7.24.1(@babel/core@7.24.3)(eslint@8.57.0) @@ -12987,9 +12004,9 @@ snapshots: babel-preset-react-app: 10.0.1 confusing-browser-globals: 1.0.11 eslint: 8.57.0 - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.22.9))(@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.9))(eslint@8.57.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.24.3))(@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.24.3))(eslint@8.57.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(jest@29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0))(typescript@5.4.5) + eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(jest@29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0))(typescript@5.4.5) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) eslint-plugin-react: 7.34.1(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) @@ -13032,10 +12049,10 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.22.9))(@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.9))(eslint@8.57.0): + eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.24.3))(@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.24.3))(eslint@8.57.0): dependencies: - '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.22.9) - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.24.3) + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.24.3) eslint: 8.57.0 lodash: 4.17.21 string-natural-compare: 3.0.1 @@ -13094,24 +12111,24 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(jest@29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0))(typescript@5.4.5): + eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(jest@29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0))(typescript@5.4.5): dependencies: '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) - jest: 29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0) + jest: 29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.5.0(@typescript-eslint/parser@7.5.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(jest@29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0))(typescript@5.4.5): + eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.5.0(@typescript-eslint/parser@7.5.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(jest@29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0))(typescript@5.4.5): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 7.5.0(@typescript-eslint/parser@7.5.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) - jest: 29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0) + jest: 29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0) transitivePeerDependencies: - supports-color - typescript @@ -13140,7 +12157,7 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-plugin-react-hooks@5.1.0-rc-0bc30748-20241028(eslint@8.57.0): + eslint-plugin-react-hooks@5.1.0-rc-1c9b1387-20241204(eslint@8.57.0): dependencies: eslint: 8.57.0 @@ -13201,7 +12218,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.7 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -13253,7 +12270,7 @@ snapshots: estree-util-attach-comments@3.0.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-util-build-jsx@3.0.1: dependencies: @@ -13281,7 +12298,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 esutils@2.0.3: {} @@ -13289,7 +12306,7 @@ snapshots: eval@0.1.8: dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 require-like: 0.1.2 event-target-shim@5.0.1: {} @@ -13510,17 +12527,8 @@ snapshots: fsevents@2.3.3: optional: true - function-bind@1.1.1: {} - function-bind@1.1.2: {} - function.prototype.name@1.1.5: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - functions-have-names: 1.2.3 - function.prototype.name@1.1.6: dependencies: call-bind: 1.0.7 @@ -13534,18 +12542,11 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.2.1: - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-proto: 1.0.1 - has-symbols: 1.0.3 - get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.1 + has-proto: 1.0.3 has-symbols: 1.0.3 hasown: 2.0.2 @@ -13560,11 +12561,6 @@ snapshots: get-stream@6.0.1: {} - get-symbol-description@1.0.0: - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - get-symbol-description@1.0.2: dependencies: call-bind: 1.0.7 @@ -13596,8 +12592,8 @@ snapshots: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 - minimatch: 9.0.3 - minipass: 7.0.4 + minimatch: 9.0.5 + minipass: 7.1.2 path-scurry: 1.10.2 glob@11.0.0: @@ -13634,7 +12630,7 @@ snapshots: globalthis@1.0.3: dependencies: - define-properties: 1.2.0 + define-properties: 1.2.1 globby@10.0.0: dependencies: @@ -13660,7 +12656,7 @@ snapshots: gopd@1.0.1: dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.4 graceful-fs@4.2.11: {} @@ -13687,39 +12683,25 @@ snapshots: has-flag@4.0.0: {} - has-property-descriptors@1.0.0: - dependencies: - get-intrinsic: 1.2.1 - has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.0 - has-proto@1.0.1: {} - has-proto@1.0.3: {} has-symbols@1.0.3: {} - has-tostringtag@1.0.0: - dependencies: - has-symbols: 1.0.3 - has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 - has@1.0.3: - dependencies: - function-bind: 1.1.1 - hasown@2.0.2: dependencies: function-bind: 1.1.2 hast-util-to-estree@3.1.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 @@ -13754,7 +12736,7 @@ snapshots: hast-util-to-jsx-runtime@2.3.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/hast': 3.0.4 '@types/unist': 3.0.2 comma-separated-tokens: 2.0.3 @@ -13782,7 +12764,7 @@ snapshots: history@5.3.0: dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.24.1 hosted-git-info@2.8.9: {} @@ -13901,12 +12883,6 @@ snapshots: through: 2.3.8 wrap-ansi: 6.2.0 - internal-slot@1.0.5: - dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 - side-channel: 1.0.6 - internal-slot@1.0.7: dependencies: es-errors: 1.3.0 @@ -13934,12 +12910,6 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-array-buffer@3.0.2: - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - is-typed-array: 1.1.12 - is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 @@ -13949,7 +12919,7 @@ snapshots: is-async-function@2.0.0: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-bigint@1.0.4: dependencies: @@ -13961,8 +12931,8 @@ snapshots: is-boolean-object@1.1.2: dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 is-buffer@2.0.5: {} @@ -13982,7 +12952,7 @@ snapshots: is-date-object@1.0.5: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-decimal@2.0.1: {} @@ -14002,7 +12972,7 @@ snapshots: is-generator-function@1.0.10: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-glob@4.0.3: dependencies: @@ -14016,15 +12986,13 @@ snapshots: is-map@2.0.3: {} - is-negative-zero@2.0.2: {} - is-negative-zero@2.0.3: {} is-node-process@1.2.0: {} is-number-object@1.0.7: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-number@7.0.0: {} @@ -14046,19 +13014,15 @@ snapshots: is-reference@3.0.2: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 is-regex@1.1.4: dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 is-set@2.0.3: {} - is-shared-array-buffer@1.0.2: - dependencies: - call-bind: 1.0.2 - is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 @@ -14067,7 +13031,7 @@ snapshots: is-string@1.0.7: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-subdir@1.2.0: dependencies: @@ -14077,10 +13041,6 @@ snapshots: dependencies: has-symbols: 1.0.3 - is-typed-array@1.1.12: - dependencies: - which-typed-array: 1.1.11 - is-typed-array@1.1.13: dependencies: which-typed-array: 1.1.15 @@ -14091,7 +13051,7 @@ snapshots: is-weakref@1.0.2: dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 is-weakset@2.0.3: dependencies: @@ -14185,10 +13145,10 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.26 + '@types/node': 20.11.30 chalk: 4.1.2 co: 4.6.0 - dedent: 1.5.1(babel-plugin-macros@3.1.0) + dedent: 1.5.3(babel-plugin-macros@3.1.0) is-generator-fn: 2.1.0 jest-each: 29.7.0 jest-matcher-utils: 29.7.0 @@ -14205,16 +13165,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0): + jest-cli@29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0) + create-jest: 29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -14224,7 +13184,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0): + jest-config@29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0): dependencies: '@babel/core': 7.24.3 '@jest/test-sequencer': 29.7.0 @@ -14249,7 +13209,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -14275,13 +13235,13 @@ snapshots: jest-environment-jsdom@29.6.2: dependencies: - '@jest/environment': 29.6.2 - '@jest/fake-timers': 29.6.2 - '@jest/types': 29.6.1 + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 18.19.26 - jest-mock: 29.6.2 - jest-util: 29.6.2 + '@types/node': 20.11.30 + jest-mock: 29.7.0 + jest-util: 29.7.0 jsdom: 22.1.0 transitivePeerDependencies: - bufferutil @@ -14293,7 +13253,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.26 + '@types/node': 20.11.30 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -14303,7 +13263,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.6 - '@types/node': 18.19.26 + '@types/node': 20.11.30 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -14327,18 +13287,6 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 - jest-message-util@29.6.2: - dependencies: - '@babel/code-frame': 7.24.2 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.5 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.6 - jest-message-util@29.7.0: dependencies: '@babel/code-frame': 7.24.2 @@ -14351,16 +13299,10 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 - jest-mock@29.6.2: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 18.19.26 - jest-util: 29.7.0 - jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.26 + '@types/node': 20.11.30 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -14395,7 +13337,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.26 + '@types/node': 20.11.30 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -14423,7 +13365,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.26 + '@types/node': 20.11.30 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -14466,19 +13408,10 @@ snapshots: transitivePeerDependencies: - supports-color - jest-util@29.6.2: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 18.19.26 - chalk: 4.1.2 - ci-info: 3.8.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.26 + '@types/node': 20.11.30 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -14497,7 +13430,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.26 + '@types/node': 20.11.30 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -14506,17 +13439,17 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0): + jest@29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@18.19.26)(babel-plugin-macros@3.1.0) + jest-cli: 29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -15094,7 +14027,7 @@ snapshots: micromark-extension-mdx-expression@3.0.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 devlop: 1.1.0 micromark-factory-mdx-expression: 2.0.1 micromark-factory-space: 2.0.0 @@ -15106,7 +14039,7 @@ snapshots: micromark-extension-mdx-jsx@3.0.0: dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 micromark-factory-mdx-expression: 2.0.1 @@ -15122,7 +14055,7 @@ snapshots: micromark-extension-mdxjs-esm@3.0.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 devlop: 1.1.0 micromark-core-commonmark: 2.0.0 micromark-util-character: 2.1.0 @@ -15171,7 +14104,7 @@ snapshots: micromark-factory-mdx-expression@2.0.1: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 devlop: 1.1.0 micromark-util-character: 2.1.0 micromark-util-events-to-acorn: 2.0.2 @@ -15287,7 +14220,7 @@ snapshots: micromark-util-events-to-acorn@2.0.2: dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/unist': 3.0.2 devlop: 1.1.0 estree-util-visit: 2.0.0 @@ -15461,8 +14394,6 @@ snapshots: minimist@1.2.8: {} - minipass@7.0.4: {} - minipass@7.1.2: {} mixme@0.5.4: {} @@ -15494,8 +14425,6 @@ snapshots: ms@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} msw@1.3.5(typescript@5.4.5): @@ -15572,8 +14501,6 @@ snapshots: range-parser: 1.2.1 type-is: 1.6.18 - node-releases@2.0.13: {} - node-releases@2.0.14: {} node-webtokens@1.0.4: {} @@ -15640,19 +14567,10 @@ snapshots: object-hash@3.0.0: {} - object-inspect@1.12.3: {} - object-inspect@1.13.1: {} object-keys@1.1.1: {} - object.assign@4.1.4: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - has-symbols: 1.0.3 - object-keys: 1.1.1 - object.assign@4.1.5: dependencies: call-bind: 1.0.7 @@ -15843,7 +14761,7 @@ snapshots: path-scurry@1.10.2: dependencies: lru-cache: 10.2.0 - minipass: 7.0.4 + minipass: 7.1.2 path-scurry@2.0.0: dependencies: @@ -15852,8 +14770,6 @@ snapshots: path-to-regexp@0.1.7: {} - path-to-regexp@6.2.2: {} - path-to-regexp@6.3.0: {} path-type@3.0.0: @@ -15872,14 +14788,10 @@ snapshots: periscopic@3.1.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 3.0.3 is-reference: 3.0.2 - picocolors@1.0.0: {} - - picocolors@1.1.0: {} - picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -15916,36 +14828,36 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.38): + postcss-import@15.1.0(postcss@8.4.49): dependencies: - postcss: 8.4.38 + postcss: 8.4.49 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.38): + postcss-js@4.0.1(postcss@8.4.49): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.38 + postcss: 8.4.49 - postcss-load-config@4.0.2(postcss@8.4.38): + postcss-load-config@4.0.2(postcss@8.4.49): dependencies: lilconfig: 3.1.1 - yaml: 2.4.1 + yaml: 2.6.0 optionalDependencies: - postcss: 8.4.38 + postcss: 8.4.49 - postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.38)(yaml@2.6.0): + postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.49)(yaml@2.6.0): dependencies: lilconfig: 3.1.1 optionalDependencies: jiti: 1.21.0 - postcss: 8.4.38 + postcss: 8.4.49 yaml: 2.6.0 - postcss-nested@6.0.1(postcss@8.4.38): + postcss-nested@6.0.1(postcss@8.4.49): dependencies: - postcss: 8.4.38 + postcss: 8.4.49 postcss-selector-parser: 6.0.16 postcss-selector-parser@6.0.16: @@ -15955,11 +14867,11 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@8.4.38: + postcss@8.4.49: dependencies: nanoid: 3.3.7 picocolors: 1.1.1 - source-map-js: 1.2.0 + source-map-js: 1.2.1 preferred-pm@3.0.3: dependencies: @@ -16203,8 +15115,6 @@ snapshots: regenerate@1.4.2: {} - regenerator-runtime@0.13.11: {} - regenerator-runtime@0.14.1: {} regenerator-transform@0.15.1: @@ -16213,12 +15123,6 @@ snapshots: regex@4.4.0: {} - regexp.prototype.flags@1.5.0: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 - regexp.prototype.flags@1.5.2: dependencies: call-bind: 1.0.7 @@ -16355,26 +15259,6 @@ snapshots: dependencies: estree-walker: 0.6.1 - rollup@4.13.1: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.13.1 - '@rollup/rollup-android-arm64': 4.13.1 - '@rollup/rollup-darwin-arm64': 4.13.1 - '@rollup/rollup-darwin-x64': 4.13.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.13.1 - '@rollup/rollup-linux-arm64-gnu': 4.13.1 - '@rollup/rollup-linux-arm64-musl': 4.13.1 - '@rollup/rollup-linux-riscv64-gnu': 4.13.1 - '@rollup/rollup-linux-s390x-gnu': 4.13.1 - '@rollup/rollup-linux-x64-gnu': 4.13.1 - '@rollup/rollup-linux-x64-musl': 4.13.1 - '@rollup/rollup-win32-arm64-msvc': 4.13.1 - '@rollup/rollup-win32-ia32-msvc': 4.13.1 - '@rollup/rollup-win32-x64-msvc': 4.13.1 - fsevents: 2.3.3 - rollup@4.24.0: dependencies: '@types/estree': 1.0.6 @@ -16415,13 +15299,6 @@ snapshots: dependencies: mri: 1.2.0 - safe-array-concat@1.0.0: - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - has-symbols: 1.0.3 - isarray: 2.0.5 - safe-array-concat@1.1.2: dependencies: call-bind: 1.0.7 @@ -16433,12 +15310,6 @@ snapshots: safe-buffer@5.2.1: {} - safe-regex-test@1.0.0: - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - is-regex: 1.1.4 - safe-regex-test@1.0.3: dependencies: call-bind: 1.0.7 @@ -16578,7 +15449,7 @@ snapshots: smartwrap@2.0.2: dependencies: - array.prototype.flat: 1.3.1 + array.prototype.flat: 1.3.2 breakword: 1.0.5 grapheme-splitter: 1.0.4 strip-ansi: 6.0.1 @@ -16609,7 +15480,7 @@ snapshots: is-plain-obj: 2.1.0 sort-object-keys: 1.1.3 - source-map-js@1.2.0: {} + source-map-js@1.2.1: {} source-map-support@0.5.13: dependencies: @@ -16724,12 +15595,6 @@ snapshots: es-abstract: 1.23.3 es-object-atoms: 1.0.0 - string.prototype.trim@1.2.7: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 @@ -16737,24 +15602,12 @@ snapshots: es-abstract: 1.23.3 es-object-atoms: 1.0.0 - string.prototype.trimend@1.0.6: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - string.prototype.trimend@1.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - string.prototype.trimstart@1.0.6: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.7 @@ -16812,7 +15665,7 @@ snapshots: dependencies: component-emitter: 1.3.0 cookiejar: 2.1.4 - debug: 4.3.4 + debug: 4.3.7 fast-safe-stringify: 2.1.1 form-data: 4.0.0 formidable: 2.1.2 @@ -16861,12 +15714,12 @@ snapshots: micromatch: 4.0.5 normalize-path: 3.0.0 object-hash: 3.0.0 - picocolors: 1.0.0 - postcss: 8.4.38 - postcss-import: 15.1.0(postcss@8.4.38) - postcss-js: 4.0.1(postcss@8.4.38) - postcss-load-config: 4.0.2(postcss@8.4.38) - postcss-nested: 6.0.1(postcss@8.4.38) + picocolors: 1.1.1 + postcss: 8.4.49 + postcss-import: 15.1.0(postcss@8.4.49) + postcss-js: 4.0.1(postcss@8.4.49) + postcss-load-config: 4.0.2(postcss@8.4.49) + postcss-nested: 6.0.1(postcss@8.4.49) postcss-selector-parser: 6.0.16 resolve: 1.22.8 sucrase: 3.35.0 @@ -16973,10 +15826,6 @@ snapshots: ts-interface-checker@0.1.13: {} - tsconfck@3.0.3(typescript@5.1.6): - optionalDependencies: - typescript: 5.1.6 - tsconfck@3.0.3(typescript@5.4.5): optionalDependencies: typescript: 5.4.5 @@ -16994,7 +15843,7 @@ snapshots: tsscmp@1.0.6: {} - tsup@8.3.0(jiti@1.21.0)(postcss@8.4.38)(typescript@5.4.5)(yaml@2.6.0): + tsup@8.3.0(jiti@1.21.0)(postcss@8.4.49)(typescript@5.4.5)(yaml@2.6.0): dependencies: bundle-require: 5.0.0(esbuild@0.23.1) cac: 6.7.14 @@ -17004,8 +15853,8 @@ snapshots: esbuild: 0.23.1 execa: 5.1.1 joycon: 3.1.1 - picocolors: 1.1.0 - postcss-load-config: 6.0.1(jiti@1.21.0)(postcss@8.4.38)(yaml@2.6.0) + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@1.21.0)(postcss@8.4.49)(yaml@2.6.0) resolve-from: 5.0.0 rollup: 4.24.0 source-map: 0.8.0-beta.0 @@ -17013,7 +15862,7 @@ snapshots: tinyglobby: 0.2.9 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.4.38 + postcss: 8.4.49 typescript: 5.4.5 transitivePeerDependencies: - jiti @@ -17065,25 +15914,12 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 - typed-array-buffer@1.0.0: - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - is-typed-array: 1.1.12 - typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-typed-array: 1.1.13 - typed-array-byte-length@1.0.0: - dependencies: - call-bind: 1.0.2 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - typed-array-byte-length@1.0.1: dependencies: call-bind: 1.0.7 @@ -17092,14 +15928,6 @@ snapshots: has-proto: 1.0.3 is-typed-array: 1.1.13 - typed-array-byte-offset@1.0.0: - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - typed-array-byte-offset@1.0.2: dependencies: available-typed-arrays: 1.0.7 @@ -17109,12 +15937,6 @@ snapshots: has-proto: 1.0.3 is-typed-array: 1.1.13 - typed-array-length@1.0.4: - dependencies: - call-bind: 1.0.2 - for-each: 0.3.3 - is-typed-array: 1.1.12 - typed-array-length@1.0.6: dependencies: call-bind: 1.0.7 @@ -17133,8 +15955,6 @@ snapshots: typescript: 5.4.5 yaml: 2.6.0 - typescript@5.1.6: {} - typescript@5.4.5: {} uc.micro@2.1.0: {} @@ -17147,7 +15967,7 @@ snapshots: unbox-primitive@1.0.2: dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -17158,10 +15978,6 @@ snapshots: dependencies: '@fastify/busboy': 2.1.1 - undici@6.10.1: {} - - undici@6.19.2: {} - undici@6.20.1: {} unenv-nightly@1.10.0-1717606461.a117952: @@ -17271,12 +16087,6 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.0.11(browserslist@4.21.10): - dependencies: - browserslist: 4.21.10 - escalade: 3.1.1 - picocolors: 1.1.1 - update-browserslist-db@1.0.13(browserslist@4.23.0): dependencies: browserslist: 4.23.0 @@ -17361,39 +16171,39 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-env-only@3.0.1(vite@5.1.3(@types/node@18.19.26)(terser@5.15.0)): + vite-env-only@3.0.1(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)): dependencies: '@babel/core': 7.24.3 '@babel/generator': 7.24.1 '@babel/parser': 7.24.1 '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 - babel-dead-code-elimination: 1.0.1 + babel-dead-code-elimination: 1.0.6 micromatch: 4.0.5 - vite: 5.1.3(@types/node@18.19.26)(terser@5.15.0) + vite: 5.1.3(@types/node@20.11.30)(terser@5.15.0) transitivePeerDependencies: - supports-color - vite-env-only@3.0.1(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)): + vite-env-only@3.0.1(vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0)): dependencies: '@babel/core': 7.24.3 '@babel/generator': 7.24.1 '@babel/parser': 7.24.1 '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 - babel-dead-code-elimination: 1.0.1 + babel-dead-code-elimination: 1.0.6 micromatch: 4.0.5 - vite: 5.1.3(@types/node@20.11.30)(terser@5.15.0) + vite: 6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0) transitivePeerDependencies: - supports-color - vite-node@1.6.0(@types/node@18.19.26)(terser@5.15.0): + vite-node@1.6.0(@types/node@20.11.30)(terser@5.15.0): dependencies: cac: 6.7.14 - debug: 4.3.4 + debug: 4.3.7 pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.1.3(@types/node@18.19.26)(terser@5.15.0) + vite: 5.1.3(@types/node@20.11.30)(terser@5.15.0) transitivePeerDependencies: - '@types/node' - less @@ -17404,75 +16214,69 @@ snapshots: - supports-color - terser - vite-node@1.6.0(@types/node@20.11.30)(terser@5.15.0): + vite-node@3.0.0-beta.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0): dependencies: cac: 6.7.14 - debug: 4.3.4 + debug: 4.4.0 + es-module-lexer: 1.5.4 pathe: 1.1.2 - picocolors: 1.1.1 - vite: 5.1.3(@types/node@20.11.30)(terser@5.15.0) + vite: 6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0) transitivePeerDependencies: - '@types/node' + - jiti - less - lightningcss - sass + - sass-embedded - stylus - sugarss - supports-color - terser + - tsx + - yaml - vite-tsconfig-paths@4.3.2(typescript@5.1.6)(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)): - dependencies: - debug: 4.3.4 - globrex: 0.1.2 - tsconfck: 3.0.3(typescript@5.1.6) - optionalDependencies: - vite: 5.1.3(@types/node@20.11.30)(terser@5.15.0) - transitivePeerDependencies: - - supports-color - - typescript - - vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@18.19.26)(terser@5.15.0)): + vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)): dependencies: - debug: 4.3.4 + debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.4.5) optionalDependencies: - vite: 5.1.3(@types/node@18.19.26)(terser@5.15.0) + vite: 5.1.3(@types/node@20.11.30)(terser@5.15.0) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@20.11.30)(terser@5.15.0)): + vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0)): dependencies: - debug: 4.3.4 + debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.4.5) optionalDependencies: - vite: 5.1.3(@types/node@20.11.30)(terser@5.15.0) + vite: 6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0) transitivePeerDependencies: - supports-color - typescript - vite@5.1.3(@types/node@18.19.26)(terser@5.15.0): + vite@5.1.3(@types/node@20.11.30)(terser@5.15.0): dependencies: esbuild: 0.19.12 - postcss: 8.4.38 - rollup: 4.13.1 + postcss: 8.4.49 + rollup: 4.24.0 optionalDependencies: - '@types/node': 18.19.26 + '@types/node': 20.11.30 fsevents: 2.3.3 terser: 5.15.0 - vite@5.1.3(@types/node@20.11.30)(terser@5.15.0): + vite@6.0.2(@types/node@20.11.30)(jiti@1.21.0)(yaml@2.6.0): dependencies: - esbuild: 0.19.12 - postcss: 8.4.38 - rollup: 4.13.1 + esbuild: 0.24.0 + postcss: 8.4.49 + rollup: 4.24.0 optionalDependencies: '@types/node': 20.11.30 fsevents: 2.3.3 - terser: 5.15.0 + jiti: 1.21.0 + yaml: 2.6.0 w3c-xmlserializer@4.0.0: dependencies: @@ -17548,8 +16352,8 @@ snapshots: which-builtin-type@1.1.3: dependencies: - function.prototype.name: 1.1.5 - has-tostringtag: 1.0.0 + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 is-async-function: 2.0.0 is-date-object: 1.0.5 is-finalizationregistry: 1.0.2 @@ -17559,7 +16363,7 @@ snapshots: isarray: 2.0.5 which-boxed-primitive: 1.0.2 which-collection: 1.0.2 - which-typed-array: 1.1.11 + which-typed-array: 1.1.15 which-collection@1.0.2: dependencies: @@ -17575,14 +16379,6 @@ snapshots: load-yaml-file: 0.2.0 path-exists: 4.0.0 - which-typed-array@1.1.11: - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - which-typed-array@1.1.15: dependencies: available-typed-arrays: 1.0.7 @@ -17630,7 +16426,7 @@ snapshots: esbuild: 0.17.19 miniflare: 3.20240701.0 nanoid: 3.3.7 - path-to-regexp: 6.2.2 + path-to-regexp: 6.3.0 resolve: 1.22.8 resolve.exports: 2.0.2 selfsigned: 2.4.1 @@ -17692,8 +16488,6 @@ snapshots: yaml@1.10.2: {} - yaml@2.4.1: {} - yaml@2.6.0: {} yargs-parser@18.1.3: From 99e5a74a008d7c057b0c2288d4b84ab7ba6e899b Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 18 Dec 2024 10:51:54 -0500 Subject: [PATCH 18/31] Update DEVELOPMENT.md --- DEVELOPMENT.md | 56 ++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 6c08ccc786..cc737ba1dd 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -2,26 +2,34 @@ ## Releases -New releases should be created from release branches originating from the `dev` branch. When you are ready to begin the release process: +New 7.x releases should be created from release branches originating from the `dev` branch. If you are doing a 6.x release, please see the [v6 section](#v6-releases) below. + +When you are ready to begin the release process: - Make sure you've pulled all the changes from GitHub for both `dev` and `main` branches + - `git checkout main && git pull origin main` + - `git checkout dev && git pull origin dev` - Check out the `dev` branch -- Create a new `release-next` branch (eg, `git checkout -b release-next`) + - `git checkout dev` +- Create a new `release-next` branch + - `git checkout -b release-next` - Technically, any `release-*` branch name will work as this is what triggers our GitHub CI workflow that will ultimately publish the release - but we just always use `release-next` - - We are using `release-v6` for [ongoing v6 releases](#6x-releases-from-the-v6-branch) -- Merge `main` into the release branch + - We are using `release-v6` for [ongoing v6 releases](#v6-releases) +- Merge `main` into the `release-next` branch + - `git merge --no-ff main` Changesets will do most of the heavy lifting for our releases. When changes are made to the codebase, an accompanying changeset file should be included to document the change. Those files will dictate how Changesets will version our packages and what shows up in the changelogs. ### Starting a new pre-release - Ensure you are on the new `release-next` branch + - `git checkout release-next` - Enter Changesets pre-release mode using the `pre` tag: - `pnpm changeset pre enter pre` - Commit the change and push the `release-next` branch to GitHub - `git commit -a -m "Enter prerelease mode"` - `git push --set-upstream origin release-next` -- Wait for the release workflow to finish - the Changesets action will open a PR that will increment all versions and generate the changelogs +- Wait for the changesets CI workflow to finish which will open a PR pointed to `release-next` that will increment all versions and generate the changelogs - If you need/want to make any changes to the `CHANGELOG.md` files, you can do so and commit directly to the PR branch - This is usually not required for prereleases - Once the changesets files are in good shape, merge the PR to `release-next` @@ -30,7 +38,7 @@ Changesets will do most of the heavy lifting for our releases. When changes are ### Prepare the draft release notes - At this point, you can begin crafting the release notes for the eventual stable release in the root `CHANGELOG.md` file in the repo - - Copy the template for a new release and update the version numbers and links accordingly + - Copy the commented out template for a new release and update the version numbers and links accordingly - Copy the relevant changelog entries from all packages into the release notes and adjust accordingly - `find packages -name 'CHANGELOG.md' -mindepth 2 -maxdepth 2 -exec code {} \;` - Commit these changes directly to the `release-next` branch - they will not trigger a new prerelease since they do not include a changeset @@ -82,23 +90,25 @@ You may need to make changes to a pre-release prior to publishing a final stable Hotfix releases follow the same process as standard releases above, but the `release-next` branch should be branched off latest `main` instead of `dev`. Once the stable hotfix is published, the `release-next` branch should be merged back into both `main` and `dev` just like a normal release. -### 6.x releases from the `v6` branch +### v6 releases -After the `6.25.0` release, we branched off a `v6` branch for continued `6.x` work and merged the `v7` branch into `dev` to begin preparation for the `7.0.0` release. Until we launch `7.0.0`, we need to `6.x` releases in a slightly different manner. +6.x releases are managed in a similar process to the above but from the `v6` branch, and they do not automatically merge changes back to `dev`/`main`. - Changes for 6.x should be PR'd to the `v6` branch with a changeset -- Once merged, cherry-pick or re-do those changes against the `dev` branch so that they show up in v7 - - This does not apply to things like adding deprecation warnings that should not land in v7 - - You should not include a changeset in your commit to `dev` -- Starting the release process for 6.x is the same as outlined above, with a few changes: +- If these changes should also be applied to v7, cherry-pick or re-do those changes against the `dev` branch (including the changeset). These changes will make it to `main` with the next v7 release. +- Starting the release process for 6.x is the same as outlined above, with a few exceptioins: - Branch from `v6` instead of `dev` - - Use the name `release-v6` to avoid collisions with the ongoing v7 (pre)releases using `release-next` - - **Do not** merge `main` into the `release-v6` branch -- The process of the PRs and iterating on prereleases remains the same + - Use `release-v6` instead of `release-next` + - Do **not** merge `main` into `release-v6` +- Steps: + - `git checkout v6 && git pull origin v6` + - `git checkout -b release-v6` + - `pnpm changeset pre enter pre` + - The process of the PRs and iterating on prereleases remains the same - Once the stable release is out: - Merge `release-v6` back to `v6` with a **Normal Merge** - **Do not** merge `release-v6` to `main` - - Copy the updated root `CHANGELOG.md` entry for the `6.X.Y` release to `main` and `dev` + - Copy the updated root `CHANGELOG.md` entries for the `6.X.Y` release to `main` and `dev` - `git checkout main` - `git diff react-router@6.X.Y...react-router@6.X.Y -- "***CHANGELOG.md" > ./docs.patch` - `git apply ./docs.patch` @@ -112,19 +122,7 @@ After the `6.25.0` release, we branched off a `v6` branch for continued `6.x` wo - `rm ./docs.patch` - The _code_ changes should already be in the `dev` branch - This should have happened at the time the v6 change was made (except for changes such as deprecation warnings) - - Confirm that the commits in this release are all included in `dev` already: - - I.e., https://github.com/remix-run/react-router/compare/react-router@6.26.1...react-router@6.26.2 - - If one or more are not, then you can manually bring them over by cherry-picking the commit (or re-doing the work) - - You should not include a changelog in your commit to `dev` - - Copy the updated changelogs from `release-next` over to `dev` so the changelogs continue to reflect this new 6x release into the v7 releases - -### Notes on 7.0.0-pre.N released during the v7 prerelease - -During the v7 prerelease, the process for iterating and shipping a new `7.0.0-pre.N` release is slightly more streamlined than the steps outlined [above](#iterating-a-pre-release). Because we want _everything_ in `dev` to ship in the prerelease, cutting a new prerelease is simply: - -- Merge `dev` -> `release-next` -- This will include the changesets for changes committed to `dev` since the last prerelease -- This will automatically open a new Changesets PR for the new prerelease version + - Confirm that the commits in this release are all included in `dev` already, and if not you can manually bring them over by cherry-picking the commit or re-doing the work ### Experimental releases From 540626be5b463b75455da4215bf2fdb8655e6757 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Wed, 18 Dec 2024 10:53:32 -0500 Subject: [PATCH 19/31] docs: improve template instructions in installation docs (#12572) * thomasgauvin: add templates to installation docs * Update docs/start/framework/installation.md * thomasgauvin: make the options easier to see and reduce duplicate commands * Update contributors.yml * Move and consolidate updates * Remove duplicate section * Add deploy to the language --------- Co-authored-by: Brooks Lybrand --- contributors.yml | 1 + docs/start/framework/installation.md | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/contributors.yml b/contributors.yml index 441271bea7..3bfe3f17f8 100644 --- a/contributors.yml +++ b/contributors.yml @@ -272,6 +272,7 @@ - thepedroferrari - thethmuu - thisiskartik +- thomasgauvin - thomasverleye - ThornWu - tiborbarsi diff --git a/docs/start/framework/installation.md b/docs/start/framework/installation.md index d086417d1b..190a3103eb 100644 --- a/docs/start/framework/installation.md +++ b/docs/start/framework/installation.md @@ -23,7 +23,11 @@ You can now open your browser to `http://localhost:5173` You can [view the template on GitHub][default-template] to see how to manually set up your project. -To get started with a template that deploys to your preferred host, check out [all of our templates](https://github.com/remix-run/react-router-templates). +We also have a number of [ready to deploy templates][react-router-templates] available for you to get started with: + +```shellscript nonumber +npx create-react-router@latest --template remix-run/react-router-templates/ +``` --- @@ -31,3 +35,4 @@ Next: [Routing](./routing) [manual_usage]: ../how-to/manual-usage [default-template]: https://github.com/remix-run/react-router-templates/tree/main/default +[react-router-templates]: https://github.com/remix-run/react-router-templates From 2abe5f5e9931a44981d5b537803ce02172f6752c Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 18 Dec 2024 14:09:27 -0500 Subject: [PATCH 20/31] Fix changesets patch to ignore peerDependency bumps for fixed RR packages --- package.json | 2 +- ... @changesets__assemble-release-plan.patch} | 33 +++++++++++++++---- pnpm-lock.yaml | 12 +++---- 3 files changed, 34 insertions(+), 13 deletions(-) rename patches/{@changesets__assemble-release-plan@5.2.4.patch => @changesets__assemble-release-plan.patch} (74%) diff --git a/package.json b/package.json index 6c46983910..cc318eb189 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,7 @@ "pnpm": { "patchedDependencies": { "@changesets/get-dependents-graph@1.3.6": "patches/@changesets__get-dependents-graph@1.3.6.patch", - "@changesets/assemble-release-plan@5.2.4": "patches/@changesets__assemble-release-plan@5.2.4.patch" + "@changesets/assemble-release-plan": "patches/@changesets__assemble-release-plan.patch" }, "overrides": { "workerd": "1.20240614.0" diff --git a/patches/@changesets__assemble-release-plan@5.2.4.patch b/patches/@changesets__assemble-release-plan.patch similarity index 74% rename from patches/@changesets__assemble-release-plan@5.2.4.patch rename to patches/@changesets__assemble-release-plan.patch index dae69c7198..1b35f71281 100644 --- a/patches/@changesets__assemble-release-plan@5.2.4.patch +++ b/patches/@changesets__assemble-release-plan.patch @@ -1,38 +1,59 @@ diff --git a/dist/assemble-release-plan.cjs.dev.js b/dist/assemble-release-plan.cjs.dev.js -index e1376ca756d69816f8c79637ee7b45161f092167..d9dc4c17cc90bc31794956a603f0baf6c5fee0d9 100644 +index e1376ca756d69816f8c79637ee7b45161f092167..314c42e8c39a34dacc3ed0c10bc7e62ca46de7d3 100644 --- a/dist/assemble-release-plan.cjs.dev.js +++ b/dist/assemble-release-plan.cjs.dev.js -@@ -257,7 +257,7 @@ function shouldBumpMajor({ +@@ -254,10 +254,16 @@ function shouldBumpMajor({ + preInfo, + onlyUpdatePeerDependentsWhenOutOfRange + }) { ++ // PATCH: Don't do peerDependency-driven major bumps because we release in lock step ++ if (nextRelease.name === "react-router" || nextRelease.name.startsWith('@react-router/')) { ++ return false; ++ } ++ // we check if it is a peerDependency because if it is, our dependent bump type might need to be major. return depType === "peerDependencies" && nextRelease.type !== "none" && nextRelease.type !== "patch" && ( // 1. If onlyUpdatePeerDependentsWhenOutOfRange set to true, bump major if the version is leaving the range. // 2. If onlyUpdatePeerDependentsWhenOutOfRange set to false, bump major regardless whether or not the version is leaving the range. - !onlyUpdatePeerDependentsWhenOutOfRange || !semverSatisfies__default['default'](incrementVersion(nextRelease, preInfo), versionRange)) && ( // bump major only if the dependent doesn't already has a major release. ++ // PATCH: pass includePrerelease to incrementVersion() + !onlyUpdatePeerDependentsWhenOutOfRange || !semverSatisfies__default['default'](incrementVersion(nextRelease, preInfo), versionRange, { includePrerelease: true })) && ( // bump major only if the dependent doesn't already has a major release. !releases.has(dependent) || releases.has(dependent) && releases.get(dependent).type !== "major"); } diff --git a/dist/assemble-release-plan.cjs.prod.js b/dist/assemble-release-plan.cjs.prod.js -index 3a83720644a94cdf6e62fa188a72c51c0384d00e..b3ce3ce688c16cafe92fc16569a7850ea644b904 100644 +index 3a83720644a94cdf6e62fa188a72c51c0384d00e..273f6bb9b46cf166f9d72058e524b4f3cbc05957 100644 --- a/dist/assemble-release-plan.cjs.prod.js +++ b/dist/assemble-release-plan.cjs.prod.js -@@ -130,7 +130,7 @@ function getDependencyVersionRanges(dependentPkgJSON, dependencyRelease) { +@@ -130,7 +130,10 @@ function getDependencyVersionRanges(dependentPkgJSON, dependencyRelease) { } function shouldBumpMajor({dependent: dependent, depType: depType, versionRange: versionRange, releases: releases, nextRelease: nextRelease, preInfo: preInfo, onlyUpdatePeerDependentsWhenOutOfRange: onlyUpdatePeerDependentsWhenOutOfRange}) { - return "peerDependencies" === depType && "none" !== nextRelease.type && "patch" !== nextRelease.type && (!onlyUpdatePeerDependentsWhenOutOfRange || !semverSatisfies__default.default(incrementVersion(nextRelease, preInfo), versionRange)) && (!releases.has(dependent) || releases.has(dependent) && "major" !== releases.get(dependent).type); ++ if (nextRelease.name === "react-router" || nextRelease.name.startsWith('@react-router/')) { ++ return false; ++ } + return "peerDependencies" === depType && "none" !== nextRelease.type && "patch" !== nextRelease.type && (!onlyUpdatePeerDependentsWhenOutOfRange || !semverSatisfies__default.default(incrementVersion(nextRelease, preInfo), versionRange, { includePrerelease: true })) && (!releases.has(dependent) || releases.has(dependent) && "major" !== releases.get(dependent).type); } function flattenReleases(changesets, packagesByName, ignoredPackages) { diff --git a/dist/assemble-release-plan.esm.js b/dist/assemble-release-plan.esm.js -index 62891eb5dee97a33e6587514267c3cde5b314830..d183129242ce8582ce2e7a40d507b46f51583427 100644 +index 62891eb5dee97a33e6587514267c3cde5b314830..9a70c1ac86f530dc0cb3857d202675ed23d694b5 100644 --- a/dist/assemble-release-plan.esm.js +++ b/dist/assemble-release-plan.esm.js -@@ -246,7 +246,7 @@ function shouldBumpMajor({ +@@ -243,10 +243,16 @@ function shouldBumpMajor({ + preInfo, + onlyUpdatePeerDependentsWhenOutOfRange + }) { ++ // PATCH: Don't do peerDependency-driven major bumps because we release in lock step ++ if (nextRelease.name === "react-router" || nextRelease.name.startsWith('@react-router/')) { ++ return false; ++ } ++ // we check if it is a peerDependency because if it is, our dependent bump type might need to be major. return depType === "peerDependencies" && nextRelease.type !== "none" && nextRelease.type !== "patch" && ( // 1. If onlyUpdatePeerDependentsWhenOutOfRange set to true, bump major if the version is leaving the range. // 2. If onlyUpdatePeerDependentsWhenOutOfRange set to false, bump major regardless whether or not the version is leaving the range. - !onlyUpdatePeerDependentsWhenOutOfRange || !semverSatisfies(incrementVersion(nextRelease, preInfo), versionRange)) && ( // bump major only if the dependent doesn't already has a major release. ++ // PATCH: pass includePrerelease to incrementVersion() + !onlyUpdatePeerDependentsWhenOutOfRange || !semverSatisfies(incrementVersion(nextRelease, preInfo), versionRange, { includePrerelease: true })) && ( // bump major only if the dependent doesn't already has a major release. !releases.has(dependent) || releases.has(dependent) && releases.get(dependent).type !== "major"); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a85a9e9eb7..f31a6d0a27 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,9 +11,9 @@ overrides: workerd: 1.20240614.0 patchedDependencies: - '@changesets/assemble-release-plan@5.2.4': - hash: xlpxbvc6gfcmwbnthfqwsopnoi - path: patches/@changesets__assemble-release-plan@5.2.4.patch + '@changesets/assemble-release-plan': + hash: ismjcgzyajdphoz3q5q3incsia + path: patches/@changesets__assemble-release-plan.patch '@changesets/get-dependents-graph@1.3.6': hash: arforfmj6nw2w4znv7h66rwf5y path: patches/@changesets__get-dependents-graph@1.3.6.patch @@ -8985,7 +8985,7 @@ snapshots: resolve-from: 5.0.0 semver: 7.5.4 - '@changesets/assemble-release-plan@5.2.4(patch_hash=xlpxbvc6gfcmwbnthfqwsopnoi)': + '@changesets/assemble-release-plan@5.2.4(patch_hash=ismjcgzyajdphoz3q5q3incsia)': dependencies: '@babel/runtime': 7.24.1 '@changesets/errors': 0.1.4 @@ -9002,7 +9002,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.1 '@changesets/apply-release-plan': 6.1.4 - '@changesets/assemble-release-plan': 5.2.4(patch_hash=xlpxbvc6gfcmwbnthfqwsopnoi) + '@changesets/assemble-release-plan': 5.2.4(patch_hash=ismjcgzyajdphoz3q5q3incsia) '@changesets/changelog-git': 0.1.14 '@changesets/config': 2.3.1 '@changesets/errors': 0.1.4 @@ -9066,7 +9066,7 @@ snapshots: '@changesets/get-release-plan@3.0.17': dependencies: '@babel/runtime': 7.24.1 - '@changesets/assemble-release-plan': 5.2.4(patch_hash=xlpxbvc6gfcmwbnthfqwsopnoi) + '@changesets/assemble-release-plan': 5.2.4(patch_hash=ismjcgzyajdphoz3q5q3incsia) '@changesets/config': 2.3.1 '@changesets/pre': 1.0.14 '@changesets/read': 0.5.9 From ca0a62c69f6e89f40906f99e97a7ea3bb47e9db7 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 18 Dec 2024 14:21:25 -0500 Subject: [PATCH 21/31] Enter prerelease mode --- .changeset/pre.json | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .changeset/pre.json diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 0000000000..c60cc58c6c --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,25 @@ +{ + "mode": "pre", + "tag": "pre", + "initialVersions": { + "integration": "0.0.0", + "integration-vite-5-template": "0.0.0", + "integration-vite-6-template": "0.0.0", + "integration-vite-cloudflare-template": "0.0.0", + "create-react-router": "7.0.2", + "react-router": "7.0.2", + "@react-router/architect": "7.0.2", + "@react-router/cloudflare": "7.0.2", + "@react-router/dev": "7.0.2", + "react-router-dom": "7.0.2", + "@react-router/express": "7.0.2", + "@react-router/fs-routes": "7.0.2", + "@react-router/node": "7.0.2", + "@react-router/remix-routes-option-adapter": "7.0.2", + "@react-router/serve": "7.0.2", + "@playground/framework": "0.0.0", + "@playground/framework-express": "0.0.0", + "@playground/framework-spa": "0.0.0" + }, + "changesets": [] +} From 1907596edab0fb89c8a78ae8d373f16cd289830a Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 18 Dec 2024 14:46:39 -0500 Subject: [PATCH 22/31] Properly initialize `NODE_ENV` if not already set (#12578) * Properly initialize node env for react-router cli * Properly initialize `NODE_ENV` in `react-router-serve` --------- Co-authored-by: jrestall --- .changeset/selfish-pianos-grab.md | 5 +++++ contributors.yml | 1 + packages/react-router-dev/bin.js | 13 +++++++++++++ packages/react-router-serve/bin.js | 5 +++++ 4 files changed, 24 insertions(+) create mode 100644 .changeset/selfish-pianos-grab.md diff --git a/.changeset/selfish-pianos-grab.md b/.changeset/selfish-pianos-grab.md new file mode 100644 index 0000000000..861feb13e5 --- /dev/null +++ b/.changeset/selfish-pianos-grab.md @@ -0,0 +1,5 @@ +--- +"@react-router/dev": patch +--- + +Properly initialize `NODE_ENV` if not already set for compatibility with React 19 diff --git a/contributors.yml b/contributors.yml index 3f4e420123..f42e82268a 100644 --- a/contributors.yml +++ b/contributors.yml @@ -147,6 +147,7 @@ - johnpangalos - jonkoops - jrakotoharisoa +- jrestall - juanpprieto - jungwoo3490 - kachun333 diff --git a/packages/react-router-dev/bin.js b/packages/react-router-dev/bin.js index 332ae02d46..8886601064 100755 --- a/packages/react-router-dev/bin.js +++ b/packages/react-router-dev/bin.js @@ -1,2 +1,15 @@ #!/usr/bin/env node +let arg = require("arg"); + +// Minimal replication of our actual parsing in `run.ts`. If not already set, +// default `NODE_ENV` so React loads the proper version in it's CJS entry script. +// We have to do this before importing `run.ts` since that is what imports +// `react` (indirectly via `react-router`) +let args = arg({}, { argv: process.argv.slice(2) }); +if (args._[0] === "dev") { + process.env.NODE_ENV = process.env.NODE_ENV ?? "development"; +} else { + process.env.NODE_ENV = process.env.NODE_ENV ?? "production"; +} + require("./dist/cli/index"); diff --git a/packages/react-router-serve/bin.js b/packages/react-router-serve/bin.js index 7bfd4edf71..0b2d4d9f03 100755 --- a/packages/react-router-serve/bin.js +++ b/packages/react-router-serve/bin.js @@ -1,2 +1,7 @@ #!/usr/bin/env node + +// If not already set, default `NODE_ENV=production` so React loads the proper +// version in it's CJS entry script +process.env.NODE_ENV = process.env.NODE_ENV ?? "production"; + require("./dist/cli"); From d81928eba45882a62973ca7bd6331a920ba7ad34 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 14:49:48 -0500 Subject: [PATCH 23/31] chore: Update version for release (pre) (#12585) Co-authored-by: github-actions[bot] --- .changeset/pre.json | 11 ++++++++++- packages/create-react-router/CHANGELOG.md | 6 ++++++ packages/create-react-router/package.json | 2 +- packages/react-router-architect/CHANGELOG.md | 8 ++++++++ packages/react-router-architect/package.json | 2 +- packages/react-router-cloudflare/CHANGELOG.md | 7 +++++++ packages/react-router-cloudflare/package.json | 2 +- packages/react-router-dev/CHANGELOG.md | 19 +++++++++++++++++++ packages/react-router-dev/package.json | 2 +- packages/react-router-dom/CHANGELOG.md | 7 +++++++ packages/react-router-dom/package.json | 2 +- packages/react-router-express/CHANGELOG.md | 8 ++++++++ packages/react-router-express/package.json | 2 +- packages/react-router-fs-routes/CHANGELOG.md | 8 ++++++++ packages/react-router-fs-routes/package.json | 2 +- packages/react-router-node/CHANGELOG.md | 7 +++++++ packages/react-router-node/package.json | 2 +- .../CHANGELOG.md | 7 +++++++ .../package.json | 2 +- packages/react-router-serve/CHANGELOG.md | 9 +++++++++ packages/react-router-serve/package.json | 2 +- packages/react-router/CHANGELOG.md | 8 ++++++++ packages/react-router/package.json | 2 +- 23 files changed, 115 insertions(+), 12 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index c60cc58c6c..2b75e47a24 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -21,5 +21,14 @@ "@playground/framework-express": "0.0.0", "@playground/framework-spa": "0.0.0" }, - "changesets": [] + "changesets": [ + "dry-toes-sneeze", + "honest-dots-deliver", + "khaki-gifts-grin", + "lovely-lemons-bake", + "perfect-elephants-type", + "selfish-pianos-grab", + "serious-chairs-lie", + "wild-dogs-double" + ] } diff --git a/packages/create-react-router/CHANGELOG.md b/packages/create-react-router/CHANGELOG.md index 2189c373f3..6896e94a39 100644 --- a/packages/create-react-router/CHANGELOG.md +++ b/packages/create-react-router/CHANGELOG.md @@ -1,5 +1,11 @@ # `create-react-router` +## 7.1.0-pre.0 + +### Patch Changes + +- Fix missing `fs-extra` dependency ([#12556](https://github.com/remix-run/react-router/pull/12556)) + ## 7.0.2 ## 7.0.1 diff --git a/packages/create-react-router/package.json b/packages/create-react-router/package.json index d5716500e0..a78b2845d3 100644 --- a/packages/create-react-router/package.json +++ b/packages/create-react-router/package.json @@ -1,6 +1,6 @@ { "name": "create-react-router", - "version": "7.0.2", + "version": "7.1.0-pre.0", "description": "Create a new React Router app", "homepage": "https://reactrouter.com", "bugs": { diff --git a/packages/react-router-architect/CHANGELOG.md b/packages/react-router-architect/CHANGELOG.md index 2d92446245..537a5bd036 100644 --- a/packages/react-router-architect/CHANGELOG.md +++ b/packages/react-router-architect/CHANGELOG.md @@ -1,5 +1,13 @@ # `@react-router/architect` +## 7.1.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `react-router@7.1.0-pre.0` + - `@react-router/node@7.1.0-pre.0` + ## 7.0.2 ### Patch Changes diff --git a/packages/react-router-architect/package.json b/packages/react-router-architect/package.json index 91cae30ea1..63782def03 100644 --- a/packages/react-router-architect/package.json +++ b/packages/react-router-architect/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/architect", - "version": "7.0.2", + "version": "7.1.0-pre.0", "description": "Architect server request handler for React Router", "bugs": { "url": "https://github.com/remix-run/react-router/issues" diff --git a/packages/react-router-cloudflare/CHANGELOG.md b/packages/react-router-cloudflare/CHANGELOG.md index ade51459c0..c7dbef0c70 100644 --- a/packages/react-router-cloudflare/CHANGELOG.md +++ b/packages/react-router-cloudflare/CHANGELOG.md @@ -1,5 +1,12 @@ # `@react-router/cloudflare` +## 7.1.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `react-router@7.1.0-pre.0` + ## 7.0.2 ### Patch Changes diff --git a/packages/react-router-cloudflare/package.json b/packages/react-router-cloudflare/package.json index 8af2f7aeff..edea9806f5 100644 --- a/packages/react-router-cloudflare/package.json +++ b/packages/react-router-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/cloudflare", - "version": "7.0.2", + "version": "7.1.0-pre.0", "description": "Cloudflare platform abstractions for React Router", "bugs": { "url": "https://github.com/remix-run/react-router/issues" diff --git a/packages/react-router-dev/CHANGELOG.md b/packages/react-router-dev/CHANGELOG.md index df09340aca..261374b69d 100644 --- a/packages/react-router-dev/CHANGELOG.md +++ b/packages/react-router-dev/CHANGELOG.md @@ -1,5 +1,24 @@ # `@react-router/dev` +## 7.1.0-pre.0 + +### Minor Changes + +- Add support for Vite v6 ([#12469](https://github.com/remix-run/react-router/pull/12469)) + +### Patch Changes + +- Properly initialize `NODE_ENV` if not already set for compatibility with React 19 ([#12578](https://github.com/remix-run/react-router/pull/12578)) +- Remove the leftover/unused `abortDelay` prop from `ServerRouter` and update the default `entry.server.tsx` to use the new `streamTimeout` value for Single Fetch ([#12478](https://github.com/remix-run/react-router/pull/12478)) + + - The `abortDelay` functionality was removed in v7 as it was coupled to the `defer` implementation from Remix v2, but this removal of this prop was missed + - If you were still using this prop in your `entry.server` file, it's likely your app is not aborting streams as you would expect and you will need to adopt the new [`streamTimeout`](https://reactrouter.com/explanation/special-files#streamtimeout) value introduced with Single Fetch + +- Updated dependencies: + - `react-router@7.1.0-pre.0` + - `@react-router/node@7.1.0-pre.0` + - `@react-router/serve@7.1.0-pre.0` + ## 7.0.2 ### Patch Changes diff --git a/packages/react-router-dev/package.json b/packages/react-router-dev/package.json index bfeb2e9f48..9ee0afacdc 100644 --- a/packages/react-router-dev/package.json +++ b/packages/react-router-dev/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/dev", - "version": "7.0.2", + "version": "7.1.0-pre.0", "description": "Dev tools and CLI for React Router", "homepage": "https://reactrouter.com", "bugs": { diff --git a/packages/react-router-dom/CHANGELOG.md b/packages/react-router-dom/CHANGELOG.md index e1604ab57c..020e52e7cc 100644 --- a/packages/react-router-dom/CHANGELOG.md +++ b/packages/react-router-dom/CHANGELOG.md @@ -1,5 +1,12 @@ # react-router-dom +## 7.1.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `react-router@7.1.0-pre.0` + ## 7.0.2 ### Patch Changes diff --git a/packages/react-router-dom/package.json b/packages/react-router-dom/package.json index 9a79eb4a43..09bb7b902d 100644 --- a/packages/react-router-dom/package.json +++ b/packages/react-router-dom/package.json @@ -1,6 +1,6 @@ { "name": "react-router-dom", - "version": "7.0.2", + "version": "7.1.0-pre.0", "description": "Declarative routing for React web applications", "keywords": [ "react", diff --git a/packages/react-router-express/CHANGELOG.md b/packages/react-router-express/CHANGELOG.md index 241c9d537d..1aa9d3fc91 100644 --- a/packages/react-router-express/CHANGELOG.md +++ b/packages/react-router-express/CHANGELOG.md @@ -1,5 +1,13 @@ # `@react-router/express` +## 7.1.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `react-router@7.1.0-pre.0` + - `@react-router/node@7.1.0-pre.0` + ## 7.0.2 ### Patch Changes diff --git a/packages/react-router-express/package.json b/packages/react-router-express/package.json index 431a2cc271..c4bea07412 100644 --- a/packages/react-router-express/package.json +++ b/packages/react-router-express/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/express", - "version": "7.0.2", + "version": "7.1.0-pre.0", "description": "Express server request handler for React Router", "bugs": { "url": "https://github.com/remix-run/react-router/issues" diff --git a/packages/react-router-fs-routes/CHANGELOG.md b/packages/react-router-fs-routes/CHANGELOG.md index acbc9fc487..0c0cbd67fe 100644 --- a/packages/react-router-fs-routes/CHANGELOG.md +++ b/packages/react-router-fs-routes/CHANGELOG.md @@ -1,5 +1,13 @@ # `@react-router/fs-routes` +## 7.1.0-pre.0 + +### Patch Changes + +- Throw error in `flatRoutes` if routes directory is missing ([#12407](https://github.com/remix-run/react-router/pull/12407)) +- Updated dependencies: + - `@react-router/dev@7.1.0-pre.0` + ## 7.0.2 ### Patch Changes diff --git a/packages/react-router-fs-routes/package.json b/packages/react-router-fs-routes/package.json index 94860c31d1..fbdf196763 100644 --- a/packages/react-router-fs-routes/package.json +++ b/packages/react-router-fs-routes/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/fs-routes", - "version": "7.0.2", + "version": "7.1.0-pre.0", "description": "File system routing conventions for React Router, for use within routes.ts", "bugs": { "url": "https://github.com/remix-run/react-router/issues" diff --git a/packages/react-router-node/CHANGELOG.md b/packages/react-router-node/CHANGELOG.md index 8b13276cfc..495c3fd138 100644 --- a/packages/react-router-node/CHANGELOG.md +++ b/packages/react-router-node/CHANGELOG.md @@ -1,5 +1,12 @@ # `@react-router/node` +## 7.1.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `react-router@7.1.0-pre.0` + ## 7.0.2 ### Patch Changes diff --git a/packages/react-router-node/package.json b/packages/react-router-node/package.json index a3631656e1..db08b182e9 100644 --- a/packages/react-router-node/package.json +++ b/packages/react-router-node/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/node", - "version": "7.0.2", + "version": "7.1.0-pre.0", "description": "Node.js platform abstractions for React Router", "bugs": { "url": "https://github.com/remix-run/react-router/issues" diff --git a/packages/react-router-remix-routes-option-adapter/CHANGELOG.md b/packages/react-router-remix-routes-option-adapter/CHANGELOG.md index 9bc7f8a278..ed62d50df1 100644 --- a/packages/react-router-remix-routes-option-adapter/CHANGELOG.md +++ b/packages/react-router-remix-routes-option-adapter/CHANGELOG.md @@ -1,5 +1,12 @@ # `@react-router/remix-config-routes-adapter` +## 7.1.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@react-router/dev@7.1.0-pre.0` + ## 7.0.2 ### Patch Changes diff --git a/packages/react-router-remix-routes-option-adapter/package.json b/packages/react-router-remix-routes-option-adapter/package.json index 88b0d08ff4..60eae65152 100644 --- a/packages/react-router-remix-routes-option-adapter/package.json +++ b/packages/react-router-remix-routes-option-adapter/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/remix-routes-option-adapter", - "version": "7.0.2", + "version": "7.1.0-pre.0", "description": "Adapter for Remix's \"routes\" config option, for use within routes.ts", "bugs": { "url": "https://github.com/remix-run/react-router/issues" diff --git a/packages/react-router-serve/CHANGELOG.md b/packages/react-router-serve/CHANGELOG.md index 2ba65d1143..2dbd454cd1 100644 --- a/packages/react-router-serve/CHANGELOG.md +++ b/packages/react-router-serve/CHANGELOG.md @@ -1,5 +1,14 @@ # `@react-router/serve` +## 7.1.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `react-router@7.1.0-pre.0` + - `@react-router/node@7.1.0-pre.0` + - `@react-router/express@7.1.0-pre.0` + ## 7.0.2 ### Patch Changes diff --git a/packages/react-router-serve/package.json b/packages/react-router-serve/package.json index 44cc56ab84..768a777298 100644 --- a/packages/react-router-serve/package.json +++ b/packages/react-router-serve/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/serve", - "version": "7.0.2", + "version": "7.1.0-pre.0", "description": "Production application server for React Router", "bugs": { "url": "https://github.com/remix-run/react-router/issues" diff --git a/packages/react-router/CHANGELOG.md b/packages/react-router/CHANGELOG.md index 660dd356a8..f6ddf56ab3 100644 --- a/packages/react-router/CHANGELOG.md +++ b/packages/react-router/CHANGELOG.md @@ -1,5 +1,13 @@ # `react-router` +## 7.1.0-pre.0 + +### Patch Changes + +- Throw unwrapped single fetch redirect to align with pre-single fetch behavior ([#12506](https://github.com/remix-run/react-router/pull/12506)) +- Ignore redirects when inferring loader data types ([#12527](https://github.com/remix-run/react-router/pull/12527)) +- Remove `` warning which suffers from false positives in a lazy route discovery world ([#12485](https://github.com/remix-run/react-router/pull/12485)) + ## 7.0.2 ### Patch Changes diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 9dd600e103..586243accb 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -1,6 +1,6 @@ { "name": "react-router", - "version": "7.0.2", + "version": "7.1.0-pre.0", "description": "Declarative routing for React", "keywords": [ "react", From 9d36efa450cfc8ad6d49ddb4630ae440d347541e Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 18 Dec 2024 15:04:24 -0500 Subject: [PATCH 24/31] Draft release notes --- CHANGELOG.md | 252 +++++++++++++++++++++++++++------------------------ 1 file changed, 133 insertions(+), 119 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cbe2f44418..c23058217f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,12 +13,14 @@ We manage release notes in this file instead of the paginated Github Releases Pa Table of Contents - [React Router Releases](#react-router-releases) - - [v7.0.2](#v702) + - [v7.1.0](#v710) + - [Minor Changes](#minor-changes) - [Patch Changes](#patch-changes) - [Changes by Package](#changes-by-package) - - [v7.0.1](#v701) + - [v7.0.2](#v702) - [Patch Changes](#patch-changes-1) - - [Changes by Package](#changes-by-package-1) + - [v7.0.1](#v701) + - [Patch Changes](#patch-changes-2) - [v7.0.0](#v700) - [Breaking Changes](#breaking-changes) - [Package Restructuring](#package-restructuring) @@ -34,189 +36,189 @@ We manage release notes in this file instead of the paginated Github Releases Pa - [Prerendering](#prerendering) - [Major Changes (`react-router`)](#major-changes-react-router) - [Major Changes (`@react-router/*`)](#major-changes-react-router-1) - - [Minor Changes](#minor-changes) - - [Patch Changes](#patch-changes-2) - - [Changes by Package](#changes-by-package-2) - - [v6.28.0](#v6280) - - [What's Changed](#whats-changed) - [Minor Changes](#minor-changes-1) - [Patch Changes](#patch-changes-3) + - [Changes by Package](#changes-by-package-1) + - [v6.28.0](#v6280) + - [What's Changed](#whats-changed) + - [Minor Changes](#minor-changes-2) + - [Patch Changes](#patch-changes-4) - [v6.27.0](#v6270) - [What's Changed](#whats-changed-1) - [Stabilized APIs](#stabilized-apis) - - [Minor Changes](#minor-changes-2) - - [Patch Changes](#patch-changes-4) - - [v6.26.2](#v6262) + - [Minor Changes](#minor-changes-3) - [Patch Changes](#patch-changes-5) - - [v6.26.1](#v6261) + - [v6.26.2](#v6262) - [Patch Changes](#patch-changes-6) - - [v6.26.0](#v6260) - - [Minor Changes](#minor-changes-3) + - [v6.26.1](#v6261) - [Patch Changes](#patch-changes-7) - - [v6.25.1](#v6251) + - [v6.26.0](#v6260) + - [Minor Changes](#minor-changes-4) - [Patch Changes](#patch-changes-8) + - [v6.25.1](#v6251) + - [Patch Changes](#patch-changes-9) - [v6.25.0](#v6250) - [What's Changed](#whats-changed-2) - [Stabilized `v7_skipActionErrorRevalidation`](#stabilized-v7_skipactionerrorrevalidation) - - [Minor Changes](#minor-changes-4) - - [Patch Changes](#patch-changes-9) - - [v6.24.1](#v6241) + - [Minor Changes](#minor-changes-5) - [Patch Changes](#patch-changes-10) + - [v6.24.1](#v6241) + - [Patch Changes](#patch-changes-11) - [v6.24.0](#v6240) - [What's Changed](#whats-changed-3) - [Lazy Route Discovery (a.k.a. "Fog of War")](#lazy-route-discovery-aka-fog-of-war) - - [Minor Changes](#minor-changes-5) - - [Patch Changes](#patch-changes-11) - - [v6.23.1](#v6231) + - [Minor Changes](#minor-changes-6) - [Patch Changes](#patch-changes-12) + - [v6.23.1](#v6231) + - [Patch Changes](#patch-changes-13) - [v6.23.0](#v6230) - [What's Changed](#whats-changed-4) - [Data Strategy (unstable)](#data-strategy-unstable) - [Skip Action Error Revalidation (unstable)](#skip-action-error-revalidation-unstable) - - [Minor Changes](#minor-changes-6) + - [Minor Changes](#minor-changes-7) - [v6.22.3](#v6223) - - [Patch Changes](#patch-changes-13) - - [v6.22.2](#v6222) - [Patch Changes](#patch-changes-14) - - [v6.22.1](#v6221) + - [v6.22.2](#v6222) - [Patch Changes](#patch-changes-15) + - [v6.22.1](#v6221) + - [Patch Changes](#patch-changes-16) - [v6.22.0](#v6220) - [What's Changed](#whats-changed-5) - [Core Web Vitals Technology Report Flag](#core-web-vitals-technology-report-flag) - - [Minor Changes](#minor-changes-7) - - [Patch Changes](#patch-changes-16) - - [v6.21.3](#v6213) + - [Minor Changes](#minor-changes-8) - [Patch Changes](#patch-changes-17) - - [v6.21.2](#v6212) + - [v6.21.3](#v6213) - [Patch Changes](#patch-changes-18) - - [v6.21.1](#v6211) + - [v6.21.2](#v6212) - [Patch Changes](#patch-changes-19) + - [v6.21.1](#v6211) + - [Patch Changes](#patch-changes-20) - [v6.21.0](#v6210) - [What's Changed](#whats-changed-6) - [`future.v7_relativeSplatPath`](#futurev7_relativesplatpath) - [Partial Hydration](#partial-hydration) - - [Minor Changes](#minor-changes-8) - - [Patch Changes](#patch-changes-20) - - [v6.20.1](#v6201) - - [Patch Changes](#patch-changes-21) - - [v6.20.0](#v6200) - [Minor Changes](#minor-changes-9) + - [Patch Changes](#patch-changes-21) + - [v6.20.1](#v6201) - [Patch Changes](#patch-changes-22) + - [v6.20.0](#v6200) + - [Minor Changes](#minor-changes-10) + - [Patch Changes](#patch-changes-23) - [v6.19.0](#v6190) - [What's Changed](#whats-changed-7) - [`unstable_flushSync` API](#unstable_flushsync-api) - - [Minor Changes](#minor-changes-10) - - [Patch Changes](#patch-changes-23) + - [Minor Changes](#minor-changes-11) + - [Patch Changes](#patch-changes-24) - [v6.18.0](#v6180) - [What's Changed](#whats-changed-8) - [New Fetcher APIs](#new-fetcher-apis) - [Persistence Future Flag (`future.v7_fetcherPersist`)](#persistence-future-flag-futurev7_fetcherpersist) - - [Minor Changes](#minor-changes-11) - - [Patch Changes](#patch-changes-24) + - [Minor Changes](#minor-changes-12) + - [Patch Changes](#patch-changes-25) - [v6.17.0](#v6170) - [What's Changed](#whats-changed-9) - [View Transitions 🚀](#view-transitions-) - - [Minor Changes](#minor-changes-12) - - [Patch Changes](#patch-changes-25) - - [v6.16.0](#v6160) - [Minor Changes](#minor-changes-13) - [Patch Changes](#patch-changes-26) - - [v6.15.0](#v6150) + - [v6.16.0](#v6160) - [Minor Changes](#minor-changes-14) - [Patch Changes](#patch-changes-27) - - [v6.14.2](#v6142) + - [v6.15.0](#v6150) + - [Minor Changes](#minor-changes-15) - [Patch Changes](#patch-changes-28) - - [v6.14.1](#v6141) + - [v6.14.2](#v6142) - [Patch Changes](#patch-changes-29) + - [v6.14.1](#v6141) + - [Patch Changes](#patch-changes-30) - [v6.14.0](#v6140) - [What's Changed](#whats-changed-10) - [JSON/Text Submissions](#jsontext-submissions) - - [Minor Changes](#minor-changes-15) - - [Patch Changes](#patch-changes-30) + - [Minor Changes](#minor-changes-16) + - [Patch Changes](#patch-changes-31) - [v6.13.0](#v6130) - [What's Changed](#whats-changed-11) - [`future.v7_startTransition`](#futurev7_starttransition) - - [Minor Changes](#minor-changes-16) - - [Patch Changes](#patch-changes-31) - - [v6.12.1](#v6121) + - [Minor Changes](#minor-changes-17) - [Patch Changes](#patch-changes-32) + - [v6.12.1](#v6121) + - [Patch Changes](#patch-changes-33) - [v6.12.0](#v6120) - [What's Changed](#whats-changed-12) - [`React.startTransition` support](#reactstarttransition-support) - - [Minor Changes](#minor-changes-17) - - [Patch Changes](#patch-changes-33) - - [v6.11.2](#v6112) + - [Minor Changes](#minor-changes-18) - [Patch Changes](#patch-changes-34) - - [v6.11.1](#v6111) + - [v6.11.2](#v6112) - [Patch Changes](#patch-changes-35) - - [v6.11.0](#v6110) - - [Minor Changes](#minor-changes-18) + - [v6.11.1](#v6111) - [Patch Changes](#patch-changes-36) + - [v6.11.0](#v6110) + - [Minor Changes](#minor-changes-19) + - [Patch Changes](#patch-changes-37) - [v6.10.0](#v6100) - [What's Changed](#whats-changed-13) - - [Minor Changes](#minor-changes-19) + - [Minor Changes](#minor-changes-20) - [`future.v7_normalizeFormMethod`](#futurev7_normalizeformmethod) - - [Patch Changes](#patch-changes-37) + - [Patch Changes](#patch-changes-38) - [v6.9.0](#v690) - [What's Changed](#whats-changed-14) - [`Component`/`ErrorBoundary` route properties](#componenterrorboundary-route-properties) - [Introducing Lazy Route Modules](#introducing-lazy-route-modules) - - [Minor Changes](#minor-changes-20) - - [Patch Changes](#patch-changes-38) - - [v6.8.2](#v682) + - [Minor Changes](#minor-changes-21) - [Patch Changes](#patch-changes-39) - - [v6.8.1](#v681) + - [v6.8.2](#v682) - [Patch Changes](#patch-changes-40) - - [v6.8.0](#v680) - - [Minor Changes](#minor-changes-21) + - [v6.8.1](#v681) - [Patch Changes](#patch-changes-41) - - [v6.7.0](#v670) + - [v6.8.0](#v680) - [Minor Changes](#minor-changes-22) - [Patch Changes](#patch-changes-42) - - [v6.6.2](#v662) + - [v6.7.0](#v670) + - [Minor Changes](#minor-changes-23) - [Patch Changes](#patch-changes-43) - - [v6.6.1](#v661) + - [v6.6.2](#v662) - [Patch Changes](#patch-changes-44) + - [v6.6.1](#v661) + - [Patch Changes](#patch-changes-45) - [v6.6.0](#v660) - [What's Changed](#whats-changed-15) - - [Minor Changes](#minor-changes-23) - - [Patch Changes](#patch-changes-45) - - [v6.5.0](#v650) - - [What's Changed](#whats-changed-16) - [Minor Changes](#minor-changes-24) - [Patch Changes](#patch-changes-46) - - [v6.4.5](#v645) + - [v6.5.0](#v650) + - [What's Changed](#whats-changed-16) + - [Minor Changes](#minor-changes-25) - [Patch Changes](#patch-changes-47) - - [v6.4.4](#v644) + - [v6.4.5](#v645) - [Patch Changes](#patch-changes-48) - - [v6.4.3](#v643) + - [v6.4.4](#v644) - [Patch Changes](#patch-changes-49) - - [v6.4.2](#v642) + - [v6.4.3](#v643) - [Patch Changes](#patch-changes-50) - - [v6.4.1](#v641) + - [v6.4.2](#v642) - [Patch Changes](#patch-changes-51) + - [v6.4.1](#v641) + - [Patch Changes](#patch-changes-52) - [v6.4.0](#v640) - [What's Changed](#whats-changed-17) - [Remix Data APIs](#remix-data-apis) - - [Patch Changes](#patch-changes-52) + - [Patch Changes](#patch-changes-53) - [v6.3.0](#v630) - - [Minor Changes](#minor-changes-25) + - [Minor Changes](#minor-changes-26) - [v6.2.2](#v622) - - [Patch Changes](#patch-changes-53) - - [v6.2.1](#v621) - [Patch Changes](#patch-changes-54) - - [v6.2.0](#v620) - - [Minor Changes](#minor-changes-26) + - [v6.2.1](#v621) - [Patch Changes](#patch-changes-55) - - [v6.1.1](#v611) - - [Patch Changes](#patch-changes-56) - - [v6.1.0](#v610) + - [v6.2.0](#v620) - [Minor Changes](#minor-changes-27) + - [Patch Changes](#patch-changes-56) + - [v6.1.1](#v611) - [Patch Changes](#patch-changes-57) - - [v6.0.2](#v602) + - [v6.1.0](#v610) + - [Minor Changes](#minor-changes-28) - [Patch Changes](#patch-changes-58) - - [v6.0.1](#v601) + - [v6.0.2](#v602) - [Patch Changes](#patch-changes-59) + - [v6.0.1](#v601) + - [Patch Changes](#patch-changes-60) - [v6.0.0](#v600) @@ -239,6 +241,7 @@ Date: YYYY-MM-DD ### Changes by Package +- [`create-react-router`](https://github.com/remix-run/react-router/blob/react-router%407.X.Y/packages/create-react-router/CHANGELOG.md#7XY) - [`react-router`](https://github.com/remix-run/react-router/blob/react-router%407.X.Y/packages/react-router/CHANGELOG.md#7XY) - [`@react-router/architect`](https://github.com/remix-run/react-router/blob/react-router%407.X.Y/packages/react-router-architect/CHANGELOG.md#7XY) - [`@react-router/cloudflare`](https://github.com/remix-run/react-router/blob/react-router%407.X.Y/packages/react-router-cloudflare/CHANGELOG.md#7XY) @@ -252,31 +255,54 @@ Date: YYYY-MM-DD **Full Changelog**: [`v7.X.Y...v7.X.Y`](https://github.com/remix-run/react-router/compare/react-router@7.X.Y...react-router@7.X.Y) --> -## v7.0.2 +## v7.1.0 -Date: 2024-12-02 +Date: 2024-12-19 -### Patch Changes +### Minor Changes + +- Add support for Vite v6 ([#12469](https://github.com/remix-run/react-router/pull/12469)) -- Temporarily only use one build in export map so packages can have a peer dependency on react router ([#12437](https://github.com/remix-run/react-router/pull/12437)) -- Support `moduleResolution` `Node16` and `NodeNext` ([#12440](https://github.com/remix-run/react-router/pull/12440)) -- Generate wide `matches` and `params` types for child routes ([#12397](https://github.com/remix-run/react-router/pull/12397)) +### Patch Changes - At runtime, `matches` includes child route matches and `params` include child route path parameters. - But previously, we only generated types for parent routes and the current route in `matches` and `params`. - To align our generated types more closely to the runtime behavior, we now generate more permissive, wider types when accessing child route information. +- `react-router` - Throw unwrapped Single Fetch `redirect` to align with pre-Single Fetch behavior ([#12506](https://github.com/remix-run/react-router/pull/12506)) +- `react-router` - Ignore redirects when inferring loader data types ([#12527](https://github.com/remix-run/react-router/pull/12527)) +- `react-router` - Remove `` warning which suffers from false positives in a lazy route discovery world ([#12485](https://github.com/remix-run/react-router/pull/12485)) +- `create-react-router` - Fix missing `fs-extra` dependency ([#12556](https://github.com/remix-run/react-router/pull/12556)) +- `@react-router/dev`/`@react-router/serve` - Properly initialize `NODE_ENV` if not already set for compatibility with React 19 ([#12578](https://github.com/remix-run/react-router/pull/12578)) +- `@react-router/dev` - Remove the leftover/unused `abortDelay` prop from `ServerRouter` and update the default `entry.server.tsx` to use the new `streamTimeout` value for Single Fetch ([#12478](https://github.com/remix-run/react-router/pull/12478)) + - The `abortDelay` functionality was removed in v7 as it was coupled to the `defer` implementation from Remix v2, but this removal of this prop was missed + - If you were still using this prop in your `entry.server` file, it's likely your app is not aborting streams as you would expect and you will need to adopt the new [`streamTimeout`](https://reactrouter.com/explanation/special-files#streamtimeout) value introduced with Single Fetch +- `@react-router/fs-routes` - Throw error in `flatRoutes` if routes directory is missing ([#12407](https://github.com/remix-run/react-router/pull/12407)) ### Changes by Package -- [`react-router`](https://github.com/remix-run/react-router/blob/react-router%407.0.2/packages/react-router/CHANGELOG.md#702) -- [`@react-router/architect`](https://github.com/remix-run/react-router/blob/react-router%407.0.2/packages/react-router-architect/CHANGELOG.md#702) -- [`@react-router/cloudflare`](https://github.com/remix-run/react-router/blob/react-router%407.0.2/packages/react-router-cloudflare/CHANGELOG.md#702) -- [`@react-router/dev`](https://github.com/remix-run/react-router/blob/react-router%407.0.2/packages/react-router-dev/CHANGELOG.md#702) -- [`@react-router/express`](https://github.com/remix-run/react-router/blob/react-router%407.0.2/packages/react-router-express/CHANGELOG.md#702) -- [`@react-router/fs-routes`](https://github.com/remix-run/react-router/blob/react-router%407.0.2/packages/react-router-fs-routes/CHANGELOG.md#702) -- [`@react-router/node`](https://github.com/remix-run/react-router/blob/react-router%407.0.2/packages/react-router-node/CHANGELOG.md#702) -- [`@react-router/remix-config-routes-adapter`](https://github.com/remix-run/react-router/blob/react-router%407.0.2/packages/react-router-remix-config-routes-adapter/CHANGELOG.md#702) -- [`@react-router/serve`](https://github.com/remix-run/react-router/blob/react-router%407.0.2/packages/react-router-serve/CHANGELOG.md#702) +- [`create-react-router`](https://github.com/remix-run/react-router/blob/react-router%407.1.0/packages/create-react-router/CHANGELOG.md#710) +- [`react-router`](https://github.com/remix-run/react-router/blob/react-router%407.1.0/packages/react-router/CHANGELOG.md#710) +- [`@react-router/architect`](https://github.com/remix-run/react-router/blob/react-router%407.1.0/packages/react-router-architect/CHANGELOG.md#710) +- [`@react-router/cloudflare`](https://github.com/remix-run/react-router/blob/react-router%407.1.0/packages/react-router-cloudflare/CHANGELOG.md#710) +- [`@react-router/dev`](https://github.com/remix-run/react-router/blob/react-router%407.1.0/packages/react-router-dev/CHANGELOG.md#710) +- [`@react-router/express`](https://github.com/remix-run/react-router/blob/react-router%407.1.0/packages/react-router-express/CHANGELOG.md#710) +- [`@react-router/fs-routes`](https://github.com/remix-run/react-router/blob/react-router%407.1.0/packages/react-router-fs-routes/CHANGELOG.md#710) +- [`@react-router/node`](https://github.com/remix-run/react-router/blob/react-router%407.1.0/packages/react-router-node/CHANGELOG.md#710) +- [`@react-router/remix-config-routes-adapter`](https://github.com/remix-run/react-router/blob/react-router%407.1.0/packages/react-router-remix-config-routes-adapter/CHANGELOG.md#710) +- [`@react-router/serve`](https://github.com/remix-run/react-router/blob/react-router%407.1.0/packages/react-router-serve/CHANGELOG.md#710) + +**Full Changelog**: [`v7.X.Y...v7.X.Y`](https://github.com/remix-run/react-router/compare/react-router@7.X.Y...react-router@7.X.Y) +--> + +## v7.0.2 + +Date: 2024-12-02 + +### Patch Changes + +- `react-router` - Temporarily only use one build in export map so packages can have a peer dependency on react router ([#12437](https://github.com/remix-run/react-router/pull/12437)) +- `@react-router/dev` - Support `moduleResolution` `Node16` and `NodeNext` ([#12440](https://github.com/remix-run/react-router/pull/12440)) +- `@react-router/dev` - Generate wide `matches` and `params` types for child routes ([#12397](https://github.com/remix-run/react-router/pull/12397)) + - At runtime, `matches` includes child route matches and `params` include child route path parameters + - But previously, we only generated types for parent routes and the current route in `matches` and `params` + - To align our generated types more closely to the runtime behavior, we now generate more permissive, wider types when accessing child route information **Full Changelog**: [`v7.0.1...v7.0.2`](https://github.com/remix-run/react-router/compare/react-router@7.0.1...react-router@7.0.2) @@ -286,20 +312,8 @@ Date: 2024-11-22 ### Patch Changes -- Ensure typegen file watcher is cleaned up when Vite dev server restarts ([#12331](https://github.com/remix-run/react-router/pull/12331)) -- Pass route error to ErrorBoundary as a prop ([#12338](https://github.com/remix-run/react-router/pull/12338)) - -### Changes by Package - -- [`react-router`](https://github.com/remix-run/react-router/blob/react-router%407.0.1/packages/react-router/CHANGELOG.md#701) -- [`@react-router/architect`](https://github.com/remix-run/react-router/blob/react-router%407.0.1/packages/react-router-architect/CHANGELOG.md#701) -- [`@react-router/cloudflare`](https://github.com/remix-run/react-router/blob/react-router%407.0.1/packages/react-router-cloudflare/CHANGELOG.md#701) -- [`@react-router/dev`](https://github.com/remix-run/react-router/blob/react-router%407.0.1/packages/react-router-dev/CHANGELOG.md#701) -- [`@react-router/express`](https://github.com/remix-run/react-router/blob/react-router%407.0.1/packages/react-router-express/CHANGELOG.md#701) -- [`@react-router/fs-routes`](https://github.com/remix-run/react-router/blob/react-router%407.0.1/packages/react-router-fs-routes/CHANGELOG.md#701) -- [`@react-router/node`](https://github.com/remix-run/react-router/blob/react-router%407.0.1/packages/react-router-node/CHANGELOG.md#701) -- [`@react-router/remix-config-routes-adapter`](https://github.com/remix-run/react-router/blob/react-router%407.0.1/packages/react-router-remix-config-routes-adapter/CHANGELOG.md#701) -- [`@react-router/serve`](https://github.com/remix-run/react-router/blob/react-router%407.0.1/packages/react-router-serve/CHANGELOG.md#701) +- `@react-router/dev` - Ensure typegen file watcher is cleaned up when Vite dev server restarts ([#12331](https://github.com/remix-run/react-router/pull/12331)) +- `@react-router/dev` - Pass route `error` to `ErrorBoundary` as a prop ([#12338](https://github.com/remix-run/react-router/pull/12338)) **Full Changelog**: [`v7.0.0...v7.0.1`](https://github.com/remix-run/react-router/compare/react-router@7.0.0...react-router@7.0.1) From 674e00778516b0a58c34a47e8dc22d144b838727 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 18 Dec 2024 15:08:58 -0500 Subject: [PATCH 25/31] Fix up release notes --- CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c23058217f..38549434bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -288,8 +288,7 @@ Date: 2024-12-19 - [`@react-router/remix-config-routes-adapter`](https://github.com/remix-run/react-router/blob/react-router%407.1.0/packages/react-router-remix-config-routes-adapter/CHANGELOG.md#710) - [`@react-router/serve`](https://github.com/remix-run/react-router/blob/react-router%407.1.0/packages/react-router-serve/CHANGELOG.md#710) -**Full Changelog**: [`v7.X.Y...v7.X.Y`](https://github.com/remix-run/react-router/compare/react-router@7.X.Y...react-router@7.X.Y) ---> +**Full Changelog**: [`v7.0.2...v7.1.0`](https://github.com/remix-run/react-router/compare/react-router@7.0.2...react-router@7.1.0) ## v7.0.2 From fde17e98aa72a4a324eddb4dcdfe7f6658aa34ca Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 20 Dec 2024 15:45:17 -0500 Subject: [PATCH 26/31] Update release notes for 6.28.1 --- CHANGELOG.md | 126 +++++++++++++++++++++++++++---------------------- DEVELOPMENT.md | 14 +----- 2 files changed, 71 insertions(+), 69 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cbe2f44418..ade2cdefa2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,186 +37,188 @@ We manage release notes in this file instead of the paginated Github Releases Pa - [Minor Changes](#minor-changes) - [Patch Changes](#patch-changes-2) - [Changes by Package](#changes-by-package-2) + - [v6.28.1](#v6281) + - [Patch Changes](#patch-changes-3) - [v6.28.0](#v6280) - [What's Changed](#whats-changed) - [Minor Changes](#minor-changes-1) - - [Patch Changes](#patch-changes-3) + - [Patch Changes](#patch-changes-4) - [v6.27.0](#v6270) - [What's Changed](#whats-changed-1) - [Stabilized APIs](#stabilized-apis) - [Minor Changes](#minor-changes-2) - - [Patch Changes](#patch-changes-4) - - [v6.26.2](#v6262) - [Patch Changes](#patch-changes-5) - - [v6.26.1](#v6261) + - [v6.26.2](#v6262) - [Patch Changes](#patch-changes-6) + - [v6.26.1](#v6261) + - [Patch Changes](#patch-changes-7) - [v6.26.0](#v6260) - [Minor Changes](#minor-changes-3) - - [Patch Changes](#patch-changes-7) - - [v6.25.1](#v6251) - [Patch Changes](#patch-changes-8) + - [v6.25.1](#v6251) + - [Patch Changes](#patch-changes-9) - [v6.25.0](#v6250) - [What's Changed](#whats-changed-2) - [Stabilized `v7_skipActionErrorRevalidation`](#stabilized-v7_skipactionerrorrevalidation) - [Minor Changes](#minor-changes-4) - - [Patch Changes](#patch-changes-9) - - [v6.24.1](#v6241) - [Patch Changes](#patch-changes-10) + - [v6.24.1](#v6241) + - [Patch Changes](#patch-changes-11) - [v6.24.0](#v6240) - [What's Changed](#whats-changed-3) - [Lazy Route Discovery (a.k.a. "Fog of War")](#lazy-route-discovery-aka-fog-of-war) - [Minor Changes](#minor-changes-5) - - [Patch Changes](#patch-changes-11) - - [v6.23.1](#v6231) - [Patch Changes](#patch-changes-12) + - [v6.23.1](#v6231) + - [Patch Changes](#patch-changes-13) - [v6.23.0](#v6230) - [What's Changed](#whats-changed-4) - [Data Strategy (unstable)](#data-strategy-unstable) - [Skip Action Error Revalidation (unstable)](#skip-action-error-revalidation-unstable) - [Minor Changes](#minor-changes-6) - [v6.22.3](#v6223) - - [Patch Changes](#patch-changes-13) - - [v6.22.2](#v6222) - [Patch Changes](#patch-changes-14) - - [v6.22.1](#v6221) + - [v6.22.2](#v6222) - [Patch Changes](#patch-changes-15) + - [v6.22.1](#v6221) + - [Patch Changes](#patch-changes-16) - [v6.22.0](#v6220) - [What's Changed](#whats-changed-5) - [Core Web Vitals Technology Report Flag](#core-web-vitals-technology-report-flag) - [Minor Changes](#minor-changes-7) - - [Patch Changes](#patch-changes-16) - - [v6.21.3](#v6213) - [Patch Changes](#patch-changes-17) - - [v6.21.2](#v6212) + - [v6.21.3](#v6213) - [Patch Changes](#patch-changes-18) - - [v6.21.1](#v6211) + - [v6.21.2](#v6212) - [Patch Changes](#patch-changes-19) + - [v6.21.1](#v6211) + - [Patch Changes](#patch-changes-20) - [v6.21.0](#v6210) - [What's Changed](#whats-changed-6) - [`future.v7_relativeSplatPath`](#futurev7_relativesplatpath) - [Partial Hydration](#partial-hydration) - [Minor Changes](#minor-changes-8) - - [Patch Changes](#patch-changes-20) - - [v6.20.1](#v6201) - [Patch Changes](#patch-changes-21) + - [v6.20.1](#v6201) + - [Patch Changes](#patch-changes-22) - [v6.20.0](#v6200) - [Minor Changes](#minor-changes-9) - - [Patch Changes](#patch-changes-22) + - [Patch Changes](#patch-changes-23) - [v6.19.0](#v6190) - [What's Changed](#whats-changed-7) - [`unstable_flushSync` API](#unstable_flushsync-api) - [Minor Changes](#minor-changes-10) - - [Patch Changes](#patch-changes-23) + - [Patch Changes](#patch-changes-24) - [v6.18.0](#v6180) - [What's Changed](#whats-changed-8) - [New Fetcher APIs](#new-fetcher-apis) - [Persistence Future Flag (`future.v7_fetcherPersist`)](#persistence-future-flag-futurev7_fetcherpersist) - [Minor Changes](#minor-changes-11) - - [Patch Changes](#patch-changes-24) + - [Patch Changes](#patch-changes-25) - [v6.17.0](#v6170) - [What's Changed](#whats-changed-9) - [View Transitions 🚀](#view-transitions-) - [Minor Changes](#minor-changes-12) - - [Patch Changes](#patch-changes-25) + - [Patch Changes](#patch-changes-26) - [v6.16.0](#v6160) - [Minor Changes](#minor-changes-13) - - [Patch Changes](#patch-changes-26) + - [Patch Changes](#patch-changes-27) - [v6.15.0](#v6150) - [Minor Changes](#minor-changes-14) - - [Patch Changes](#patch-changes-27) - - [v6.14.2](#v6142) - [Patch Changes](#patch-changes-28) - - [v6.14.1](#v6141) + - [v6.14.2](#v6142) - [Patch Changes](#patch-changes-29) + - [v6.14.1](#v6141) + - [Patch Changes](#patch-changes-30) - [v6.14.0](#v6140) - [What's Changed](#whats-changed-10) - [JSON/Text Submissions](#jsontext-submissions) - [Minor Changes](#minor-changes-15) - - [Patch Changes](#patch-changes-30) + - [Patch Changes](#patch-changes-31) - [v6.13.0](#v6130) - [What's Changed](#whats-changed-11) - [`future.v7_startTransition`](#futurev7_starttransition) - [Minor Changes](#minor-changes-16) - - [Patch Changes](#patch-changes-31) - - [v6.12.1](#v6121) - [Patch Changes](#patch-changes-32) + - [v6.12.1](#v6121) + - [Patch Changes](#patch-changes-33) - [v6.12.0](#v6120) - [What's Changed](#whats-changed-12) - [`React.startTransition` support](#reactstarttransition-support) - [Minor Changes](#minor-changes-17) - - [Patch Changes](#patch-changes-33) - - [v6.11.2](#v6112) - [Patch Changes](#patch-changes-34) - - [v6.11.1](#v6111) + - [v6.11.2](#v6112) - [Patch Changes](#patch-changes-35) + - [v6.11.1](#v6111) + - [Patch Changes](#patch-changes-36) - [v6.11.0](#v6110) - [Minor Changes](#minor-changes-18) - - [Patch Changes](#patch-changes-36) + - [Patch Changes](#patch-changes-37) - [v6.10.0](#v6100) - [What's Changed](#whats-changed-13) - [Minor Changes](#minor-changes-19) - [`future.v7_normalizeFormMethod`](#futurev7_normalizeformmethod) - - [Patch Changes](#patch-changes-37) + - [Patch Changes](#patch-changes-38) - [v6.9.0](#v690) - [What's Changed](#whats-changed-14) - [`Component`/`ErrorBoundary` route properties](#componenterrorboundary-route-properties) - [Introducing Lazy Route Modules](#introducing-lazy-route-modules) - [Minor Changes](#minor-changes-20) - - [Patch Changes](#patch-changes-38) - - [v6.8.2](#v682) - [Patch Changes](#patch-changes-39) - - [v6.8.1](#v681) + - [v6.8.2](#v682) - [Patch Changes](#patch-changes-40) + - [v6.8.1](#v681) + - [Patch Changes](#patch-changes-41) - [v6.8.0](#v680) - [Minor Changes](#minor-changes-21) - - [Patch Changes](#patch-changes-41) + - [Patch Changes](#patch-changes-42) - [v6.7.0](#v670) - [Minor Changes](#minor-changes-22) - - [Patch Changes](#patch-changes-42) - - [v6.6.2](#v662) - [Patch Changes](#patch-changes-43) - - [v6.6.1](#v661) + - [v6.6.2](#v662) - [Patch Changes](#patch-changes-44) + - [v6.6.1](#v661) + - [Patch Changes](#patch-changes-45) - [v6.6.0](#v660) - [What's Changed](#whats-changed-15) - [Minor Changes](#minor-changes-23) - - [Patch Changes](#patch-changes-45) + - [Patch Changes](#patch-changes-46) - [v6.5.0](#v650) - [What's Changed](#whats-changed-16) - [Minor Changes](#minor-changes-24) - - [Patch Changes](#patch-changes-46) - - [v6.4.5](#v645) - [Patch Changes](#patch-changes-47) - - [v6.4.4](#v644) + - [v6.4.5](#v645) - [Patch Changes](#patch-changes-48) - - [v6.4.3](#v643) + - [v6.4.4](#v644) - [Patch Changes](#patch-changes-49) - - [v6.4.2](#v642) + - [v6.4.3](#v643) - [Patch Changes](#patch-changes-50) - - [v6.4.1](#v641) + - [v6.4.2](#v642) - [Patch Changes](#patch-changes-51) + - [v6.4.1](#v641) + - [Patch Changes](#patch-changes-52) - [v6.4.0](#v640) - [What's Changed](#whats-changed-17) - [Remix Data APIs](#remix-data-apis) - - [Patch Changes](#patch-changes-52) + - [Patch Changes](#patch-changes-53) - [v6.3.0](#v630) - [Minor Changes](#minor-changes-25) - [v6.2.2](#v622) - - [Patch Changes](#patch-changes-53) - - [v6.2.1](#v621) - [Patch Changes](#patch-changes-54) + - [v6.2.1](#v621) + - [Patch Changes](#patch-changes-55) - [v6.2.0](#v620) - [Minor Changes](#minor-changes-26) - - [Patch Changes](#patch-changes-55) - - [v6.1.1](#v611) - [Patch Changes](#patch-changes-56) + - [v6.1.1](#v611) + - [Patch Changes](#patch-changes-57) - [v6.1.0](#v610) - [Minor Changes](#minor-changes-27) - - [Patch Changes](#patch-changes-57) - - [v6.0.2](#v602) - [Patch Changes](#patch-changes-58) - - [v6.0.1](#v601) + - [v6.0.2](#v602) - [Patch Changes](#patch-changes-59) + - [v6.0.1](#v601) + - [Patch Changes](#patch-changes-60) - [v6.0.0](#v600) @@ -718,6 +720,16 @@ async function fakeGetSlugsFromCms() { **Full Changelog**: [`v6.28.0...v7.0.0`](https://github.com/remix-run/react-router/compare/react-router@6.28.0...react-router@7.0.0) +## v6.28.1 + +Date: 2024-12-20 + +### Patch Changes + +- Allow users to opt out of v7 deprecation warnings by setting flags to `false` ([#12441](https://github.com/remix-run/react-router/pull/12441)) + +**Full Changelog**: [`v6.28.0...v6.28.1`](https://github.com/remix-run/react-router/compare/react-router@6.28.0...react-router@6.28.1) + ## v6.28.0 Date: 2024-11-06 diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index cc737ba1dd..a67543aaaf 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -108,18 +108,8 @@ Hotfix releases follow the same process as standard releases above, but the `rel - Once the stable release is out: - Merge `release-v6` back to `v6` with a **Normal Merge** - **Do not** merge `release-v6` to `main` - - Copy the updated root `CHANGELOG.md` entries for the `6.X.Y` release to `main` and `dev` - - `git checkout main` - - `git diff react-router@6.X.Y...react-router@6.X.Y -- "***CHANGELOG.md" > ./docs.patch` - - `git apply ./docs.patch` - - `git checkout dev` - - `git apply ./docs.patch` - - `rm ./docs.patch` - - Copy the docs changes to `main` so they show up on the live docs site for v6 - - `git checkout main` - - `git diff react-router@6.X.Y...react-router@6.X.Y docs/ > ./docs.patch` - - `git apply ./docs.patch` - - `rm ./docs.patch` + - Manually copy the new root `CHANGELOG.md` entry to `main` and `dev` + - We don't worry about backporting individual `packages/*/CHANGELOG.md` updates to `main` for subsequent v6 releases - The _code_ changes should already be in the `dev` branch - This should have happened at the time the v6 change was made (except for changes such as deprecation warnings) - Confirm that the commits in this release are all included in `dev` already, and if not you can manually bring them over by cherry-picking the commit or re-doing the work From 70195631e7563212eef494d4e809fd3e5d6ab562 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 20 Dec 2024 16:40:42 -0500 Subject: [PATCH 27/31] Update release notes --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38549434bf..61a890d771 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -257,7 +257,7 @@ Date: YYYY-MM-DD ## v7.1.0 -Date: 2024-12-19 +Date: 2024-12-20 ### Minor Changes From 63230c189fc61e138255239ca4d890702af17bb6 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 20 Dec 2024 16:40:57 -0500 Subject: [PATCH 28/31] Exit prerelease mode --- .changeset/pre.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 2b75e47a24..874076542c 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,5 +1,5 @@ { - "mode": "pre", + "mode": "exit", "tag": "pre", "initialVersions": { "integration": "0.0.0", From c51985e79e45921dd2cdbf2823d5c268342c582b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 20 Dec 2024 16:47:37 -0500 Subject: [PATCH 29/31] chore: Update version for release (#12604) Co-authored-by: github-actions[bot] --- .changeset/dry-toes-sneeze.md | 5 --- .changeset/honest-dots-deliver.md | 5 --- .changeset/khaki-gifts-grin.md | 5 --- .changeset/lovely-lemons-bake.md | 5 --- .changeset/perfect-elephants-type.md | 5 --- .changeset/pre.json | 34 ------------------- .changeset/selfish-pianos-grab.md | 5 --- .changeset/serious-chairs-lie.md | 5 --- .changeset/wild-dogs-double.md | 8 ----- packages/create-react-router/CHANGELOG.md | 2 +- packages/create-react-router/package.json | 2 +- packages/react-router-architect/CHANGELOG.md | 6 ++-- packages/react-router-architect/package.json | 2 +- packages/react-router-cloudflare/CHANGELOG.md | 4 +-- packages/react-router-cloudflare/package.json | 2 +- packages/react-router-dev/CHANGELOG.md | 11 +++--- packages/react-router-dev/package.json | 2 +- packages/react-router-dom/CHANGELOG.md | 6 ++-- packages/react-router-dom/package.json | 2 +- packages/react-router-express/CHANGELOG.md | 8 ++--- packages/react-router-express/package.json | 2 +- packages/react-router-fs-routes/CHANGELOG.md | 4 +-- packages/react-router-fs-routes/package.json | 2 +- packages/react-router-node/CHANGELOG.md | 6 ++-- packages/react-router-node/package.json | 2 +- .../CHANGELOG.md | 4 +-- .../package.json | 2 +- packages/react-router-serve/CHANGELOG.md | 10 +++--- packages/react-router-serve/package.json | 2 +- packages/react-router/CHANGELOG.md | 4 +-- packages/react-router/package.json | 2 +- 31 files changed, 44 insertions(+), 120 deletions(-) delete mode 100644 .changeset/dry-toes-sneeze.md delete mode 100644 .changeset/honest-dots-deliver.md delete mode 100644 .changeset/khaki-gifts-grin.md delete mode 100644 .changeset/lovely-lemons-bake.md delete mode 100644 .changeset/perfect-elephants-type.md delete mode 100644 .changeset/pre.json delete mode 100644 .changeset/selfish-pianos-grab.md delete mode 100644 .changeset/serious-chairs-lie.md delete mode 100644 .changeset/wild-dogs-double.md diff --git a/.changeset/dry-toes-sneeze.md b/.changeset/dry-toes-sneeze.md deleted file mode 100644 index e93a21191f..0000000000 --- a/.changeset/dry-toes-sneeze.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"react-router": patch ---- - -Throw unwrapped single fetch redirect to align with pre-single fetch behavior diff --git a/.changeset/honest-dots-deliver.md b/.changeset/honest-dots-deliver.md deleted file mode 100644 index 5e8fd57841..0000000000 --- a/.changeset/honest-dots-deliver.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@react-router/fs-routes": patch ---- - -Throw error in `flatRoutes` if routes directory is missing diff --git a/.changeset/khaki-gifts-grin.md b/.changeset/khaki-gifts-grin.md deleted file mode 100644 index c19f1feb79..0000000000 --- a/.changeset/khaki-gifts-grin.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"react-router": patch ---- - -Ignore redirects when inferring loader data types diff --git a/.changeset/lovely-lemons-bake.md b/.changeset/lovely-lemons-bake.md deleted file mode 100644 index 09f212f4e1..0000000000 --- a/.changeset/lovely-lemons-bake.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@react-router/dev": minor ---- - -Add support for Vite v6 diff --git a/.changeset/perfect-elephants-type.md b/.changeset/perfect-elephants-type.md deleted file mode 100644 index cddd761813..0000000000 --- a/.changeset/perfect-elephants-type.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"create-react-router": patch ---- - -Fix missing `fs-extra` dependency diff --git a/.changeset/pre.json b/.changeset/pre.json deleted file mode 100644 index 874076542c..0000000000 --- a/.changeset/pre.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "mode": "exit", - "tag": "pre", - "initialVersions": { - "integration": "0.0.0", - "integration-vite-5-template": "0.0.0", - "integration-vite-6-template": "0.0.0", - "integration-vite-cloudflare-template": "0.0.0", - "create-react-router": "7.0.2", - "react-router": "7.0.2", - "@react-router/architect": "7.0.2", - "@react-router/cloudflare": "7.0.2", - "@react-router/dev": "7.0.2", - "react-router-dom": "7.0.2", - "@react-router/express": "7.0.2", - "@react-router/fs-routes": "7.0.2", - "@react-router/node": "7.0.2", - "@react-router/remix-routes-option-adapter": "7.0.2", - "@react-router/serve": "7.0.2", - "@playground/framework": "0.0.0", - "@playground/framework-express": "0.0.0", - "@playground/framework-spa": "0.0.0" - }, - "changesets": [ - "dry-toes-sneeze", - "honest-dots-deliver", - "khaki-gifts-grin", - "lovely-lemons-bake", - "perfect-elephants-type", - "selfish-pianos-grab", - "serious-chairs-lie", - "wild-dogs-double" - ] -} diff --git a/.changeset/selfish-pianos-grab.md b/.changeset/selfish-pianos-grab.md deleted file mode 100644 index 861feb13e5..0000000000 --- a/.changeset/selfish-pianos-grab.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@react-router/dev": patch ---- - -Properly initialize `NODE_ENV` if not already set for compatibility with React 19 diff --git a/.changeset/serious-chairs-lie.md b/.changeset/serious-chairs-lie.md deleted file mode 100644 index 4aa1de1217..0000000000 --- a/.changeset/serious-chairs-lie.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"react-router": patch ---- - -Remove `` warning which suffers from false positives in a lazy route discovery world diff --git a/.changeset/wild-dogs-double.md b/.changeset/wild-dogs-double.md deleted file mode 100644 index 3987630ac1..0000000000 --- a/.changeset/wild-dogs-double.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@react-router/dev": patch ---- - -Remove the leftover/unused `abortDelay` prop from `ServerRouter` and update the default `entry.server.tsx` to use the new `streamTimeout` value for Single Fetch - -- The `abortDelay` functionality was removed in v7 as it was coupled to the `defer` implementation from Remix v2, but this removal of this prop was missed -- If you were still using this prop in your `entry.server` file, it's likely your app is not aborting streams as you would expect and you will need to adopt the new [`streamTimeout`](https://reactrouter.com/explanation/special-files#streamtimeout) value introduced with Single Fetch diff --git a/packages/create-react-router/CHANGELOG.md b/packages/create-react-router/CHANGELOG.md index 6896e94a39..14b3dbedef 100644 --- a/packages/create-react-router/CHANGELOG.md +++ b/packages/create-react-router/CHANGELOG.md @@ -1,6 +1,6 @@ # `create-react-router` -## 7.1.0-pre.0 +## 7.1.0 ### Patch Changes diff --git a/packages/create-react-router/package.json b/packages/create-react-router/package.json index a78b2845d3..da82aa53f5 100644 --- a/packages/create-react-router/package.json +++ b/packages/create-react-router/package.json @@ -1,6 +1,6 @@ { "name": "create-react-router", - "version": "7.1.0-pre.0", + "version": "7.1.0", "description": "Create a new React Router app", "homepage": "https://reactrouter.com", "bugs": { diff --git a/packages/react-router-architect/CHANGELOG.md b/packages/react-router-architect/CHANGELOG.md index 537a5bd036..ad1062faca 100644 --- a/packages/react-router-architect/CHANGELOG.md +++ b/packages/react-router-architect/CHANGELOG.md @@ -1,12 +1,12 @@ # `@react-router/architect` -## 7.1.0-pre.0 +## 7.1.0 ### Patch Changes - Updated dependencies: - - `react-router@7.1.0-pre.0` - - `@react-router/node@7.1.0-pre.0` + - `react-router@7.1.0` + - `@react-router/node@7.1.0` ## 7.0.2 diff --git a/packages/react-router-architect/package.json b/packages/react-router-architect/package.json index 63782def03..294d6dce54 100644 --- a/packages/react-router-architect/package.json +++ b/packages/react-router-architect/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/architect", - "version": "7.1.0-pre.0", + "version": "7.1.0", "description": "Architect server request handler for React Router", "bugs": { "url": "https://github.com/remix-run/react-router/issues" diff --git a/packages/react-router-cloudflare/CHANGELOG.md b/packages/react-router-cloudflare/CHANGELOG.md index c7dbef0c70..185216f2c9 100644 --- a/packages/react-router-cloudflare/CHANGELOG.md +++ b/packages/react-router-cloudflare/CHANGELOG.md @@ -1,11 +1,11 @@ # `@react-router/cloudflare` -## 7.1.0-pre.0 +## 7.1.0 ### Patch Changes - Updated dependencies: - - `react-router@7.1.0-pre.0` + - `react-router@7.1.0` ## 7.0.2 diff --git a/packages/react-router-cloudflare/package.json b/packages/react-router-cloudflare/package.json index edea9806f5..d8753db9c3 100644 --- a/packages/react-router-cloudflare/package.json +++ b/packages/react-router-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/cloudflare", - "version": "7.1.0-pre.0", + "version": "7.1.0", "description": "Cloudflare platform abstractions for React Router", "bugs": { "url": "https://github.com/remix-run/react-router/issues" diff --git a/packages/react-router-dev/CHANGELOG.md b/packages/react-router-dev/CHANGELOG.md index 261374b69d..e2285303ee 100644 --- a/packages/react-router-dev/CHANGELOG.md +++ b/packages/react-router-dev/CHANGELOG.md @@ -1,6 +1,6 @@ # `@react-router/dev` -## 7.1.0-pre.0 +## 7.1.0 ### Minor Changes @@ -9,15 +9,16 @@ ### Patch Changes - Properly initialize `NODE_ENV` if not already set for compatibility with React 19 ([#12578](https://github.com/remix-run/react-router/pull/12578)) + - Remove the leftover/unused `abortDelay` prop from `ServerRouter` and update the default `entry.server.tsx` to use the new `streamTimeout` value for Single Fetch ([#12478](https://github.com/remix-run/react-router/pull/12478)) - The `abortDelay` functionality was removed in v7 as it was coupled to the `defer` implementation from Remix v2, but this removal of this prop was missed - If you were still using this prop in your `entry.server` file, it's likely your app is not aborting streams as you would expect and you will need to adopt the new [`streamTimeout`](https://reactrouter.com/explanation/special-files#streamtimeout) value introduced with Single Fetch - Updated dependencies: - - `react-router@7.1.0-pre.0` - - `@react-router/node@7.1.0-pre.0` - - `@react-router/serve@7.1.0-pre.0` + - `react-router@7.1.0` + - `@react-router/node@7.1.0` + - `@react-router/serve@7.1.0` ## 7.0.2 @@ -63,7 +64,7 @@ +import { cloudflareDevProxy } from "@react-router/dev/vite/cloudflare"; ``` -- Remove single_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) +- Remove single\_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) - update minimum node version to 18 ([#11690](https://github.com/remix-run/react-router/pull/11690)) diff --git a/packages/react-router-dev/package.json b/packages/react-router-dev/package.json index 9ee0afacdc..db4ff4da78 100644 --- a/packages/react-router-dev/package.json +++ b/packages/react-router-dev/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/dev", - "version": "7.1.0-pre.0", + "version": "7.1.0", "description": "Dev tools and CLI for React Router", "homepage": "https://reactrouter.com", "bugs": { diff --git a/packages/react-router-dom/CHANGELOG.md b/packages/react-router-dom/CHANGELOG.md index 020e52e7cc..97dd051d4f 100644 --- a/packages/react-router-dom/CHANGELOG.md +++ b/packages/react-router-dom/CHANGELOG.md @@ -1,11 +1,11 @@ # react-router-dom -## 7.1.0-pre.0 +## 7.1.0 ### Patch Changes - Updated dependencies: - - `react-router@7.1.0-pre.0` + - `react-router@7.1.0` ## 7.0.2 @@ -35,7 +35,7 @@ - Use `createRemixRouter`/`RouterProvider` in `entry.client` instead of `RemixBrowser` ([#11469](https://github.com/remix-run/react-router/pull/11469)) -- Remove single_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) +- Remove single\_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) - Remove `future.v7_startTransition` flag ([#11696](https://github.com/remix-run/react-router/pull/11696)) diff --git a/packages/react-router-dom/package.json b/packages/react-router-dom/package.json index 09bb7b902d..91627b46a1 100644 --- a/packages/react-router-dom/package.json +++ b/packages/react-router-dom/package.json @@ -1,6 +1,6 @@ { "name": "react-router-dom", - "version": "7.1.0-pre.0", + "version": "7.1.0", "description": "Declarative routing for React web applications", "keywords": [ "react", diff --git a/packages/react-router-express/CHANGELOG.md b/packages/react-router-express/CHANGELOG.md index 1aa9d3fc91..3d5a11c4b6 100644 --- a/packages/react-router-express/CHANGELOG.md +++ b/packages/react-router-express/CHANGELOG.md @@ -1,12 +1,12 @@ # `@react-router/express` -## 7.1.0-pre.0 +## 7.1.0 ### Patch Changes - Updated dependencies: - - `react-router@7.1.0-pre.0` - - `@react-router/node@7.1.0-pre.0` + - `react-router@7.1.0` + - `@react-router/node@7.1.0` ## 7.0.2 @@ -28,7 +28,7 @@ ### Major Changes -- Remove single_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) +- Remove single\_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) - update minimum node version to 18 ([#11690](https://github.com/remix-run/react-router/pull/11690)) - Add `exports` field to all packages ([#11675](https://github.com/remix-run/react-router/pull/11675)) - node package no longer re-exports from react-router ([#11702](https://github.com/remix-run/react-router/pull/11702)) diff --git a/packages/react-router-express/package.json b/packages/react-router-express/package.json index c4bea07412..9be5751d6c 100644 --- a/packages/react-router-express/package.json +++ b/packages/react-router-express/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/express", - "version": "7.1.0-pre.0", + "version": "7.1.0", "description": "Express server request handler for React Router", "bugs": { "url": "https://github.com/remix-run/react-router/issues" diff --git a/packages/react-router-fs-routes/CHANGELOG.md b/packages/react-router-fs-routes/CHANGELOG.md index 0c0cbd67fe..9de3ba6c27 100644 --- a/packages/react-router-fs-routes/CHANGELOG.md +++ b/packages/react-router-fs-routes/CHANGELOG.md @@ -1,12 +1,12 @@ # `@react-router/fs-routes` -## 7.1.0-pre.0 +## 7.1.0 ### Patch Changes - Throw error in `flatRoutes` if routes directory is missing ([#12407](https://github.com/remix-run/react-router/pull/12407)) - Updated dependencies: - - `@react-router/dev@7.1.0-pre.0` + - `@react-router/dev@7.1.0` ## 7.0.2 diff --git a/packages/react-router-fs-routes/package.json b/packages/react-router-fs-routes/package.json index fbdf196763..f2c6c532db 100644 --- a/packages/react-router-fs-routes/package.json +++ b/packages/react-router-fs-routes/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/fs-routes", - "version": "7.1.0-pre.0", + "version": "7.1.0", "description": "File system routing conventions for React Router, for use within routes.ts", "bugs": { "url": "https://github.com/remix-run/react-router/issues" diff --git a/packages/react-router-node/CHANGELOG.md b/packages/react-router-node/CHANGELOG.md index 495c3fd138..1f4b85166e 100644 --- a/packages/react-router-node/CHANGELOG.md +++ b/packages/react-router-node/CHANGELOG.md @@ -1,11 +1,11 @@ # `@react-router/node` -## 7.1.0-pre.0 +## 7.1.0 ### Patch Changes - Updated dependencies: - - `react-router@7.1.0-pre.0` + - `react-router@7.1.0` ## 7.0.2 @@ -25,7 +25,7 @@ ### Major Changes -- Remove single_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) +- Remove single\_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) - For Remix consumers migrating to React Router, the `crypto` global from the [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API) is now required when using cookie and session APIs. This means that the following APIs are provided from `react-router` rather than platform-specific packages: ([#11837](https://github.com/remix-run/react-router/pull/11837)) diff --git a/packages/react-router-node/package.json b/packages/react-router-node/package.json index db08b182e9..0f404d0bfa 100644 --- a/packages/react-router-node/package.json +++ b/packages/react-router-node/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/node", - "version": "7.1.0-pre.0", + "version": "7.1.0", "description": "Node.js platform abstractions for React Router", "bugs": { "url": "https://github.com/remix-run/react-router/issues" diff --git a/packages/react-router-remix-routes-option-adapter/CHANGELOG.md b/packages/react-router-remix-routes-option-adapter/CHANGELOG.md index ed62d50df1..69f55889a5 100644 --- a/packages/react-router-remix-routes-option-adapter/CHANGELOG.md +++ b/packages/react-router-remix-routes-option-adapter/CHANGELOG.md @@ -1,11 +1,11 @@ # `@react-router/remix-config-routes-adapter` -## 7.1.0-pre.0 +## 7.1.0 ### Patch Changes - Updated dependencies: - - `@react-router/dev@7.1.0-pre.0` + - `@react-router/dev@7.1.0` ## 7.0.2 diff --git a/packages/react-router-remix-routes-option-adapter/package.json b/packages/react-router-remix-routes-option-adapter/package.json index 60eae65152..480becc084 100644 --- a/packages/react-router-remix-routes-option-adapter/package.json +++ b/packages/react-router-remix-routes-option-adapter/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/remix-routes-option-adapter", - "version": "7.1.0-pre.0", + "version": "7.1.0", "description": "Adapter for Remix's \"routes\" config option, for use within routes.ts", "bugs": { "url": "https://github.com/remix-run/react-router/issues" diff --git a/packages/react-router-serve/CHANGELOG.md b/packages/react-router-serve/CHANGELOG.md index 2dbd454cd1..44736fe713 100644 --- a/packages/react-router-serve/CHANGELOG.md +++ b/packages/react-router-serve/CHANGELOG.md @@ -1,13 +1,13 @@ # `@react-router/serve` -## 7.1.0-pre.0 +## 7.1.0 ### Patch Changes - Updated dependencies: - - `react-router@7.1.0-pre.0` - - `@react-router/node@7.1.0-pre.0` - - `@react-router/express@7.1.0-pre.0` + - `react-router@7.1.0` + - `@react-router/node@7.1.0` + - `@react-router/express@7.1.0` ## 7.0.2 @@ -31,7 +31,7 @@ ### Major Changes -- Remove single_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) +- Remove single\_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) - update minimum node version to 18 ([#11690](https://github.com/remix-run/react-router/pull/11690)) - Add `exports` field to all packages ([#11675](https://github.com/remix-run/react-router/pull/11675)) - node package no longer re-exports from react-router ([#11702](https://github.com/remix-run/react-router/pull/11702)) diff --git a/packages/react-router-serve/package.json b/packages/react-router-serve/package.json index 768a777298..c925b16e0e 100644 --- a/packages/react-router-serve/package.json +++ b/packages/react-router-serve/package.json @@ -1,6 +1,6 @@ { "name": "@react-router/serve", - "version": "7.1.0-pre.0", + "version": "7.1.0", "description": "Production application server for React Router", "bugs": { "url": "https://github.com/remix-run/react-router/issues" diff --git a/packages/react-router/CHANGELOG.md b/packages/react-router/CHANGELOG.md index f6ddf56ab3..92cefe5694 100644 --- a/packages/react-router/CHANGELOG.md +++ b/packages/react-router/CHANGELOG.md @@ -1,6 +1,6 @@ # `react-router` -## 7.1.0-pre.0 +## 7.1.0 ### Patch Changes @@ -38,7 +38,7 @@ - Collapse `@remix-run/server-runtime` into `react-router` - Collapse `@remix-run/testing` into `react-router` -- Remove single_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) +- Remove single\_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) - Drop support for Node 16, React Router SSR now requires Node 18 or higher ([#11391](https://github.com/remix-run/react-router/pull/11391)) diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 586243accb..906144e637 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -1,6 +1,6 @@ { "name": "react-router", - "version": "7.1.0-pre.0", + "version": "7.1.0", "description": "Declarative routing for React", "keywords": [ "react", From 61f257e141f5959085e0153d1d2f1f6c965d6530 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 20 Dec 2024 17:06:17 -0500 Subject: [PATCH 30/31] Fix changelog details/summary --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ff02c832a..ec4452f895 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -223,6 +223,8 @@ We manage release notes in this file instead of the paginated Github Releases Pa - [Patch Changes](#patch-changes-61) - [v6.0.0](#v600) + +